0024153: Adding OpenCL to OCCT prerequisites
[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;
199 -- - DS_Erased: the Interactive Object is erased in the collector;
200 -- - DS_FullErased: the Interactive Object is erased
201 -- but not in the collector;
202 -- - DS_Temporary: the Interactive Object is temporarily displayed;
203 -- - DS_None: the Interactive Object is nowhere displayed.
204
205 enumeration SelectStatus is
206 SS_Added,
207 SS_Removed,
208 SS_NotDone
209 end SelectStatus;
210
211 enumeration StatusOfPick is
212 SOP_Error,
213 SOP_NothingSelected,
214 SOP_Removed,
215 SOP_OneSelected,
216 SOP_SeveralSelected
217 end StatusOfPick;
218
219 enumeration StatusOfDetection is
220 SOD_Error,
221 SOD_Nothing,
222 SOD_AllBad,
223 SOD_Selected,
224 SOD_OnlyOneDetected,
225 SOD_OnlyOneGood,
226 SOD_SeveralGood
227 end StatusOfDetection;
228
229 enumeration KindOfDimension is
230 KOD_NONE,
231 KOD_LENGTH,
232 KOD_PLANEANGLE,
233 KOD_SOLIDANGLE,
234 KOD_AREA,
235 KOD_VOLUME,
236 KOD_MASS,
237 KOD_TIME,
238 KOD_RADIUS,
239 KOD_DIAMETER,
240 KOD_CHAMF2D,
241 KOD_CHAMF3D,
242 KOD_OFFSET,
243 KOD_ELLIPSERADIUS;
244 ---Purpose: Declares the kinds of dimensions needed in the
245 -- display of Interactive Objects.
246
247 enumeration KindOfInteractive is
248 KOI_None,
249 KOI_Datum,
250 KOI_Shape,
251 KOI_Object,
252 KOI_Relation;
253 --- Purpose: Declares the type of Interactive Object.
254 -- This is one of the following:
255 -- - the Datum
256 -- - the Object
257 -- - the Relation
258 -- - the None type.
259 -- The Datum is the construction element. These include
260 -- points, lines, axes and planes. The object brings
261 -- together topological shapes. The Relation includes
262 -- dimensions and constraints. When the object is of an
263 -- unknown type, the None type is declared.
264
265 enumeration ClearMode is
266 CM_All,
267 CM_Interactive,
268 CM_Filters,
269 CM_StandardModes,
270 CM_TemporaryShapePrs
271 end ClearMode;
272 ---Purpose: Declares which entities in an opened local context
273 -- are to be cleared of mode settings. Temporary
274 -- graphic presentations such as those for sub-shapes,
275 -- for example, are only created for the selection
276 -- process. By means of these enumerations, they can
277 -- be cleared from local context.
278
279 enumeration KindOfUnit is
280 TOU_LENGTH,
281 TOU_SURFACE,
282 TOU_VOLUME,
283 TOU_PLANE_ANGLE,
284 TOU_SOLID_ANGLE,
285 TOU_MASS,
286 TOU_FORCE,
287 TOU_TIME;
288 ---Purpose: Declares the type of Interactive Object unit.
289
290 enumeration TypeOfAxis is TOAX_Unknown,TOAX_XAxis,TOAX_YAxis,TOAX_ZAxis;
291 ---Purpose: Declares the type of axis.
292
293 enumeration TypeOfPlane is TOPL_Unknown,TOPL_XYPlane,TOPL_XZPlane,TOPL_YZPlane;
294 ---Purpose: Declares the type of plane.
295 enumeration TypeOfDist is TOD_Unknown,TOD_Horizontal,TOD_Vertical;
296---Purpose: To declare the type of distance.
297
298 enumeration TypeOfAttribute is
299 TOA_Line,
300 TOA_Angle,
301 TOA_Wire,
302 TOA_Plane,
303 TOA_Vector,
304 TOA_UIso,
305 TOA_VIso,
306 TOA_Free,
307 TOA_UnFree,
308 TOA_Section,
309 TOA_Hidden,
310 TOA_Seen,
311 TOA_FirstAxis,
312 TOA_SecondAxis,
313 TOA_ThirdAxis;
314
315 enumeration StandardDatum is SD_None,SD_Point,SD_Axis,SD_Trihedron,SD_PlaneTrihedron,SD_Line,SD_Circle,SD_Plane;
316 --- Purpose: Declares the type of standard datum of an Interactive Object.
317
318-- New ------------------------------------------------
319
320 enumeration KindOfSurface is KOS_Plane, KOS_Cylinder, KOS_Cone, KOS_Sphere, KOS_Torus,
321 KOS_Revolution, KOS_Extrusion, KOS_OtherSurface;
322-------------------------------------------------------
323
324 class Triangulation;
325
326 class TexturedShape;
327
328 class Drawer;
329
330 class InteractiveContext;
331
332 class GraphicTool;
333
1bd2fa67 334 class LocalContext;
7fd59977 335
336 private class LocalStatus;
337
338 private class GlobalStatus;
339
340 deferred class InteractiveObject;
341
342 ---Category: VARIOUS STANDARD INTERACTIVE OBJECTS
343 -- each type of Datum has a given signature.
344 -- the other interactive objects don't
345 -- implement this signature.
346 -- Mainly used for selection with Filters...
347
348 ---Category: Datum
349 class Point; --signature 1
350 class Axis; --signature 2
351 class Trihedron; --signature 3
352 class PlaneTrihedron; --signature 4
353 class Line; --signature 5
354 class Circle; --signature 6
355 class Plane; --signature 7
356
357
358 ---Category: Object of type Shape
359 class Shape; --signature 0
360 class ConnectedShape; --signature 1
361 class MultipleConnectedShape; --signature 2
362
363
364
365 ---Category: General Objects
366 class ConnectedInteractive; --signature 0
367 class MultipleConnectedInteractive; --signature 1
368
369 ---Category: DIMENSIONS AND RELATIONS
370
371 class DimensionOwner;
372
373 deferred class Relation;
374 deferred class EllipseRadiusDimension;
375 class MaxRadiusDimension;
376 class MinRadiusDimension;
377 class LengthDimension;
378 class AngleDimension;
379 class RadiusDimension;
380 class DiameterDimension;
381 class Chamf2dDimension;
382 class Chamf3dDimension;
383 class OffsetDimension;
384 class FixRelation;
385 class PerpendicularRelation;
386 class ParallelRelation;
387 class TangentRelation;
388 class ConcentricRelation;
389 class IdenticRelation;
390 class SymmetricRelation; -- axial symmetry
391 class MidPointRelation; -- equal distance from point
392 class EqualRadiusRelation;
393 class EqualDistanceRelation;
394
395
396 ---Category: FILTERS
397
398
399 class TypeFilter;
400 class SignatureFilter;
401 class ExclusionFilter;
402 class AttributeFilter;
403 class C0RegularityFilter;
404 class BadEdgeFilter;
405
406 pointer PToContext to InteractiveContext from AIS;
407
408
409
410
411 class Selection;
412
413
414 ---Category: The Collections
415
416
417 class ListOfInteractive instantiates List from TCollection
418 (InteractiveObject from AIS);
419
420 class SequenceOfInteractive instantiates Sequence from TCollection
421 (InteractiveObject from AIS);
422
423 class SequenceOfDimension instantiates Sequence from TCollection
424 (Relation from AIS);
425
426 class MapOfInteractive instantiates Map from TCollection
427 (InteractiveObject from AIS,MapTransientHasher from TColStd);
428
429
430 class DataMapofIntegerListOfinteractive instantiates DataMap from
431 TCollection(Integer from Standard, ListOfInteractive from AIS,MapIntegerHasher from TColStd);
432 -- for further management of layers
433
434 private class DataMapOfIOStatus instantiates DataMap from
435 TCollection(InteractiveObject from AIS,GlobalStatus from AIS,MapTransientHasher from TColStd);
436 -- Management of interactiveObjects Status...
437
438 class IndexedDataMapOfOwnerPrs instantiates IndexedDataMap from TCollection
439 (EntityOwner from SelectMgr,Presentation from Prs3d ,MapTransientHasher from TColStd);
440 -- for dynamic selection management in local context...
441
442 -- san: 18/04/2003 AIS_Selection class optimization
443 -- agv: 04/05/2003 Replace NCollection_List for CDL list
444 imported NListTransient;
445 imported NListIteratorOfListTransient;
446 imported NDataMapOfTransientIteratorOfListTransient;
447 -- service map for AIS_Selection class optimized logic
448
449 private class DataMapOfILC instantiates DataMap from TCollection
450 (Integer from Standard, LocalContext from AIS, MapIntegerHasher from TColStd);
451
452 private class DataMapOfSelStat instantiates DataMap from TCollection
453 (SelectableObject from SelectMgr,LocalStatus from AIS,MapTransientHasher from TColStd);
454 -- to tell if an object is sensitive to Standard Modes Of Selection....
455
456-- Methods for dimensions
457
458 Nearest( aShape : Shape from TopoDS;
459 aPoint : Pnt from gp )
460 returns Pnt from gp;
461 ---Purpose:
462 -- Returns the nearest point in a shape. This is used by
463 -- several classes in calculation of dimensions.
464
465 Farest( aShape : Shape from TopoDS;
466 aPoint : Pnt from gp )
467 returns Pnt from gp;
468
469 ComputeGeometry(anEdge : Edge from TopoDS;
470 aCurve : out Curve from Geom;
471 FirstPnt : out Pnt from gp;
472 LastPnt : out Pnt from gp)
473 ---Purpose: Used by 2d Relation only
474 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
475 -- and the extremities if any
476 -- Return TRUE if ok
477 returns Boolean from Standard;
478
479 ComputeGeometry(anEdge : Edge from TopoDS;
480 aCurve : out Curve from Geom;
481 FirstPnt : out Pnt from gp;
482 LastPnt : out Pnt from gp;
483 extCurve : out Curve from Geom;
484 isinfinite: out Boolean from Standard;
485 isOnPlane : out Boolean from Standard;
486 aPlane : Plane from Geom)
487 ---Purpose: Used by 2d Relation only
488 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
489 -- and the extremities if any.
490 -- If <aCurve> is not in the current plane, <extCurve> contains
491 -- the not projected curve associated to <anEdge>.
492 -- If <anEdge> is infinite, <isinfinite> = true and the 2
493 -- parameters <FirstPnt> and <LastPnt> have no signification.
494 -- Return TRUE if ok
495 returns Boolean from Standard;
496
497 ComputeGeometry (anEdge1 : Edge from TopoDS;
498 anEdge2 : Edge from TopoDS;
499 aCurve1 : out Curve from Geom;
500 aCurve2 : out Curve from Geom;
501 FirstPnt1 : out Pnt from gp;
502 LastPnt1 : out Pnt from gp;
503 FirstPnt2 : out Pnt from gp;
504 LastPnt2 : out Pnt from gp;
505 aPlane : Plane from Geom)
506 ---Purpose: Used by 2d Relation only
507 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
508 -- and the extremities if any
509 -- Return TRUE if ok
510 returns Boolean from Standard;
511
512
513 ComputeGeometry (anEdge1 : Edge from TopoDS;
514 anEdge2 : Edge from TopoDS;
515 indexExt : out Integer from Standard;
516 aCurve1 : out Curve from Geom;
517 aCurve2 : out Curve from Geom;
518 FirstPnt1 : out Pnt from gp;
519 LastPnt1 : out Pnt from gp;
520 FirstPnt2 : out Pnt from gp;
521 LastPnt2 : out Pnt from gp;
522 ExtCurve : out Curve from Geom;
523 isinfinite1 : out Boolean from Standard;
524 isinfinite2 : out Boolean from Standard;
525 aPlane : Plane from Geom)
526
527 ---Purpose: Used by 2d Relation only Computes the 3d geometry
528 -- of<anEdge1> and <anEdge2> in the current Plane and the
529 -- extremities if any. Return in ExtCurve the 3d curve
530 -- (not projected in the plane) of the first edge if
531 -- <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If
532 -- <indexExt> = 0, ExtCurve is Null. if there is an edge
533 -- external to the plane, <isinfinite> is true if this
534 -- edge is infinite. So, the extremities of it are not
535 -- significant. Return TRUE if ok
536 returns Boolean from Standard;
537
538 ComputeGeomCurve (aCurve : in out Curve from Geom;
539 first1 : Real from Standard;
540 last1 : Real from Standard;
541 FirstPnt1 : out Pnt from gp;
542 LastPnt1 : out Pnt from gp;
543 aPlane : Plane from Geom;
544 isOnPlane: out Boolean from Standard)
545
546 ---Purpose: Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane
547 -- and returns aCurve;
548 -- Return TRUE if ok
549 returns Boolean from Standard;
550
551 ComputeGeometry(aVertex : Vertex from TopoDS;
552 point : out Pnt from gp;
553 aPlane : Plane from Geom;
554 isOnPlane: out Boolean from Standard)
555 returns Boolean from Standard;
556
557
558 GetPlaneFromFace( aFace : Face from TopoDS;
559 aPlane : out Pln from gp;
560 aSurf : out Surface from Geom;
561 aSurfType : out KindOfSurface from AIS;
562 Offset : out Real from Standard )
563 returns Boolean from Standard;
564 ---Purpose: Tryes to get Plane from Face. Returns Surface of Face
565 -- in aSurf. Returns Standard_True and Plane of Face in
566 -- aPlane in following cases:
567 -- Face is Plane, Offset of Plane,
568 -- Extrusion of Line and Offset of Extrusion of Line
569 -- Returns pure type of Surface which can be:
570 -- Plane, Cylinder, Cone, Sphere, Torus,
571 -- SurfaceOfRevolution, SurfaceOfExtrusion
572
573 InitFaceLength( aFace : Face from TopoDS;
574 aPlane : out Pln from gp;
575 aSurface : out Surface from Geom;
576 aSurfaceType : out KindOfSurface from AIS;
577 anOffset : out Real from Standard );
578
579 ComputeLengthBetweenPlanarFaces( FirstFace : Face from TopoDS;
580 SecondFace : Face from TopoDS;
581 Plane1 : Pln from gp;
582 Plane2 : Pln from gp;
583 Value : out Real from Standard;
584 FirstAttach : out Pnt from gp ;
585 SecondAttach : out Pnt from gp ;
586 DirAttach : out Dir from gp ;
587 AutomaticPos : Boolean from Standard;
588 Position : in out Pnt from gp);
589
590 ComputeLengthBetweenCurvilinearFaces( FirstFace : Face from TopoDS;
591 SecondFace : Face from TopoDS;
592 FirstSurf : in out Surface from Geom;
593 SecondSurf : in out Surface from Geom;
594 AutomaticPos : Boolean from Standard;
595 Value : out Real from Standard;
596 Position : out Pnt from gp;
597 FirstAttach : out Pnt from gp;
598 SecondAttach : out Pnt from gp;
599 DirAttach : out Dir from gp );
600
601 ComputeAngleBetweenPlanarFaces( FirstFace : Face from TopoDS;
602 SecondFace : Face from TopoDS;
603 Surf2 : Surface from Geom;
604 Axis : Ax1 from gp;
605 Value : Real from Standard;
606 AutomaticPos : Boolean from Standard;
607 Position : out Pnt from gp;
608 Center : out Pnt from gp;
609 FirstAttach : out Pnt from gp;
610 SecondAttach : out Pnt from gp;
611 FirstDir : out Dir from gp;
612 SecondDir : out Dir from gp);
613 ---Purpose: Computes geometric parameters for planar faces for
614 -- Angular dimensions
615
616 ComputeAngleBetweenCurvilinearFaces( FirstFace : Face from TopoDS;
617 SecondFace : Face from TopoDS;
618 FirstSurf : Surface from Geom;
619 SecondSurf : Surface from Geom;
620 FirstSurfType : KindOfSurface from AIS;
621 SecondSurfType : KindOfSurface from AIS;
622 Axis : Ax1 from gp;
623 Value : Real from Standard;
624 AutomaticPos : Boolean from Standard;
625 Position : out Pnt from gp;
626 Center : out Pnt from gp;
627 FirstAttach : out Pnt from gp;
628 SecondAttach : out Pnt from gp;
629 FirstDir : out Dir from gp;
630 SecondDir : out Dir from gp;
631 Plane : out Plane from Geom );
632 ---Purpose: Computes geometric parameters for curvilinear faces for
633 -- Angular dimensions
634
635 ProjectPointOnPlane( aPoint : Pnt from gp; aPlane : Pln from gp )
636 returns Pnt from gp;
637
638 ProjectPointOnLine( aPoint : Pnt from gp; aLine : Lin from gp )
639 returns Pnt from gp;
640
641 TranslatePointToBound( aPoint : Pnt from gp; aDir : Dir from gp; aBndBox: Box from Bnd )
642 returns Pnt from gp;
643
644 InDomain( aFirstPar : Real from Standard;
645 aLastPar : Real from Standard;
646 anAttachPar : Real from Standard)
647 returns Boolean from Standard;
648 ---Purpose: returns True if point with anAttachPar is
649 -- in domain of arc
650
651 NearestApex(elips : Elips from gp;
652 pApex : Pnt from gp;
653 nApex : Pnt from gp;
654 fpara : Real from Standard ;
655 lpara : Real from Standard ;
656 IsInDomain : out Boolean from Standard)
657 returns Pnt from gp;
658 ---Purpose: computes nearest to ellipse arc apex
659
660 DistanceFromApex(elips : Elips from gp;
661 Apex : Pnt from gp;
662 par : Real from Standard )
663 returns Real from Standard;
664 ---Purpose: computes length of ellipse arc in parametric units
665
666
667 ComputeProjEdgePresentation(aPres : mutable Presentation from Prs3d;
668 aDrawer : mutable Drawer from AIS;
669 anEdge : Edge from TopoDS;
670 ProjCurve: Curve from Geom;
671 FirstP : Pnt from gp;
672 LastP : Pnt from gp;
673 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
674 aWidth : Real from Standard = 2;
675 aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH;
676 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
677
678 ComputeProjVertexPresentation(aPres : mutable Presentation from Prs3d;
679 aDrawer : mutable Drawer from AIS;
680 aVertex : Vertex from TopoDS;
681 ProjPoint: Pnt from gp;
682 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
683 aWidth : Real from Standard = 2;
684 aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS;
685 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
686
687end AIS;