0025773: Visualization - remove AIS_Drawer class and transfer its Link() logic to...
[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,
f376ac72 149 Poly,
150 Image
7fd59977 151
152is
153
154
0a768f56 155 enumeration DisplayMode is WireFrame, Shaded;
7fd59977 156 ---Purpose:
157 -- Sets display modes other than neutral point ones,
158 -- for interactive objects. The possibilities include:
159 -- - wireframe,
160 -- - shaded,
161
162 enumeration ConnectStatus is
163 CS_None,
164 CS_Connection,
165 CS_Transform,
166 CS_Both;
167 ---Purpose: Gives the status of connection of an Interactive
168 -- Object. This will be one of the following:
169 -- - No connection
170 -- - Connection
171 -- - Transformation
172 -- - Both connection and transformation
173 -- This enumeration is used in
174 -- AIS_ConnectedInteractive. Transform indicates
175 -- that the Interactive Object reference geometry has
176 -- changed location relative to the reference geometry.
177
178 enumeration TypeOfIso is
179 TOI_IsoU,
180 TOI_IsoV,
181 TOI_Both;
182 ---Purpose: Declares the type of isoparameter displayed.
183
184 enumeration DisplayStatus is
185 DS_Displayed,
186 DS_Erased,
7fd59977 187 DS_Temporary,
188 DS_None;
189 ---Purpose:
190 -- To give the display status of an Interactive Object.
191 -- This will be one of the following:
192 -- - DS_Displayed: the Interactive Object is
193 -- displayed in the main viewer;
ed8cad74 194 -- - DS_Erased: the Interactive Object is hidden in main viewer;
7fd59977 195 -- - DS_Temporary: the Interactive Object is temporarily displayed;
196 -- - DS_None: the Interactive Object is nowhere displayed.
197
198 enumeration SelectStatus is
199 SS_Added,
200 SS_Removed,
201 SS_NotDone
202 end SelectStatus;
203
204 enumeration StatusOfPick is
205 SOP_Error,
206 SOP_NothingSelected,
207 SOP_Removed,
208 SOP_OneSelected,
209 SOP_SeveralSelected
210 end StatusOfPick;
211
212 enumeration StatusOfDetection is
213 SOD_Error,
214 SOD_Nothing,
215 SOD_AllBad,
216 SOD_Selected,
217 SOD_OnlyOneDetected,
218 SOD_OnlyOneGood,
219 SOD_SeveralGood
220 end StatusOfDetection;
221
222 enumeration KindOfDimension is
223 KOD_NONE,
224 KOD_LENGTH,
225 KOD_PLANEANGLE,
226 KOD_SOLIDANGLE,
227 KOD_AREA,
228 KOD_VOLUME,
229 KOD_MASS,
230 KOD_TIME,
231 KOD_RADIUS,
232 KOD_DIAMETER,
233 KOD_CHAMF2D,
234 KOD_CHAMF3D,
235 KOD_OFFSET,
236 KOD_ELLIPSERADIUS;
237 ---Purpose: Declares the kinds of dimensions needed in the
238 -- display of Interactive Objects.
239
240 enumeration KindOfInteractive is
241 KOI_None,
242 KOI_Datum,
243 KOI_Shape,
244 KOI_Object,
af203d54 245 KOI_Relation,
246 KOI_Dimension;
247 --- Purpose: Declares the type of Interactive Object.
248 -- This is one of the following:
249 -- - the Datum
250 -- - the Object
251 -- - the Relation
252 -- - the Dimension
253 -- - the None type.
254 -- The Datum is the construction element. These include
255 -- points, lines, axes and planes. The object brings
256 -- together topological shapes. The Relation includes
257 -- dimensions and constraints. The Dimension includes
258 -- length, radius, diameter and angle dimensions.
259 -- When the object is of an unknown type, the None
260 -- type is declared.
261
7fd59977 262 enumeration ClearMode is
263 CM_All,
264 CM_Interactive,
265 CM_Filters,
266 CM_StandardModes,
267 CM_TemporaryShapePrs
268 end ClearMode;
269 ---Purpose: Declares which entities in an opened local context
270 -- are to be cleared of mode settings. Temporary
271 -- graphic presentations such as those for sub-shapes,
272 -- for example, are only created for the selection
273 -- process. By means of these enumerations, they can
274 -- be cleared from local context.
a6eb515f 275
7fd59977 276 enumeration KindOfUnit is
277 TOU_LENGTH,
278 TOU_SURFACE,
279 TOU_VOLUME,
280 TOU_PLANE_ANGLE,
281 TOU_SOLID_ANGLE,
282 TOU_MASS,
283 TOU_FORCE,
284 TOU_TIME;
a6eb515f 285 ---Purpose: Declares the type of Interactive Object unit.
286
7fd59977 287 enumeration TypeOfAxis is TOAX_Unknown,TOAX_XAxis,TOAX_YAxis,TOAX_ZAxis;
a6eb515f 288 ---Purpose: Declares the type of axis.
289
7fd59977 290 enumeration TypeOfPlane is TOPL_Unknown,TOPL_XYPlane,TOPL_XZPlane,TOPL_YZPlane;
a6eb515f 291 ---Purpose: Declares the type of plane.
7fd59977 292 enumeration TypeOfDist is TOD_Unknown,TOD_Horizontal,TOD_Vertical;
a6eb515f 293 ---Purpose: To declare the type of distance.
294
7fd59977 295 enumeration TypeOfAttribute is
296 TOA_Line,
a6eb515f 297 TOA_Dimension,
7fd59977 298 TOA_Wire,
299 TOA_Plane,
300 TOA_Vector,
301 TOA_UIso,
302 TOA_VIso,
303 TOA_Free,
304 TOA_UnFree,
305 TOA_Section,
306 TOA_Hidden,
307 TOA_Seen,
308 TOA_FirstAxis,
309 TOA_SecondAxis,
310 TOA_ThirdAxis;
7fd59977 311
a6eb515f 312 enumeration StandardDatum is SD_None,SD_Point,SD_Axis,SD_Trihedron,SD_PlaneTrihedron,SD_Line,SD_Circle,SD_Plane;
313 --- Purpose: Declares the type of standard datum of an Interactive Object.
7fd59977 314
315 enumeration KindOfSurface is KOS_Plane, KOS_Cylinder, KOS_Cone, KOS_Sphere, KOS_Torus,
a6eb515f 316 KOS_Revolution, KOS_Extrusion, KOS_OtherSurface;
317
318-- Enumerations for dimensions management --
319
320 enumeration DisplaySpecialSymbol is DSS_No, DSS_Before, DSS_After;
321 ---Purpose: Specifies dimension special symbol display options
322
fe83e1ea 323 enumeration DimensionSelectionMode is DSM_All, DSM_Line, DSM_Text;
324 ---Purpose: Specifies dimension selection modes.
a6eb515f 325
7fd59977 326 class Triangulation;
327
ad3217cd 328 imported ColoredShape;
f376ac72 329 imported TexturedShape;
7fd59977 330
7fd59977 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
7fd59977 361
362
363 ---Category: General Objects
364 class ConnectedInteractive; --signature 0
d33222c1 365 class MultipleConnectedInteractive; --signature 1
366 imported PointCloud;
7fd59977 367
368 ---Category: DIMENSIONS AND RELATIONS
369
370 class DimensionOwner;
371
372 deferred class Relation;
373 deferred class EllipseRadiusDimension;
374 class MaxRadiusDimension;
375 class MinRadiusDimension;
a6eb515f 376 imported LengthDimension;
377 imported AngleDimension;
378 imported RadiusDimension;
379 imported DiameterDimension;
7fd59977 380 class Chamf2dDimension;
381 class Chamf3dDimension;
382 class OffsetDimension;
383 class FixRelation;
384 class PerpendicularRelation;
385 class ParallelRelation;
386 class TangentRelation;
387 class ConcentricRelation;
388 class IdenticRelation;
389 class SymmetricRelation; -- axial symmetry
390 class MidPointRelation; -- equal distance from point
391 class EqualRadiusRelation;
392 class EqualDistanceRelation;
393
394
395 ---Category: FILTERS
396
397
398 class TypeFilter;
399 class SignatureFilter;
400 class ExclusionFilter;
401 class AttributeFilter;
402 class C0RegularityFilter;
403 class BadEdgeFilter;
404
405 pointer PToContext to InteractiveContext from AIS;
406
407
408
409
410 class Selection;
411
412
413 ---Category: The Collections
414
415
416 class ListOfInteractive instantiates List from TCollection
417 (InteractiveObject from AIS);
418
419 class SequenceOfInteractive instantiates Sequence from TCollection
420 (InteractiveObject from AIS);
421
422 class SequenceOfDimension instantiates Sequence from TCollection
423 (Relation from AIS);
424
425 class MapOfInteractive instantiates Map from TCollection
426 (InteractiveObject from AIS,MapTransientHasher from TColStd);
427
428
429 class DataMapofIntegerListOfinteractive instantiates DataMap from
430 TCollection(Integer from Standard, ListOfInteractive from AIS,MapIntegerHasher from TColStd);
431 -- for further management of layers
432
433 private class DataMapOfIOStatus instantiates DataMap from
434 TCollection(InteractiveObject from AIS,GlobalStatus from AIS,MapTransientHasher from TColStd);
435 -- Management of interactiveObjects Status...
436
437 class IndexedDataMapOfOwnerPrs instantiates IndexedDataMap from TCollection
438 (EntityOwner from SelectMgr,Presentation from Prs3d ,MapTransientHasher from TColStd);
439 -- for dynamic selection management in local context...
440
441 -- san: 18/04/2003 AIS_Selection class optimization
442 -- agv: 04/05/2003 Replace NCollection_List for CDL list
443 imported NListTransient;
444 imported NListIteratorOfListTransient;
445 imported NDataMapOfTransientIteratorOfListTransient;
446 -- service map for AIS_Selection class optimized logic
447
448 private class DataMapOfILC instantiates DataMap from TCollection
449 (Integer from Standard, LocalContext from AIS, MapIntegerHasher from TColStd);
450
451 private class DataMapOfSelStat instantiates DataMap from TCollection
452 (SelectableObject from SelectMgr,LocalStatus from AIS,MapTransientHasher from TColStd);
453 -- to tell if an object is sensitive to Standard Modes Of Selection....
454
455-- Methods for dimensions
456
457 Nearest( aShape : Shape from TopoDS;
458 aPoint : Pnt from gp )
459 returns Pnt from gp;
460 ---Purpose:
461 -- Returns the nearest point in a shape. This is used by
462 -- several classes in calculation of dimensions.
60bf98ae 463
464 Nearest (theLine : Lin from gp;
465 thePoint : Pnt from gp)
466 returns Pnt from gp;
467 ---Purpose:
468 -- @return the nearest point on the line.
469
470 Nearest (theCurve : Curve from Geom;
471 thePoint : Pnt from gp;
472 theFirstPoint : Pnt from gp;
473 theLastPoint : Pnt from gp;
474 theNearestPoint : out Pnt from gp)
475 returns Boolean from Standard;
476 ---Purpose:
477 -- For the given point finds nearest point on the curve,
478 -- @return TRUE if found point is belongs to the curve
479 -- and FALSE otherwise.
480
7fd59977 481 Farest( aShape : Shape from TopoDS;
482 aPoint : Pnt from gp )
483 returns Pnt from gp;
484
60bf98ae 485 ComputeGeometry (theEdge : Edge from TopoDS;
486 theCurve : out Curve from Geom;
487 theFirstPnt : out Pnt from gp;
488 theLastPnt : out Pnt from gp)
7fd59977 489 ---Purpose: Used by 2d Relation only
490 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
491 -- and the extremities if any
60bf98ae 492 -- Return TRUE if ok.
7fd59977 493 returns Boolean from Standard;
60bf98ae 494
495 ComputeGeometry (theEdge : Edge from TopoDS;
496 theCurve : out Curve from Geom;
497 theFirstPnt : out Pnt from gp;
498 theLastPnt : out Pnt from gp;
499 theIsInfinite : out Boolean from Standard)
500 ---Purpose: Used by dimensions only.
501 -- Computes the 3d geometry of <anEdge>.
502 -- Return TRUE if ok.
503 returns Boolean from Standard;
504
505 ComputeGeometry (theEdge : Edge from TopoDS;
506 theCurve : out Curve from Geom;
507 theFirstPnt : out Pnt from gp;
508 theLastPnt : out Pnt from gp;
509 theExtCurve : out Curve from Geom;
510 theIsInfinite : out Boolean from Standard;
511 theIsOnPlane : out Boolean from Standard;
512 thePlane : Plane from Geom)
7fd59977 513 ---Purpose: Used by 2d Relation only
514 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
515 -- and the extremities if any.
516 -- If <aCurve> is not in the current plane, <extCurve> contains
517 -- the not projected curve associated to <anEdge>.
518 -- If <anEdge> is infinite, <isinfinite> = true and the 2
519 -- parameters <FirstPnt> and <LastPnt> have no signification.
60bf98ae 520 -- Return TRUE if ok.
7fd59977 521 returns Boolean from Standard;
60bf98ae 522
523 ComputeGeometry (theFirstEdge : Edge from TopoDS;
524 theSecondEdge : Edge from TopoDS;
525 theFirstCurve : out Curve from Geom;
526 theSecondCurve : out Curve from Geom;
527 theFirstPnt1 : out Pnt from gp;
528 theLastPnt1 : out Pnt from gp;
529 theFirstPnt2 : out Pnt from gp;
530 theLastPnt2 : out Pnt from gp;
531 thePlane : Plane from Geom)
7fd59977 532 ---Purpose: Used by 2d Relation only
533 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
534 -- and the extremities if any
60bf98ae 535 -- Return TRUE if ok.
7fd59977 536 returns Boolean from Standard;
537
60bf98ae 538 ComputeGeometry (theFirstEdge : Edge from TopoDS;
539 theSecondEdge : Edge from TopoDS;
540 theFirstCurve : out Curve from Geom;
541 theSecondCurve : out Curve from Geom;
542 theFirstPnt1 : out Pnt from gp;
543 theLastPnt1 : out Pnt from gp;
544 theFirstPnt2 : out Pnt from gp;
545 theLastPnt2 : out Pnt from gp;
546 theIsinfinite1 : out Boolean from Standard;
547 theIsinfinite2 : out Boolean from Standard)
548 ---Purpose: Used by dimensions only.Computes the 3d geometry
549 -- of<anEdge1> and <anEdge2> and checks if they are infinite.
550 returns Boolean from Standard;
7fd59977 551
60bf98ae 552 ComputeGeometry (theFirstEdge : Edge from TopoDS;
553 theSecondEdge : Edge from TopoDS;
554 theExtIndex : out Integer from Standard;
555 theFirstCurve : out Curve from Geom;
556 theSecondCurve : out Curve from Geom;
557 theFirstPnt1 : out Pnt from gp;
558 theLastPnt1 : out Pnt from gp;
559 theFirstPnt2 : out Pnt from gp;
560 theLastPnt2 : out Pnt from gp;
561 theExtCurve : out Curve from Geom;
562 theIsinfinite1 : out Boolean from Standard;
563 theIsinfinite2 : out Boolean from Standard;
564 thePlane : Plane from Geom)
7fd59977 565 ---Purpose: Used by 2d Relation only Computes the 3d geometry
566 -- of<anEdge1> and <anEdge2> in the current Plane and the
567 -- extremities if any. Return in ExtCurve the 3d curve
568 -- (not projected in the plane) of the first edge if
569 -- <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If
570 -- <indexExt> = 0, ExtCurve is Null. if there is an edge
571 -- external to the plane, <isinfinite> is true if this
572 -- edge is infinite. So, the extremities of it are not
573 -- significant. Return TRUE if ok
574 returns Boolean from Standard;
575
60bf98ae 576 ComputeGeomCurve (aCurve : in out Curve from Geom;
577 first1 : Real from Standard;
578 last1 : Real from Standard;
579 FirstPnt1 : out Pnt from gp;
580 LastPnt1 : out Pnt from gp;
581 aPlane : Plane from Geom;
582 isOnPlane: out Boolean from Standard)
7fd59977 583 ---Purpose: Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane
584 -- and returns aCurve;
585 -- Return TRUE if ok
586 returns Boolean from Standard;
587
60bf98ae 588 ComputeGeometry (aVertex : Vertex from TopoDS;
589 point : out Pnt from gp;
590 aPlane : Plane from Geom;
591 isOnPlane: out Boolean from Standard)
7fd59977 592 returns Boolean from Standard;
7fd59977 593
60bf98ae 594 GetPlaneFromFace (aFace : Face from TopoDS;
595 aPlane : out Pln from gp;
596 aSurf : out Surface from Geom;
597 aSurfType : out KindOfSurface from AIS;
598 Offset : out Real from Standard)
7fd59977 599 returns Boolean from Standard;
600 ---Purpose: Tryes to get Plane from Face. Returns Surface of Face
601 -- in aSurf. Returns Standard_True and Plane of Face in
602 -- aPlane in following cases:
603 -- Face is Plane, Offset of Plane,
604 -- Extrusion of Line and Offset of Extrusion of Line
60bf98ae 605 -- Returns pure type of Surface which can be:
606 -- Plane, Cylinder, Cone, Sphere, Torus,
607 -- SurfaceOfRevolution, SurfaceOfExtrusion
608
609 InitFaceLength (aFace : Face from TopoDS;
610 aPlane : out Pln from gp;
611 aSurface : out Surface from Geom;
612 aSurfaceType : out KindOfSurface from AIS;
613 anOffset : out Real from Standard );
614
615 InitLengthBetweenCurvilinearFaces (theFirstFace : Face from TopoDS;
616 theSecondFace : Face from TopoDS;
617 theFirstSurf : in out Surface from Geom;
618 theSecondSurf : in out Surface from Geom;
619 theFirstAttach : out Pnt from gp;
620 theSecondAttach : out Pnt from gp;
621 theDirOnPlane : out Dir from gp);
622 ---Purpose: Finds attachment points on two curvilinear faces for length dimension.
623 -- @param thePlaneDir [in] the direction on the dimension plane to
624 -- compute the plane automatically. It will not be taken into account if
625 -- plane is defined by user.
626
627 InitAngleBetweenPlanarFaces (theFirstFace : Face from TopoDS;
628 theSecondFace : Face from TopoDS;
629 theCenter : out Pnt from gp;
630 theFirstAttach : out Pnt from gp;
631 theSecondAttach : out Pnt from gp;
632 theIsFirstPointSet : Boolean from Standard = Standard_False)
633 returns Boolean from Standard;
634 ---Purpose: Finds three points for the angle dimension between
635 -- two planes.
636
637 InitAngleBetweenCurvilinearFaces (theFirstFace : Face from TopoDS;
638 theSecondFace : Face from TopoDS;
639 theFirstSurfType : KindOfSurface from AIS;
640 theSecondSurfType : KindOfSurface from AIS;
641 theCenter : out Pnt from gp;
642 theFirstAttach : out Pnt from gp;
643 theSecondAttach : out Pnt from gp;
644 theIsFirstPointSet : Boolean from Standard = Standard_False)
645 returns Boolean from Standard;
646 ---Purpose: Finds three points for the angle dimension between
647 -- two curvilinear surfaces.
7fd59977 648
649 ProjectPointOnPlane( aPoint : Pnt from gp; aPlane : Pln from gp )
650 returns Pnt from gp;
651
652 ProjectPointOnLine( aPoint : Pnt from gp; aLine : Lin from gp )
653 returns Pnt from gp;
654
655 TranslatePointToBound( aPoint : Pnt from gp; aDir : Dir from gp; aBndBox: Box from Bnd )
656 returns Pnt from gp;
657
658 InDomain( aFirstPar : Real from Standard;
659 aLastPar : Real from Standard;
660 anAttachPar : Real from Standard)
661 returns Boolean from Standard;
662 ---Purpose: returns True if point with anAttachPar is
663 -- in domain of arc
664
665 NearestApex(elips : Elips from gp;
666 pApex : Pnt from gp;
667 nApex : Pnt from gp;
668 fpara : Real from Standard ;
669 lpara : Real from Standard ;
670 IsInDomain : out Boolean from Standard)
671 returns Pnt from gp;
672 ---Purpose: computes nearest to ellipse arc apex
673
674 DistanceFromApex(elips : Elips from gp;
675 Apex : Pnt from gp;
676 par : Real from Standard )
677 returns Real from Standard;
678 ---Purpose: computes length of ellipse arc in parametric units
679
680
6e33d3ce 681 ComputeProjEdgePresentation(aPres : Presentation from Prs3d;
6262338c 682 aDrawer : Drawer from Prs3d;
7fd59977 683 anEdge : Edge from TopoDS;
684 ProjCurve: Curve from Geom;
685 FirstP : Pnt from gp;
686 LastP : Pnt from gp;
687 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
688 aWidth : Real from Standard = 2;
689 aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH;
690 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
691
6e33d3ce 692 ComputeProjVertexPresentation(aPres : Presentation from Prs3d;
6262338c 693 aDrawer : Drawer from Prs3d;
7fd59977 694 aVertex : Vertex from TopoDS;
695 ProjPoint: Pnt from gp;
696 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
697 aWidth : Real from Standard = 2;
698 aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS;
699 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
700
701end AIS;