0024133: Development of improvement of dimensions implementation; new length, radius...
[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.
a6eb515f 278
7fd59977 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;
a6eb515f 288 ---Purpose: Declares the type of Interactive Object unit.
289
7fd59977 290 enumeration TypeOfAxis is TOAX_Unknown,TOAX_XAxis,TOAX_YAxis,TOAX_ZAxis;
a6eb515f 291 ---Purpose: Declares the type of axis.
292
7fd59977 293 enumeration TypeOfPlane is TOPL_Unknown,TOPL_XYPlane,TOPL_XZPlane,TOPL_YZPlane;
a6eb515f 294 ---Purpose: Declares the type of plane.
7fd59977 295 enumeration TypeOfDist is TOD_Unknown,TOD_Horizontal,TOD_Vertical;
a6eb515f 296 ---Purpose: To declare the type of distance.
297
7fd59977 298 enumeration TypeOfAttribute is
299 TOA_Line,
a6eb515f 300 TOA_Dimension,
7fd59977 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;
7fd59977 314
a6eb515f 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.
7fd59977 317
318 enumeration KindOfSurface is KOS_Plane, KOS_Cylinder, KOS_Cone, KOS_Sphere, KOS_Torus,
a6eb515f 319 KOS_Revolution, KOS_Extrusion, KOS_OtherSurface;
320
321-- Enumerations for dimensions management --
322
323 enumeration DisplaySpecialSymbol is DSS_No, DSS_Before, DSS_After;
324 ---Purpose: Specifies dimension special symbol display options
325
326 enumeration DimensionDisplayMode is DDM_All, DDM_Line, DDM_Text;
327 ---Purpose: Specifies dimension display modes for advanced highlighting and selection.
328
7fd59977 329 class Triangulation;
330
331 class TexturedShape;
332
333 class Drawer;
334
335 class InteractiveContext;
336
337 class GraphicTool;
338
1bd2fa67 339 class LocalContext;
7fd59977 340
341 private class LocalStatus;
342
343 private class GlobalStatus;
344
345 deferred class InteractiveObject;
346
347 ---Category: VARIOUS STANDARD INTERACTIVE OBJECTS
348 -- each type of Datum has a given signature.
349 -- the other interactive objects don't
350 -- implement this signature.
351 -- Mainly used for selection with Filters...
352
353 ---Category: Datum
354 class Point; --signature 1
355 class Axis; --signature 2
356 class Trihedron; --signature 3
357 class PlaneTrihedron; --signature 4
358 class Line; --signature 5
359 class Circle; --signature 6
360 class Plane; --signature 7
361
362
363 ---Category: Object of type Shape
364 class Shape; --signature 0
365 class ConnectedShape; --signature 1
366 class MultipleConnectedShape; --signature 2
367
368
369
370 ---Category: General Objects
371 class ConnectedInteractive; --signature 0
372 class MultipleConnectedInteractive; --signature 1
373
374 ---Category: DIMENSIONS AND RELATIONS
375
376 class DimensionOwner;
377
378 deferred class Relation;
379 deferred class EllipseRadiusDimension;
380 class MaxRadiusDimension;
381 class MinRadiusDimension;
a6eb515f 382 imported LengthDimension;
383 imported AngleDimension;
384 imported RadiusDimension;
385 imported DiameterDimension;
7fd59977 386 class Chamf2dDimension;
387 class Chamf3dDimension;
388 class OffsetDimension;
389 class FixRelation;
390 class PerpendicularRelation;
391 class ParallelRelation;
392 class TangentRelation;
393 class ConcentricRelation;
394 class IdenticRelation;
395 class SymmetricRelation; -- axial symmetry
396 class MidPointRelation; -- equal distance from point
397 class EqualRadiusRelation;
398 class EqualDistanceRelation;
399
400
401 ---Category: FILTERS
402
403
404 class TypeFilter;
405 class SignatureFilter;
406 class ExclusionFilter;
407 class AttributeFilter;
408 class C0RegularityFilter;
409 class BadEdgeFilter;
410
411 pointer PToContext to InteractiveContext from AIS;
412
413
414
415
416 class Selection;
417
418
419 ---Category: The Collections
420
421
422 class ListOfInteractive instantiates List from TCollection
423 (InteractiveObject from AIS);
424
425 class SequenceOfInteractive instantiates Sequence from TCollection
426 (InteractiveObject from AIS);
427
428 class SequenceOfDimension instantiates Sequence from TCollection
429 (Relation from AIS);
430
431 class MapOfInteractive instantiates Map from TCollection
432 (InteractiveObject from AIS,MapTransientHasher from TColStd);
433
434
435 class DataMapofIntegerListOfinteractive instantiates DataMap from
436 TCollection(Integer from Standard, ListOfInteractive from AIS,MapIntegerHasher from TColStd);
437 -- for further management of layers
438
439 private class DataMapOfIOStatus instantiates DataMap from
440 TCollection(InteractiveObject from AIS,GlobalStatus from AIS,MapTransientHasher from TColStd);
441 -- Management of interactiveObjects Status...
442
443 class IndexedDataMapOfOwnerPrs instantiates IndexedDataMap from TCollection
444 (EntityOwner from SelectMgr,Presentation from Prs3d ,MapTransientHasher from TColStd);
445 -- for dynamic selection management in local context...
446
447 -- san: 18/04/2003 AIS_Selection class optimization
448 -- agv: 04/05/2003 Replace NCollection_List for CDL list
449 imported NListTransient;
450 imported NListIteratorOfListTransient;
451 imported NDataMapOfTransientIteratorOfListTransient;
452 -- service map for AIS_Selection class optimized logic
453
454 private class DataMapOfILC instantiates DataMap from TCollection
455 (Integer from Standard, LocalContext from AIS, MapIntegerHasher from TColStd);
456
457 private class DataMapOfSelStat instantiates DataMap from TCollection
458 (SelectableObject from SelectMgr,LocalStatus from AIS,MapTransientHasher from TColStd);
459 -- to tell if an object is sensitive to Standard Modes Of Selection....
460
461-- Methods for dimensions
462
463 Nearest( aShape : Shape from TopoDS;
464 aPoint : Pnt from gp )
465 returns Pnt from gp;
466 ---Purpose:
467 -- Returns the nearest point in a shape. This is used by
468 -- several classes in calculation of dimensions.
469
470 Farest( aShape : Shape from TopoDS;
471 aPoint : Pnt from gp )
472 returns Pnt from gp;
473
474 ComputeGeometry(anEdge : Edge from TopoDS;
475 aCurve : out Curve from Geom;
476 FirstPnt : out Pnt from gp;
477 LastPnt : out Pnt from gp)
478 ---Purpose: Used by 2d Relation only
479 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
480 -- and the extremities if any
481 -- Return TRUE if ok
482 returns Boolean from Standard;
483
484 ComputeGeometry(anEdge : Edge from TopoDS;
485 aCurve : out Curve from Geom;
486 FirstPnt : out Pnt from gp;
487 LastPnt : out Pnt from gp;
488 extCurve : out Curve from Geom;
489 isinfinite: out Boolean from Standard;
490 isOnPlane : out Boolean from Standard;
491 aPlane : Plane from Geom)
492 ---Purpose: Used by 2d Relation only
493 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
494 -- and the extremities if any.
495 -- If <aCurve> is not in the current plane, <extCurve> contains
496 -- the not projected curve associated to <anEdge>.
497 -- If <anEdge> is infinite, <isinfinite> = true and the 2
498 -- parameters <FirstPnt> and <LastPnt> have no signification.
499 -- Return TRUE if ok
500 returns Boolean from Standard;
501
502 ComputeGeometry (anEdge1 : Edge from TopoDS;
503 anEdge2 : Edge from TopoDS;
504 aCurve1 : out Curve from Geom;
505 aCurve2 : out Curve from Geom;
506 FirstPnt1 : out Pnt from gp;
507 LastPnt1 : out Pnt from gp;
508 FirstPnt2 : out Pnt from gp;
509 LastPnt2 : out Pnt from gp;
510 aPlane : Plane from Geom)
511 ---Purpose: Used by 2d Relation only
512 -- Computes the 3d geometry of <anEdge> in the current WorkingPlane
513 -- and the extremities if any
514 -- Return TRUE if ok
515 returns Boolean from Standard;
516
517
518 ComputeGeometry (anEdge1 : Edge from TopoDS;
519 anEdge2 : Edge from TopoDS;
520 indexExt : out Integer from Standard;
521 aCurve1 : out Curve from Geom;
522 aCurve2 : out Curve from Geom;
523 FirstPnt1 : out Pnt from gp;
524 LastPnt1 : out Pnt from gp;
525 FirstPnt2 : out Pnt from gp;
526 LastPnt2 : out Pnt from gp;
527 ExtCurve : out Curve from Geom;
528 isinfinite1 : out Boolean from Standard;
529 isinfinite2 : out Boolean from Standard;
530 aPlane : Plane from Geom)
531
532 ---Purpose: Used by 2d Relation only Computes the 3d geometry
533 -- of<anEdge1> and <anEdge2> in the current Plane and the
534 -- extremities if any. Return in ExtCurve the 3d curve
535 -- (not projected in the plane) of the first edge if
536 -- <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If
537 -- <indexExt> = 0, ExtCurve is Null. if there is an edge
538 -- external to the plane, <isinfinite> is true if this
539 -- edge is infinite. So, the extremities of it are not
540 -- significant. Return TRUE if ok
541 returns Boolean from Standard;
542
543 ComputeGeomCurve (aCurve : in out Curve from Geom;
544 first1 : Real from Standard;
545 last1 : Real from Standard;
546 FirstPnt1 : out Pnt from gp;
547 LastPnt1 : out Pnt from gp;
548 aPlane : Plane from Geom;
549 isOnPlane: out Boolean from Standard)
550
551 ---Purpose: Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane
552 -- and returns aCurve;
553 -- Return TRUE if ok
554 returns Boolean from Standard;
555
556 ComputeGeometry(aVertex : Vertex from TopoDS;
557 point : out Pnt from gp;
558 aPlane : Plane from Geom;
559 isOnPlane: out Boolean from Standard)
560 returns Boolean from Standard;
561
562
563 GetPlaneFromFace( aFace : Face from TopoDS;
564 aPlane : out Pln from gp;
565 aSurf : out Surface from Geom;
566 aSurfType : out KindOfSurface from AIS;
567 Offset : out Real from Standard )
568 returns Boolean from Standard;
569 ---Purpose: Tryes to get Plane from Face. Returns Surface of Face
570 -- in aSurf. Returns Standard_True and Plane of Face in
571 -- aPlane in following cases:
572 -- Face is Plane, Offset of Plane,
573 -- Extrusion of Line and Offset of Extrusion of Line
574 -- Returns pure type of Surface which can be:
575 -- Plane, Cylinder, Cone, Sphere, Torus,
576 -- SurfaceOfRevolution, SurfaceOfExtrusion
577
578 InitFaceLength( aFace : Face from TopoDS;
579 aPlane : out Pln from gp;
580 aSurface : out Surface from Geom;
581 aSurfaceType : out KindOfSurface from AIS;
582 anOffset : out Real from Standard );
583
584 ComputeLengthBetweenPlanarFaces( FirstFace : Face from TopoDS;
585 SecondFace : Face from TopoDS;
586 Plane1 : Pln from gp;
587 Plane2 : Pln from gp;
588 Value : out Real from Standard;
589 FirstAttach : out Pnt from gp ;
590 SecondAttach : out Pnt from gp ;
591 DirAttach : out Dir from gp ;
592 AutomaticPos : Boolean from Standard;
593 Position : in out Pnt from gp);
594
595 ComputeLengthBetweenCurvilinearFaces( FirstFace : Face from TopoDS;
596 SecondFace : Face from TopoDS;
597 FirstSurf : in out Surface from Geom;
598 SecondSurf : in out Surface from Geom;
599 AutomaticPos : Boolean from Standard;
600 Value : out Real from Standard;
601 Position : out Pnt from gp;
602 FirstAttach : out Pnt from gp;
603 SecondAttach : out Pnt from gp;
604 DirAttach : out Dir from gp );
605
606 ComputeAngleBetweenPlanarFaces( FirstFace : Face from TopoDS;
607 SecondFace : Face from TopoDS;
608 Surf2 : Surface from Geom;
609 Axis : Ax1 from gp;
610 Value : Real from Standard;
611 AutomaticPos : Boolean from Standard;
612 Position : out Pnt from gp;
613 Center : out Pnt from gp;
614 FirstAttach : out Pnt from gp;
615 SecondAttach : out Pnt from gp;
616 FirstDir : out Dir from gp;
617 SecondDir : out Dir from gp);
618 ---Purpose: Computes geometric parameters for planar faces for
619 -- Angular dimensions
620
621 ComputeAngleBetweenCurvilinearFaces( FirstFace : Face from TopoDS;
622 SecondFace : Face from TopoDS;
623 FirstSurf : Surface from Geom;
624 SecondSurf : Surface from Geom;
625 FirstSurfType : KindOfSurface from AIS;
626 SecondSurfType : KindOfSurface from AIS;
627 Axis : Ax1 from gp;
628 Value : Real from Standard;
629 AutomaticPos : Boolean from Standard;
630 Position : out Pnt from gp;
631 Center : out Pnt from gp;
632 FirstAttach : out Pnt from gp;
633 SecondAttach : out Pnt from gp;
634 FirstDir : out Dir from gp;
635 SecondDir : out Dir from gp;
636 Plane : out Plane from Geom );
637 ---Purpose: Computes geometric parameters for curvilinear faces for
638 -- Angular dimensions
639
640 ProjectPointOnPlane( aPoint : Pnt from gp; aPlane : Pln from gp )
641 returns Pnt from gp;
642
643 ProjectPointOnLine( aPoint : Pnt from gp; aLine : Lin from gp )
644 returns Pnt from gp;
645
646 TranslatePointToBound( aPoint : Pnt from gp; aDir : Dir from gp; aBndBox: Box from Bnd )
647 returns Pnt from gp;
648
649 InDomain( aFirstPar : Real from Standard;
650 aLastPar : Real from Standard;
651 anAttachPar : Real from Standard)
652 returns Boolean from Standard;
653 ---Purpose: returns True if point with anAttachPar is
654 -- in domain of arc
655
656 NearestApex(elips : Elips from gp;
657 pApex : Pnt from gp;
658 nApex : Pnt from gp;
659 fpara : Real from Standard ;
660 lpara : Real from Standard ;
661 IsInDomain : out Boolean from Standard)
662 returns Pnt from gp;
663 ---Purpose: computes nearest to ellipse arc apex
664
665 DistanceFromApex(elips : Elips from gp;
666 Apex : Pnt from gp;
667 par : Real from Standard )
668 returns Real from Standard;
669 ---Purpose: computes length of ellipse arc in parametric units
670
671
672 ComputeProjEdgePresentation(aPres : mutable Presentation from Prs3d;
673 aDrawer : mutable Drawer from AIS;
674 anEdge : Edge from TopoDS;
675 ProjCurve: Curve from Geom;
676 FirstP : Pnt from gp;
677 LastP : Pnt from gp;
678 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
679 aWidth : Real from Standard = 2;
680 aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH;
681 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
682
683 ComputeProjVertexPresentation(aPres : mutable Presentation from Prs3d;
684 aDrawer : mutable Drawer from AIS;
685 aVertex : Vertex from TopoDS;
686 ProjPoint: Pnt from gp;
687 aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE;
688 aWidth : Real from Standard = 2;
689 aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS;
690 aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT);
691
692end AIS;