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