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