74206353f93e94cd20a0ed83f030fd2a26a5a73c
[occt.git] / src / IntCurve / IntCurve_Polygon2dGen.cdl
1 -- File:        Polygon2dGen.cdl
2 -- Created:     Mon Oct 19 11:51:16 1992
3 -- Author:      Laurent BUCHARD
4 --              <lbr@sdsun2>
5 ---Copyright:    Matra Datavision 1992
6
7
8 generic class Polygon2dGen from IntCurve ( 
9     TheCurve         as any;
10     TheCurveTool     as any) -- as CurveTool from IntCurve(TheCurve)
11
12         ---Purpose: Describe a polyline  as  a topology to compute the
13         --          interference beetween two polylines 2 dimension.
14                   
15
16         ---Level: Internal
17
18 uses    Pnt2d              from gp,
19         Box2d              from Bnd,
20         Array1OfPnt2d      from TColgp,
21         Array1OfReal       from TColStd,
22         Array1OfInteger    from TColStd,
23         Domain             from IntRes2d
24
25
26 raises  OutOfRange from Standard
27
28
29 is  
30
31     Create         (Curve       : TheCurve;
32                     NbPnt       : Integer  from Standard;
33                     Domain      : Domain   from IntRes2d;
34                     Tol         : Real     from Standard) 
35                     
36                     ---Purpose: Compute a polygon on the domain of the curve.
37                     
38                     
39                     returns Polygon2dGen from IntCurve;
40
41     Create         (Curve       : TheCurve;
42                     NbPnt       : Integer  from Standard;
43                     Domain      : Domain   from IntRes2d;
44                     Tol         : Real     from Standard;
45                     OtherBox    : Box2d    from Bnd)
46                     
47                     ---Purpose: Compute a polygon on the domain of the
48                     --          curve.   parameters of  the  begin and
49                     --          end of the curve (and its polygon) are
50                     --          adjusted to lie in the OtherBox.
51                     
52                     returns Polygon2dGen from IntCurve;
53
54
55     ComputeWithBox(me       : in out; 
56                    Curve    : TheCurve;
57                    OtherBox : Box2d  from Bnd)
58                    
59                    ---Purpose: The current polygon is modified if most
60                    --          of the  points of the  polygon  are are
61                    --          outside  the  box  <OtherBox>.  In this
62                    --          situation, bounds are computed to build
63                    --          a polygon inside or near the OtherBox.
64                    is static;
65
66     Bounding       (me)
67                     returns Box2d from Bnd
68                     is static;
69     ---C++: return const &
70     ---C++: inline
71     ---Purpose: Give the bounding box of the polygon.
72
73     DeflectionOverEstimation(me)
74                    returns Real from Standard
75                    ---C++: inline
76                    is static;
77
78     SetDeflectionOverEstimation(me: in out; x:Real from Standard)
79                     ---C++: inline
80                     is static;
81
82     Closed         (me : in out; clos : Boolean from Standard)
83                     ---C++: inline
84                     is static;
85
86     Closed         (me)
87                     returns Boolean from Standard
88                     ---C++: inline                  
89                     is static;
90
91     NbSegments     (me)
92                     returns Integer
93                     ---C++: inline
94                     is static;
95     ---Purpose: Give the number of Segments in the polyline.
96     
97     BeginOfSeg     (me;
98                     Index : in Integer)
99                     returns Pnt2d from gp
100                     raises OutOfRange from Standard
101                     is static;
102     ---Purpose: Give the point of range Index in the Polygon. 
103     ---C++: inline
104     ---C++: return const &
105
106     EndOfSeg       (me;
107                     Index : in Integer)
108                     returns Pnt2d from gp
109                     raises OutOfRange from Standard
110                     is static;
111     ---Purpose: Give the point of range Index in the Polygon. 
112     ---C++: inline
113     ---C++: return const &
114
115 -- Implementation : 
116
117
118    InfParameter(me) 
119    
120         ---Purpose: Returns the parameter (On the curve)
121         --          of the first point of the Polygon
122    
123         returns Real from Standard
124         ---C++: inline
125         is static;
126
127    SupParameter(me) 
128
129         ---Purpose: Returns the parameter (On the curve)
130         --          of the last point of the Polygon
131    
132         returns Real from Standard
133         ---C++: inline
134         is static;
135
136
137    AutoIntersectionIsPossible(me) 
138        returns Boolean from Standard
139        is static;
140
141    ApproxParamOnCurve(me; 
142                       Index       : in  Integer from Standard;
143                       ParamOnLine : in  Real    from Standard)
144                       
145                       returns Real      from Standard
146                      
147                       raises OutOfRange from Standard
148                       is static;
149
150             ---Purpose: Give an approximation of the parameter on the curve 
151             --          according to the discretization of the Curve.
152
153      
154     CalculRegion  (me; 
155                    x  :  Real  from  Standard  ; 
156                    y  :  Real  from  Standard  ;
157                    x1 :  Real  from  Standard  ; 
158                    x2 :  Real  from  Standard  ; 
159                    y1 :  Real  from  Standard  ;
160                    y2 :  Real  from  Standard  ) 
161         returns  Integer  from  Standard  ;        
162         ---C++: inline
163                         
164     Dump           (me)
165         is static;
166
167
168 fields  TheBnd        : Box2d                from Bnd;
169         TheDeflection : Real                 from Standard;
170         NbPntIn       : Integer              from Standard;
171         TheMaxNbPoints: Integer              from Standard;
172         ThePnts       : Array1OfPnt2d        from TColgp;
173         TheParams     : Array1OfReal         from TColStd;
174         TheIndex      : Array1OfInteger      from TColStd;
175         ClosedPolygon : Boolean              from Standard;
176         
177         --- To compute an approximate parameter on the Curve
178         --  
179         Binf          : Real                 from Standard;
180         Bsup          : Real                 from Standard;
181         
182
183 end Polygon2dGen;
184
185
186