summaryrefslogtreecommitdiff
path: root/src/AIS2D/AIS2D_InteractiveObject.cdl
blob: f45af6699022866472a54f020bb4c375938d4431 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
-- File     : AIS2D_InteractiveObject.cdl
-- Created  : 07 April  2000
-- Author   : Tanya COOL
---Copyright: Matra Datavision 2000

class InteractiveObject from AIS2D inherits GraphicObject from Graphic2d

   ---Purpose: Class Interactive Object defines a class of objects
   --          with display and selection services. 
   -- Using visualization and selection machanisms,
   -- interactive objects are used to display datum, curves,
   -- shapes, markers, dimensions, etc. Interactive objects
   -- also provide links to the interactive context.

uses

   Primitive             from Graphic2d,
   TypeOfDetection       from AIS2D,
   KindOfIO              from AIS2D,
   InteractiveContext    from AIS2D,
   Drawer                from Prs2d,
   AspectRoot            from Prs2d,
   AspectName            from Prs2d,
   DataMapOfPrimAspects  from AIS2D,
   HSequenceOfPrimArchit from AIS2D,
   AsciiString           from TCollection,
   FStream               from Aspect,
   IFStream              from Aspect

is

   Create returns mutable InteractiveObject from AIS2D;
   ---Purpose: Initialize the Interactive Object

   --------------------------------------------------------------------
   ---Category: Methods for attributes management

   Attributes( me ) returns Drawer from Prs2d;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns the attributes settings
   
   SetAttributes( me: mutable; aDrawer: Drawer from Prs2d ) is virtual;
   ---Level: Public
   ---Purpose: Initializes the drawing tool <aDrawer>

   UnsetAttributes( me: mutable ) is virtual;
   ---Level: Public
   ---Purpose: Clears settings provided by the drawing tool <aDrawer>

   SetAspect( me: mutable; anAspect: AspectRoot from Prs2d );
   ---Level: Public
   ---Purpose: Sets the attributes from Aspect <anAspect>
   --          to all primitives appropriate this Aspect.

   SetAspect( me: mutable; anAspect: AspectRoot from Prs2d;
              aPrimitive: Primitive from Graphic2d );
   ---Level: Public
   ---Purpose: Sets the attributes from Aspect <anAspect>
   --          to primitive <aPrimitive>
   --          Method works only for objects are linked
   --          with InteractiveContext

   GetAspect( me; aPrimitive: Primitive from Graphic2d ) 
         returns AspectRoot from Prs2d;
   ---Level: Public
   ---Purpose: Returns Aspect for primitive <aPrimitive> 
   --          Method works only for objects are linked
   --          with InteractiveContext

   HasAspect( me; aPrimitive: Primitive from Graphic2d ) 
               returns Boolean from Standard;
   ---Level: Public;
   ---Purpose: Returns true if primitive <aPrimitive> 
   --          is linked with an aspect
   --------------------------------------------------------------------
   ---Category: Link To InteractiveContext

   HasInteractiveContext( me ) returns Boolean from Standard;
   ---Level: Public
   ---Purpose: Indicates whether the Interactive Object has a pointer 
   --          to an interactive context.
    
   GetContext( me ) returns InteractiveContext from AIS2D;
   ---Level: Public
   ---Purpose: Returns the context pointer to the interactive context.
    
   SetContext( me:mutable; aCntx : InteractiveContext from AIS2D ) is virtual;
   ---Level: Public
   ---Purpose: Places a link to <aCnTx>. The drawer of AIS2D_InteractiveObject 
   --          is connected to the Default Drawer Of <aCntx>.
   --          That Means that this method has to be redefined if
   --          computations depend on drawer values.

       
   --------------------------------------------------------------------
   ---Category: Methods for display modes management

   DisplayMode( me ) returns Integer;
   ---C++: inline
   ---Level: Public
   ---Purpose: Indicates the display mode of the Interactive Object

   HasDisplayMode ( me ) returns Boolean from Standard;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns True if the Interactive Object has 
   --          a display mode setting. Otherwise, it is 
   --          displayed in Neutral Point.

   SetDisplayMode( me: mutable; aMode: Integer from Standard );
   ---C++: inline
   ---Level: Public
   ---Purpose: Allows to provide a setting <aMode> for an 
   --          Interactive Object's display mode.

   UnsetDisplayMode( me: mutable );
   ---C++: inline
   ---Level: Public
   ---Purpose: Removes display mode settings from the Interactive object

   DefaultDisplayMode( me ) returns Integer from Standard is virtual;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns the default display mode. This method is to be 
   --          implemented when the main mode is not mode 0.

   AcceptDisplayMode( me; aMode: Integer from Standard ) returns Boolean from  Standard is virtual;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns true if the class of objects accepts the display mode <aMode>
 
   --------------------------------------------------------------------
   ---Category: Methods for highlight modes management

   HighlightMode( me ) returns TypeOfDetection from AIS2D;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns the setting for highlight mode.

   HasHighlightMode( me ) returns Boolean from Standard;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns true if the Interactive Object is in highlight mode

   SetHighlightMode( me: mutable; aMode: TypeOfDetection from AIS2D );
   ---C++: inline
   ---Level: Public
   ---Purpose: Allows to provide settings for highlight mode.

   UnsetHighlightMode( me: mutable );
   ---C++: inline
   ---Level: Public
   ---Purpose: Removes settings for highlight mode

   DefaultHighlightMode( me ) returns TypeOfDetection from AIS2D is virtual;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns the default highlight mode
  
   --------------------------------------------------------------------
   ---Category: Methods for selection modes management
   --------------------------------------------------------------------

   SelectionMode( me ) returns Integer from Standard;
   ---C++: inline
   ---Level: Public
   ---Purpose: Indicates the selection mode of the Interactive Object

   HasSelectionMode( me ) returns Boolean from Standard;
   ---C++: inline
   ---Level: Public
   ---Purpose: Allows you to change the selection mode of an Interactive Object

   SetSelectionMode( me: mutable; aMode: Integer from Standard );
   ---C++: inline
   ---Level: Public
   ---Purpose: Allows to provide a setting <aMode> for an 
   --          Interactive Object's selection mode.

   UnsetSelectionMode( me: mutable );
   ---C++: inline
   ---Level: Public
   ---Purpose: Removes settings for selection mode

   DefaultSelectionMode( me ) returns Integer from Standard is virtual;
   ---C++: inline
   ---Level: Public
   ---Purpose: Returns the default selection mode

   PrimitiveExist( me; aName: AspectName from Prs2d ) 
        returns Boolean from Standard is private;
   ---Level: Internal

   State( me ) returns Integer from Standard; 
   ---C++: inline
   ---Level: Internal
   ---Purpose: 

   SetState( me: mutable; aState: Integer from Standard );
   ---C++: inline
   ---Level: Internal
   ---Purpose: 

   SelectPrimitive (me : mutable; anIndex: Integer from Standard;   
    	    	    	    	  append:  Boolean  from  Standard );
   ---Level: Public
   ---Purpose:  Selects primitive  with  index( TOD_PRIMITIVE  mode  only  )  
 
   AddDetectPrim( me: mutable; aPrim: Primitive from Graphic2d; 
                               anInd: Integer from Standard ) is private;
   ---Level: Internal
   ---Purpose: 

   AddSelectPrim( me: mutable; aPrim: Primitive from Graphic2d; 
                               anInd: Integer from Standard ) is private;
   ---Level: Internal
   ---Purpose: 

   RemoveSelectPrim( me: mutable; aPrim: Primitive from Graphic2d; 
                     anInd: Integer from Standard ) is private;
   ---Level: Internal
   ---Purpose: 

   SetSelSeqPrim( me: mutable; aSeq: HSequenceOfPrimArchit from AIS2D ) is private;
   ---Level: Internal
   ---Purpose: 

   ClearSeqDetPrim( me: mutable ) is private;
   ---Level: Internal
   ---Purpose: 

   ClearSeqSelPrim( me: mutable ) is private;
   ---Level: Internal
   ---Purpose: 

   GetDetectSeqPrim( me ) returns HSequenceOfPrimArchit from AIS2D is private;
   ---Level: Internal
   ---Purpose: 

   GetSelectedSeqPrim( me ) returns HSequenceOfPrimArchit from AIS2D  is private;
   ---Level: Internal
   ---Purpose:

   --------------------------------------------------------------------
   
   Save(me; aFStream: in out FStream from Aspect) is virtual;
   Retrieve(me; anIFStream: in out IFStream from Aspect) is virtual;

fields

   myICTX              : InteractiveContext    from AIS2D;
   myDrawer            : Drawer                from Prs2d is protected;
   myDisplayMode       : Integer               from Standard;
   myHighlightMode     : TypeOfDetection       from AIS2D is protected;
   mySelectionMode     : Integer               from Standard;
   myAspects           : DataMapOfPrimAspects  from AIS2D;
   myState             : Integer               from Standard;
   myDetectedPrimSeq   : HSequenceOfPrimArchit from AIS2D;
   mySelectedPrimSeq   : HSequenceOfPrimArchit from AIS2D;
   
friends

  class InteractiveContext from AIS2D

end InteractiveObject;