7fd59977 |
1 | -- File: AIS.cdl |
2 | -- Created: Wed Dec 11 11:16:37 1996 |
3 | -- Author: Robert COUBLANC |
4 | -- <rob@robox.paris1.matra-dtv.fr> |
5 | ---Copyright: Matra Datavision 1996 |
6 | |
7 | |
8 | package AIS |
9 | |
10 | ---Purpose: Application Interactive Services provide the means to |
11 | -- create links between an application GUI viewer and |
12 | -- the packages which are used to manage selection |
13 | -- and presentation. The tools AIS defined in order to |
14 | -- do this include different sorts of entities: both the |
15 | -- selectable viewable objects themselves and the |
16 | -- context and attribute managers to define their |
17 | -- selection and display. |
18 | -- To orient the user as he works in a modeling |
19 | -- environment, views and selections must be |
20 | -- comprehensible. There must be several different sorts |
21 | -- of selectable and viewable object defined. These must |
22 | -- also be interactive, that is, connecting graphic |
23 | -- representation and the underlying reference |
24 | -- geometry. These entities are called Interactive |
25 | -- Objects, and are divided into four types: |
26 | -- - the Datum |
27 | -- - the Relation |
28 | -- - the Object |
29 | -- - None. |
30 | -- The Datum groups together the construction elements |
31 | -- such as lines, circles, points, trihedra, plane trihedra, |
32 | -- planes and axes. |
33 | -- The Relation is made up of constraints on one or |
34 | -- more interactive shapes and the corresponding |
35 | -- reference geometry. For example, you might want to |
36 | -- constrain two edges in a parallel relation. This |
37 | -- contraint is considered as an object in its own right, |
38 | -- and is shown as a sensitive primitive. This takes the |
39 | -- graphic form of a perpendicular arrow marked with |
40 | -- the || symbol and lying between the two edges. |
41 | -- The Object type includes topological shapes, and |
42 | -- connections between shapes. |
43 | -- None, in order not to eliminate the object, tells the |
44 | -- application to look further until it finds an object |
45 | -- definition in its generation which is accepted. |
46 | -- Inside these categories, you have the possibility |
47 | -- of an additional characterization by means of a |
48 | -- signature. The signature provides an index to the |
49 | -- further characterization. By default, the Interactive |
50 | -- Object has a None type and a signature of 0 |
51 | -- (equivalent to None.) If you want to give a particular |
52 | -- type and signature to your interactive object, you must |
53 | -- redefine the two virtual methods: Type and Signature. |
54 | -- In the C++ inheritance structure of the package, each |
55 | -- class representing a specific Interactive Object |
56 | -- inherits AIS_InteractiveObject. Among these |
57 | -- inheriting classes, AIS_Relation functions as the |
58 | -- abstract mother class for tinheriting classes defining |
59 | -- display of specific relational constraints and types of |
60 | -- dimension. Some of these include: |
61 | -- - display of constraints based on relations of |
62 | -- symmetry, tangency, parallelism and concentricity |
63 | -- - display of dimensions for angles, offsets, |
64 | -- diameters, radii and chamfers. |
65 | -- No viewer can show everything at once with any |
66 | -- coherence or clarity. Views must be managed |
67 | -- carefully both sequentially and at any given instant. |
68 | -- Another function of the view is that of a context to |
69 | -- carry out design in. The design changes are applied |
70 | -- to the objects in the view and then extended to the |
71 | -- underlying reference geometry by a solver. To make |
72 | -- sense of this complicated visual data, several display |
73 | -- and selection tools are required. To facilitate |
74 | -- management, each object and each construction |
75 | -- element has a selection priority. There are also |
76 | -- means to modify the default priority. |
77 | -- To define an environment of dynamic detection, you |
78 | -- can use standard filter classes or create your own. A |
79 | -- filter questions the owner of the sensitive primitive in |
80 | -- local context to determine if it has the the desired |
81 | -- qualities. If it answers positively, it is kept. If not, it is rejected. |
82 | -- The standard filters supplied in AIS include: |
83 | -- AIS_AttributeFilter |
84 | -- AIS_SignatureFilter |
85 | -- AIS_TypeFilter. |
86 | -- Only the type filter can be used in the default |
87 | -- operating mode, the neutral point. The others can |
88 | -- only be used in open local contexts. |
89 | -- Neutral point and local context constitute the two |
90 | -- operating modes of the central entity which pilots |
91 | -- visualizations and selections, the Interactive Context. |
92 | -- It is linked to a main viewer and if you like, a trash bin |
93 | -- viewer as well. |
94 | -- The neutral point, which is the default mode, allows |
95 | -- you to easily visualize and select interactive objects |
96 | -- which have been loaded into the context. Opening |
97 | -- local contexts allows you to prepare and use a |
98 | -- temporary selection environment without disturbing |
99 | -- the neutral point. A set of functions allows you to |
100 | -- choose the interactive objects which you want to act |
101 | -- on, the selection modes which you want to activate, |
102 | -- and the temporary visualizations which you will |
103 | -- execute. When the operation is finished, you close the |
104 | -- current local context and return to the state in which |
105 | -- you were before opening it (neutral point or previous |
106 | -- local context). |
107 | -- An interactive object can have a certain number of |
108 | -- graphic attributes which are specific to it, such as |
109 | -- visualization mode, color, and material. By the same |
110 | -- token, the interactive context has a set of graphic |
111 | -- attributes, the Drawer which is valid by default for the |
112 | -- objects it controls. When an interactive object is |
113 | -- visualized, the required graphic attributes are first |
114 | -- taken from the object's own Drawer if one exists, or |
115 | -- from the context drawer for the others. |
116 | |
117 | |
118 | uses |
119 | TCollection, |
120 | MMgt, |
121 | Quantity, |
122 | TColgp, |
123 | TColStd, |
124 | TopLoc, |
125 | gp, |
126 | Geom, |
127 | Bnd, |
128 | Aspect, |
129 | Graphic2d, |
130 | Graphic3d, |
131 | V3d, |
132 | TopAbs, |
133 | TopoDS, |
134 | Prs3d, |
135 | PrsMgr, |
136 | Select3D, |
137 | SelectMgr, |
138 | StdSelect, |
139 | DsgPrs, |
140 | TopTools, |
141 | Poly |
142 | |
143 | is |
144 | |
145 | |
146 | enumeration DisplayMode is WireFrame, Shaded, QuickHLR, ExactHLR; |
147 | ---Purpose: |
148 | -- Sets display modes other than neutral point ones, |
149 | -- for interactive objects. The possibilities include: |
150 | -- - wireframe, |
151 | -- - shaded, |
152 | |
153 | enumeration ConnectStatus is |
154 | CS_None, |
155 | CS_Connection, |
156 | CS_Transform, |
157 | CS_Both; |
158 | ---Purpose: Gives the status of connection of an Interactive |
159 | -- Object. This will be one of the following: |
160 | -- - No connection |
161 | -- - Connection |
162 | -- - Transformation |
163 | -- - Both connection and transformation |
164 | -- This enumeration is used in |
165 | -- AIS_ConnectedInteractive. Transform indicates |
166 | -- that the Interactive Object reference geometry has |
167 | -- changed location relative to the reference geometry. |
168 | |
169 | enumeration TypeOfIso is |
170 | TOI_IsoU, |
171 | TOI_IsoV, |
172 | TOI_Both; |
173 | ---Purpose: Declares the type of isoparameter displayed. |
174 | |
175 | enumeration DisplayStatus is |
176 | DS_Displayed, |
177 | DS_Erased, |
178 | DS_FullErased, |
179 | DS_Temporary, |
180 | DS_None; |
181 | ---Purpose: |
182 | -- To give the display status of an Interactive Object. |
183 | -- This will be one of the following: |
184 | -- - DS_Displayed: the Interactive Object is |
185 | -- displayed in the main viewer; |
186 | -- - DS_Erased: the Interactive Object is erased in the collector; |
187 | -- - DS_FullErased: the Interactive Object is erased |
188 | -- but not in the collector; |
189 | -- - DS_Temporary: the Interactive Object is temporarily displayed; |
190 | -- - DS_None: the Interactive Object is nowhere displayed. |
191 | |
192 | enumeration SelectStatus is |
193 | SS_Added, |
194 | SS_Removed, |
195 | SS_NotDone |
196 | end SelectStatus; |
197 | |
198 | enumeration StatusOfPick is |
199 | SOP_Error, |
200 | SOP_NothingSelected, |
201 | SOP_Removed, |
202 | SOP_OneSelected, |
203 | SOP_SeveralSelected |
204 | end StatusOfPick; |
205 | |
206 | enumeration StatusOfDetection is |
207 | SOD_Error, |
208 | SOD_Nothing, |
209 | SOD_AllBad, |
210 | SOD_Selected, |
211 | SOD_OnlyOneDetected, |
212 | SOD_OnlyOneGood, |
213 | SOD_SeveralGood |
214 | end StatusOfDetection; |
215 | |
216 | enumeration KindOfDimension is |
217 | KOD_NONE, |
218 | KOD_LENGTH, |
219 | KOD_PLANEANGLE, |
220 | KOD_SOLIDANGLE, |
221 | KOD_AREA, |
222 | KOD_VOLUME, |
223 | KOD_MASS, |
224 | KOD_TIME, |
225 | KOD_RADIUS, |
226 | KOD_DIAMETER, |
227 | KOD_CHAMF2D, |
228 | KOD_CHAMF3D, |
229 | KOD_OFFSET, |
230 | KOD_ELLIPSERADIUS; |
231 | ---Purpose: Declares the kinds of dimensions needed in the |
232 | -- display of Interactive Objects. |
233 | |
234 | enumeration KindOfInteractive is |
235 | KOI_None, |
236 | KOI_Datum, |
237 | KOI_Shape, |
238 | KOI_Object, |
239 | KOI_Relation; |
240 | --- Purpose: Declares the type of Interactive Object. |
241 | -- This is one of the following: |
242 | -- - the Datum |
243 | -- - the Object |
244 | -- - the Relation |
245 | -- - the None type. |
246 | -- The Datum is the construction element. These include |
247 | -- points, lines, axes and planes. The object brings |
248 | -- together topological shapes. The Relation includes |
249 | -- dimensions and constraints. When the object is of an |
250 | -- unknown type, the None type is declared. |
251 | |
252 | enumeration ClearMode is |
253 | CM_All, |
254 | CM_Interactive, |
255 | CM_Filters, |
256 | CM_StandardModes, |
257 | CM_TemporaryShapePrs |
258 | end ClearMode; |
259 | ---Purpose: Declares which entities in an opened local context |
260 | -- are to be cleared of mode settings. Temporary |
261 | -- graphic presentations such as those for sub-shapes, |
262 | -- for example, are only created for the selection |
263 | -- process. By means of these enumerations, they can |
264 | -- be cleared from local context. |
265 | |
266 | enumeration KindOfUnit is |
267 | TOU_LENGTH, |
268 | TOU_SURFACE, |
269 | TOU_VOLUME, |
270 | TOU_PLANE_ANGLE, |
271 | TOU_SOLID_ANGLE, |
272 | TOU_MASS, |
273 | TOU_FORCE, |
274 | TOU_TIME; |
275 | ---Purpose: Declares the type of Interactive Object unit. |
276 | |
277 | enumeration TypeOfAxis is TOAX_Unknown,TOAX_XAxis,TOAX_YAxis,TOAX_ZAxis; |
278 | ---Purpose: Declares the type of axis. |
279 | |
280 | enumeration TypeOfPlane is TOPL_Unknown,TOPL_XYPlane,TOPL_XZPlane,TOPL_YZPlane; |
281 | ---Purpose: Declares the type of plane. |
282 | enumeration TypeOfDist is TOD_Unknown,TOD_Horizontal,TOD_Vertical; |
283 | ---Purpose: To declare the type of distance. |
284 | |
285 | enumeration TypeOfAttribute is |
286 | TOA_Line, |
287 | TOA_Angle, |
288 | TOA_Wire, |
289 | TOA_Plane, |
290 | TOA_Vector, |
291 | TOA_UIso, |
292 | TOA_VIso, |
293 | TOA_Free, |
294 | TOA_UnFree, |
295 | TOA_Section, |
296 | TOA_Hidden, |
297 | TOA_Seen, |
298 | TOA_FirstAxis, |
299 | TOA_SecondAxis, |
300 | TOA_ThirdAxis; |
301 | |
302 | enumeration StandardDatum is SD_None,SD_Point,SD_Axis,SD_Trihedron,SD_PlaneTrihedron,SD_Line,SD_Circle,SD_Plane; |
303 | --- Purpose: Declares the type of standard datum of an Interactive Object. |
304 | |
305 | -- New ------------------------------------------------ |
306 | |
307 | enumeration KindOfSurface is KOS_Plane, KOS_Cylinder, KOS_Cone, KOS_Sphere, KOS_Torus, |
308 | KOS_Revolution, KOS_Extrusion, KOS_OtherSurface; |
309 | ------------------------------------------------------- |
310 | |
311 | class Triangulation; |
312 | |
313 | class TexturedShape; |
314 | |
315 | class Drawer; |
316 | |
317 | class InteractiveContext; |
318 | |
319 | class GraphicTool; |
320 | |
1bd2fa67 |
321 | class LocalContext; |
7fd59977 |
322 | |
323 | private class LocalStatus; |
324 | |
325 | private class GlobalStatus; |
326 | |
327 | deferred class InteractiveObject; |
328 | |
329 | ---Category: VARIOUS STANDARD INTERACTIVE OBJECTS |
330 | -- each type of Datum has a given signature. |
331 | -- the other interactive objects don't |
332 | -- implement this signature. |
333 | -- Mainly used for selection with Filters... |
334 | |
335 | ---Category: Datum |
336 | class Point; --signature 1 |
337 | class Axis; --signature 2 |
338 | class Trihedron; --signature 3 |
339 | class PlaneTrihedron; --signature 4 |
340 | class Line; --signature 5 |
341 | class Circle; --signature 6 |
342 | class Plane; --signature 7 |
343 | |
344 | |
345 | ---Category: Object of type Shape |
346 | class Shape; --signature 0 |
347 | class ConnectedShape; --signature 1 |
348 | class MultipleConnectedShape; --signature 2 |
349 | |
350 | |
351 | |
352 | ---Category: General Objects |
353 | class ConnectedInteractive; --signature 0 |
354 | class MultipleConnectedInteractive; --signature 1 |
355 | |
356 | ---Category: DIMENSIONS AND RELATIONS |
357 | |
358 | class DimensionOwner; |
359 | |
360 | deferred class Relation; |
361 | deferred class EllipseRadiusDimension; |
362 | class MaxRadiusDimension; |
363 | class MinRadiusDimension; |
364 | class LengthDimension; |
365 | class AngleDimension; |
366 | class RadiusDimension; |
367 | class DiameterDimension; |
368 | class Chamf2dDimension; |
369 | class Chamf3dDimension; |
370 | class OffsetDimension; |
371 | class FixRelation; |
372 | class PerpendicularRelation; |
373 | class ParallelRelation; |
374 | class TangentRelation; |
375 | class ConcentricRelation; |
376 | class IdenticRelation; |
377 | class SymmetricRelation; -- axial symmetry |
378 | class MidPointRelation; -- equal distance from point |
379 | class EqualRadiusRelation; |
380 | class EqualDistanceRelation; |
381 | |
382 | |
383 | ---Category: FILTERS |
384 | |
385 | |
386 | class TypeFilter; |
387 | class SignatureFilter; |
388 | class ExclusionFilter; |
389 | class AttributeFilter; |
390 | class C0RegularityFilter; |
391 | class BadEdgeFilter; |
392 | |
393 | pointer PToContext to InteractiveContext from AIS; |
394 | |
395 | |
396 | |
397 | |
398 | class Selection; |
399 | |
400 | |
401 | ---Category: The Collections |
402 | |
403 | |
404 | class ListOfInteractive instantiates List from TCollection |
405 | (InteractiveObject from AIS); |
406 | |
407 | class SequenceOfInteractive instantiates Sequence from TCollection |
408 | (InteractiveObject from AIS); |
409 | |
410 | class SequenceOfDimension instantiates Sequence from TCollection |
411 | (Relation from AIS); |
412 | |
413 | class MapOfInteractive instantiates Map from TCollection |
414 | (InteractiveObject from AIS,MapTransientHasher from TColStd); |
415 | |
416 | |
417 | class DataMapofIntegerListOfinteractive instantiates DataMap from |
418 | TCollection(Integer from Standard, ListOfInteractive from AIS,MapIntegerHasher from TColStd); |
419 | -- for further management of layers |
420 | |
421 | private class DataMapOfIOStatus instantiates DataMap from |
422 | TCollection(InteractiveObject from AIS,GlobalStatus from AIS,MapTransientHasher from TColStd); |
423 | -- Management of interactiveObjects Status... |
424 | |
425 | class IndexedDataMapOfOwnerPrs instantiates IndexedDataMap from TCollection |
426 | (EntityOwner from SelectMgr,Presentation from Prs3d ,MapTransientHasher from TColStd); |
427 | -- for dynamic selection management in local context... |
428 | |
429 | -- san: 18/04/2003 AIS_Selection class optimization |
430 | -- agv: 04/05/2003 Replace NCollection_List for CDL list |
431 | imported NListTransient; |
432 | imported NListIteratorOfListTransient; |
433 | imported NDataMapOfTransientIteratorOfListTransient; |
434 | -- service map for AIS_Selection class optimized logic |
435 | |
436 | private class DataMapOfILC instantiates DataMap from TCollection |
437 | (Integer from Standard, LocalContext from AIS, MapIntegerHasher from TColStd); |
438 | |
439 | private class DataMapOfSelStat instantiates DataMap from TCollection |
440 | (SelectableObject from SelectMgr,LocalStatus from AIS,MapTransientHasher from TColStd); |
441 | -- to tell if an object is sensitive to Standard Modes Of Selection.... |
442 | |
443 | -- Methods for dimensions |
444 | |
445 | Nearest( aShape : Shape from TopoDS; |
446 | aPoint : Pnt from gp ) |
447 | returns Pnt from gp; |
448 | ---Purpose: |
449 | -- Returns the nearest point in a shape. This is used by |
450 | -- several classes in calculation of dimensions. |
451 | |
452 | Farest( aShape : Shape from TopoDS; |
453 | aPoint : Pnt from gp ) |
454 | returns Pnt from gp; |
455 | |
456 | ComputeGeometry(anEdge : Edge from TopoDS; |
457 | aCurve : out Curve from Geom; |
458 | FirstPnt : out Pnt from gp; |
459 | LastPnt : out Pnt from gp) |
460 | ---Purpose: Used by 2d Relation only |
461 | -- Computes the 3d geometry of <anEdge> in the current WorkingPlane |
462 | -- and the extremities if any |
463 | -- Return TRUE if ok |
464 | returns Boolean from Standard; |
465 | |
466 | ComputeGeometry(anEdge : Edge from TopoDS; |
467 | aCurve : out Curve from Geom; |
468 | FirstPnt : out Pnt from gp; |
469 | LastPnt : out Pnt from gp; |
470 | extCurve : out Curve from Geom; |
471 | isinfinite: out Boolean from Standard; |
472 | isOnPlane : out Boolean from Standard; |
473 | aPlane : Plane from Geom) |
474 | ---Purpose: Used by 2d Relation only |
475 | -- Computes the 3d geometry of <anEdge> in the current WorkingPlane |
476 | -- and the extremities if any. |
477 | -- If <aCurve> is not in the current plane, <extCurve> contains |
478 | -- the not projected curve associated to <anEdge>. |
479 | -- If <anEdge> is infinite, <isinfinite> = true and the 2 |
480 | -- parameters <FirstPnt> and <LastPnt> have no signification. |
481 | -- Return TRUE if ok |
482 | returns Boolean from Standard; |
483 | |
484 | ComputeGeometry (anEdge1 : Edge from TopoDS; |
485 | anEdge2 : Edge from TopoDS; |
486 | aCurve1 : out Curve from Geom; |
487 | aCurve2 : out Curve from Geom; |
488 | FirstPnt1 : out Pnt from gp; |
489 | LastPnt1 : out Pnt from gp; |
490 | FirstPnt2 : out Pnt from gp; |
491 | LastPnt2 : out Pnt from gp; |
492 | aPlane : Plane from Geom) |
493 | ---Purpose: Used by 2d Relation only |
494 | -- Computes the 3d geometry of <anEdge> in the current WorkingPlane |
495 | -- and the extremities if any |
496 | -- Return TRUE if ok |
497 | returns Boolean from Standard; |
498 | |
499 | |
500 | ComputeGeometry (anEdge1 : Edge from TopoDS; |
501 | anEdge2 : Edge from TopoDS; |
502 | indexExt : out Integer from Standard; |
503 | aCurve1 : out Curve from Geom; |
504 | aCurve2 : out Curve from Geom; |
505 | FirstPnt1 : out Pnt from gp; |
506 | LastPnt1 : out Pnt from gp; |
507 | FirstPnt2 : out Pnt from gp; |
508 | LastPnt2 : out Pnt from gp; |
509 | ExtCurve : out Curve from Geom; |
510 | isinfinite1 : out Boolean from Standard; |
511 | isinfinite2 : out Boolean from Standard; |
512 | aPlane : Plane from Geom) |
513 | |
514 | ---Purpose: Used by 2d Relation only Computes the 3d geometry |
515 | -- of<anEdge1> and <anEdge2> in the current Plane and the |
516 | -- extremities if any. Return in ExtCurve the 3d curve |
517 | -- (not projected in the plane) of the first edge if |
518 | -- <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If |
519 | -- <indexExt> = 0, ExtCurve is Null. if there is an edge |
520 | -- external to the plane, <isinfinite> is true if this |
521 | -- edge is infinite. So, the extremities of it are not |
522 | -- significant. Return TRUE if ok |
523 | returns Boolean from Standard; |
524 | |
525 | ComputeGeomCurve (aCurve : in out Curve from Geom; |
526 | first1 : Real from Standard; |
527 | last1 : Real from Standard; |
528 | FirstPnt1 : out Pnt from gp; |
529 | LastPnt1 : out Pnt from gp; |
530 | aPlane : Plane from Geom; |
531 | isOnPlane: out Boolean from Standard) |
532 | |
533 | ---Purpose: Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane |
534 | -- and returns aCurve; |
535 | -- Return TRUE if ok |
536 | returns Boolean from Standard; |
537 | |
538 | ComputeGeometry(aVertex : Vertex from TopoDS; |
539 | point : out Pnt from gp; |
540 | aPlane : Plane from Geom; |
541 | isOnPlane: out Boolean from Standard) |
542 | returns Boolean from Standard; |
543 | |
544 | |
545 | GetPlaneFromFace( aFace : Face from TopoDS; |
546 | aPlane : out Pln from gp; |
547 | aSurf : out Surface from Geom; |
548 | aSurfType : out KindOfSurface from AIS; |
549 | Offset : out Real from Standard ) |
550 | returns Boolean from Standard; |
551 | ---Purpose: Tryes to get Plane from Face. Returns Surface of Face |
552 | -- in aSurf. Returns Standard_True and Plane of Face in |
553 | -- aPlane in following cases: |
554 | -- Face is Plane, Offset of Plane, |
555 | -- Extrusion of Line and Offset of Extrusion of Line |
556 | -- Returns pure type of Surface which can be: |
557 | -- Plane, Cylinder, Cone, Sphere, Torus, |
558 | -- SurfaceOfRevolution, SurfaceOfExtrusion |
559 | |
560 | InitFaceLength( aFace : Face from TopoDS; |
561 | aPlane : out Pln from gp; |
562 | aSurface : out Surface from Geom; |
563 | aSurfaceType : out KindOfSurface from AIS; |
564 | anOffset : out Real from Standard ); |
565 | |
566 | ComputeLengthBetweenPlanarFaces( FirstFace : Face from TopoDS; |
567 | SecondFace : Face from TopoDS; |
568 | Plane1 : Pln from gp; |
569 | Plane2 : Pln from gp; |
570 | Value : out Real from Standard; |
571 | FirstAttach : out Pnt from gp ; |
572 | SecondAttach : out Pnt from gp ; |
573 | DirAttach : out Dir from gp ; |
574 | AutomaticPos : Boolean from Standard; |
575 | Position : in out Pnt from gp); |
576 | |
577 | ComputeLengthBetweenCurvilinearFaces( FirstFace : Face from TopoDS; |
578 | SecondFace : Face from TopoDS; |
579 | FirstSurf : in out Surface from Geom; |
580 | SecondSurf : in out Surface from Geom; |
581 | AutomaticPos : Boolean from Standard; |
582 | Value : out Real from Standard; |
583 | Position : out Pnt from gp; |
584 | FirstAttach : out Pnt from gp; |
585 | SecondAttach : out Pnt from gp; |
586 | DirAttach : out Dir from gp ); |
587 | |
588 | ComputeAngleBetweenPlanarFaces( FirstFace : Face from TopoDS; |
589 | SecondFace : Face from TopoDS; |
590 | Surf2 : Surface from Geom; |
591 | Axis : Ax1 from gp; |
592 | Value : Real from Standard; |
593 | AutomaticPos : Boolean from Standard; |
594 | Position : out Pnt from gp; |
595 | Center : out Pnt from gp; |
596 | FirstAttach : out Pnt from gp; |
597 | SecondAttach : out Pnt from gp; |
598 | FirstDir : out Dir from gp; |
599 | SecondDir : out Dir from gp); |
600 | ---Purpose: Computes geometric parameters for planar faces for |
601 | -- Angular dimensions |
602 | |
603 | ComputeAngleBetweenCurvilinearFaces( FirstFace : Face from TopoDS; |
604 | SecondFace : Face from TopoDS; |
605 | FirstSurf : Surface from Geom; |
606 | SecondSurf : Surface from Geom; |
607 | FirstSurfType : KindOfSurface from AIS; |
608 | SecondSurfType : KindOfSurface from AIS; |
609 | Axis : Ax1 from gp; |
610 | Value : Real from Standard; |
611 | AutomaticPos : Boolean from Standard; |
612 | Position : out Pnt from gp; |
613 | Center : out Pnt from gp; |
614 | FirstAttach : out Pnt from gp; |
615 | SecondAttach : out Pnt from gp; |
616 | FirstDir : out Dir from gp; |
617 | SecondDir : out Dir from gp; |
618 | Plane : out Plane from Geom ); |
619 | ---Purpose: Computes geometric parameters for curvilinear faces for |
620 | -- Angular dimensions |
621 | |
622 | ProjectPointOnPlane( aPoint : Pnt from gp; aPlane : Pln from gp ) |
623 | returns Pnt from gp; |
624 | |
625 | ProjectPointOnLine( aPoint : Pnt from gp; aLine : Lin from gp ) |
626 | returns Pnt from gp; |
627 | |
628 | TranslatePointToBound( aPoint : Pnt from gp; aDir : Dir from gp; aBndBox: Box from Bnd ) |
629 | returns Pnt from gp; |
630 | |
631 | InDomain( aFirstPar : Real from Standard; |
632 | aLastPar : Real from Standard; |
633 | anAttachPar : Real from Standard) |
634 | returns Boolean from Standard; |
635 | ---Purpose: returns True if point with anAttachPar is |
636 | -- in domain of arc |
637 | |
638 | NearestApex(elips : Elips from gp; |
639 | pApex : Pnt from gp; |
640 | nApex : Pnt from gp; |
641 | fpara : Real from Standard ; |
642 | lpara : Real from Standard ; |
643 | IsInDomain : out Boolean from Standard) |
644 | returns Pnt from gp; |
645 | ---Purpose: computes nearest to ellipse arc apex |
646 | |
647 | DistanceFromApex(elips : Elips from gp; |
648 | Apex : Pnt from gp; |
649 | par : Real from Standard ) |
650 | returns Real from Standard; |
651 | ---Purpose: computes length of ellipse arc in parametric units |
652 | |
653 | |
654 | ComputeProjEdgePresentation(aPres : mutable Presentation from Prs3d; |
655 | aDrawer : mutable Drawer from AIS; |
656 | anEdge : Edge from TopoDS; |
657 | ProjCurve: Curve from Geom; |
658 | FirstP : Pnt from gp; |
659 | LastP : Pnt from gp; |
660 | aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; |
661 | aWidth : Real from Standard = 2; |
662 | aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH; |
663 | aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT); |
664 | |
665 | ComputeProjVertexPresentation(aPres : mutable Presentation from Prs3d; |
666 | aDrawer : mutable Drawer from AIS; |
667 | aVertex : Vertex from TopoDS; |
668 | ProjPoint: Pnt from gp; |
669 | aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; |
670 | aWidth : Real from Standard = 2; |
671 | aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS; |
672 | aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT); |
673 | |
674 | end AIS; |