0024837: Visualization - revise design and implementation of connected Interactive...
[occt.git] / src / AIS / AIS_MultipleConnectedInteractive.cdl
1 -- Created on: 1997-04-22
2 -- Created by: Guest Design
3 -- Copyright (c) 1997-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 MultipleConnectedInteractive from AIS inherits InteractiveObject from AIS
18
19     
20     ---Purpose: Defines an Interactive Object by gathering together
21     -- several object presentations. This is done through a
22     -- list of interactive objects. These can also be
23     -- Connected objects. That way memory-costly
24     -- calculations of presentation are avoided.
25         
26         
27 uses
28
29
30     TypeOfPresentation3d   from PrsMgr,
31     InteractiveObject      from AIS,
32     Boolean                from Standard,
33     SequenceOfInteractive  from AIS,
34     KindOfInteractive      from AIS,
35     PresentationManager3d  from PrsMgr,
36     Presentation           from Prs3d,
37     Projector             from Prs3d,
38     Transformation        from Geom,
39     Integer                from Standard,
40     Selection              from SelectMgr,
41     Trsf                  from gp
42
43 is 
44     
45
46     Create
47     returns  MultipleConnectedInteractive  from  AIS;
48     ---Purpose: Initializes the Interactive Object with multiple
49     -- connections to AIS_Interactive objects.
50     
51     Connect(me             : mutable; 
52             theInteractive : InteractiveObject from AIS);
53     ---Purpose: Adds instance of theInteractive to child list.
54
55     Connect(me:mutable;
56             anotherIobj: InteractiveObject from AIS;
57             aLocation : Trsf from gp) is virtual;
58         ---Purpose: Establishes the connection between the Connected
59         -- Interactive Object, anotherIobj, and its reference.
60         -- Locates instance in aLocation.
61
62     Type(me) returns KindOfInteractive from AIS
63     is redefined virtual;         
64
65     Signature(me) returns Integer from Standard
66     is redefined virtual;
67
68     HasConnection(me) returns Boolean from Standard;
69     ---Purpose: Returns true if the object is connected to others.
70    
71     Disconnect(me             : mutable;
72                theInteractive : InteractiveObject from AIS);
73     ---Purpose:  Removes the connection with theInteractive.
74
75     DisconnectAll(me:mutable);
76     ---Purpose: Clears all the connections to objects.
77     
78     Compute(me:mutable;
79             aPresentationManager :         PresentationManager3d from PrsMgr;
80             aPresentation        : Presentation          from Prs3d;
81             aMode                :         Integer               from Standard = 0)
82     ---Level: Internal 
83     ---Purpose: this method is redefined virtual;
84     --          when the instance is connected to another
85     --          InteractiveObject,this method doesn't
86     --          compute anything, but just uses the 
87     --          presentation of this last object, with
88     --          a transformation if there's one stored. 
89     is redefined virtual protected; 
90
91     Compute(me            : mutable;
92             aProjector    : Projector from Prs3d;
93             aTrsf         : Transformation from Geom;
94             aPresentation : Presentation from Prs3d)
95     is redefined;
96     ---Purpose: computes the presentation according to a point of view
97     --          given by <aProjector>. 
98     --          To be Used when the associated degenerated Presentations 
99     --          have been transformed by <aTrsf> which is not a Pure
100     --          Translation. The HLR Prs can't be deducted automatically
101     --          WARNING :<aTrsf> must be applied
102     --           to the object to display before computation  !!!
103
104     Compute(me:mutable;
105                 aProjector: Projector from Prs3d;
106                 aPresentation: Presentation from Prs3d)
107     is redefined ;
108
109     AcceptShapeDecomposition(me) returns Boolean from Standard is redefined virtual;
110         ---C++: inline
111         ---Purpose:  Informs the graphic context that the interactive Object
112         -- may be decomposed into sub-shapes for dynamic selection.
113
114
115     ComputeSelection(me:mutable; aSelection : Selection from SelectMgr;
116                                  aMode      :        Integer   from Standard)
117     is redefined virtual private;
118         ---Purpose:  Computes the selection for whole subtree in scene hierarchy.
119
120
121
122     
123 end MultipleConnectedInteractive;