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