2 -- Created: Fri Dec 20 15:18:05 1996
3 -- Author: Robert COUBLANC
4 -- <rob@robox.paris1.matra-dtv.fr>
5 -- GG : GER61351 17/11/1999 Change SetColor() with a compatible Quantity_Color instead
6 -- the restricted NameOfColor.
7 -- Redefines the Color(),Material(),Transparency() methods
8 -- for taking in acount the current facing model.
9 -- GG : BUC60536 The compute methods must be defined "protected"
10 -- and no more "private"
12 ---Copyright: Matra Datavision 1996
15 class Shape from AIS inherits InteractiveObject from AIS
17 ---Purpose: A framework to manage presentation and selection of shapes.
18 -- AIS_Shape is the interactive object which is used the
19 -- most by applications. There are standard functions
20 -- available which allow you to prepare selection
21 -- operations on the constituent elements of shapes -
22 -- vertices, edges, faces etc - in an open local context.
23 -- The selection modes specific to "Shape" type objects
24 -- are referred to as Standard Activation Mode. These
25 -- modes are only taken into account in open local
26 -- context and only act on Interactive Objects which
27 -- have redefined the virtual method
28 -- AcceptShapeDecomposition so that it returns true.
29 -- Several advanced functions are also available. These
30 -- include functions to manage deviation angle and
31 -- deviation coefficient - both HLR and non-HLR - of
32 -- an inheriting shape class. These services allow you to
33 -- select one type of shape interactive object for higher
34 -- precision drawing. When you do this, the
35 -- AIS_Drawer::IsOwn... functions corresponding to the
36 -- above deviation angle and coefficient functions return
37 -- true indicating that there is a local setting available
38 -- for the specific object.
41 NameOfColor from Quantity,
44 ShapeEnum from TopAbs,
46 GraphicObject from Graphic2d,
47 NameOfMaterial from Graphic3d ,
48 ---NameOfPhysicalMaterial from Graphic3d ,
49 MaterialAspect from Graphic3d,
50 Presentation from Prs3d,
52 PresentationManager2d from PrsMgr,
53 PresentationManager3d from PrsMgr,
54 Selection from SelectMgr,
55 KindOfInteractive from AIS,
56 Transformation from Geom,
60 Create(shap: Shape from TopoDS)
61 returns mutable Shape from AIS;
62 ---Purpose: Initializes construction of the shape shap from wires,
63 -- edges and vertices.
65 Signature(me) returns Integer from Standard is redefined virtual ;
66 ---Purpose: Returns index 0. This value refers to SHAPE from TopAbs_ShapeEnum
68 Type(me) returns KindOfInteractive from AIS is redefined virtual;
69 ---Purpose: Returns Object as the type of Interactive Object.
71 AcceptShapeDecomposition(me) returns Boolean from Standard is redefined virtual;
72 ---Purpose: Returns true if the Interactive Object accepts shape decomposition.
74 Set(me:mutable;ashap : Shape from TopoDS) is static;
75 ---Purpose: Constructs an instance of the shape object ashape.
78 Shape(me) returns Shape from TopoDS ;
79 ---Purpose: Returns this shape object.
84 ---------------------------------------------------------------------
85 SetOwnDeviationCoefficient(me: mutable) returns Boolean from Standard ;
86 ---Purpose: Sets a local value for deviation coefficient for this specific shape.
87 SetOwnHLRDeviationCoefficient(me: mutable) returns Boolean from Standard ;
88 ---Purpose: Sets a local value for HLR deviation coefficient for this specific shape.
89 SetOwnDeviationAngle(me: mutable) returns Boolean from Standard ;
90 ---Purpose: Sets a local value for deviation angle for this specific shape.
92 SetOwnHLRDeviationAngle(me: mutable) returns Boolean from Standard ;
93 ---Purpose: Sets a local value for HLR deviation angle for this specific shape.
96 SetOwnDeviationCoefficient(me: mutable; aCoefficient: Real from Standard) ;
97 ---Purpose: Sets a local value for deviation coefficient for this specific shape.
99 SetOwnHLRDeviationCoefficient(me: mutable; aCoefficient : Real from Standard) ;
100 ---Purpose: sets myOwnHLRDeviationCoefficient field in AIS_Drawer &
101 -- recomputes presentation
103 SetAngleAndDeviation(me: mutable; anAngle: Real from Standard) ;
104 ---Purpose: this compute a new angle and Deviation from the value anAngle
105 -- and set the values stored in myDrawer with these that become local to the shape
107 UserAngle(me) returns Real from Standard;
108 ---Purpose: gives back the angle initial value put by the User.
110 SetOwnDeviationAngle(me: mutable; anAngle: Real from Standard) ;
111 ---Purpose: sets myOwnDeviationAngle field in AIS_Drawer & recomputes presentation
114 SetHLRAngleAndDeviation(me: mutable; anAngle: Real from Standard) ;
115 ---Purpose: this compute a new Angle and Deviation from the value anAngle for HLR
116 -- and set the values stored in myDrawer for with these that become local to the shape
118 SetOwnHLRDeviationAngle(me: mutable; anAngle: Real from Standard) ;
119 ---Purpose: sets myOwnHLRDeviationAngle field in AIS_Drawer & recomputes presentation
122 OwnDeviationCoefficient(me; aCoefficient : out Real from Standard ;
123 aPreviousCoefficient : out Real from Standard ) returns Boolean from Standard;
124 ---Purpose: Returns true and the values of the deviation
125 -- coefficient aCoefficient and the previous deviation
126 -- coefficient aPreviousCoefficient. If these values are
127 -- not already set, false is returned.
129 OwnHLRDeviationCoefficient(me; aCoefficient : out Real from Standard;
130 aPreviousCoefficient : out Real from Standard ) returns Boolean from Standard;
131 ---Purpose: Returns true and the values of the HLR deviation
132 -- coefficient aCoefficient and the previous HLR
133 -- deviation coefficient aPreviousCoefficient. If these
134 -- values are not already set, false is returned.
136 OwnDeviationAngle(me; anAngle: out Real from Standard;
137 aPreviousAngle : out Real from Standard ) returns Boolean from Standard;
138 ---Purpose: Returns true and the values of the deviation angle
139 -- anAngle and the previous deviation angle aPreviousAngle.
140 -- If these values are not already set, false is returned.
143 OwnHLRDeviationAngle(me; anAngle : out Real from Standard ;
144 aPreviousAngle : out Real from Standard ) returns Boolean from Standard;
145 ---Purpose: Returns true and the values of the HLR deviation
146 -- angle anAngle and of the previous HLR deviation
147 -- angle aPreviousAngle. If these values are not
148 -- already set, false is returned.
154 ---Category: Redefine Compute Methods...
156 Compute(me : mutable;
157 aPresentationManager : PresentationManager3d from PrsMgr;
158 aPresentation : mutable Presentation from Prs3d;
159 aMode : Integer from Standard = 0)
160 is redefined virtual protected;
162 Compute(me : mutable;
163 aPresentationManager : PresentationManager2d from PrsMgr;
164 aPresentation : mutable GraphicObject from Graphic2d;aMode:Integer from Standard = 0)
165 is redefined virtual protected;
167 Compute(me : mutable;
168 aProjector : Projector from Prs3d;
169 aPresentation : mutable Presentation from Prs3d)
170 is redefined virtual protected;
172 Compute(me : mutable;
173 aProjector : Projector from Prs3d;
174 aTrsf : Transformation from Geom;
175 aPresentation : mutable Presentation from Prs3d)
176 is redefined virtual protected;
180 ComputeSelection(me : mutable;
181 aSelection : mutable Selection from SelectMgr;
182 aMode : Integer from Standard)
183 is redefined virtual protected;
186 ---Category: The Attributes to be redefined
189 SetColor(me:mutable;aColor:NameOfColor from Quantity)
190 is redefined virtual;
191 ---Purpose: Sets the color aColor in the reconstructed
192 -- compound shape. Acts via the Drawer methods below on the appearance of:
193 -- - free boundaries:
194 -- AIS_Drawer_FreeBoundaryAspect,
195 -- - isos: AIS_Drawer_UIsoAspect,
196 -- AIS_Drawer_VIsoAspect,
197 -- - shared boundaries:
198 -- AIS_Drawer_UnFreeBoundaryAspect,
199 -- - shading: AIS_Drawer_ShadingAspect,
200 -- - visible line color in hidden line mode:
201 -- AIS_Drawer_SeenLineAspect
202 -- - hidden line color in hidden line mode:
203 -- AIS_Drawer_HiddenLineAspect.
205 SetColor(me:mutable;aColor:Color from Quantity)
206 is redefined virtual;
208 UnsetColor(me:mutable) is redefined virtual;
209 ---Purpose: Removes settings for color in the reconstructed compound shape.
211 SetWidth(me:mutable; aValue:Real from Standard) is redefined virtual;
212 ---Purpose: Sets the value aValue for line width in the reconstructed compound shape.
213 UnsetWidth(me:mutable) is redefined virtual;
214 ---Purpose: Removes the setting for line width in the reconstructed compound shape.
216 SetMaterial(me:mutable;aName:NameOfMaterial from Graphic3d) is redefined virtual;
218 SetMaterial(me:mutable;aName:MaterialAspect from Graphic3d) is redefined virtual;
219 ---Purpose: Allows you to provide settings for the material aName
220 -- in the reconstructed compound shape.
222 UnsetMaterial(me:mutable) is redefined virtual;
223 --- Purpose: Removes settings for material in the reconstructed compound shape.
225 SetTransparency(me:mutable;aValue : Real from Standard=0.6) is redefined virtual;
226 ---Purpose: Sets the value aValue for transparency in the reconstructed compound shape.
228 UnsetTransparency(me:mutable) is redefined virtual;
229 ---Purpose: Removes the setting for transparency in the reconstructed compound shape.
231 BoundingBox(me:mutable) returns Box from Bnd is virtual;
232 ---Purpose: Constructs a bounding box with which to reconstruct
233 -- compound topological shapes for presentation.
234 ---C++: return const &
236 Color(me) returns NameOfColor from Quantity is redefined;
237 ---Purpose: Returns the NameOfColor attributes of the shape accordingly to
238 -- the current facing model;
240 Color(me; aColor: out Color from Quantity) is redefined;
241 ---Purpose: Returns the Color attributes of the shape accordingly to
242 -- the current facing model;
244 Material(me) returns NameOfMaterial from Graphic3d is redefined;
245 ---Purpose: Returns the NameOfMaterial attributes of the shape accordingly to
246 -- the current facing model;
248 Transparency(me) returns Real from Standard is redefined;
249 ---Purpose: Returns the transparency attributes of the shape accordingly to
250 -- the current facing model;
256 SelectionType(myclass; aDecompositionMode : Integer from Standard)
257 returns ShapeEnum from TopAbs;
258 ---Purpose: Activates the same TopAbs shape enumerations as
259 -- those used by SelectionMode assigning a type to the mode aDecompositionMode.
261 SelectionMode(myclass; aShapeType : ShapeEnum from TopAbs)
262 returns Integer from Standard;
263 ---Purpose: Establishes an equivalence between a mode and the
264 -- type, aShapeType, of selection. The correspondences are as follows:
272 -- - mode 7 - Compsolid
273 -- - mode 8 - Compound
275 LoadRecomputable(me:mutable;TheMode : Integer from Standard) is static private;
277 Compute(me : mutable;
278 aProjector : Projector from Prs3d;
279 aPresentation : mutable Presentation from Prs3d;
280 ashape : Shape from TopoDS) is static private;
282 GetDeflection(myclass; aShape : Shape from TopoDS;
283 aDrawer : Drawer from Prs3d)
284 returns Real from Standard;
286 DisplayBox(myclass; aPrs : Presentation from Prs3d;
288 aDrawer : Drawer from Prs3d) is protected;
292 myshape : Shape from TopoDS is protected;
293 myBB : Box from Bnd is protected;
294 myCompBB : Boolean from Standard is protected;
295 myInitAng : Real from Standard;