0024307: TKOpenGl - efficient culling of large number of presentations
[occt.git] / src / Prs3d / Prs3d_Presentation.cdl
1 -- Created on: 1992-08-26
2 -- Created by: Jean Louis FRENKEL
3 -- Copyright (c) 1992-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 -- Modified:    GG IMP020200 Add Transformation() method
18
19
20 class Presentation from Prs3d inherits Structure from Graphic3d
21
22         ---Purpose: Defines a presentation object which can be displayed,
23         -- highlighted or erased.
24         -- The presentation object stores the results of the
25         -- presentation algorithms as defined in the StdPrs
26         -- classes and the Prs3d classes inheriting Prs3d_Root.
27         -- This presentation object is used to give display
28         -- attributes defined at this level to
29         -- ApplicationInteractiveServices classes at the level above.
30       -- A presentation object is attached to a given Viewer.
31         
32 uses
33         Array2OfReal            from TColStd,
34     DataStructureManager from Graphic3d,
35     Structure            from Graphic3d,
36     StructureManager     from Graphic3d,
37     Group                from Graphic3d,
38     Transformation       from Geom,
39     NameOfColor          from Quantity,
40     Length               from Quantity,
41     ShadingAspect        from Prs3d
42     
43 is
44
45   Create (theStructManager : StructureManager from Graphic3d;
46           theToInit        : Boolean          from Standard = Standard_True)
47   ---Purpose: Constructs a presentation object
48   -- if <Init> is false, no color initialization is done.
49   returns Presentation from Prs3d;
50
51   Create (theStructManager : StructureManager from Graphic3d;
52           thePrs           : Presentation     from Prs3d)
53   ---Purpose: Constructs a presentation object.
54   returns Presentation from Prs3d;
55
56     Compute(me : mutable; aProjector: DataStructureManager from Graphic3d)
57     returns Structure from Graphic3d
58     is redefined virtual;
59
60         Compute ( me    : mutable;
61                   aProjector    : DataStructureManager from Graphic3d;
62                   AMatrix       : Array2OfReal from TColStd )
63                 returns Structure from Graphic3d is redefined virtual;
64         ---Level: Advanced
65         ---Purpose: Returns the new Structure defined for the new visualization
66         ---Category: Methods to modify the class definition
67
68         Compute ( me    : mutable;
69                   aProjector    : DataStructureManager from Graphic3d;
70                   aStructure    : in out Structure from Graphic3d )
71                 is redefined virtual;
72         ---Level: Advanced
73         ---Purpose: Returns the new Structure defined for the new visualization
74         ---Category: Methods to modify the class definition
75
76         Compute ( me    : mutable;
77                   aProjector    : DataStructureManager from Graphic3d;
78                   AMatrix       : Array2OfReal from TColStd;
79                   aStructure    : in out Structure from Graphic3d )
80                 is redefined virtual;
81         ---Level: Advanced
82         ---Purpose: Returns the new Structure defined for the new visualization
83         ---Category: Methods to modify the class definition
84
85
86 ---Category: Highlighting methods.
87 --           
88     Highlight(me: mutable) is static;
89         ---Purpose: displays the whole content of the presentation in white.
90     Color(me: mutable; aColor: NameOfColor from Quantity) is static;
91         ---Purpose: displays the whole content of the presentation in the specified color.
92     BoundBox(me: mutable) is static;
93
94     SetIsForHighlight (me             : mutable;
95                        isForHighlight : Boolean from Standard)
96         is virtual;
97     ---Purpose: marks the structure <me> representing wired structure needed for
98     --          highlight only so it won't be added to BVH tree.
99
100 ---Category: Global modification methods.
101     SetShadingAspect(me: mutable; aShadingAspect: ShadingAspect from Prs3d);
102     
103 ---Category: Inquire methods.
104     IsPickable(me) returns Boolean from Standard;
105     
106 ---Category: Transformation methods.
107     Transform   (me: mutable; aTransformation: Transformation from Geom);
108     Place       (me: mutable; X,Y,Z: Length from Quantity);
109
110     Multiply    (me: mutable; aTransformation: Transformation from Geom); 
111     Move        (me: mutable; X,Y,Z: Length from Quantity);
112     Transformation   (me) returns Transformation from Geom;
113
114     Connect(me: mutable; aPresentation: Presentation from Prs3d);
115     
116     Remove (me: mutable; aPresentation: Presentation from Prs3d);
117     RemoveAll (me: mutable);
118
119     SetPickable(me: mutable) is static;
120     SetUnPickable(me: mutable) is static;
121
122     CurrentGroup(me) returns Group from Graphic3d is static private;
123
124 friends
125
126   class Root from Prs3d
127
128 end Presentation;