summaryrefslogtreecommitdiffstats
path: root/src/cython/_cy_path.pxd
blob: 2d41581f2cb976f9e8d366cdaf9d9de7b068354e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
from _common_decl cimport *

from libcpp.vector cimport vector
from libcpp.pair cimport pair

from _cy_rectangle cimport Interval, OptInterval, Rect, OptRect
from _cy_affine cimport Affine
from _cy_curves cimport Curve, cy_Curve, wrap_Curve_p
from _cy_curves cimport SBasis, cy_SBasis

from _cy_primitives cimport Point, cy_Point, wrap_Point


cdef extern from "2geom/d2.h" namespace "Geom":
    cdef cppclass D2[T]:
        D2()
        D2(T &, T &)
        T& operator[](unsigned i)  

#~ ctypedef int BaseIteratorConst "BaseIterator<ConstIterator, Path const>"

cdef extern from "2geom/path.h" namespace "Geom::PathInternal":
    cdef cppclass BaseIterator[C, P]:
        Curve & c_item "operator*" ()
        C & c_next "operator++" ()
        C & c_next "operator++" (int)
        bint operator==(BaseIterator[C, P])


    cdef cppclass ConstIterator:
        ConstIterator()
    cdef cppclass Iterator:
        Iterator()
        ConstIterator & operator()        
        
    cdef cppclass BaseIteratorConst "Geom::PathInternal::BaseIterator<Geom::PathInternal::ConstIterator, Path const>":
#~         Curve & c_item "operator*" ()
        ConstIterator & c_next "operator++" ()
        ConstIterator & c_next "operator++" (int)
#~         bint operator==(BaseIterator[C, P])
        
 
cdef extern from "2geom/path.h" namespace "Geom::Path":
    cdef enum Stitching:
        c_NO_STITCHING "Path::NO_STITCHING" = 0,
        c_STITCH_DISCONTINUOUS "Path::STITCH_DISCONTINUOUS" 

cdef extern from "2geom/path.h" namespace "Geom":
    cdef cppclass Path:
        Path(Path &)
        Path(Point)
        Path(ConstIterator &, ConstIterator &, bint)
        void swap(Path &)
        Curve & operator[](unsigned int)
#~         Curve & at_index(unsigned int)
#~         ::boost::shared_ptr<Geom::Curve const> get_ref_at_index(unsigned int)
        Curve & front()
        Curve & back()
        Curve & back_open()
        Curve & back_closed()
        Curve & back_default()
        ConstIterator begin_const "begin" ()
        ConstIterator end()
        Iterator begin()
#~         Iterator end()
        ConstIterator end_open()
        ConstIterator end_closed()
        ConstIterator end_default()
        size_t size_open()
        size_t size_closed()
        size_t size_default()
        size_t size()
        size_t max_size()
        bint empty()
        bint closed()
        void close(bint)
        OptRect boundsFast()
        OptRect boundsExact()
#~         Piecewise<Geom::D2<Geom::SBasis> > toPwSb()
        bint operator==(Path &)
        bint operator!=(Path &)
        Path operator*(Affine &)
#~         Path & operator*=(Affine &)
        Point pointAt(double)
        double valueAt(double, Dim2)
        Point operator()(double) except +
        vector[double] roots(double, Dim2)
        vector[double] allNearestTimes(Point &, double, double)
        vector[double] allNearestTimes(Point &)
        vector[double] nearestTimePerCurve(Point &)
        double nearestTime(Point &, double, double, double *)
        double nearestTime(Point &, double *)
        void appendPortionTo(Path &, double, double)
        Path portion(double, double)
        Path portion(Interval)
        Path reversed()
        void insert(Iterator &, Curve &, Stitching) except +
        void insert(Iterator &, ConstIterator &, ConstIterator &, Stitching)
        void clear()
        void erase(Iterator &, Stitching)
        void erase(Iterator &, Iterator &, Stitching)
        void erase_last()
        void replace(Iterator &, Curve &, Stitching)
        void replace(Iterator &, Iterator &, Curve &, Stitching)
        void replace(Iterator &, ConstIterator &, ConstIterator &, Stitching)
        void replace(Iterator &, Iterator &, ConstIterator &, ConstIterator &, Stitching)
        void start(Point)
        Point initialPoint()
        Point finalPoint()
        void setInitial(Point &)
        void setFinal(Point &)
        void append(Curve &, Stitching)
        void append(D2[SBasis] &, Stitching)
        void append(Path &, Stitching)
        void stitchTo(Point &)

cdef class cy_Path:
#~     NO_STITCHING = c_NO_STITCHING
#~     STITCH_DISCONTINUOUS = c_STITCH_DISCONTINUOUS
    cdef Path* thisptr
    cdef ConstIterator _const_iterator_at_index(self, int i)
    cdef Iterator _iterator_at_index(self, int i)

cdef cy_Path wrap_Path(Path p)