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