0024389: Invalid hilight of AIS dimension line in local selection
[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.
467
468 Farest( aShape : Shape from TopoDS;
469 aPoint : Pnt from gp )
470 returns Pnt from gp;
471
472 ComputeGeometry(anEdge : Edge from TopoDS;
473 aCurve : out Curve from Geom;
474 FirstPnt : out Pnt from gp;
475 LastPnt : out Pnt from gp)
476 ---Purpose: Used by 2d Relation only
477 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
478 -- and the extremities if any
479 -- Return TRUE if ok
480 returns Boolean from Standard;
481
482 ComputeGeometry(anEdge : Edge from TopoDS;
483 aCurve : out Curve from Geom;
484 FirstPnt : out Pnt from gp;
485 LastPnt : out Pnt from gp;
486 extCurve : out Curve from Geom;
487 isinfinite: out Boolean from Standard;
488 isOnPlane : out Boolean from Standard;
489 aPlane : Plane from Geom)
490 ---Purpose: Used by 2d Relation only
491 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
492 -- and the extremities if any.
493 -- If <aCurve> is not in the current plane, <extCurve> contains
494 -- the not projected curve associated to <anEdge>.
495 -- If <anEdge> is infinite, <isinfinite> = true and the 2
496 -- parameters <FirstPnt> and <LastPnt> have no signification.
497 -- Return TRUE if ok
498 returns Boolean from Standard;
499
500 ComputeGeometry (anEdge1 : Edge from TopoDS;
501 anEdge2 : Edge from TopoDS;
502 aCurve1 : out Curve from Geom;
503 aCurve2 : out Curve from Geom;
504 FirstPnt1 : out Pnt from gp;
505 LastPnt1 : out Pnt from gp;
506 FirstPnt2 : out Pnt from gp;
507 LastPnt2 : out Pnt from gp;
508 aPlane : Plane from Geom)
509 ---Purpose: Used by 2d Relation only
510 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
511 -- and the extremities if any
512 -- Return TRUE if ok
513 returns Boolean from Standard;
514
515
516 ComputeGeometry (anEdge1 : Edge from TopoDS;
517 anEdge2 : Edge from TopoDS;
518 indexExt : out Integer from Standard;
519 aCurve1 : out Curve from Geom;
520 aCurve2 : out Curve from Geom;
521 FirstPnt1 : out Pnt from gp;
522 LastPnt1 : out Pnt from gp;
523 FirstPnt2 : out Pnt from gp;
524 LastPnt2 : out Pnt from gp;
525 ExtCurve : out Curve from Geom;
526 isinfinite1 : out Boolean from Standard;
527 isinfinite2 : out Boolean from Standard;
528 aPlane : Plane from Geom)
529
530 ---Purpose: Used by 2d Relation only Computes the 3d geometry
531 -- of<anEdge1> and <anEdge2> in the current Plane and the
532 -- extremities if any. Return in ExtCurve the 3d curve
533 -- (not projected in the plane) of the first edge if
534 -- <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If
535 -- <indexExt> = 0, ExtCurve is Null. if there is an edge
536 -- external to the plane, <isinfinite> is true if this
537 -- edge is infinite. So, the extremities of it are not
538 -- significant. Return TRUE if ok
539 returns Boolean from Standard;
540
541 ComputeGeomCurve (aCurve : in out Curve from Geom;
542 first1 : Real from Standard;
543 last1 : Real from Standard;
544 FirstPnt1 : out Pnt from gp;
545 LastPnt1 : out Pnt from gp;
546 aPlane : Plane from Geom;
547 isOnPlane: out Boolean from Standard)
548
549 ---Purpose: Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane
550 -- and returns aCurve;
551 -- Return TRUE if ok
552 returns Boolean from Standard;
553
554 ComputeGeometry(aVertex : Vertex from TopoDS;
555 point : out Pnt from gp;
556 aPlane : Plane from Geom;
557 isOnPlane: out Boolean from Standard)
558 returns Boolean from Standard;
559
560
561 GetPlaneFromFace( aFace : Face from TopoDS;
562 aPlane : out Pln from gp;
563 aSurf : out Surface from Geom;
564 aSurfType : out KindOfSurface from AIS;
565 Offset : out Real from Standard )
566 returns Boolean from Standard;
567 ---Purpose: Tryes to get Plane from Face. Returns Surface of Face
568 -- in aSurf. Returns Standard_True and Plane of Face in
569 -- aPlane in following cases:
570 -- Face is Plane, Offset of Plane,
571 -- Extrusion of Line and Offset of Extrusion of Line
572 -- Returns pure type of Surface which can be:
573 -- Plane, Cylinder, Cone, Sphere, Torus,
574 -- SurfaceOfRevolution, SurfaceOfExtrusion
575
576 InitFaceLength( aFace : Face from TopoDS;
577 aPlane : out Pln from gp;
578 aSurface : out Surface from Geom;
579 aSurfaceType : out KindOfSurface from AIS;
580 anOffset : out Real from Standard );
581
582 ComputeLengthBetweenPlanarFaces( FirstFace : Face from TopoDS;
583 SecondFace : Face from TopoDS;
584 Plane1 : Pln from gp;
585 Plane2 : Pln from gp;
586 Value : out Real from Standard;
587 FirstAttach : out Pnt from gp ;
588 SecondAttach : out Pnt from gp ;
589 DirAttach : out Dir from gp ;
590 AutomaticPos : Boolean from Standard;
591 Position : in out Pnt from gp);
592
593 ComputeLengthBetweenCurvilinearFaces( FirstFace : Face from TopoDS;
594 SecondFace : Face from TopoDS;
595 FirstSurf : in out Surface from Geom;
596 SecondSurf : in out Surface from Geom;
597 AutomaticPos : Boolean from Standard;
598 Value : out Real from Standard;
599 Position : out Pnt from gp;
600 FirstAttach : out Pnt from gp;
601 SecondAttach : out Pnt from gp;
602 DirAttach : out Dir from gp );
603
604 ComputeAngleBetweenPlanarFaces( FirstFace : Face from TopoDS;
605 SecondFace : Face from TopoDS;
606 Surf2 : Surface from Geom;
607 Axis : Ax1 from gp;
608 Value : Real from Standard;
609 AutomaticPos : Boolean from Standard;
610 Position : out Pnt from gp;
611 Center : out Pnt from gp;
612 FirstAttach : out Pnt from gp;
613 SecondAttach : out Pnt from gp;
614 FirstDir : out Dir from gp;
615 SecondDir : out Dir from gp);
616 ---Purpose: Computes geometric parameters for planar faces for
617 -- Angular dimensions
618
619 ComputeAngleBetweenCurvilinearFaces( FirstFace : Face from TopoDS;
620 SecondFace : Face from TopoDS;
621 FirstSurf : Surface from Geom;
622 SecondSurf : Surface from Geom;
623 FirstSurfType : KindOfSurface from AIS;
624 SecondSurfType : KindOfSurface from AIS;
625 Axis : Ax1 from gp;
626 Value : Real from Standard;
627 AutomaticPos : Boolean from Standard;
628 Position : out Pnt from gp;
629 Center : out Pnt from gp;
630 FirstAttach : out Pnt from gp;
631 SecondAttach : out Pnt from gp;
632 FirstDir : out Dir from gp;
633 SecondDir : out Dir from gp;
634 Plane : out Plane from Geom );
635 ---Purpose: Computes geometric parameters for curvilinear faces for
636 -- Angular dimensions
637
638 ProjectPointOnPlane( aPoint : Pnt from gp; aPlane : Pln from gp )
639 returns Pnt from gp;
640
641 ProjectPointOnLine( aPoint : Pnt from gp; aLine : Lin from gp )
642 returns Pnt from gp;
643
644 TranslatePointToBound( aPoint : Pnt from gp; aDir : Dir from gp; aBndBox: Box from Bnd )
645 returns Pnt from gp;
646
647 InDomain( aFirstPar : Real from Standard;
648 aLastPar : Real from Standard;
649 anAttachPar : Real from Standard)
650 returns Boolean from Standard;
651 ---Purpose: returns True if point with anAttachPar is
652 -- in domain of arc
653
654 NearestApex(elips : Elips from gp;
655 pApex : Pnt from gp;
656 nApex : Pnt from gp;
657 fpara : Real from Standard ;
658 lpara : Real from Standard ;
659 IsInDomain : out Boolean from Standard)
660 returns Pnt from gp;
661 ---Purpose: computes nearest to ellipse arc apex
662
663 DistanceFromApex(elips : Elips from gp;
664 Apex : Pnt from gp;
665 par : Real from Standard )
666 returns Real from Standard;
667 ---Purpose: computes length of ellipse arc in parametric units
668
669
670 ComputeProjEdgePresentation(aPres : mutable Presentation from Prs3d;
671 aDrawer : mutable Drawer from AIS;
672 anEdge : Edge from TopoDS;
673 ProjCurve: Curve from Geom;
674 FirstP : Pnt from gp;
675 LastP : Pnt from gp;
676 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
677 aWidth : Real from Standard = 2;
678 aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH;
679 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
680
681 ComputeProjVertexPresentation(aPres : mutable Presentation from Prs3d;
682 aDrawer : mutable Drawer from AIS;
683 aVertex : Vertex from TopoDS;
684 ProjPoint: Pnt from gp;
685 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
686 aWidth : Real from Standard = 2;
687 aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS;
688 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
689
690end AIS;