0024837: Visualization - revise design and implementation of connected Interactive...
[occt.git] / src / AIS / AIS_LocalContext.cdl
1 -- Created on: 1996-09-04
2 -- Created by: Robert COUBLANC
3 -- Copyright (c) 1996-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     May  20th 98  :  
18 --              Modification in Management of selected entities 
19 --              Now we store the selected entity Owner in AIS_Selection.
20 --              (no more links with Session...)
21 --              Modifications in Management of hilight of detected entities
22 --              VTN 23/11/99 BUC60614 Avoid to crash because
23 --              myStdFilters array is too short.
24 --   GG  : BUC60688 25/05/00 Add SetSensitivity() methods
25 --   GG  : IMP150501 Remove oboslete method DragTo
26 --              (See AIS_InteractiveContext)
27 --   ZSV : IMP160701 Add InitDetected(),MoreDetected(),NextDetected(),
28 --                       DetectedCurrentShape(),DetectedCurrentObject()
29 --                       methods
30
31
32 class LocalContext from AIS inherits TShared from MMgt
33
34         ---Purpose: Defines a specific context  for selection.      
35         --          It becomes possible to:
36         --          +  Load  InteractiveObjects  with   a mode   to be
37         --          activated +  associate InteractiveObjects   with a
38         --          set of  temporary   selectable Objects....   +   +
39         --          activate StandardMode  of selection  for  Entities
40         --          inheriting  BasicShape  from  AIS (Selection    Of
41         --          vertices, edges,   wires,faces...  + Add   Filters
42         --          acting on detected owners of sensitive primitives
43         --          
44         --          
45         --          -     automatically    highlight   shapes   and
46         --          InteractiveObjects  (highlight of  detected shape +
47         --          highlight of detected selectable...
48         --          
49
50 uses
51     AsciiString               from TCollection,
52     ListOfInteger             from TColStd,
53     SequenceOfInteger         from TColStd,
54     MapOfTransient            from TColStd,
55     Array1OfPnt2d             from TColgp,
56     NameOfColor               from Quantity,
57     ShapeEnum                 from TopAbs,    
58     Shape                     from TopoDS,
59     View                      from V3d,
60     PresentationManager3d     from PrsMgr,
61     Projector                 from Select3D,
62     IndexedMapOfOwner         from SelectMgr,
63     EntityOwner               from SelectMgr,
64     OrFilter                  from SelectMgr,
65     Filter                    from SelectMgr,
66     SelectionManager          from SelectMgr,
67     SelectableObject          from SelectMgr ,
68     ListOfFilter              from SelectMgr,
69     BRepOwner                 from StdSelect,
70     ViewerSelector3d          from StdSelect,
71     SensitivityMode           from StdSelect,
72     InteractiveContext        from AIS,
73     ClearMode                 from AIS,
74     InteractiveObject         from AIS,
75     Shape                     from AIS,
76     DataMapOfSelStat          from AIS,
77     LocalStatus               from AIS, 
78     StatusOfPick              from AIS,
79     StatusOfDetection         from AIS,
80     SequenceOfInteractive     from AIS
81
82 is
83
84     Create returns LocalContext from AIS;
85     
86
87     Create (aCtx                : InteractiveContext from AIS;
88             anIndex             : Integer from Standard;
89             LoadDisplayed       : Boolean from Standard=Standard_True;
90             AcceptStandardModes : Boolean from Standard=Standard_True;
91             AcceptErase         : Boolean from Standard= Standard_False;
92             UseBothViewers      : Boolean from Standard= Standard_False)
93             returns LocalContext from AIS;
94     ---Purpose: Constructor By Default, the  displayed objects are 
95     --          automatically loaded.
96
97
98     AcceptErase(me:mutable;aStatus : Boolean from Standard);
99     ---C++: inline
100     ---Purpose: authorize or not others contexts to erase
101     --          temporary displayed objects here;
102
103     AcceptErase(me) returns Boolean from Standard;
104     ---C++: inline
105
106     SetContext(me:mutable;aCtx:InteractiveContext from AIS);
107     
108     SelectionName(me) returns AsciiString from TCollection;
109     ---C++: inline
110     ---C++: return const&
111
112
113     Terminate(me: mutable; updateviewer : Boolean from Standard = Standard_True);
114
115     HasSameProjector(me;aPrj:Projector from Select3D)
116     returns Boolean from Standard;
117     ---Purpose: compares the current projector of the localContext
118     --          with <aPrj>
119     --          returns True if the projectors are identical.
120     --          (no need to update projection of selection primitives
121     --          when closing the local context)....
122
123     Reactivate(me:mutable);
124     ---Purpose: to be called when a upper local context was closed...
125     --          useful to put pack the right projector...
126
127                             ---Category: LOAD AND PREPARE 
128                             --           - INTERACTIVE   OBJECTS...
129                             --           - FILTERS
130                             --           - STANDARD MODES OF ACTIVATION
131
132
133
134
135     Display(me               : mutable;
136             anInteractive    : InteractiveObject from AIS;
137             DisplayMode      : Integer from Standard = 0;
138             AllowShapeDecomposition: Boolean from Standard = Standard_True; 
139             ActivationMode : Integer from Standard = 0)
140     returns Boolean from Standard;
141     ---Purpose: returns true if done...
142
143     Load(me             : mutable;
144          anInteractive   : InteractiveObject from AIS;
145          AllowShapeDecomposition: Boolean from Standard = Standard_True; 
146          ActivationMode : Integer from Standard = 0)
147     returns Boolean from Standard;
148     ---Purpose: loads <anInteractive> with nodisplay...
149     --          returns true if done
150     
151     Erase(me: mutable;
152           anInteractive   : InteractiveObject from AIS)
153     returns Boolean from Standard;
154     ---Purpose: returns true if done...
155           
156          
157     Remove(me          : mutable;
158            aSelectable : InteractiveObject from AIS)
159     returns Boolean from Standard;
160
161           
162     ClearPrs (me             : mutable;
163               anInteractive  : InteractiveObject from AIS;
164               aMode          : Integer from Standard)
165     returns Boolean from Standard;
166           
167     SetShapeDecomposition(me            : mutable;
168                           aStoredObject : InteractiveObject from  AIS; 
169                           aStatus       : Boolean  from  Standard); 
170     ---Purpose: allows  or  forbids   the   shape  decomposition  into
171     --          Activated Standard   Mode  for   <aStoredObject> 
172     --          does nothing if the object doesn't inherits 
173     --          BasicShape from AIS
174     
175     
176     Clear(me:mutable;atype: ClearMode from AIS = AIS_CM_All);
177     ---Purpose: according to <atype>  , clears the  different parts of
178     --          the selector (filters, modeof activation, objects...)
179  
180
181
182
183     ActivateMode (me         : mutable; 
184                   aSelectable: InteractiveObject from AIS; 
185                   aMode      : Integer from Standard );
186     ---Purpose: optional : activation of a mode which is not 0 for a selectable...
187                       
188     DeactivateMode(me         : mutable; 
189                   aSelectable: InteractiveObject from AIS; 
190                   aMode      : Integer from Standard );
191     Deactivate(me         : mutable; 
192                   aSelectable: InteractiveObject from AIS);
193
194     ActivateStandardMode(me:mutable;aType:ShapeEnum from TopAbs);
195     ---Purpose: decomposition of shapes into <aType>
196    
197     
198     DeactivateStandardMode(me:mutable;aType:ShapeEnum from TopAbs);
199
200     StandardModes(me) returns ListOfInteger from TColStd;
201     ---C++: return const &
202     ---C++: inline
203
204
205
206     AddFilter(me:mutable;aFilter:Filter from SelectMgr);
207
208     RemoveFilter(me:mutable;aFilter:     Filter from SelectMgr);
209
210     
211     ListOfFilter(me) returns ListOfFilter from SelectMgr;
212     ---C++: return const &
213     ---C++: inline
214
215     Filter(me) returns any OrFilter from SelectMgr;
216     ---C++: return const &
217     ---C++: inline
218     
219
220     SetAutomaticHilight(me:mutable ; aStatus:Boolean) ;
221     ---Purpose: if <aStatus> = True , the shapes or subshapes detected
222     --          by the selector will be automatically hilighted in the
223     --          main viewer.
224     --          Else the user has to manage the detected shape outside the
225     --          Shape Selector....
226     ---C++: inline
227
228
229
230     AutomaticHilight(me) returns Boolean;
231     ---C++: inline
232
233                     ---Category: THE SELECTION PROCESS
234
235     MoveTo (me                   : mutable;
236             theXpix, theYpix     : Integer from Standard;
237             theView              : View from V3d;
238             theToRedrawImmediate : Boolean from Standard)
239     returns StatusOfDetection from AIS;
240
241
242     HasNextDetected(me) returns Boolean from Standard;
243     ---C++: inline
244     ---Purpose: returns True if more than one entity
245     --          was detected at the last Mouse position.
246     
247     HilightNextDetected (me      : mutable;
248                          theView : View from V3d;
249                          theToRedrawImmediate : Boolean from Standard)
250     returns Integer from Standard;
251     ---Purpose: returns True if  last detected. the next detected will
252     --          be first one (endless loop)
253
254     HilightPreviousDetected (me                   : mutable;
255                              theView              : View from V3d;
256                              theToRedrawImmediate : Boolean from Standard)
257     returns Integer from Standard;
258
259     UnhilightLastDetected(me:mutable;aView:View from V3d) returns Boolean from Standard;
260     ---Purpose: returns True if something was done...
261
262     Select(me: mutable;updateviewer : Boolean from Standard = Standard_True)
263     returns StatusOfPick from AIS;
264     ---Purpose: returns the number of selected
265     
266     ShiftSelect(me: mutable;updateviewer : Boolean from Standard = Standard_True)
267     returns StatusOfPick from AIS;
268
269     Select(me                      : mutable;
270            XPMin,YPMin,XPMax,YPMax : Integer from Standard;
271            aView                   : View from V3d;
272            updateviewer            : Boolean from Standard = Standard_True)
273     returns StatusOfPick from AIS;
274
275
276     ShiftSelect(me                      : mutable;
277                 XPMin,YPMin,XPMax,YPMax : Integer from Standard;
278                 aView                   : View from V3d;
279                 updateviewer            : Boolean from Standard = Standard_True)
280     returns StatusOfPick from AIS;
281
282     Select(me                      : mutable;
283            Polyline                : Array1OfPnt2d from TColgp;
284            aView                   : View from V3d;
285            updateviewer            : Boolean from Standard = Standard_True)
286     returns StatusOfPick from AIS;
287
288     ShiftSelect(me                      : mutable;
289                 Polyline                : Array1OfPnt2d from TColgp;
290                 aView                   : View from V3d;
291                 updateviewer            : Boolean from Standard = Standard_True)
292     returns StatusOfPick from AIS;
293
294     HilightPicked(me:mutable;updateviewer:Boolean from Standard =Standard_True) ;
295     
296     UnhilightPicked(me:mutable;updateviewer:Boolean from Standard = Standard_True) ;
297
298
299     UpdateSelected     (me           : mutable;
300                         updateviewer : Boolean from Standard = Standard_True); 
301
302     UpdateSelected     (me           : mutable;
303                         anobj        : InteractiveObject from AIS;
304                         updateviewer : Boolean from Standard = Standard_True); 
305     ---Purpose: Part of advanced selection highlighting mechanism.
306     --          If no owners belonging to anobj are selected, calls anobj->ClearSelected(),
307     --          otherwise calls anobj->HilightSelected(). This method can be used to avoid
308     --          redrawing the whole selection belonging to several Selectable Objects.
309         
310
311     SetSelected(me           : mutable;
312                 anobj        : InteractiveObject from AIS;
313                 updateviewer : Boolean from Standard=Standard_True);
314     ---Purpose: useful  to  update selection with objects  coming from
315     --          Collector or stack
316
317     AddOrRemoveSelected(me           : mutable;
318                         anobj        : InteractiveObject from AIS;
319                         updateviewer : Boolean from Standard=Standard_True);
320     ---Purpose: useful  to  update selection with objects  coming from
321     --          Collector or stack
322     AddOrRemoveSelected(me           : mutable;
323                         aShape       : Shape from TopoDS;
324                         updateviewer : Boolean from Standard=Standard_True);
325
326     AddOrRemoveSelected(me             : mutable;
327                         theOwner       : EntityOwner from SelectMgr;
328                         toUpdateViewer : Boolean from Standard = Standard_True);
329
330
331
332     ClearSelected(me:mutable;updateviewer : Boolean from Standard=Standard_True);
333     ---Purpose: 
334
335                     
336                     ---Category: GET THE DETECTED
337
338
339     HasDetected     (me) returns Boolean from Standard;
340     ---C++: inline
341
342     InitDetected(me: mutable);
343     ---Purpose:
344     -- Initialization for iteration through mouse-detected objects in local context.
345
346     MoreDetected(me) returns Boolean from Standard;
347     ---Purpose:
348     -- @return true if there is more mouse-detected objects after the current one
349     -- during iteration through mouse-detected interactive objects.
350
351     NextDetected(me: mutable);
352     ---Purpose:
353     -- Gets next current object during iteration through mouse-detected
354     -- interactive objects.
355
356     DetectedCurrentShape(me) returns Shape from TopoDS;
357     ---C++: return const &
358     ---Purpose:
359     -- @return current mouse-detected shape or empty (null) shape, if current interactive object
360     -- is not a shape (AIS_Shape) or there is no current mouse-detected interactive object at all.
361
362     DetectedCurrentObject(me) returns InteractiveObject from AIS;
363     ---Purpose:
364     -- @return current mouse-detected interactive object or null object if there is no current detected.
365
366     HasDetectedShape(me) returns Boolean from Standard;
367     DetectedShape   (me) returns Shape from TopoDS;
368     ---C++: return const &
369     DetectedInteractive(me) returns InteractiveObject from AIS;
370     DetectedOwner   (me) returns EntityOwner from SelectMgr;
371
372
373                     ---Category: GET THE SELECTED
374
375     InitSelected     (me: mutable);
376     MoreSelected(me) returns Boolean from Standard;
377     NextSelected(me:mutable);
378     HasShape(me) returns Boolean from Standard;
379     ---Purpose: returns TRUE if the detected entity is a shape
380     --          coming from a Decomposition of an element.
381     SelectedShape(me) returns Shape from TopoDS;
382
383     SelectedOwner(me) returns EntityOwner from SelectMgr;
384     IsSelected(me;aniobj: InteractiveObject from AIS) returns Boolean  from  Standard;
385     IsSelected(me;anOwner: EntityOwner from SelectMgr) returns Boolean from Standard;
386     SelectedInteractive(me) returns InteractiveObject from AIS;
387     HasApplicative (me) returns Boolean from Standard;
388     ---Purpose: returns TRUE if an interactive element
389     --          was associated with the current picked entity.
390     SelectedApplicative(me) returns any Transient from Standard;
391     ---C++: return const &
392
393
394
395
396
397
398                   ---Category: Management Of Temporary Attributes
399
400     SetDisplayPriority(me      : mutable;
401                        anObject: InteractiveObject from AIS;
402                        Prior   : Integer from Standard);
403
404     SetZLayer( me         : mutable;
405                theIObj    : InteractiveObject from AIS;
406                theLayerId : Integer from Standard );
407     ---Purpose: Set Z layer id for interactive object. The layer can be
408     -- specified for displayed object only. The Z layers can be used to display
409     -- temporarily presentations of some object in front of the other objects
410     -- in the scene. The ids for Z layers are generated by V3d_Viewer.
411     -- Note that Z layers differ from under-/overlayer in V3d_View:
412     -- under-/overlayer are intended for specific 2D drawings that appear
413     -- behind/in front of all 3D presentations, while SetZLayer() method
414     -- applies to regular 3D presentations and does not imply any specific
415     -- drawing methods.
416
417     GetZLayer( me;
418                theIObj : InteractiveObject from AIS )
419       returns Integer from Standard;
420     ---Purpose: Get Z layer id set for displayed interactive object.
421     -- If the object doesn't exists in context or has no computed presentations,
422     -- the method returns -1.
423
424     DisplayedObjects(me;theMapToFill : in out MapOfTransient from TColStd)
425     returns Integer from Standard;
426
427     IsIn(me;anObject : InteractiveObject from AIS)
428     returns Boolean from Standard;
429
430
431     IsDisplayed(me;anObject : InteractiveObject from AIS)
432     returns Boolean from Standard;
433
434     IsDisplayed(me;anObject : InteractiveObject from AIS;
435                 aMode : Integer from Standard)
436     returns Boolean from Standard;
437
438     SelectionModes(me;anObject:InteractiveObject from AIS)
439     returns ListOfInteger from TColStd;
440     ---C++: return const &
441
442     SubIntensityOn(me:mutable; anObject : InteractiveObject from AIS ); 
443  
444     SubIntensityOff(me:mutable; anObject : InteractiveObject from AIS ); 
445     
446     Hilight(me: mutable; anObject  : InteractiveObject from AIS);
447
448     Hilight(me:mutable; anObject  : InteractiveObject from AIS;aCol:NameOfColor  from  Quantity);
449
450     Unhilight(me:mutable; anObject : InteractiveObject from AIS);
451
452     IsHilighted(me;anObject : InteractiveObject from AIS)
453     returns Boolean from Standard;
454
455     IsHilighted(me;
456                 anObject  : InteractiveObject from AIS;
457                 WithColor : out Boolean from Standard;
458                 HiCol     : out NameOfColor from Quantity)
459     returns Boolean from Standard;
460     
461     SetSensitivityMode(me    : mutable;
462                        aMode : SensitivityMode from StdSelect) is static;
463     ---Level: Public
464     ---Purpose: Sets the selection sensitivity mode. SM_WINDOW mode
465     -- uses the specified pixel tolerance to compute the sensitivity
466     -- value, SM_VIEW mode allows to define the sensitivity manually.
467
468     SensitivityMode(me) returns SensitivityMode from StdSelect;
469     ---Level: Public
470     ---Purpose: Returns the selection sensitivity mode.
471
472     SetSensitivity(me:mutable;
473                         aPrecision: Real from Standard);
474     ---Level: Public
475     ---Purpose: Define the current selection sensitivity for
476     --          this local context according to the view size.
477     
478     Sensitivity (me) returns Real from Standard;
479     ---Level: Public 
480     ---Purpose: Returns the selection sensitivity value.
481
482     SetPixelTolerance(me:mutable;
483                         aPrecision: Integer from Standard = 2);
484     ---Level: Public
485     ---Purpose: Define the current selection sensitivity for
486     --          this local context according to the view size.
487
488     PixelTolerance(me) returns Integer from Standard;
489     ---Level: Public 
490     ---Purpose: Returns the pixel tolerance.
491
492                         ---Category: IMMEDIATE MODE
493
494
495     BeginImmediateDraw (me : mutable)
496     returns Boolean from Standard;
497     ---Purpose: Resets the transient list of presentations previously displayed in immediate mode
498     -- and begins accumulation of new list by following AddToImmediateList()/Color()/Highlight() calls.
499
500     ClearImmediateDraw (me : mutable) is virtual;
501     ---Purpose: Resets the transient list of presentations previously displayed in immediate mode.
502
503     ImmediateAdd (me : mutable;
504                   theObj  : InteractiveObject from AIS;
505                   theMode : Integer from Standard = 0)
506     returns Boolean from Standard;
507     ---Purpose: Stores presentation theMode of object theObj in the transient list of presentations to be displayed in immediate mode.
508     -- Will be taken in account in EndImmediateDraw method.
509
510     EndImmediateDraw (me      : mutable;
511                       theView : View from V3d)
512     returns Boolean from Standard;
513     ---Purpose: Allows rapid drawing of the view theView by avoiding an update of the whole background.
514
515     IsImmediateModeOn (me) returns Boolean from Standard;
516     ---Purpose: Returns true if Presentation Manager is accumulating transient list of presentations to be displayed in immediate mode.
517
518                             ---Category: INTERNAL METHODS;
519
520     UpdateConversion(me:mutable);
521
522     UpdateSort(me:mutable);
523
524
525
526     Status(me) returns AsciiString from TCollection is private;
527     
528     Status(me;anObject : InteractiveObject from AIS)
529     returns any LocalStatus from AIS is private;
530     ---C++: return const&
531
532
533
534     LoadContextObjects(me:mutable);
535
536     UnloadContextObjects(me:mutable);
537
538     Process(me       : mutable;
539             anObject : SelectableObject from SelectMgr;
540             WithProj: Boolean from Standard = Standard_True) is static private;
541
542     Process(me:mutable;
543             WithProj: Boolean from Standard = Standard_True) is static private;
544     
545
546     ActivateStandardModes(me:mutable;anObject: SelectableObject from SelectMgr;
547             WithProj: Boolean from Standard = Standard_True)  is  static  private;
548
549     manageDetected (me                   : mutable;
550                     thePickOwner         : EntityOwner from SelectMgr;
551                     theView              : View from V3d;
552                     theToRedrawImmediate : Boolean from Standard) is static private;
553
554     DetectedIndex(me:mutable) returns Integer from Standard is static private;
555     ---C++: inline
556     ---Purpose: returns 0  if the detected entity was Not FilterOK...
557   
558     Hilight(me:mutable;Own:EntityOwner from SelectMgr;aview:   View from V3d) is static  private; 
559     
560     
561     Unhilight(me:mutable;Ownr:EntityOwner from SelectMgr;aview: View from  V3d) is static  private;
562
563   
564     ClearObjects(me:mutable) is static private;
565
566     ClearDetected(me:mutable) is static private;
567
568     IsDecompositionOn(me) returns Boolean from Standard is static private;
569     
570     IsShape(me;anIndex:Integer from Standard) returns Boolean from Standard is static private;
571
572     IsValidForSelection(me;anIObj:InteractiveObject from AIS) returns Boolean from Standard is static private;
573     
574     IsValidIndex(me;anIndex:Integer from Standard) 
575     returns Boolean from Standard is static private;    
576     ---C++: inline
577     
578     ComesFromDecomposition(me; aPickedIndex : Integer from Standard)
579     returns Boolean from Standard is static private;
580
581
582     DisplayAreas(me:mutable;aviou:View from V3d);
583     
584     ClearAreas (me:mutable;
585                 aView: View from V3d) is static;
586     ---Level: Internal 
587
588     HasFilters(me;aType:ShapeEnum from TopAbs) 
589     returns Boolean from Standard is private;
590     
591     DisplaySensitive(me:mutable;aView : View from V3d) is static; 
592     
593     ClearSensitive(me:mutable;aView:View from V3d) is static;
594
595     MainSelector(me) returns any ViewerSelector3d from StdSelect;
596     ---C++: inline
597     ---C++: return const&
598
599     FindSelectedOwnerFromIO(me;anIObj:InteractiveObject from AIS)
600     returns EntityOwner from SelectMgr;
601
602     FindSelectedOwnerFromShape(me;aShape : Shape from TopoDS)
603     returns EntityOwner from SelectMgr;
604
605
606
607 fields
608
609     myCTX                              : InteractiveContext from AIS;
610     myLoadDisplayed,myAcceptStdMode    : Boolean from Standard;
611     myAcceptErase                      : Boolean from Standard;        
612
613     mySM               : SelectionManager      from SelectMgr;
614     myMainVS           : ViewerSelector3d      from StdSelect;
615     myMainPM           : PresentationManager3d from PrsMgr;
616     mySelName          : AsciiString           from TCollection;
617     myCollVS           : ViewerSelector3d      from StdSelect;
618     
619             -- The Objects and their attributes...
620     
621     myActiveObjects  : DataMapOfSelStat    from AIS;  
622     
623     
624             -- The  Filters...
625         
626     myFilters              : OrFilter      from SelectMgr;
627     myListOfStandardMode   : ListOfInteger from TColStd;
628
629     -- VTN myStdFilters : Filter from SelectMgr [7]; --internal mgt
630     myStdFilters : Filter from SelectMgr [9]; --internal mgt
631  
632             -- Selection Process
633
634     myAutoHilight  : Boolean                   from Standard;
635     myMapOfOwner   : IndexedMapOfOwner         from SelectMgr;
636     mylastindex    : Integer                   from Standard;
637     mylastgood     : Integer                   from Standard;
638     myCurrentOwner : Integer                   from Standard;          
639
640
641     myDetectedSeq  : SequenceOfInteger from TColStd;
642     myCurDetected  : Integer from Standard;
643
644    -- The detected objects.
645
646     myAISDetectedSeq : SequenceOfInteractive from AIS;
647     -- the sequence of detected interative objects.
648     myAISCurDetected : Integer from Standard;
649     -- current detected interactive object.
650     -- This variable is used by following functions:
651     -- InitDetected(), MoreDetected(), NextDetected(), DetectedCurrentShape(), DetectedCurrentObject().
652     
653 friends 
654
655     KeepTemporary from  InteractiveContext from AIS(me:mutable;anIObj:InteractiveObject from AIS;WhichMode  :  Integer  from  Standard  =  -1) 
656
657 end LocalContext;
658
659
660
661
662