9cb3e1ff2612ac90c0c94899f96ddd16d29e5c91
[occt.git] / src / AIS / AIS_Trihedron.cdl
1 -- File:        AIS_Trihedron.cdl
2 -- Created:     Mon Oct  9 16:23:38 1995
3 -- Author:      Arnaud BOUZY/Odile Olivier
4 --              <adn@houblon>
5 -- Modified by:  rob Wed Feb 11 -> Size of Trihedron
6 --   GG  :  GER61351 17/11/1999 Change SetColor() with a compatible Quantity_Color instead
7 --                                     the restricted NameOfColor.
8 --   GG  :  IMP120100 Add SetTextColor() methods.
9 --                        SetArrowColor() methods.
10
11 ---Copyright:    Matra Datavision 1995
12
13 class Trihedron from AIS inherits InteractiveObject from AIS
14
15         ---Purpose: Create a selectable trihedron
16         -- there are 4 modes of selection :
17         --  mode = 0 to select triedron    ,priority = 1
18         --  mode = 1 to select its origine ,priority = 5
19         --  mode = 2 to select its axis    ,priority = 3
20         --  mode = 3 to select its planes  ,priority = 2
21         --  a trihedron has 1 origine,3 axes,3 planes.
22         -- Warning
23         -- For the presentation of trihedra, the default unit of
24         -- length is the millimetre, and the default value for the
25         -- representation of the axes is 100. If you modify these
26         -- dimensions, you must temporarily recover the Drawer.
27         -- From inside it, you take the aspect in which the values
28         -- for length are stocked. For trihedra, this is
29         -- AIS_Drawer_FirstAxisAspect. You change the
30         -- values inside this Aspect and recalculate the presentation.
31         --  
32
33 uses 
34     Axis2Placement        from Geom,
35     Presentation          from Prs3d,
36     PresentationManager3d from PrsMgr,
37     NameOfColor           from Quantity,
38     Color                         from Quantity,
39     Selection             from SelectMgr,
40     Projector             from Prs3d,
41     Transformation        from Geom,
42     PresentationManager2d from PrsMgr,
43     GraphicObject         from Graphic2d,      
44     Axis                  from AIS,
45     Point                 from AIS,
46     Plane                 from AIS,
47     KindOfInteractive     from AIS,
48     InteractiveContext    from AIS,
49     Array1OfPnt           from  TColgp
50 is
51
52     Create(aComponent : Axis2Placement from Geom)
53     returns mutable Trihedron from AIS;
54         --- Purpose: Initializes a trihedron entity.   
55     
56     Component(me) returns any Axis2Placement from Geom 
57     is static;
58         ---Purpose: Returns the right-handed coordinate system set in SetComponent.
59         ---C++: inline
60         ---C++: return const&
61     
62     SetComponent(me: mutable;aComponent : Axis2Placement from Geom)
63     is static;
64         ---Purpose: Constructs the right-handed coordinate system aComponent.
65
66     HasOwnSize(me) returns Boolean from Standard;
67         ---Purpose: Returns true if the trihedron object has a size other
68         -- than the default size of 100 mm. along each axis.
69         ---C++: inline
70
71     SetSize(me:mutable;aValue : Real from Standard);
72         ---Purpose:  Sets the size aValue for the trihedron object.
73         -- The default value is 100 mm.
74
75     UnsetSize(me:mutable);
76         ---Purpose: Removes any non-default settings for size of this
77         -- trihedron object.
78     
79     Size(me) returns Real from Standard;
80     
81     
82     XAxis (me)   returns Axis from AIS;
83         ---Purpose : Returns the "XAxis". 
84  
85     YAxis (me)  returns Axis from AIS;
86         ---Purpose : Returns the "YAxis". 
87
88     Axis (me)  returns Axis from AIS;
89         ---Purpose : Returns the main Axis. 
90
91     Position (me)  returns Point from AIS;
92         ---Purpose : Returns the origine. 
93
94     XYPlane (me)   returns Plane from AIS;
95         ---Purpose : Returns the "XYPlane". 
96
97     XZPlane (me)   returns Plane from AIS;
98         ---Purpose : Returns the "XZPlane". 
99
100     YZPlane (me)   returns Plane from AIS;
101         ---Purpose : Returns the "YZPlane". 
102
103
104     SetContext(me:mutable; aCtx : InteractiveContext from AIS) 
105     is redefined;
106         ---Purpose: connection to <aCtx> default drawer implies a recomputation
107         --          of SubObjects values.
108
109     AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from  Standard is redefined static;
110         ---Purpose: Returns true if the display mode selected, aMode, is
111         -- valid for trihedron datums.
112         
113     Compute(me            : mutable;
114             aPresentationManager: PresentationManager3d from PrsMgr;
115             aPresentation : mutable Presentation from Prs3d;
116             aMode         : Integer from Standard = 0) 
117     is redefined static private;
118     
119     Compute(me:mutable;
120                 aProjector: Projector from Prs3d;
121                 aPresentation: mutable Presentation from Prs3d)
122     is redefined static private;     
123
124     Compute(me:mutable;
125             aPresentationManager: PresentationManager2d from PrsMgr;
126             aPresentation: mutable GraphicObject from Graphic2d;
127             aMode: Integer from Standard = 0)
128     is redefined static private;        
129
130     Compute(me            : mutable;
131             aProjector    : Projector from Prs3d;
132             aTrsf         : Transformation from Geom;
133             aPresentation : mutable Presentation from Prs3d)
134     is redefined;
135         ---Purpose: Computes the presentation according to a point of view
136         --          given by <aProjector>.
137         --          To be Used when the associated degenerated Presentations
138         --          have been transformed by <aTrsf> which is not a Pure
139         --          Translation. The HLR Prs can't be deducted automatically
140         --          WARNING :<aTrsf> must be applied
141         --           to the object to display before computation  !!!
142
143 -- Methods from SelectableObject
144
145     ComputeSelection(me         : mutable;
146                      aSelection : mutable Selection from SelectMgr;
147                      aMode      : Integer from Standard)is private;
148
149 -- Methods from InteractiveObject
150
151     Signature(me) returns Integer from Standard is redefined;
152         ---Purpose: Returns index 3, selection of the planes XOY, YOZ, XOZ.
153     Type(me) returns KindOfInteractive from AIS is redefined;
154         ---Purpose: Indicates that the type of Interactive Object is datum.
155     SetColor(me :mutable; aColor : NameOfColor from Quantity)
156     is redefined static ;
157  
158     SetColor(me :mutable; aColor : Color from Quantity) 
159     is redefined static ;
160         ---Purpose: Sets the color aColor for this trihedron object.
161     SetTextColor(me :mutable; aColor : NameOfColor from Quantity)
162     is static ;
163
164     HasTextColor(me) returns Boolean from Standard 
165     is static ;
166  
167     TextColor(me) returns NameOfColor from Quantity
168     is static ;
169
170     SetArrowColor(me :mutable; aColor : NameOfColor from Quantity)
171     is static ;
172
173     HasArrowColor(me) returns Boolean from Standard 
174     is static ;
175  
176     ArrowColor(me) returns NameOfColor from Quantity
177     is static ;
178
179     ExtremityPoints(me;TheExtrem  :  in  out  Array1OfPnt  from  TColgp);
180         ---Purpose: Returns the four extremities of the trihedron from the
181         -- array of points, TheExtrem.
182             
183     
184     UnsetColor(me:mutable) is redefined static;
185         ---Purpose: Removes the settings for color.
186     UnsetWidth(me:mutable) is redefined static;
187         ---Purpose: Removes the non-default settings for width set in SetWidth.
188
189     LoadSubObjects(me:mutable) is static private;
190
191
192 fields
193         myComponent : Axis2Placement from Geom;   
194         myShapes    : InteractiveObject from AIS [7];
195         myHasOwnSize: Boolean from Standard;
196         myHasOwnTextColor : Boolean from Standard;
197         myOwnTextColor: NameOfColor from Quantity;
198         myHasOwnArrowColor : Boolean from Standard;
199         myOwnArrowColor: NameOfColor from Quantity;
200
201 end Trihedron from AIS;