0024428: Implementation of LGPL license
[occt.git] / src / AIS / AIS_Axis.cdl
1 -- Created on: 1995-08-09
2 -- Created by: Arnaud BOUZY/Odile Olivier
3 -- Copyright (c) 1995-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
9 -- under the terms of the GNU Lesser General Public 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 --   GG  :  GER61351 17/11/1999 Change SetColor() with a compatible Quantity_Color instead
18 --                                     the restricted NameOfColor.
19
20 class Axis from AIS inherits InteractiveObject from AIS
21
22         ---Purpose: Locates the x, y and z axes in an Interactive Object.
23         -- These are used to orient it correctly in presentations
24         -- from different viewpoints, or to construct a revolved
25         -- shape, for example, from one of the axes. Conversely,
26         -- an axis can be created to build a revolved shape and
27         -- then situated relative to one of the axes of the view.
28
29 uses 
30     Line                  from Geom,
31     Presentation          from Prs3d,
32     PresentationManager3d from PrsMgr,
33     NameOfColor           from Quantity,
34     Color                         from Quantity,
35     Selection             from SelectMgr,
36     Projector             from Prs3d,
37     Transformation        from Geom,
38     Pnt                   from gp,
39     Dir                   from gp,    
40     LineAspect            from Prs3d,
41     TypeOfAxis            from AIS, 
42     Axis2Placement        from Geom,
43     Axis1Placement        from Geom,
44     KindOfInteractive from AIS
45
46 is
47     Create(aComponent : Line from Geom) 
48     returns mutable Axis from AIS;
49         --- Purpose: Initializes the line aComponent   
50     
51     Create( aComponent : Axis2Placement from Geom;
52             anAxisType: TypeOfAxis from AIS)
53         ---Purpose: initializes the axis2 position
54         --   aComponent. The coordinate system used is right-handed.
55     returns mutable Axis from AIS;
56
57     Create(anAxis : Axis1Placement from Geom)
58     returns mutable Axis from AIS;
59         ---Purpose: Initializes the axis1 position anAxis.
60     
61     Component(me)
62         ---Purpose:
63         -- Returns the axis entity aComponent and identifies it
64         -- as a component of a shape.
65         ---C++: inline
66         ---C++: return const &
67     returns any Line from Geom 
68     is static;
69
70     SetComponent(me: mutable;aComponent : Line from Geom)
71     is static;
72         ---Purpose: Sets the coordinates of the lin aComponent.
73     
74     Axis2Placement(me)
75         ---C++: inline
76         ---C++: return const &  
77         ---Purpose:
78         -- Returns the position of axis2 and   positions it by
79         -- identifying it as the x, y, or z axis and giving its
80         -- direction in 3D space. The coordinate system used is right-handed.    
81     returns any Axis2Placement from Geom 
82     is static;
83
84     SetAxis2Placement(me: mutable;
85                       aComponent : Axis2Placement from Geom;
86                       anAxisType : TypeOfAxis from AIS)
87     is static;
88         ---Purpose:
89         -- Allows you to provide settings for aComponent:the
90         -- position and direction of an axis in 3D space. The
91         -- coordinate system used is right-handed. 
92     
93     SetAxis1Placement(me: mutable; anAxis     : Axis1Placement from Geom)
94     is static;
95         ---Purpose: Constructs a new line to serve as the axis anAxis in 3D space.
96         
97     TypeOfAxis (me)
98         ---C++: inline
99         ---Purpose: Returns the type of axis.
100     returns TypeOfAxis from AIS;
101
102     SetTypeOfAxis (me : mutable;aTypeAxis: TypeOfAxis from AIS)
103        ---C++: inline
104        ---Purpose:
105        -- Constructs the entity aTypeAxis to stock information
106        -- concerning type of axis.
107     is static;
108
109     IsXYZAxis  (me) 
110        ---C++: inline
111        ---Purpose:
112        -- Returns a signature of 2 for axis datums. When you
113        -- activate mode 2 by a signature, you pick AIS objects
114        -- of type AIS_Axis.
115     returns Boolean from Standard;
116
117     AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from  Standard is redefined static;
118        ---Purpose: Returns true if the interactive object accepts the display mode aMode.
119         
120 -- -- Methods from PresentableObject
121
122     Compute(me            : mutable;
123             aPresentationManager: PresentationManager3d from PrsMgr;
124             aPresentation : mutable Presentation from Prs3d;
125             aMode         : Integer from Standard = 0) 
126     is redefined static  private;
127     
128     Compute(me:mutable;
129                 aProjector: Projector from Prs3d;
130                 aPresentation: mutable Presentation from Prs3d)
131     is redefined static private;
132
133     Compute(me            : mutable;
134             aProjector    : Projector from Prs3d;
135             aTrsf         : Transformation from Geom;
136             aPresentation : mutable Presentation from Prs3d)
137     is redefined;
138          ---Purpose: computes the presentation according to a point of view
139          --          given by <aProjector>.
140          --          To be Used when the associated degenerated Presentations
141          --          have been transformed by <aTrsf> which is not a Pure
142          --          Translation. The HLR Prs can't be deducted automatically
143          --          WARNING :<aTrsf> must be applied
144          --           to the object to display before computation  !!!
145
146 -- Methods from SelectableObject
147
148     ComputeSelection(me         : mutable;
149                      aSelection : mutable Selection from SelectMgr;
150                      aMode      : Integer from Standard)is private;
151
152
153 -- -- Methods from InteractiveObject
154
155     Signature(me) returns Integer from Standard is redefined;
156     ---C++: inline
157
158     Type(me) returns KindOfInteractive from AIS is redefined;
159     ---C++: inline
160
161     SetColor(me :mutable; aColor : NameOfColor from Quantity)
162     is redefined static;
163  
164     SetColor(me :mutable; aColor : Color from Quantity) 
165     is redefined static;
166     
167     SetWidth(me:mutable; aValue:Real from Standard) is redefined static;
168
169     UnsetColor(me:mutable) is redefined static;
170     
171     UnsetWidth(me:mutable) is redefined static;
172
173
174     ComputeFields(me: mutable)
175     is private;
176
177 fields
178
179     myComponent   : Line   from Geom;    
180     myAx2         : Axis2Placement from Geom;
181     myPfirst      : Pnt from gp;
182     myPlast       : Pnt from gp;
183     myTypeOfAxis  : TypeOfAxis from AIS;
184     myIsXYZAxis   : Boolean from Standard;
185     myDir         : Dir from gp;
186     myVal         : Real from Standard;
187     myText        : CString from Standard; 
188     myLineAspect  : LineAspect from Prs3d;
189
190 end Axis;