0023024: Update headers of OCCT files
[occt.git] / src / AIS / AIS_AngleDimension.cdl
CommitLineData
b311480e 1-- Created on: 1996-12-03
2-- Created by: Arnaud BOUZY/Odile Olivier
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
23class AngleDimension from AIS inherits Relation from AIS
24
25
26 ---Purpose: A framework to define display of angles.
27 -- These displays are particularly useful in viewing draft prisms.
28 -- The angle displayed may define an intersection
29 -- can be between two edges or two faces of a shape
30 -- or a plane. The display consists of arrows and text.
31
32uses Shape from TopoDS,
33 Presentation from Prs3d,
34 PresentationManager3d from PrsMgr,
35 Selection from SelectMgr,
36 Pnt from gp,
37 Dir from gp,
38 Circ from gp,
39 Line from Geom,
40 Ax1 from gp,
41 Projector from Prs3d,
42 Transformation from Geom,
43 PresentationManager2d from PrsMgr,
44 GraphicObject from Graphic2d,
45 Plane from Geom,
46 Surface from Geom,
47 ExtendedString from TCollection,
48 ArrowSide from DsgPrs,
49 KindOfDimension from AIS,
50 Edge from TopoDS,
51 Face from TopoDS
52is
53
54 Create (aFirstEdge : Edge from TopoDS;
55 aSecondEdge : Edge from TopoDS;
56 aPlane : Plane from Geom;
57 aVal : Real from Standard;
58 aText : ExtendedString from TCollection)
59 ---Purpose: Constructs the angle display object defined by the
60 -- shapes aFShape, aSShape, the plane aPlane, the
61 -- value aVal and the text aText.
62 -- aFShape and aSShape are edges.
63 returns mutable AngleDimension from AIS;
64
65
66 Create (aFirstEdge : Edge from TopoDS;
67 aSecondEdge : Edge from TopoDS;
68 aPlane : Plane from Geom;
69 aVal : Real from Standard;
70 aText : ExtendedString from TCollection;
71 aPosition : Pnt from gp;
72 aSymbolPrs : ArrowSide from DsgPrs;
73 anArrowSize : Real from Standard = 0.0)
74 ---Purpose: Constructs the angle display object defined by the
75 -- shapes aFShape, aSShape, the plane aPlane, the
76 -- value aVal, the text aText, the point aPosition, the
77 -- type of arrow aSymbolPrs, and the arrow length anArrowSize.
78 -- aFShape and aSShape are edges.
79 returns mutable AngleDimension from AIS;
80
81 Create (aCone : Face from TopoDS;
82 aVal : Real from Standard;
83 aText : ExtendedString from TCollection)
84 ---Purpose: Angle of cone
85 returns mutable AngleDimension from AIS;
86
87
88 Create (aCone : Face from TopoDS;
89 aVal : Real from Standard;
90 aText : ExtendedString from TCollection;
91 aPosition : Pnt from gp;
92 aSymbolPrs : ArrowSide from DsgPrs;
93 anArrowSize : Real from Standard = 0.01 )
94 ---Purpose: Angle of cone
95 returns mutable AngleDimension from AIS;
96 --===================================================================
97
98 Create (aFirstFace : Face from TopoDS;
99 aSecondFace : Face from TopoDS;
100 anAxis : Ax1 from gp;
101 aVal : Real from Standard;
102 aText : ExtendedString from TCollection)
103 ---Purpose: TwoPlanarFaceAngle dimension
104 returns mutable AngleDimension from AIS;
105
106 Create (aFirstFace : Face from TopoDS;
107 aSecondFace : Face from TopoDS;
108 anAxis : Ax1 from gp;
109 aVal : Real from Standard;
110 aText : ExtendedString from TCollection;
111 aPosition : Pnt from gp;
112 aSymbolPrs : ArrowSide from DsgPrs;
113 anArrowSize : Real from Standard = 0.0)
114 ---Purpose: TwoPlanarFacesAngle dimension with position
115 -- and text Face can be Plane or Extrusion of line
116 -- or Offset of those
117 returns mutable AngleDimension from AIS;
118
119
120 Create (aFFace : Face from TopoDS;
121 aSFace : Face from TopoDS;
122 aVal : Real from Standard;
123 aText : ExtendedString from TCollection)
124 ---Purpose: Angle dimension between two curvilinear faces
125 -- Warning:
126 -- Requaired 0 <= aVal < PI,
127 -- aVal must be defined exactly.
128 returns mutable AngleDimension from AIS;
129
130 Create (aFFace : Face from TopoDS;
131 aSFace : Face from TopoDS;
132 aVal : Real from Standard;
133 aText : ExtendedString from TCollection;
134 aPosition : Pnt from gp;
135 aSymbolPrs : ArrowSide from DsgPrs;
136 anArrowSize : Real from Standard = 0.001)
137 ---Purpose: Angle dimension between two curvilinear faces
138 -- with position and text. Face can be Cone, Cylinder
139 -- Offset of Cone, Offset of Cylinder
140 returns mutable AngleDimension from AIS;
141
142
143 Axis (me)
144 ---Purpose:
145 -- Returns the axis set by the SetAxis method, which
146 -- serves to locate the angle between two faces.
147 ---C++: return const &
148 ---C++: inline
149 returns Ax1 from gp
150 is static;
151
152 SetAxis(me: mutable;anAxis : Ax1 from gp)
153 ---C++: inline
154 ---Purpose:
155 -- Sets the axis, anAxis, which serves to locate the
156 -- angle between two faces.
157 is static;
158
159 SetConeFace( me: mutable; aConeFace : Face from TopoDS )
160 is static;
161
162 SetFirstShape( me: mutable; aFShape : Shape from TopoDS )
163 is redefined static;
164
165 SetSecondShape( me: mutable; aSShape : Shape from TopoDS )
166 is redefined static;
167
168
169 KindOfDimension(me)
170 ---Purpose: Returns PLANEANGLE as the kind of dimension.
171 ---C++: inline
172 returns KindOfDimension from AIS
173 is redefined;
174
175 IsMovable(me) returns Boolean from Standard
176 ---C++: inline
177 ---Purpose: Returns true if the angle dimension is movable.
178
179 is redefined;
180
181 -- Methods from PresentableObject
182
183 Compute(me : mutable;
184 aPresentationManager: PresentationManager3d from PrsMgr;
185 aPresentation : mutable Presentation from Prs3d;
186 aMode : Integer from Standard= 0)
187 is redefined static private;
188
189 Compute(me:mutable;
190 aProjector: Projector from Prs3d;
191 aPresentation: mutable Presentation from Prs3d)
192 is redefined static private;
193
194 Compute(me:mutable;
195 aPresentationManager: PresentationManager2d from PrsMgr;
196 aPresentation: mutable GraphicObject from Graphic2d;
197 aMode: Integer from Standard = 0)
198 is redefined static private;
199
200 Compute(me : mutable;
201 aProjector : Projector from Prs3d;
202 aTrsf : Transformation from Geom;
203 aPresentation : mutable Presentation from Prs3d)
204 is redefined;
205 ---Purpose: Computes the presentation according to a point of view
206 -- given by <aProjector>.
207 -- This method should be used when the associated degenerated Presentations
208 -- have been transformed by <aTrsf> which is not a Pure
209 -- Translation. The HLR Prs can't be deducted automatically
210 -- WARNING :<aTrsf> must be applied
211 -- to the object to display before computation !!!
212
213-- Methods from SelectableObject
214
215 ComputeSelection(me : mutable;
216 aSelection : mutable Selection from SelectMgr;
217 aMode : Integer from Standard)
218 is redefined private;
219
220
221--
222-- Computation private methods
223--
224
225 ComputeConeAngle(me: mutable;
226 aPresentation : mutable Presentation from Prs3d)
227 is private;
228
229 ComputeTwoFacesAngle(me: mutable;
230 aPresentation : mutable Presentation from Prs3d)
231 is private;
232
233 ComputeTwoPlanarFacesAngle(me: mutable;
234 aPresentation : mutable Presentation from Prs3d)
235 is private;
236
237 ComputeTwoCurvilinearFacesAngle(me: mutable;
238 aPresentation : mutable Presentation from Prs3d)
239 is private;
240
241 ComputeTwoEdgesAngle(me: mutable;
242 aPresentation : mutable Presentation from Prs3d)
243 is private;
244 ComputeTwoEdgesNullAngle(me: mutable;
245 aPresentation : mutable Presentation from Prs3d;
246 l1 : Line from Geom;
247 l2 : Line from Geom;
248 ptat11 : Pnt from gp;
249 ptat12 : Pnt from gp;
250 ptat21 : Pnt from gp;
251 ptat22 : Pnt from gp;
252 isInf1 : Boolean from Standard;
253 isInf2 : Boolean from Standard )
254 is private;
255
256 ComputeTwoEdgesNotNullAngle(me: mutable;
257 aPresentation : mutable Presentation from Prs3d;
258 l1 : Line from Geom;
259 l2 : Line from Geom;
260 ptat11 : Pnt from gp;
261 ptat12 : Pnt from gp;
262 ptat21 : Pnt from gp;
263 ptat22 : Pnt from gp;
264 isInf1 : Boolean from Standard;
265 isInf2 : Boolean from Standard )
266 is private;
267
268 Compute3DSelection(me : mutable;
269 aSelection : mutable Selection from SelectMgr)
270 is private;
271
272 Compute2DSelection(me : mutable;
273 aSelection : mutable Selection from SelectMgr)
274 is private;
275 ComputeNull2DSelection(me : mutable;
276 aSelection : mutable Selection from SelectMgr;
277 distFS : Real from Standard)
278 is private;
279
280 ComputeConeAngleSelection(me : mutable;
281 aSelection : mutable Selection from SelectMgr)
282 is private;
283
284fields
285
286 myNbShape : Integer from Standard;
287 myCenter : Pnt from gp;
288 myFAttach : Pnt from gp;
289 mySAttach : Pnt from gp;
290 myFDir : Dir from gp;
291 mySDir : Dir from gp;
292 myAxis : Ax1 from gp;
293 myCone : Face from TopoDS;
294
295end AngleDimension;