1cca3f47681ace001e98f5f9cd466a7adcf3435a
[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     ---C++: return const &
383
384     SelectedOwner(me) returns EntityOwner from SelectMgr;
385     IsSelected(me;aniobj: InteractiveObject from AIS) returns Boolean  from  Standard;
386     IsSelected(me;anOwner: EntityOwner from SelectMgr) returns Boolean from Standard;
387     SelectedInteractive(me) returns InteractiveObject from AIS;
388     HasApplicative (me) returns Boolean from Standard;
389     ---Purpose: returns TRUE if an interactive element
390     --          was associated with the current picked entity.
391     SelectedApplicative(me) returns any Transient from Standard;
392     ---C++: return const &
393
394
395
396
397
398
399                   ---Category: Management Of Temporary Attributes
400
401     SetDisplayPriority(me      : mutable;
402                        anObject: InteractiveObject from AIS;
403                        Prior   : Integer from Standard);
404
405     SetZLayer( me         : mutable;
406                theIObj    : InteractiveObject from AIS;
407                theLayerId : Integer from Standard );
408     ---Purpose: Set Z layer id for interactive object. The layer can be
409     -- specified for displayed object only. The Z layers can be used to display
410     -- temporarily presentations of some object in front of the other objects
411     -- in the scene. The ids for Z layers are generated by V3d_Viewer.
412     -- Note that Z layers differ from under-/overlayer in V3d_View:
413     -- under-/overlayer are intended for specific 2D drawings that appear
414     -- behind/in front of all 3D presentations, while SetZLayer() method
415     -- applies to regular 3D presentations and does not imply any specific
416     -- drawing methods.
417
418     GetZLayer( me;
419                theIObj : InteractiveObject from AIS )
420       returns Integer from Standard;
421     ---Purpose: Get Z layer id set for displayed interactive object.
422     -- If the object doesn't exists in context or has no computed presentations,
423     -- the method returns -1.
424
425     DisplayedObjects(me;theMapToFill : in out MapOfTransient from TColStd)
426     returns Integer from Standard;
427
428     IsIn(me;anObject : InteractiveObject from AIS)
429     returns Boolean from Standard;
430
431
432     IsDisplayed(me;anObject : InteractiveObject from AIS)
433     returns Boolean from Standard;
434
435     IsDisplayed(me;anObject : InteractiveObject from AIS;
436                 aMode : Integer from Standard)
437     returns Boolean from Standard;
438
439     SelectionModes(me;anObject:InteractiveObject from AIS)
440     returns ListOfInteger from TColStd;
441     ---C++: return const &
442
443     SubIntensityOn(me:mutable; anObject : InteractiveObject from AIS ); 
444  
445     SubIntensityOff(me:mutable; anObject : InteractiveObject from AIS ); 
446     
447     Hilight(me: mutable; anObject  : InteractiveObject from AIS);
448
449     Hilight(me:mutable; anObject  : InteractiveObject from AIS;aCol:NameOfColor  from  Quantity);
450
451     Unhilight(me:mutable; anObject : InteractiveObject from AIS);
452
453     IsHilighted(me;anObject : InteractiveObject from AIS)
454     returns Boolean from Standard;
455
456     IsHilighted(me;
457                 anObject  : InteractiveObject from AIS;
458                 WithColor : out Boolean from Standard;
459                 HiCol     : out NameOfColor from Quantity)
460     returns Boolean from Standard;
461     
462     SetSensitivityMode(me    : mutable;
463                        aMode : SensitivityMode from StdSelect) is static;
464     ---Level: Public
465     ---Purpose: Sets the selection sensitivity mode. SM_WINDOW mode
466     -- uses the specified pixel tolerance to compute the sensitivity
467     -- value, SM_VIEW mode allows to define the sensitivity manually.
468
469     SensitivityMode(me) returns SensitivityMode from StdSelect;
470     ---Level: Public
471     ---Purpose: Returns the selection sensitivity mode.
472
473     SetSensitivity(me:mutable;
474                         aPrecision: Real from Standard);
475     ---Level: Public
476     ---Purpose: Define the current selection sensitivity for
477     --          this local context according to the view size.
478     
479     Sensitivity (me) returns Real from Standard;
480     ---Level: Public 
481     ---Purpose: Returns the selection sensitivity value.
482
483     SetPixelTolerance(me:mutable;
484                         aPrecision: Integer from Standard = 2);
485     ---Level: Public
486     ---Purpose: Define the current selection sensitivity for
487     --          this local context according to the view size.
488
489     PixelTolerance(me) returns Integer from Standard;
490     ---Level: Public 
491     ---Purpose: Returns the pixel tolerance.
492
493                         ---Category: IMMEDIATE MODE
494
495
496     BeginImmediateDraw (me : mutable)
497     returns Boolean from Standard;
498     ---Purpose: Resets the transient list of presentations previously displayed in immediate mode
499     -- and begins accumulation of new list by following AddToImmediateList()/Color()/Highlight() calls.
500
501     ClearImmediateDraw (me : mutable) is virtual;
502     ---Purpose: Resets the transient list of presentations previously displayed in immediate mode.
503
504     ImmediateAdd (me : mutable;
505                   theObj  : InteractiveObject from AIS;
506                   theMode : Integer from Standard = 0)
507     returns Boolean from Standard;
508     ---Purpose: Stores presentation theMode of object theObj in the transient list of presentations to be displayed in immediate mode.
509     -- Will be taken in account in EndImmediateDraw method.
510
511     EndImmediateDraw (me      : mutable;
512                       theView : View from V3d)
513     returns Boolean from Standard;
514     ---Purpose: Allows rapid drawing of the view theView by avoiding an update of the whole background.
515
516     IsImmediateModeOn (me) returns Boolean from Standard;
517     ---Purpose: Returns true if Presentation Manager is accumulating transient list of presentations to be displayed in immediate mode.
518
519                             ---Category: INTERNAL METHODS;
520
521     UpdateConversion(me:mutable);
522
523     UpdateSort(me:mutable);
524
525
526
527     Status(me) returns AsciiString from TCollection is private;
528     
529     Status(me;anObject : InteractiveObject from AIS)
530     returns any LocalStatus from AIS is private;
531     ---C++: return const&
532
533
534
535     LoadContextObjects(me:mutable);
536
537     UnloadContextObjects(me:mutable);
538
539     Process(me       : mutable;
540             anObject : SelectableObject from SelectMgr;
541             WithProj: Boolean from Standard = Standard_True) is static private;
542
543     Process(me:mutable;
544             WithProj: Boolean from Standard = Standard_True) is static private;
545     
546
547     ActivateStandardModes(me:mutable;anObject: SelectableObject from SelectMgr;
548             WithProj: Boolean from Standard = Standard_True)  is  static  private;
549
550     manageDetected (me                   : mutable;
551                     thePickOwner         : EntityOwner from SelectMgr;
552                     theView              : View from V3d;
553                     theToRedrawImmediate : Boolean from Standard) is static private;
554
555     DetectedIndex(me:mutable) returns Integer from Standard is static private;
556     ---C++: inline
557     ---Purpose: returns 0  if the detected entity was Not FilterOK...
558   
559     Hilight(me:mutable;Own:EntityOwner from SelectMgr;aview:   View from V3d) is static  private; 
560     
561     
562     Unhilight(me:mutable;Ownr:EntityOwner from SelectMgr;aview: View from  V3d) is static  private;
563
564   
565     ClearObjects(me:mutable) is static private;
566
567     ClearDetected(me:mutable) is static private;
568
569     IsDecompositionOn(me) returns Boolean from Standard is static private;
570     
571     IsShape(me;anIndex:Integer from Standard) returns Boolean from Standard is static private;
572
573     IsValidForSelection(me;anIObj:InteractiveObject from AIS) returns Boolean from Standard is static private;
574     
575     IsValidIndex(me;anIndex:Integer from Standard) 
576     returns Boolean from Standard is static private;    
577     ---C++: inline
578     
579     ComesFromDecomposition(me; aPickedIndex : Integer from Standard)
580     returns Boolean from Standard is static private;
581
582
583     DisplayAreas(me:mutable;aviou:View from V3d);
584     
585     ClearAreas (me:mutable;
586                 aView: View from V3d) is static;
587     ---Level: Internal 
588
589     HasFilters(me;aType:ShapeEnum from TopAbs) 
590     returns Boolean from Standard is private;
591     
592     DisplaySensitive(me:mutable;aView : View from V3d) is static; 
593     
594     ClearSensitive(me:mutable;aView:View from V3d) is static;
595
596     MainSelector(me) returns any ViewerSelector3d from StdSelect;
597     ---C++: inline
598     ---C++: return const&
599
600     FindSelectedOwnerFromIO(me;anIObj:InteractiveObject from AIS)
601     returns EntityOwner from SelectMgr;
602
603     FindSelectedOwnerFromShape(me;aShape : Shape from TopoDS)
604     returns EntityOwner from SelectMgr;
605
606
607
608 fields
609
610     myCTX                              : InteractiveContext from AIS;
611     myLoadDisplayed,myAcceptStdMode    : Boolean from Standard;
612     myAcceptErase                      : Boolean from Standard;        
613
614     mySM               : SelectionManager      from SelectMgr;
615     myMainVS           : ViewerSelector3d      from StdSelect;
616     myMainPM           : PresentationManager3d from PrsMgr;
617     mySelName          : AsciiString           from TCollection;
618     myCollVS           : ViewerSelector3d      from StdSelect;
619     
620             -- The Objects and their attributes...
621     
622     myActiveObjects  : DataMapOfSelStat    from AIS;  
623     
624     
625             -- The  Filters...
626         
627     myFilters              : OrFilter      from SelectMgr;
628     myListOfStandardMode   : ListOfInteger from TColStd;
629
630     -- VTN myStdFilters : Filter from SelectMgr [7]; --internal mgt
631     myStdFilters : Filter from SelectMgr [9]; --internal mgt
632  
633             -- Selection Process
634
635     myAutoHilight  : Boolean                   from Standard;
636     myMapOfOwner   : IndexedMapOfOwner         from SelectMgr;
637     mylastindex    : Integer                   from Standard;
638     mylastgood     : Integer                   from Standard;
639     myCurrentOwner : Integer                   from Standard;          
640
641
642     myDetectedSeq  : SequenceOfInteger from TColStd;
643     myCurDetected  : Integer from Standard;
644
645    -- The detected objects.
646
647     myAISDetectedSeq : SequenceOfInteractive from AIS;
648     -- the sequence of detected interative objects.
649     myAISCurDetected : Integer from Standard;
650     -- current detected interactive object.
651     -- This variable is used by following functions:
652     -- InitDetected(), MoreDetected(), NextDetected(), DetectedCurrentShape(), DetectedCurrentObject().
653     
654 friends 
655
656     KeepTemporary from  InteractiveContext from AIS(me:mutable;anIObj:InteractiveObject from AIS;WhichMode  :  Integer  from  Standard  =  -1) 
657
658 end LocalContext;
659
660
661
662
663