0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / AIS / AIS_PlaneTrihedron.cdl
1 -- Created on: 1996-12-13
2 -- Created by: Jean-Pierre COMBE/Odile Olivier
3 -- Copyright (c) 1996-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class PlaneTrihedron from AIS inherits InteractiveObject from AIS
18
19         ---Purpose: To construct a selectable 2d axis system in a 3d
20         -- drawing. This can be placed anywhere in the 3d
21         -- system, and provides a coordinate system for
22         -- drawing curves and shapes in a plane.
23         -- There are 3 selection modes:
24         -- -   mode 0   selection of the whole plane "trihedron"
25         -- -   mode 1   selection of the origin of the plane "trihedron"
26         -- -   mode 2   selection of the axes.
27         --  Warning
28         -- For the presentation of planes and trihedra, the
29         -- millimetre is default unit of length, and 100 the default
30         -- value for the representation of the axes. If you modify
31         -- these dimensions, you must temporarily recover the
32         -- Drawer object. From inside it, take the Aspects in
33         -- which   the values for length are stocked, for example,
34         -- PlaneAspect for planes and FirstAxisAspect for
35         -- trihedra. Change these values and recalculate the presentation.
36         
37
38 uses 
39     Presentation          from Prs3d,
40     PresentationManager3d from PrsMgr,
41     NameOfColor           from Quantity,
42     Color                         from Quantity,
43     Selection             from SelectMgr,
44     Projector             from Prs3d,
45     Transformation        from Geom,
46     Drawer                from Prs3d,
47     Line                  from AIS,
48     Point                 from AIS,
49     Plane                 from Geom,
50     KindOfInteractive     from AIS,
51     AsciiString           from TCollection
52
53 is
54
55     Create(aPlane : Plane from Geom)
56     returns PlaneTrihedron from AIS;
57         ---Purpose: Initializes the plane aPlane. The plane trihedron is
58         --  constructed from this and an axis.
59         
60     Component(me: mutable) returns Plane from Geom 
61     is static;
62         ---Purpose: Returns the component specified in SetComponent.
63     
64     SetComponent(me: mutable;aPlane : Plane from Geom)
65     is static;
66         ---Purpose: Creates an instance of the component object aPlane.
67     
68     XAxis (me)   returns Line from AIS;
69         ---Purpose : Returns the "XAxis". 
70  
71     YAxis (me)  returns Line from AIS;
72         ---Purpose : Returns the "YAxis". 
73
74     Position (me)  returns Point from AIS;
75         ---Purpose : Returns the point of origin of the plane trihedron.
76
77     SetLength(me : mutable;
78               theLength : Real from Standard);
79         ---Purpose: Sets the length of the X and Y axes.
80
81     GetLength(me)
82         ---Purpose: Returns the length of X and Y axes.
83     returns Real from Standard;
84
85     AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from  Standard is redefined static;
86         ---Purpose: Returns true if the display mode selected, aMode, is valid. 
87
88     Compute(me            : mutable;
89             aPresentationManager: PresentationManager3d from PrsMgr;
90             aPresentation : Presentation from Prs3d;
91             aMode         : Integer from Standard = 0) 
92     is redefined protected;
93     
94     Compute(me:mutable;
95                 aProjector: Projector from Prs3d;
96                 aPresentation: Presentation from Prs3d)
97     is redefined static private;     
98
99
100     Compute(me            : mutable;
101             aProjector    : Projector from Prs3d;
102             aTrsf         : Transformation from Geom;
103             aPresentation : Presentation from Prs3d)
104     is redefined;
105         ---Purpose: computes the presentation according to a point of view
106         --          given by <aProjector>.
107         --          To be Used when the associated degenerated Presentations
108         --          have been transformed by <aTrsf> which is not a Pure
109         --          Translation. The HLR Prs can't be deducted automatically
110         --          WARNING :<aTrsf> must be applied
111         --           to the object to display before computation  !!!
112
113 -- Methods from SelectableObject
114
115     ComputeSelection(me         : mutable;
116                      aSelection : Selection from SelectMgr;
117                      aMode      : Integer from Standard)is private;
118
119 -- Methods from InteractiveObject
120
121     Signature(me) returns Integer from Standard is redefined;
122         ---C++: inline
123
124     Type(me) returns KindOfInteractive from AIS is redefined;
125         ---C++: inline
126         ---Purpose: Returns datum as the type of Interactive Object.
127
128     SetColor(me :mutable; aColor : NameOfColor from Quantity)
129     is redefined static ;
130         ---Purpose: Allows you to provide settings for the color aColor.
131         
132     SetColor(me :mutable; aColor : Color from Quantity)
133     is redefined static ;
134
135     SetXLabel(me : mutable; aLabel : AsciiString from TCollection);
136         ---C++: inline
137
138     SetYLabel(me : mutable; aLabel : AsciiString from TCollection);
139         ---C++: inline
140
141
142 fields
143
144     myPlane     : Plane  from Geom;
145     myShapes    : InteractiveObject from AIS [3];
146     myXLabel    : AsciiString from TCollection;
147     myYLabel    : AsciiString from TCollection;
148     
149 end PlaneTrihedron from AIS;