b311480e |
1 | -- Created on: 1994-03-24 |
2 | -- Created by: model |
3 | -- Copyright (c) 1994-1999 Matra Datavision |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS |
5 | -- |
6 | -- The content of this file is subject to the Open CASCADE Technology Public |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file |
8 | -- except in compliance with the License. Please obtain a copy of the License |
9 | -- at http://www.opencascade.org and read it completely before using this file. |
10 | -- |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
13 | -- |
14 | -- The Original Code and all software distributed under the License is |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the |
16 | -- Initial Developer hereby disclaims all such warranties, including without |
17 | -- limitation, any warranties of merchantability, fitness for a particular |
18 | -- purpose or non-infringement. Please see the License for the specific terms |
19 | -- and conditions governing the rights and limitations under the License. |
20 | |
7fd59977 |
21 | |
22 | |
23 | class TopolTool from Adaptor3d |
24 | |
25 | ---Purpose: This class provides a default topological tool, |
26 | -- based on the Umin,Vmin,Umax,Vmax of an HSurface |
27 | -- from Adaptor3d. |
28 | -- All methods and fields may be redefined when |
29 | -- inheriting from this class. |
30 | -- This class is used to instantiate algorithmes |
31 | -- as Intersection, outlines,... |
32 | |
33 | |
34 | inherits TShared from MMgt |
35 | |
36 | uses HSurface from Adaptor3d, |
37 | HCurve2d from Adaptor2d, |
38 | HVertex from Adaptor3d, |
39 | HLine2d from Adaptor2d, |
40 | Pnt2d from gp, |
41 | Pnt from gp, |
42 | State from TopAbs, |
43 | Orientation from TopAbs, |
44 | HArray1OfReal from TColStd, |
45 | Array1OfReal from TColStd |
46 | |
47 | raises DomainError from Standard |
48 | |
49 | is |
50 | |
51 | Create |
52 | |
53 | returns mutable TopolTool from Adaptor3d; |
54 | |
55 | |
56 | Create(Surface: HSurface from Adaptor3d) |
57 | |
58 | returns mutable TopolTool from Adaptor3d; |
59 | |
60 | |
61 | Initialize(me: mutable) |
62 | is virtual; |
63 | |
64 | Initialize(me: mutable; S: HSurface from Adaptor3d) |
65 | is virtual; |
66 | |
67 | |
68 | Initialize(me: mutable; Curve: HCurve2d from Adaptor2d) |
69 | is virtual; |
70 | |
71 | |
72 | |
73 | --- Arc iterator |
74 | |
75 | |
76 | Init(me: mutable) |
77 | is virtual; |
78 | |
79 | |
80 | More(me: mutable) |
81 | |
82 | returns Boolean from Standard |
83 | is virtual; |
84 | |
85 | |
86 | Value(me: mutable) |
87 | |
88 | returns mutable HCurve2d from Adaptor2d |
89 | raises DomainError from Standard |
90 | is virtual; |
91 | |
92 | |
93 | Next(me: mutable) |
94 | is virtual; |
95 | |
96 | |
97 | --- Vertex iterator |
98 | |
99 | |
100 | InitVertexIterator(me: mutable) |
101 | is virtual; |
102 | |
103 | |
104 | MoreVertex(me: mutable) |
105 | |
106 | returns Boolean from Standard |
107 | is virtual; |
108 | |
109 | |
110 | Vertex(me: mutable) |
111 | |
112 | returns mutable HVertex from Adaptor3d |
113 | raises DomainError from Standard |
114 | is virtual; |
115 | |
116 | |
117 | NextVertex(me: mutable) |
118 | is virtual; |
119 | |
120 | |
121 | --- Other methods |
122 | |
123 | Classify(me: mutable; |
124 | P: Pnt2d from gp; |
125 | Tol: Real from Standard; |
126 | ReacdreOnPeriodic: Boolean from Standard = Standard_True) |
127 | |
128 | returns State from TopAbs |
129 | is virtual; |
130 | |
131 | IsThePointOn(me: mutable; |
132 | P: Pnt2d from gp; |
133 | Tol: Real from Standard; |
134 | ReacdreOnPeriodic: Boolean from Standard = Standard_True) |
135 | |
136 | returns Boolean from Standard |
137 | is virtual; |
138 | |
139 | |
140 | Orientation(me: mutable; C: HCurve2d from Adaptor2d) |
141 | |
142 | ---Purpose: If the function returns the orientation of the arc. |
143 | -- If the orientation is FORWARD or REVERSED, the arc is |
144 | -- a "real" limit of the surface. |
145 | -- If the orientation is INTERNAL or EXTERNAL, the arc is |
146 | -- considered as an arc on the surface. |
147 | |
148 | returns Orientation from TopAbs |
149 | is virtual; |
150 | |
151 | |
152 | Orientation(me: mutable; V: HVertex from Adaptor3d) |
153 | |
154 | ---Purpose: Returns the orientation of the vertex V. |
155 | -- The vertex has been found with an exploration on |
156 | -- a given arc. The orientation is the orientation |
157 | -- of the vertex on this arc. |
158 | |
159 | returns Orientation from TopAbs |
160 | is virtual; |
161 | |
162 | |
163 | Identical(me: mutable; V1,V2: HVertex from Adaptor3d) |
164 | |
165 | ---Purpose: Returns True if the vertices V1 and V2 are identical. |
166 | -- This method does not take the orientation of the |
167 | -- vertices in account. |
168 | |
169 | returns Boolean from Standard |
170 | is virtual; |
171 | |
172 | |
173 | Has3d(me) |
174 | ---Purpose: answers if arcs and vertices may have 3d representations, |
175 | -- so that we could use Tol3d and Pnt methods. |
176 | returns Boolean from Standard |
177 | is virtual; |
178 | |
179 | |
180 | Tol3d(me; C: HCurve2d from Adaptor2d) |
181 | ---Purpose: returns 3d tolerance of the arc C |
182 | returns Real from Standard |
183 | raises DomainError from Standard |
184 | is virtual; |
185 | |
186 | |
187 | Tol3d(me; V: HVertex from Adaptor3d) |
188 | ---Purpose: returns 3d tolerance of the vertex V |
189 | returns Real from Standard |
190 | raises DomainError from Standard |
191 | is virtual; |
192 | |
193 | |
194 | Pnt(me; V: HVertex from Adaptor3d) |
195 | ---Purpose: returns 3d point of the vertex V |
196 | returns Pnt from gp |
197 | raises DomainError from Standard |
198 | is virtual; |
199 | |
200 | |
201 | --- sample points tools |
202 | |
203 | ComputeSamplePoints(me: mutable) |
204 | is virtual; |
205 | |
206 | |
207 | NbSamplesU(me: mutable) |
208 | ---Purpose: compute the sample-points for the intersections algorithms |
209 | returns Integer from Standard |
210 | is virtual; |
211 | |
212 | NbSamplesV(me: mutable) |
213 | ---Purpose: compute the sample-points for the intersections algorithms |
214 | returns Integer from Standard |
215 | is virtual; |
216 | |
217 | NbSamples(me: mutable) |
218 | ---Purpose: compute the sample-points for the intersections algorithms |
219 | returns Integer from Standard |
220 | is virtual; |
221 | |
222 | UParameters(me; theArray: out Array1OfReal from TColStd); |
223 | ---Purpose: return the set of U parameters on the surface |
224 | -- obtained by the method SamplePnts |
225 | |
226 | VParameters(me; theArray: out Array1OfReal from TColStd); |
227 | ---Purpose: return the set of V parameters on the surface |
228 | -- obtained by the method SamplePnts |
229 | |
230 | SamplePoint(me: mutable; Index: Integer from Standard; |
231 | P2d : out Pnt2d from gp; |
232 | P3d : out Pnt from gp) |
233 | is virtual; |
234 | |
235 | DomainIsInfinite(me: mutable) |
236 | returns Boolean from Standard |
237 | is virtual; |
238 | |
239 | --modified by NIZNHY-PKV Mon Apr 23 15:54:51 2001 f |
240 | Edge (me) |
241 | returns Address from Standard |
242 | is virtual; |
243 | --modified by NIZNHY-PKV Mon Apr 23 15:54:46 2001 t |
244 | |
245 | --modified by NIZNHY-IFV Mon Sep 16 16:01:38 2005 f |
246 | |
247 | SamplePnts(me: mutable; theDefl: Real from Standard; theNUmin, theNVmin: Integer from Standard) |
248 | ---Purpose: compute the sample-points for the intersections algorithms |
249 | -- by adaptive algorithm for BSpline surfaces. For other surfaces algorithm |
250 | -- is the same as in method ComputeSamplePoints(), but only fill arrays of U |
251 | -- and V sample parameters; |
252 | -- theDefl is a requred deflection |
253 | -- theNUmin, theNVmin are minimal nb points for U and V. |
254 | is virtual; |
255 | |
256 | BSplSamplePnts(me: mutable; theDefl: Real from Standard; theNUmin, theNVmin: Integer from Standard) |
257 | ---Purpose: compute the sample-points for the intersections algorithms |
258 | -- by adaptive algorithm for BSpline surfaces - is used in SamplePnts |
259 | -- theDefl is a requred deflection |
260 | -- theNUmin, theNVmin are minimal nb points for U and V. |
261 | is virtual; |
262 | |
263 | IsUniformSampling(me) |
264 | ---Purpose: Returns true if provide uniform sampling of points. |
265 | returns Boolean from Standard |
266 | is virtual; |
267 | |
268 | fields |
269 | |
270 | nbRestr : Integer from Standard; |
271 | idRestr : Integer from Standard; |
272 | Uinf : Real from Standard; |
273 | Usup : Real from Standard; |
274 | Vinf : Real from Standard; |
275 | Vsup : Real from Standard; |
276 | myRestr : HLine2d from Adaptor2d [4]; |
277 | nbVtx : Integer from Standard; |
278 | idVtx : Integer from Standard; |
279 | myVtx : HVertex from Adaptor3d [2]; |
280 | |
281 | myS : HSurface from Adaptor3d is protected; |
282 | myNbSamplesU : Integer from Standard is protected; |
283 | myNbSamplesV : Integer from Standard is protected; |
284 | |
285 | myUPars : HArray1OfReal from TColStd is protected; |
286 | myVPars : HArray1OfReal from TColStd is protected; |
287 | |
288 | end TopolTool; |