0024835: Graphic structure for highlighting is not erased if presentable object for...
[occt.git] / src / PrsMgr / PrsMgr_Presentation.cdl
1 -- Created on: 1995-01-25
2 -- Created by: Jean-Louis Frenkel
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 under
9 -- the terms of the GNU Lesser General Public License 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 class Presentation from PrsMgr
18 inherits TShared from MMgt
19
20 uses 
21
22   PresentationManager from PrsMgr,
23   NameOfColor from Quantity,
24   Transformation from Geom,
25   Length from Quantity,
26   ShadingAspect from Prs3d,
27   TypeOfPresentation3d from PrsMgr,
28   DataStructureManager from Graphic3d,
29   Structure from Graphic3d,
30   PresentableObjectPointer from PrsMgr,PresentableObject from PrsMgr,
31   Prs from PrsMgr,
32   Projector from Prs3d,
33   Presentation from Prs3d
34
35 is
36
37   Create (thePresentationManager : PresentationManager from PrsMgr;
38           thePresentableObject   : PresentableObject   from PrsMgr)
39   returns mutable Presentation from PrsMgr
40   is private;
41
42   Destroy (me : mutable) is virtual;
43   ---Level: Public
44   ---Purpose: Destructor
45   ---C++:     alias ~
46
47   Display (me : mutable)
48   is virtual private;
49
50   Display (me : mutable;
51            theIsHighlight : Boolean from Standard)
52   is static private;
53   ---Purpose: Displays myStructure.
54
55   Erase (me : mutable)
56   is virtual private;
57
58   SetVisible (me       : mutable;
59               theValue : Boolean from Standard)
60   is virtual private;
61
62   Highlight (me : mutable) is virtual private;
63
64   Unhighlight (me) is virtual private;
65
66   IsHighlighted (me) returns Boolean from Standard
67   is virtual private;
68
69   IsDisplayed (me) returns Boolean from Standard
70   is virtual private;
71
72   DisplayPriority(me) returns Integer from Standard
73   is virtual private;
74
75   SetDisplayPriority(me:mutable;aNewPrior:Integer from Standard)
76   is virtual private;
77
78   SetZLayer (me         : mutable;
79              theLayerId : Integer from Standard)
80   is virtual private;
81   ---Purpose: Set Z layer ID for the presentation
82
83   GetZLayer (me) returns Integer from Standard
84   is virtual private;
85   ---Purpose: Get Z layer ID for the presentation
86
87   Clear (me : mutable)
88   is virtual private;
89   ---Purpose: removes the whole content of the presentation.
90   --          Does not remove the other connected presentations.
91
92   Color (me       : mutable;
93          theColor : NameOfColor from Quantity)
94   is virtual private;
95
96   BoundBox (me)
97   is static private;
98
99 ---Category: references to other presentation.
100
101   Connect (me;
102            theOther : Presentation from PrsMgr)
103   is static private;
104
105 ---Category: Transformation methods.
106
107   Transform (me;
108              theTrsf : Transformation from Geom)
109   is static private;
110
111   Place (me;
112          theX, theY, theZ : Length from Quantity)
113   is static private;
114
115   Multiply (me;
116             theTrsf : Transformation from Geom)
117   is static private;
118
119   Move (me;
120         theX, theY, theZ : Length from Quantity)
121   is static private;
122
123 ---Category: Global Aspect methods
124
125   SetShadingAspect (me;
126                     theShadingAspect : ShadingAspect from Prs3d)
127   is static private;
128
129   Presentation (me) returns mutable Presentation from Prs3d
130   is static;
131   ---C++: inline
132   ---C++: return const&
133
134 ---Category: Computed Structures
135
136   Compute (me           : mutable;
137            theStructure : Structure from Graphic3d)
138   is static private;
139
140   Compute (me           : mutable;
141            theProjector : DataStructureManager from Graphic3d)
142   returns Structure from Graphic3d
143   is static private;
144
145   Compute (me           : mutable;
146            theProjector : DataStructureManager from Graphic3d;
147            theTrsf      : Transformation from Geom)
148   returns Structure from Graphic3d
149   is static private;
150
151   Compute (me             : mutable;
152            theProjector   : DataStructureManager from Graphic3d;
153            theGivenStruct : Structure from Graphic3d)
154   is static private;
155
156   Compute (me             : mutable;
157            theProjector   : DataStructureManager from Graphic3d;
158            theTrsf        : Transformation from Geom;
159            theGivenStruct : Structure from Graphic3d)
160   is static private;
161
162 ---Category: Inquire Methods
163
164   PresentationManager (me) returns mutable PresentationManager
165   ---Purpose: returns the PresentationManager in which the presentation has been created.
166   is static;
167   ---C++: inline
168   ---C++: return const&
169
170   Projector (myclass;
171              theProjector : DataStructureManager from Graphic3d)
172   returns Projector from Prs3d
173   is private;
174
175 ---Category: Internal Methods
176
177   SetUpdateStatus (me      : mutable;
178                    theStat : Boolean from Standard);
179   ---C++: inline
180
181   MustBeUpdated (me) returns Boolean from Standard;
182   ---C++: inline
183
184 fields
185
186   myPresentationManager : PresentationManager from PrsMgr;
187   myStructure           : Prs from PrsMgr;
188   myPresentableObject   : PresentableObjectPointer from PrsMgr;
189   myMustBeUpdated       : Boolean from Standard;
190   myBeforeHighlightState: Integer from Standard;
191
192 friends
193
194   class PresentationManager from PrsMgr,
195   class PresentableObject   from PrsMgr,
196   class Prs                 from PrsMgr
197
198 end Presentation from PrsMgr;