0023024: Update headers of OCCT files
[occt.git] / src / AIS / AIS_InteractiveObject.cdl
1 -- Created on: 1996-12-11
2 -- Created by: Robert COUBLANC
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
21 --   GG  :  GER61351 17/11/1999 Change SetColor() with a compatible 
22 --              Quantity_Color instead the restricted NameOfColor.
23 --          Add SetCurrentFacingModel() methods
24 --   EUG :  G003 05/11/1999 Degeneration mode support
25 --              Add SetDegenerateModel() methods
26 --   GG :   IMP140100 Add HasPresentation() and Presentation() methods
27 --                    Add SetAspect() method
28 --   SAN :  OCC4895 22/03/04 High-level interface for controlling polygon offsets
29
30
31 deferred class InteractiveObject from AIS inherits SelectableObject from SelectMgr
32
33         ---Purpose: 
34         -- Defines a class of objects with display and selection services.
35         -- Entities which are visualized and selected are
36         -- Interactive Objects. You can make use of classes of
37         -- standard Interactive Objects for which all necessary
38         -- methods have already been programmed, or you can
39         -- implement your own classes of Interactive Objects.
40         -- Specific attributes of entities such as arrow aspect for
41         -- dimensions must be loaded in a Drawer. This Drawer
42         -- is then applied to the Interactive Object in view.
43         -- There are four types of Interactive Object in AIS: the
44         -- construction element or Datum, the Relation, which
45         -- includes both dimensions and constraints, the Object,
46         -- and finally, when the object is of an unknown type, the None type.
47         -- Inside these categories, a signature, or index,
48         -- provides the possibility of additional characterization.
49         -- By default, the Interactive Object has a None type
50         -- and a signature of 0. If you want to give a particular
51         -- type and signature to your interactive object, you must
52         -- redefine the methods, Signature and Type.
53         -- Warning
54         -- In the case of attribute methods, methods for
55         -- standard attributes are virtual. They must be
56         -- redefined   by the inheriting classes. Setcolor for a
57         -- point and Setcolor for a plane, for example, do not
58         -- affect the same attributes in the Drawer.
59
60 uses
61     Trsf                 from gp,
62     NameOfColor          from Quantity,
63     Color                from Quantity,
64     Ratio                from Quantity,
65     ListOfTransient      from TColStd,
66     ListOfInteger        from TColStd,
67     Box                  from Bnd,
68     NameOfMaterial       from Graphic3d,
69     MaterialAspect       from Graphic3d,
70     Drawer               from AIS,
71     PToContext           from AIS,
72     TypeOfPresentation3d from PrsMgr,
73     InteractiveContext   from AIS,
74     KindOfInteractive    from AIS,
75     TypeOfFacingModel    from Aspect,
76     TypeOfDegenerateModel from Aspect,
77     Transformation       from Geom,
78     Presentation         from Prs3d,
79     BasicAspect          from Prs3d,
80     -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
81     PresentationManager  from PrsMgr,
82     Presentation         from PrsMgr
83     -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
84
85 is
86     Initialize (aTypeOfPresentation3d: TypeOfPresentation3d from PrsMgr = PrsMgr_TOP_AllView) ;
87         ---Purpose: The TypeOfPresention3d means that the interactive object
88         --          may have a presentation dependant of the view of Display
89     
90
91     
92             ---Category: Virtual methods to be redefined...
93         
94     Type     (me) returns KindOfInteractive from AIS is virtual;
95         ---Purpose:
96         -- Returns the kind of Interactive Object:
97         -- -   None
98         -- -   Datum
99         -- -   Relation
100         -- -   Object
101         --   By default, the   interactive object has a None type.
102         -- Because specific shapes entail different behavior
103         -- according to their sub-shapes, you may need to
104         -- create a Local Context. This will allow you to
105         -- specify the additional characteristics which you
106         -- need to handle these shapes.
107     
108     Signature(me) returns Integer from Standard is virtual;
109         ---Purpose: Specifies additional characteristics of Interactive
110         -- Objects. A signature is, in fact, an index with integer
111         -- values assigned different properties.
112         -- This method is frequently used in conjuction with
113         -- Type to give a particular type and signature to an
114         -- Interactive Object. By default, the Interactive Object
115         -- has a None type and a signature of 0. Among the
116         -- datums, this signature is attributed to the shape
117         -- The remaining datums have the following default signatures:
118         -- -   Point                   signature 1
119         -- -   Axis                     signature 2
120         -- -   Trihedron                signature 3
121         -- -   PlaneTrihedron            signature 4
122         -- -   Line                     signature 5
123         -- -   Circle                  signature 6
124         -- -   Plane                   signature 7.
125     
126         
127     AcceptShapeDecomposition(me) returns Boolean from Standard is virtual;
128         ---C++: inline
129         ---Purpose:  Informs the graphic context that the interactive Object
130         -- may be decomposed into sub-shapes for dynamic selection.
131         -- The most used Interactive Object is AIS_Shape.
132         -- Activation methods for standard selection modes are
133         -- proposed in the Interactive Context. These include
134         -- selection by vertex or by edges. For datums with the
135         -- same behavior as AIS_Shape, such as vetices and
136         -- edges, we must redefine the virtual method so that
137         -- AcceptShapeDecomposition returns false.
138             --      Rule for selection : 
139             --        Mode 0 :  Selection of  the interactive Object itself
140             --        Mode 1 :  Selection of vertices
141             --        Mode 2 :  Selection Of Edges
142             --        Mode 3 :  Selection Of Wires
143             --        Mode 4 :  Selection Of Faces ... 
144     
145
146     SetCurrentFacingModel(me: mutable;
147                aModel: TypeOfFacingModel from Aspect = Aspect_TOFM_BOTH_SIDE);
148         ---Purpose: change the current facing model apply on polygons for
149         -- SetColor(), SetTransparency(), SetMaterial() methods
150         -- default facing model is Aspect_TOFM_TWO_SIDE. This mean that attributes is
151         -- applying both on the front and back face.
152
153     CurrentFacingModel(me) returns TypeOfFacingModel from Aspect;
154         ---Purpose: Returns the current facing model which is in effect.
155
156     SetColor(me:mutable;aColor:Color from Quantity) is virtual;
157
158     SetColor(me:mutable;aColor:NameOfColor from Quantity) is virtual;
159         ---Purpose: only the interactive obj knowns which Drawer attribute
160         --          is  affected by the color  (ex:  for a  wire, it's the
161         --          wireaspect field of the drawer, but  for a vertex, only
162         --          the point aspect field is affected by the color)
163         --          WARNING : Do not forget to set the corresponding fields
164         --          here (hasOwnColor and myOwnColor)
165     
166     UnsetColor(me:mutable) is virtual;
167         ---Purpose: Removes color settings. Only the Interactive Object
168         -- knows which Drawer attribute is   affected by the color
169         -- setting. For a wire, for example, wire aspect is the
170         -- attribute affected. For a vertex, however, only point
171         -- aspect is affected by the color setting.
172  
173     SetWidth(me:mutable; aValue:Real from Standard) is virtual;
174         ---Purpose: Allows you to provide the setting aValue for width.
175         -- Only the Interactive Object knows which Drawer
176         -- attribute is affected by the width setting.
177
178     UnsetWidth(me:mutable) is virtual;
179     
180     AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from  Standard is virtual;
181         ---Purpose: Returns true if the class of objects accepts the display mode aMode.
182         -- The interactive context can have a default mode of
183         -- representation for the set of Interactive Objects. This
184         -- mode may not be accepted by a given class of
185         -- objects. Consequently, this virtual method allowing us
186         -- to get information about the class in question must be implemented.
187     DefaultDisplayMode(me) returns Integer from Standard is virtual;
188         ---Purpose: Returns the default display mode. This method is to
189         -- be implemented when the main mode is not mode 0.
190
191
192     Redisplay (me:mutable; AllModes:Boolean from Standard =Standard_False); 
193         ---Purpose: Updates the active presentation; if <AllModes> = Standard_True
194         --          all the presentations inside are recomputed. 
195     
196
197     SetInfiniteState(me:mutable;aFlag:Boolean from Standard = Standard_True);
198         ---Purpose: Sets the infinite state flag aFlage.
199         -- if   <aFlag>   = True  ,  the   interactiveObject  is
200         --          considered as infinite, i.e. its graphic presentations
201         --          are not taken in account for View FitAll...
202     
203     IsInfinite(me) returns Boolean from Standard;
204         ---C++: inline
205         ---Purpose:
206         -- Returns true if the interactive object is infinite. In this
207         -- case, its graphic presentations are not taken into
208         -- account in the fit-all view.
209
210    
211                     ---Category: Link To InteractiveContext
212
213     HasInteractiveContext(me) returns Boolean from Standard;
214         ---Purpose: Indicates whether the Interactive Object has a pointer
215         -- to an interactive context.
216         
217     GetContext(me) returns InteractiveContext from AIS;
218         ---Purpose: Returns the context pointer to the interactive context.
219         
220     SetContext(me:mutable; aCtx : InteractiveContext from AIS) is virtual;
221         ---Purpose:  Sets the interactive context aCtx and provides a link
222         -- to the default drawing tool or "Drawer" if there is none.
223     
224     HasOwner (me) returns Boolean from Standard;
225         ---Purpose: Returns true if the object has an owner attributed to it.
226         -- The owner can be a shape for a set of sub-shapes or
227         -- a sub-shape for sub-shapes which it is composed of,
228         -- and takes the form of a transient.
229         
230     GetOwner (me) returns any Transient from Standard;
231         ---Purpose: Returns the owner of the Interactive Object.
232         -- The owner can be a shape for a set of sub-shapes or
233         -- a sub-shape for sub-shapes which it is composed of,
234         -- and takes the form of a transient.
235         -- There are two types of owners:
236         -- -   Direct owners, decomposition shapes such as
237         --   edges, wires, and faces.
238         -- -   Users, presentable objects connecting to sensitive
239         --   primitives, or a shape which has been decomposed.
240         ---C++: inline
241         ---C++: return const&
242     
243     
244     
245     SetOwner (me                : mutable; 
246               ApplicativeEntity : Transient from  Standard);
247         ---Purpose: Allows you to attribute the owner ApplicativeEntity to
248         -- an Interactive Object. This can be a shape for a set of
249         -- sub-shapes or a sub-shape for sub-shapes which it
250         -- is composed of. The owner takes the form of a transient.
251         ---C++: inline
252          
253     ClearOwner(me:mutable);    
254         ---Purpose: Each Interactive Object has methods which allow us
255         -- to attribute an Owner to it in the form of a Transient.
256         -- This method removes the owner from the graphic entity.    
257     
258     
259     HasUsers(me) returns Boolean from Standard;
260     
261     Users(me) returns ListOfTransient from TColStd;
262         ---C++: inline
263         ---C++: return const&
264     
265     
266     AddUser(me:mutable; aUser : Transient from Standard);
267     
268     ClearUsers(me:mutable);
269     
270     
271     
272                 ---Category: "STANDARD" LOCAL ATTRIBUTES :
273                 --           
274                 --           -Local DisplayMode
275                 --           -Color
276                 --           -width of lines or points
277                 --           -typeOfLine or Marker Aspect
278                 --           -material name (if needed)
279                 --           -transparency (if needed)
280                 --           
281                 --           Specific attributes of entities (such  as
282                 --           arrow  aspect   for dimensions)   must be
283                 --           loaded in a  Drawer; this drawer  is then
284                 --           applied to InteractiveObject   WARNING  :
285                 --           Here the  Methods for standard attributes
286                 --           are virtual and  do nothing  they must be
287                 --           redefined  by the  inheriting     classes
288                 --           (setcolor for a  point and setcolor for a plane
289                 --           don't affect the same attributes in the Drawer)
290     
291
292     HasDisplayMode (me)
293     returns Boolean from Standard;
294         ---Purpose:
295         -- Returns true if the Interactive Object has a display
296         -- mode setting. Otherwise, it is displayed in Neutral Point.
297         ---C++: inline
298
299     SetDisplayMode(me : mutable; aMode : Integer from Standard);
300         ---Purpose: Sets the display mode aMode for the interactive object.
301         -- An object can have its own temporary display mode,
302         -- which is different from that proposed by the interactive context.
303         -- The range of possibilities currently proposed is the following:
304         -- -   AIS_WireFrame
305         -- -   AIS_Shaded
306         -- -   AIS_QuickHLR
307         -- -   AIS_ExactHLR
308         --   This range can, however, be extended through the creation of new display modes.
309     
310     UnsetDisplayMode(me : mutable);
311         ---Purpose: Removes display mode settings from the interactive object.
312         ---C++: inline
313
314     DisplayMode(me)
315     returns Integer;
316         ---C++: inline
317         ---Purpose: Returns the display mode setting of the Interactive Object.
318         -- The range of possibilities is the following:
319         -- -   AIS_WireFrame
320         -- -   AIS_Shaded
321         -- -   AIS_QuickHLR
322         -- -   AIS_ExactHLR
323         --   This range can, however, be extended through the
324         -- creation of new display modes.
325
326
327     HasSelectionMode(me) returns Boolean from Standard;
328         ---Purpose: Allows you to change the selection mode of an
329         -- Interactive Object.
330         -- The default selection mode setting is 0.
331         -- For shapes, for example, the selection modes are as follows:
332         -- -   mode 0 - selection of the shape itself
333         -- -   mode 1 - selection of vertices
334         -- -   mode 2 - selection of edges
335         -- -   mode 3 - selection of wires
336         -- -   mode 4 - selection of faces
337         -- -   mode 5 - selection of shells
338         -- -   mode 6 - selection of solids
339         -- -   mode 7 - selection of compounds
340         --   For trihedra, on the other hand, the selection modes are the following four:
341         -- -   mode 0 - selection of a trihedron
342         -- -   mode 1 - selection of its origin
343         -- -   mode 2 - selection of its axes
344         -- -   mode 3 - selection of its planes    
345     
346     SelectionMode(me) returns Integer from Standard;
347         ---Purpose: Returns the selection mode of the interactive object.    
348     
349     SetSelectionMode(me:mutable; aMode: Integer from Standard);
350         ---Purpose: You can change the default selection mode index
351         -- aMode of an Interactive Object.
352         -- This is only of interest if you decide that mode 0
353         -- adopted by convention will not do.    
354     
355     UnsetSelectionMode(me:mutable);
356         ---Purpose: You can change the default selection mode index of
357         -- an Interactive Object.
358         -- This is only of interest if you decide that the 0 mode
359         -- adopted by convention will not do.
360         ---C++: inline
361
362     
363     SelectionPriority(me) returns Integer from Standard;
364         ---C++: inline
365         ---Purpose: Returns the selection priority setting. -1 indicates that there is none.
366         -- You can modify the selection priority of an owner to
367         -- make one entity more selectionable than another one.
368         -- The default selection priority for an owner is 5, for
369         -- example. To increase selection priority, choose a
370         -- setting between 5 and 10. An entity with priority 7 will
371         -- take priority over one with a setting of 6 if both
372         -- objects are selected at the same time.
373         -- You could give vertices priority 8, edges priority 7,
374         -- faces priority 6, and shapes priority 5. If a vertex, an
375         -- edge and a face are simultaneously detected during
376         -- selection, only the vertex will then be highlighted.
377         -- For trihedra, for example, the default priorities are the following four:
378         -- -   priority 1 - a trihedron
379         -- -   priority 5 - its origin
380         -- -   priority 3 - its axes
381         -- -   priority 2 - its planes
382         
383     SetSelectionPriority(me:mutable; aPriority : Integer from Standard); 
384         ---C++: inline
385         ---Purpose: Allows you to provide a setting aPriority for selection priority.
386         -- You can modify selection priority of an owner to make
387         -- one entity more selectionable than another one. The
388         -- default selection priority for an owner is 5, for
389         -- example. To increase selection priority, choose a
390         -- setting between 5 and 10. An entity with priority 7 will
391         -- take priority over one with a setting of 6.
392         
393     UnsetSelectionPriority(me:mutable);
394         ---C++: inline
395         ---Purpose: Removes the setting for selection priority. SelectionPriority then returns -1.
396         
397     HasSelectionPriority(me) returns Boolean from Standard;
398         ---C++: inline
399         ---Purpose: Returns true if there is a setting for selection priority.
400         -- You can modify selection priority of an owner to make
401         -- one entity more selectionable than another one. The
402         -- default selection priority for an owner is 5, for
403         -- example. To increase selection priority, choose a
404         -- setting between 5 and 10. An entity with priority 7 will
405         -- take priority over one with a setting of 6.
406
407     HasHilightMode(me) returns Boolean from Standard;
408         ---C++: inline
409         ---Purpose: Returns true if the Interactive Object is in highlight mode.
410  
411    HilightMode(me) returns Integer from Standard ;
412         ---C++: inline
413         ---Purpose: Returns the setting for highlight mode.
414         -- At dynamic detection, the presentation echoed by the
415         -- Interactive Context, is by default the presentation
416         -- already on the screen. You can specify a Highlight
417         -- presentation mode which is valid no matter what the
418         -- active representation of the object. It makes no
419         -- difference whether this choice is temporary or
420         -- definitive.   To do this, we use the following functions:
421         -- -   SetHilightMode
422         -- -   UnSetHilightMode
423         --   In the case of a shape, whether it is visualized in
424         -- wireframe presentation or with shading, we want to
425         -- systematically highlight the wireframe presentation.
426         -- Consequently, we set the highlight mode to 0.
427         
428     SetHilightMode(me:mutable;anIndex : Integer from Standard);
429         ---C++: inline
430         ---Purpose: Sets the highlight mode anIndex for the interactive object.
431         -- If, for example, you want to systematically highlight
432         -- the wireframe presentation of a shape - whether
433         -- visualized in wireframe presentation or with shading -
434         -- you set the highlight mode to 0.
435     
436     UnsetHilightMode(me:mutable);
437         ---C++: inline
438         ---Purpose: Allows the user to take a given Prs for hilight
439         --          ex : for a shape which would be displayed in shading mode
440         --          the hilight Prs is the wireframe mode.
441         --          if No specific hilight mode is defined, the displayed Prs
442         --          will be the hilighted one.    
443     
444     HasColor (me) returns Boolean from Standard;
445         ---C++: inline
446         ---Purpose: Returns true if the Interactive Object has color.
447             
448     Color(me) returns NameOfColor from Quantity is virtual;
449         ---C++: inline
450         ---Purpose: Returns the color setting of the Interactive Object.
451
452     Color(me; aColor: out Color from Quantity) is virtual;
453         ---C++: inline
454    
455     HasWidth(me) returns Boolean from Standard;
456         ---C++: inline
457         ---Purpose: Returns true if the Interactive Object has width.
458     
459     Width(me) returns Real from Standard ;
460         --- Purpose: Returns the width setting of the Interactive Object.   
461     
462     HasMaterial(me) returns Boolean from Standard ;
463         ---Purpose: Returns true if the Interactive Object has a setting for material.    
464     Material(me) returns NameOfMaterial from Graphic3d is virtual;
465         ---Purpose: Returns the current material setting.
466         -- This will be on of the following materials:
467         -- -   Brass
468         -- -   Bronze
469         -- -   Gold
470         -- -   Pewter
471         -- -   Silver
472         -- -   Stone.
473     
474     SetMaterial(me:mutable;aName:NameOfMaterial from Graphic3d) is virtual; 
475         ---Purpose: Sets the name aName for material defining this
476         -- display attribute for the interactive object.
477         -- Material aspect determines shading aspect, color and
478         -- transparency of visible entities.
479
480  
481     SetMaterial(me:mutable;aName:MaterialAspect from Graphic3d) is virtual; 
482         --- Purpose: Sets the material aMat defining this display attribute
483         -- for the interactive object.
484         -- Material aspect determines shading aspect, color and
485         -- transparency of visible entities.
486     
487     UnsetMaterial(me:mutable) is virtual;
488         ---Purpose: Removes the setting for material.
489
490     SetTransparency(me:mutable;aValue : Real from Standard=0.6) is virtual;
491         ---Purpose: Attributes a setting aValue for transparency.
492         -- The transparency value should be between 0.0 and 1.0.
493         -- At 0.0 an object will be totally opaque, and at 1.0, fully transparent.
494         -- Warning At a value of 1.0, there may be nothing visible.
495     
496     IsTransparent(me) returns Boolean from Standard;
497         ---C++: inline
498         ---Purpose: Returns true if there is a transparency setting.
499           
500     Transparency(me) returns Real from Standard is virtual;      
501         ---Purpose: Returns the transparency setting.
502         -- This will be between 0.0 and 1.0.
503         -- At 0.0 an object will be totally opaque, and at 1.0, fully transparent.
504         
505     UnsetTransparency(me:mutable) is virtual;   
506         ---Purpose: Removes the transparency setting. The object is opaque by default.
507     
508     SetAttributes(me:mutable; aDrawer: Drawer from AIS) is virtual; 
509         ---Purpose: Initializes the drawing tool aDrawer.
510     
511     Attributes(me) returns any Drawer from AIS;
512         ---C++: return const&
513         ---C++:  inline
514         ---Purpose: Returns the attributes settings.
515         
516     UnsetAttributes(me:mutable) is virtual;
517         ---Purpose: Clears settings provided by the drawing tool aDrawer.
518
519             ---Category: information about Prs to be recomputed
520             --           after local attributes change... to be removed...
521
522     RecomputeEveryPrs(me) returns Boolean is virtual private;
523
524     MustRecomputePrs(me;aMode : Integer from Standard) is  private;
525         
526     ListOfRecomputeModes(me)returns ListOfInteger from TColStd is private;
527         ---C++: return const&
528     SetRecomputeOk(me:mutable) is private;
529
530     -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
531     Fill(me: mutable; 
532          aPresentationManager: PresentationManager from PrsMgr;
533          aPresentation: mutable Presentation from PrsMgr;
534          aMode: Integer from Standard = 0)
535     is redefined protected;
536     -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
537
538
539     State(me:mutable;theState: Integer from Standard) ;
540         ---C++: inline
541     State(me) returns Integer from Standard ;
542         ---C++: inline
543
544     SetDegenerateModel ( me : mutable;
545                 aModel     : TypeOfDegenerateModel from Aspect =
546                                                 Aspect_TDM_WIREFRAME;
547                 aRatio : Ratio from Quantity = 0.0) is virtual;
548         ---Level: Public
549         ---Purpose: Sets the model of degeneration for the shaded representation 
550         --   according to the degenerate ratio >= 0. & <= 1. where :
551         --   <aRatio> = 0. indicate that all polygons of the object 
552         --      will be displayed.
553         --   <aRatio> = 1. indicate that no polygons will be displayed !!
554         --   When <ARatio> is > 0 & < 1. the corresponding amount
555         --   of object polygons will be displayed with a random method.
556         --  Warning: the degenerate structure is shown only when
557         --  the animation and degenerate flags are set to TRUE
558         --  in V3d_View::SetAnimationMode(..)
559         --  Category: Methods to manage the object degeneration
560
561     DegenerateModel ( me ;
562                 aRatio: out Ratio from Quantity ) 
563         returns TypeOfDegenerateModel from Aspect is virtual;
564         ---Level: Public
565         ---Purpose: returns the current degeneration model and ratio 
566         --  for the polygons
567         ---Category: Inquire methods
568
569     SetTransformation ( me : mutable;
570                 aTranformation: Transformation from Geom;
571                 postConcatenate: Boolean from Standard = Standard_False;
572                 updateSelection: Boolean from Standard = Standard_True)
573         is static;
574         ---Level: Public
575         ---Purpose: Transforms all presentations of the object
576         --  and replace the actual transformation matrix if <postConcatenate> is FALSE.
577         -- Note that the selection  must be updated only at the end of 
578         -- object animation when <updateSelection> is TRUE
579         ---Category: Transformation method
580
581     UnsetTransformation ( me : mutable )   
582         is static;
583         ---Level: Public
584         ---Purpose: Deactivate the current transformation
585         ---Category: Transformation method
586
587     Transformation ( me : mutable ) returns Transformation from Geom 
588         is static;
589         ---Level: Public
590         ---Purpose: Returns the current transformation associated
591         -- to the first available presentation of this object.
592         ---Category: Inquire transformation method
593
594     HasTransformation ( me ) returns Boolean from Standard
595         is static;
596         ---Level: Public
597         ---Purpose: Returns TRUE when this object is transformed
598         ---Category: Inquire transformation method
599
600     HasPresentation ( me ) returns Boolean from Standard
601         is static;
602         ---Level: Public
603         ---Purpose: Returns TRUE when this object has a presentation 
604         --          in the current DisplayMode()
605         ---Category: Inquire transformation method
606
607     Presentation ( me ) returns Presentation from Prs3d 
608         is static;
609         ---Level: Public
610         ---Purpose: Returns the current presentation of this object
611         --          according to the current DisplayMode()
612         ---Category: Inquire transformation method
613
614     SetAspect ( me : mutable; anAspect: any BasicAspect from Prs3d;
615                      globalChange: Boolean from Standard = Standard_True)
616         is static;
617         ---Level: Public
618         ---Purpose: Sets the graphic basic aspect to the current presentation.
619         --          When <globalChange> is TRUE , the full object presentation
620         --          is changed.
621         --          When <globalChange> is FALSE , only the current group
622         --          of the object presentation is changed.
623         ---Category: Graphic attributes management 
624
625     -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets
626     SetPolygonOffsets ( me : mutable;
627                 aMode   : Integer from Standard;
628                 aFactor : Real from Standard = 1.0;
629                 aUnits  : Real from Standard = 0.0 ) is virtual;
630         ---Level: Public
631         ---Purpose: Sets up polygon offsets for this object.
632         --          It modifies all existing presentations of <anObj> (if any),
633         --          so it is reasonable to call this method after <anObj> has been displayed.
634         --          Otherwise, Compute() method should pass Graphic3d_AspectFillArea3d 
635         --          aspect from <myDrawer> to Graphic3d_Group to make polygon offsets work.
636         --
637         --          <aMode> parameter can contain various combinations of 
638         --          Aspect_PolygonOffsetMode enumeration elements (Aspect_POM_None means
639         --          that polygon offsets are not changed).
640         --          If <aMode> is different from Aspect_POM_Off and Aspect_POM_None, then <aFactor> and <aUnits> 
641         --          arguments are used by graphic renderer to calculate a depth offset value:
642         --          
643         --          offset = <aFactor> * m + <aUnits> * r, where
644         --          m - maximum depth slope for the polygon currently being displayed,
645         --          r - minimum window coordinates depth resolution (implementation-specific).
646         -- 
647         --          Deafult settings for OCC 3D viewer: mode = Aspect_POM_Fill, factor = 1., units = 0.
648         --
649         --          Negative offset values move polygons closer to the viewport,
650         --          while positive values shift polygons away.
651         --          Consult OpenGL reference for details (glPolygonOffset function description).
652         --
653         --          NOTE: This method has a side effect - it creates own shading aspect
654         --          if not yet created, so it is better to set up object material, 
655         --          color, etc. first.
656         ---Category: Graphic attributes management
657
658     HasPolygonOffsets ( me ) 
659                 returns Boolean from Standard 
660                 is virtual;
661         ---Level: Public
662         ---Purpose: Returns Standard_True if <myDrawer> has non-null shading aspect
663         ---Category: Inquire methods
664
665     PolygonOffsets ( me;
666                 aMode   : out Integer from Standard;
667                 aFactor : out Real from Standard;
668                 aUnits  : out Real from Standard ) is virtual;
669         ---Level: Public
670         ---Purpose: Retrieves current polygon offsets settings from <myDrawer>.
671         ---Category: Inquire methods
672
673 fields
674
675     myCTXPtr : PToContext from AIS;
676
677     -- The reference to applicative World...
678
679     myOwner  : Transient from Standard;
680     myUsers  : ListOfTransient  from TColStd;
681
682     -- The Information Fields
683
684     myDrawer            : Drawer  from AIS is protected ;
685     myTransparency      : Real    from Standard is protected;
686  -- GER61351   myOwnColor          : NameOfColor from Quantity is protected;
687     myOwnColor          : Color from Quantity is protected;
688     myOwnMaterial       : NameOfMaterial from Graphic3d is protected;
689     ---myOwnMaterial       : NameOfPhysicalMaterial from Graphic3d is protected;
690     mySelPriority       : Integer from Standard;
691     myDisplayMode       : Integer from Standard ;
692     mySelectionMode     : Integer from Standard;
693     myHilightMode       : Integer from Standard is protected;
694     myOwnWidth          : Real    from Standard is protected;
695     myInfiniteState     : Boolean from Standard is protected;
696     hasOwnColor         : Boolean from Standard is protected;
697     hasOwnMaterial      : Boolean from Standard is protected ;
698     myCurrentFacingModel: TypeOfFacingModel from Aspect is protected;
699     
700     -- the management field (to be removed)... 
701     myRecomputeEveryPrs : Boolean from Standard is protected;
702     
703     myToRecomputeModes  : ListOfInteger from TColStd is protected;
704     mystate             : Integer from Standard;
705     myHasTransformation : Boolean from Standard;
706
707
708 friends
709     class InteractiveContext from AIS
710
711 end InteractiveObject;
712