42cf5bc1 |
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 | #ifndef _AIS_LocalContext_HeaderFile |
18 | #define _AIS_LocalContext_HeaderFile |
19 | |
20 | #include <Standard.hxx> |
21 | #include <Standard_Type.hxx> |
22 | |
23 | #include <Standard_Boolean.hxx> |
24 | #include <StdSelect_ViewerSelector3d.hxx> |
25 | #include <PrsMgr_PresentationManager3d.hxx> |
26 | #include <TCollection_AsciiString.hxx> |
27 | #include <AIS_DataMapOfSelStat.hxx> |
28 | #include <TColStd_ListOfInteger.hxx> |
29 | #include <SelectMgr_IndexedMapOfOwner.hxx> |
30 | #include <Standard_Integer.hxx> |
31 | #include <TColStd_SequenceOfInteger.hxx> |
32 | #include <AIS_SequenceOfInteractive.hxx> |
f47849f4 |
33 | #include <AIS_SelectionModesConcurrency.hxx> |
25e59720 |
34 | #include <Standard_Transient.hxx> |
42cf5bc1 |
35 | #include <AIS_ClearMode.hxx> |
36 | #include <TopAbs_ShapeEnum.hxx> |
37 | #include <SelectMgr_ListOfFilter.hxx> |
38 | #include <AIS_StatusOfDetection.hxx> |
39 | #include <AIS_StatusOfPick.hxx> |
40 | #include <TColgp_Array1OfPnt2d.hxx> |
41 | #include <TColStd_MapOfTransient.hxx> |
42 | #include <Quantity_NameOfColor.hxx> |
43 | #include <Standard_Real.hxx> |
016e5959 |
44 | #include <AIS_Selection.hxx> |
42cf5bc1 |
45 | class AIS_InteractiveContext; |
46 | class SelectMgr_SelectionManager; |
47 | class SelectMgr_OrFilter; |
48 | class SelectMgr_Filter; |
49 | class TCollection_AsciiString; |
50 | class AIS_InteractiveObject; |
51 | class V3d_View; |
c3282ec1 |
52 | class V3d_Viewer; |
42cf5bc1 |
53 | class TopoDS_Shape; |
54 | class SelectMgr_EntityOwner; |
55 | class Standard_Transient; |
56 | class AIS_LocalStatus; |
57 | class SelectMgr_SelectableObject; |
58 | |
59 | |
60 | class AIS_LocalContext; |
25e59720 |
61 | DEFINE_STANDARD_HANDLE(AIS_LocalContext, Standard_Transient) |
42cf5bc1 |
62 | |
63 | //! Defines a specific context for selection. |
64 | //! It becomes possible to: |
65 | //! + Load InteractiveObjects with a mode to be |
66 | //! activated + associate InteractiveObjects with a |
67 | //! set of temporary selectable Objects.... + + |
68 | //! activate StandardMode of selection for Entities |
69 | //! inheriting BasicShape from AIS (Selection Of |
70 | //! vertices, edges, wires,faces... + Add Filters |
71 | //! acting on detected owners of sensitive primitives |
72 | //! |
73 | //! - automatically highlight shapes and |
74 | //! InteractiveObjects (highlight of detected shape + |
75 | //! highlight of detected selectable... |
25e59720 |
76 | class AIS_LocalContext : public Standard_Transient |
42cf5bc1 |
77 | { |
78 | |
79 | public: |
80 | |
81 | |
82 | Standard_EXPORT AIS_LocalContext(); |
83 | |
84 | //! Constructor By Default, the displayed objects are |
85 | //! automatically loaded. |
86 | Standard_EXPORT AIS_LocalContext(const Handle(AIS_InteractiveContext)& aCtx, const Standard_Integer anIndex, const Standard_Boolean LoadDisplayed = Standard_True, const Standard_Boolean AcceptStandardModes = Standard_True, const Standard_Boolean AcceptErase = Standard_False, const Standard_Boolean UseBothViewers = Standard_False); |
87 | |
88 | //! authorize or not others contexts to erase |
89 | //! temporary displayed objects here; |
90 | void AcceptErase (const Standard_Boolean aStatus); |
91 | |
92 | Standard_Boolean AcceptErase() const; |
93 | |
94 | Standard_EXPORT void SetContext (const Handle(AIS_InteractiveContext)& aCtx); |
780ee4e2 |
95 | |
96 | const Handle(AIS_Selection)& Selection() const { return mySelection; } |
42cf5bc1 |
97 | |
98 | Standard_EXPORT void Terminate (const Standard_Boolean updateviewer = Standard_True); |
99 | |
42cf5bc1 |
100 | //! returns true if done... |
101 | Standard_EXPORT Standard_Boolean Display (const Handle(AIS_InteractiveObject)& anInteractive, const Standard_Integer DisplayMode = 0, const Standard_Boolean AllowShapeDecomposition = Standard_True, const Standard_Integer ActivationMode = 0); |
102 | |
103 | //! loads <anInteractive> with nodisplay... |
104 | //! returns true if done |
105 | Standard_EXPORT Standard_Boolean Load (const Handle(AIS_InteractiveObject)& anInteractive, const Standard_Boolean AllowShapeDecomposition = Standard_True, const Standard_Integer ActivationMode = 0); |
106 | |
107 | //! returns true if done... |
108 | Standard_EXPORT Standard_Boolean Erase (const Handle(AIS_InteractiveObject)& anInteractive); |
109 | |
110 | Standard_EXPORT Standard_Boolean Remove (const Handle(AIS_InteractiveObject)& aSelectable); |
111 | |
112 | Standard_EXPORT Standard_Boolean ClearPrs (const Handle(AIS_InteractiveObject)& anInteractive, const Standard_Integer aMode); |
113 | |
114 | //! allows or forbids the shape decomposition into |
115 | //! Activated Standard Mode for <aStoredObject> |
116 | //! does nothing if the object doesn't inherits |
117 | //! BasicShape from AIS |
118 | Standard_EXPORT void SetShapeDecomposition (const Handle(AIS_InteractiveObject)& aStoredObject, const Standard_Boolean aStatus); |
119 | |
120 | //! according to <atype> , clears the different parts of |
121 | //! the selector (filters, modeof activation, objects...) |
122 | Standard_EXPORT void Clear (const AIS_ClearMode atype = AIS_CM_All); |
123 | |
f47849f4 |
124 | Standard_EXPORT void SetSelectionModeActive (const Handle(AIS_InteractiveObject)& theObj, |
125 | const Standard_Integer theMode, |
126 | const Standard_Boolean theIsActive, |
127 | const AIS_SelectionModesConcurrency theActiveFilter); |
128 | |
42cf5bc1 |
129 | //! optional : activation of a mode which is not 0 for a selectable... |
f47849f4 |
130 | void ActivateMode (const Handle(AIS_InteractiveObject)& theObj, const Standard_Integer theMode) |
131 | { |
132 | SetSelectionModeActive (theObj, theMode, Standard_True, AIS_SelectionModesConcurrency_GlobalOrLocal); |
133 | } |
134 | |
135 | void DeactivateMode (const Handle(AIS_InteractiveObject)& theObj, const Standard_Integer theMode) |
136 | { |
137 | SetSelectionModeActive (theObj, theMode, Standard_False, AIS_SelectionModesConcurrency_GlobalOrLocal); |
138 | } |
139 | |
140 | void Deactivate (const Handle(AIS_InteractiveObject)& theObj) |
141 | { |
142 | SetSelectionModeActive (theObj, -1, Standard_False, AIS_SelectionModesConcurrency_Single); |
143 | } |
42cf5bc1 |
144 | |
145 | //! decomposition of shapes into <aType> |
146 | Standard_EXPORT void ActivateStandardMode (const TopAbs_ShapeEnum aType); |
147 | |
148 | Standard_EXPORT void DeactivateStandardMode (const TopAbs_ShapeEnum aType); |
149 | |
150 | const TColStd_ListOfInteger& StandardModes() const; |
151 | |
152 | Standard_EXPORT void AddFilter (const Handle(SelectMgr_Filter)& aFilter); |
153 | |
154 | Standard_EXPORT void RemoveFilter (const Handle(SelectMgr_Filter)& aFilter); |
155 | |
156 | const SelectMgr_ListOfFilter& ListOfFilter() const; |
157 | |
158 | const Handle(SelectMgr_OrFilter)& Filter() const; |
159 | |
160 | //! if <aStatus> = True , the shapes or subshapes detected |
161 | //! by the selector will be automatically hilighted in the |
162 | //! main viewer. |
163 | //! Else the user has to manage the detected shape outside the |
164 | //! Shape Selector.... |
165 | void SetAutomaticHilight (const Standard_Boolean aStatus); |
166 | |
167 | Standard_Boolean AutomaticHilight() const; |
168 | |
169 | Standard_EXPORT AIS_StatusOfDetection MoveTo (const Standard_Integer theXpix, const Standard_Integer theYpix, const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); |
170 | |
171 | //! returns True if more than one entity |
172 | //! was detected at the last Mouse position. |
173 | Standard_Boolean HasNextDetected() const; |
174 | |
175 | //! returns True if last detected. the next detected will |
176 | //! be first one (endless loop) |
177 | Standard_EXPORT Standard_Integer HilightNextDetected (const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); |
178 | |
179 | Standard_EXPORT Standard_Integer HilightPreviousDetected (const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); |
180 | |
181 | //! returns True if something was done... |
4679d975 |
182 | Standard_EXPORT Standard_Boolean UnhilightLastDetected (const Handle(V3d_Viewer)& theViewer); |
183 | |
184 | //! returns True if something was done... |
185 | Standard_EXPORT Standard_Boolean UnhilightLastDetected (const Handle(V3d_View)& theView); |
42cf5bc1 |
186 | |
187 | //! returns the number of selected |
02974a19 |
188 | Standard_EXPORT AIS_StatusOfPick AddSelect (const Handle(SelectMgr_EntityOwner)& theObject); |
016e5959 |
189 | |
42cf5bc1 |
190 | Standard_EXPORT AIS_StatusOfPick Select (const Standard_Boolean updateviewer = Standard_True); |
191 | |
192 | Standard_EXPORT AIS_StatusOfPick ShiftSelect (const Standard_Boolean updateviewer = Standard_True); |
193 | |
194 | Standard_EXPORT AIS_StatusOfPick Select (const Standard_Integer XPMin, const Standard_Integer YPMin, const Standard_Integer XPMax, const Standard_Integer YPMax, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); |
195 | |
196 | Standard_EXPORT AIS_StatusOfPick ShiftSelect (const Standard_Integer XPMin, const Standard_Integer YPMin, const Standard_Integer XPMax, const Standard_Integer YPMax, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); |
197 | |
198 | Standard_EXPORT AIS_StatusOfPick Select (const TColgp_Array1OfPnt2d& Polyline, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); |
199 | |
200 | Standard_EXPORT AIS_StatusOfPick ShiftSelect (const TColgp_Array1OfPnt2d& Polyline, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); |
201 | |
202 | Standard_EXPORT void HilightPicked (const Standard_Boolean updateviewer = Standard_True); |
203 | |
204 | Standard_EXPORT void UnhilightPicked (const Standard_Boolean updateviewer = Standard_True); |
205 | |
206 | Standard_EXPORT void UpdateSelected (const Standard_Boolean updateviewer = Standard_True); |
207 | |
208 | //! Part of advanced selection highlighting mechanism. |
209 | //! If no owners belonging to anobj are selected, calls anobj->ClearSelected(), |
210 | //! otherwise calls anobj->HilightSelected(). This method can be used to avoid |
211 | //! redrawing the whole selection belonging to several Selectable Objects. |
212 | Standard_EXPORT void UpdateSelected (const Handle(AIS_InteractiveObject)& anobj, const Standard_Boolean updateviewer = Standard_True); |
213 | |
214 | //! useful to update selection with objects coming from |
215 | //! Collector or stack |
216 | Standard_EXPORT void SetSelected (const Handle(AIS_InteractiveObject)& anobj, const Standard_Boolean updateviewer = Standard_True); |
217 | |
218 | //! useful to update selection with objects coming from |
219 | //! Collector or stack |
220 | Standard_EXPORT void AddOrRemoveSelected (const Handle(AIS_InteractiveObject)& anobj, const Standard_Boolean updateviewer = Standard_True); |
221 | |
222 | Standard_EXPORT void AddOrRemoveSelected (const TopoDS_Shape& aShape, const Standard_Boolean updateviewer = Standard_True); |
223 | |
224 | Standard_EXPORT void AddOrRemoveSelected (const Handle(SelectMgr_EntityOwner)& theOwner, const Standard_Boolean toUpdateViewer = Standard_True); |
225 | |
226 | //! Clears local context selection. |
227 | //! @param toUpdateViewer [in] if TRUE the viewer will be updated. |
228 | Standard_EXPORT void ClearSelected (const Standard_Boolean toUpdateViewer = Standard_True); |
229 | |
230 | //! Clears outdated selection and detection of owners for the |
231 | //! interactive object. Use this method if selection structures |
232 | //! of the interactive object have changed. The method unhilights |
233 | //! and removes outdated entity owners from lists of selected |
234 | //! and detected owners. |
235 | //! @param theIO [in] the interactive object. |
236 | //! @param toClearDeactivated [in] pass TRUE to treat deactivated |
237 | //! entity owners as 'outdated' when clearing the selection. |
238 | Standard_EXPORT void ClearOutdatedSelection (const Handle(AIS_InteractiveObject)& theIO, const Standard_Boolean toClearDeactivated); |
239 | |
240 | Standard_Boolean HasDetected() const; |
241 | |
242 | |
243 | //! Initialization for iteration through mouse-detected objects in local context. |
244 | Standard_EXPORT void InitDetected(); |
245 | |
246 | |
247 | //! @return true if there is more mouse-detected objects after the current one |
248 | //! during iteration through mouse-detected interactive objects. |
249 | Standard_EXPORT Standard_Boolean MoreDetected() const; |
250 | |
251 | |
252 | //! Gets next current object during iteration through mouse-detected |
253 | //! interactive objects. |
254 | Standard_EXPORT void NextDetected(); |
d21ddc4f |
255 | |
256 | //! @return current mouse-detected Owner or null object if there is no current detected. |
257 | Standard_EXPORT Handle(SelectMgr_EntityOwner) DetectedCurrentOwner() const; |
42cf5bc1 |
258 | |
259 | //! @return current mouse-detected shape or empty (null) shape, if current interactive object |
260 | //! is not a shape (AIS_Shape) or there is no current mouse-detected interactive object at all. |
261 | Standard_EXPORT const TopoDS_Shape& DetectedCurrentShape() const; |
42cf5bc1 |
262 | |
263 | //! @return current mouse-detected interactive object or null object if there is no current detected. |
264 | Standard_EXPORT Handle(AIS_InteractiveObject) DetectedCurrentObject() const; |
265 | |
266 | Standard_EXPORT Standard_Boolean HasDetectedShape() const; |
267 | |
268 | Standard_EXPORT const TopoDS_Shape& DetectedShape() const; |
269 | |
270 | Standard_EXPORT Handle(AIS_InteractiveObject) DetectedInteractive() const; |
271 | |
272 | Standard_EXPORT Handle(SelectMgr_EntityOwner) DetectedOwner() const; |
273 | |
274 | Standard_EXPORT void InitSelected(); |
275 | |
276 | Standard_EXPORT Standard_Boolean MoreSelected() const; |
277 | |
278 | Standard_EXPORT void NextSelected(); |
279 | |
280 | //! returns TRUE if the detected entity is a shape |
281 | //! coming from a Decomposition of an element. |
282 | Standard_EXPORT Standard_Boolean HasShape() const; |
283 | |
284 | //! returns true if current selection is not empty |
285 | //! and the owner of selected object contains a shape. |
286 | //! This method does not take into account decomposition |
287 | //! status of detected shape. |
288 | Standard_EXPORT Standard_Boolean HasSelectedShape() const; |
289 | |
290 | Standard_EXPORT TopoDS_Shape SelectedShape() const; |
291 | |
292 | Standard_EXPORT Handle(SelectMgr_EntityOwner) SelectedOwner() const; |
293 | |
294 | Standard_EXPORT Standard_Boolean IsSelected (const Handle(AIS_InteractiveObject)& aniobj) const; |
295 | |
296 | Standard_EXPORT Standard_Boolean IsSelected (const Handle(SelectMgr_EntityOwner)& anOwner) const; |
297 | |
298 | Standard_EXPORT Handle(AIS_InteractiveObject) SelectedInteractive() const; |
299 | |
300 | //! returns TRUE if an interactive element |
301 | //! was associated with the current picked entity. |
302 | Standard_EXPORT Standard_Boolean HasApplicative() const; |
303 | |
304 | Standard_EXPORT const Handle(Standard_Transient)& SelectedApplicative() const; |
305 | |
306 | Standard_EXPORT void SetDisplayPriority (const Handle(AIS_InteractiveObject)& anObject, const Standard_Integer Prior); |
307 | |
308 | Standard_EXPORT Standard_Integer DisplayedObjects (TColStd_MapOfTransient& theMapToFill) const; |
309 | |
310 | Standard_EXPORT Standard_Boolean IsIn (const Handle(AIS_InteractiveObject)& anObject) const; |
311 | |
312 | Standard_EXPORT Standard_Boolean IsDisplayed (const Handle(AIS_InteractiveObject)& anObject) const; |
313 | |
314 | Standard_EXPORT Standard_Boolean IsDisplayed (const Handle(AIS_InteractiveObject)& anObject, const Standard_Integer aMode) const; |
315 | |
316 | Standard_EXPORT const TColStd_ListOfInteger& SelectionModes (const Handle(AIS_InteractiveObject)& anObject) const; |
317 | |
318 | Standard_EXPORT void SubIntensityOn (const Handle(AIS_InteractiveObject)& anObject); |
319 | |
320 | Standard_EXPORT void SubIntensityOff (const Handle(AIS_InteractiveObject)& anObject); |
321 | |
322 | Standard_EXPORT void Hilight (const Handle(AIS_InteractiveObject)& anObject); |
323 | |
8e5fb5ea |
324 | Standard_EXPORT void Hilight (const Handle(AIS_InteractiveObject)& theObj, |
f838dac4 |
325 | const Handle(Prs3d_Drawer)& theStyle); |
42cf5bc1 |
326 | |
327 | Standard_EXPORT void Unhilight (const Handle(AIS_InteractiveObject)& anObject); |
328 | |
329 | Standard_EXPORT Standard_Boolean IsHilighted (const Handle(AIS_InteractiveObject)& anObject) const; |
330 | |
8e5fb5ea |
331 | Standard_EXPORT Standard_Boolean HighlightStyle (const Handle(AIS_InteractiveObject)& theObject, |
f838dac4 |
332 | Handle(Prs3d_Drawer)& theStyle) const; |
42cf5bc1 |
333 | |
334 | //! Define the current selection sensitivity for |
335 | //! this local context according to the view size. |
3bf9a45f |
336 | Standard_EXPORT void SetPixelTolerance (const Standard_Integer aPrecision = 2); |
42cf5bc1 |
337 | |
338 | //! Returns the pixel tolerance. |
3bf9a45f |
339 | Standard_EXPORT Standard_Integer PixelTolerance() const; |
8a1170ad |
340 | |
341 | //! Allows to manage sensitivity of a particular selection of interactive object theObject |
342 | //! and changes previous sensitivity value of all sensitive entities in selection with theMode |
343 | //! to the given theNewSensitivity. |
344 | Standard_EXPORT void SetSelectionSensitivity (const Handle(AIS_InteractiveObject)& theObject, |
345 | const Standard_Integer theMode, |
346 | const Standard_Integer theNewSensitivity); |
347 | |
42cf5bc1 |
348 | //! Resets the transient list of presentations previously displayed in immediate mode |
349 | //! and begins accumulation of new list by following AddToImmediateList()/Color()/Highlight() calls. |
350 | Standard_EXPORT Standard_Boolean BeginImmediateDraw(); |
351 | |
352 | //! Resets the transient list of presentations previously displayed in immediate mode. |
353 | Standard_EXPORT virtual void ClearImmediateDraw(); |
354 | |
355 | //! Stores presentation theMode of object theObj in the transient list of presentations to be displayed in immediate mode. |
356 | //! Will be taken in account in EndImmediateDraw method. |
357 | Standard_EXPORT Standard_Boolean ImmediateAdd (const Handle(AIS_InteractiveObject)& theObj, const Standard_Integer theMode = 0); |
358 | |
359 | //! Allows rapid drawing of the view theView by avoiding an update of the whole background. |
c3282ec1 |
360 | Standard_EXPORT Standard_Boolean EndImmediateDraw (const Handle(V3d_Viewer)& theViewer); |
42cf5bc1 |
361 | |
362 | //! Returns true if Presentation Manager is accumulating transient list of presentations to be displayed in immediate mode. |
363 | Standard_EXPORT Standard_Boolean IsImmediateModeOn() const; |
364 | |
365 | Standard_EXPORT TCollection_AsciiString Status() const; |
366 | |
367 | Standard_EXPORT const Handle(AIS_LocalStatus)& Status (const Handle(AIS_InteractiveObject)& anObject) const; |
368 | |
369 | Standard_EXPORT void LoadContextObjects(); |
370 | |
371 | Standard_EXPORT void UnloadContextObjects(); |
372 | |
373 | Standard_EXPORT void DisplaySensitive (const Handle(V3d_View)& aView); |
374 | |
375 | Standard_EXPORT void ClearSensitive (const Handle(V3d_View)& aView); |
376 | |
377 | const Handle(StdSelect_ViewerSelector3d)& MainSelector() const; |
378 | |
379 | Standard_EXPORT Handle(SelectMgr_EntityOwner) FindSelectedOwnerFromIO (const Handle(AIS_InteractiveObject)& anIObj) const; |
380 | |
381 | Standard_EXPORT Handle(SelectMgr_EntityOwner) FindSelectedOwnerFromShape (const TopoDS_Shape& aShape) const; |
382 | |
325e442b |
383 | //! Iterates through all interactive objects of local context and activates selection modes |
384 | //! stored in local status |
385 | Standard_EXPORT void RestoreActivatedModes() const; |
386 | |
25e59720 |
387 | DEFINE_STANDARD_RTTIEXT(AIS_LocalContext,Standard_Transient) |
42cf5bc1 |
388 | |
42cf5bc1 |
389 | private: |
390 | |
391 | |
392 | Standard_EXPORT void Process (const Handle(SelectMgr_SelectableObject)& anObject); |
393 | |
394 | Standard_EXPORT void Process(); |
395 | |
396 | Standard_EXPORT void ActivateStandardModes (const Handle(SelectMgr_SelectableObject)& anObject); |
397 | |
398 | Standard_EXPORT void manageDetected (const Handle(SelectMgr_EntityOwner)& thePickOwner, const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); |
399 | |
400 | //! returns 0 if the detected entity was Not FilterOK... |
401 | Standard_Integer DetectedIndex(); |
402 | |
403 | Standard_EXPORT void Hilight (const Handle(SelectMgr_EntityOwner)& Own, const Handle(V3d_View)& aview); |
404 | |
405 | Standard_EXPORT void Unhilight (const Handle(SelectMgr_EntityOwner)& Ownr, const Handle(V3d_View)& aview); |
406 | |
407 | Standard_EXPORT void ClearObjects(); |
408 | |
409 | Standard_EXPORT void ClearDetected(); |
410 | |
411 | Standard_EXPORT Standard_Boolean IsDecompositionOn() const; |
412 | |
413 | Standard_EXPORT Standard_Boolean IsShape (const Standard_Integer anIndex) const; |
414 | |
415 | Standard_EXPORT Standard_Boolean IsValidForSelection (const Handle(AIS_InteractiveObject)& anIObj) const; |
416 | |
417 | Standard_Boolean IsValidIndex (const Standard_Integer anIndex) const; |
418 | |
419 | Standard_EXPORT Standard_Boolean ComesFromDecomposition (const Standard_Integer aPickedIndex) const; |
420 | |
421 | Standard_EXPORT Standard_Boolean HasFilters (const TopAbs_ShapeEnum aType) const; |
422 | |
423 | Handle(AIS_InteractiveContext) myCTX; |
424 | Standard_Boolean myLoadDisplayed; |
425 | Standard_Boolean myAcceptStdMode; |
426 | Standard_Boolean myAcceptErase; |
427 | Handle(SelectMgr_SelectionManager) mySM; |
428 | Handle(StdSelect_ViewerSelector3d) myMainVS; |
429 | Handle(PrsMgr_PresentationManager3d) myMainPM; |
42cf5bc1 |
430 | Handle(StdSelect_ViewerSelector3d) myCollVS; |
431 | AIS_DataMapOfSelStat myActiveObjects; |
432 | Handle(SelectMgr_OrFilter) myFilters; |
433 | TColStd_ListOfInteger myListOfStandardMode; |
434 | Handle(SelectMgr_Filter) myStdFilters[9]; |
435 | Standard_Boolean myAutoHilight; |
436 | Handle(SelectMgr_IndexedMapOfOwner) myMapOfOwner; |
016e5959 |
437 | Handle(AIS_Selection) mySelection; |
42cf5bc1 |
438 | Standard_Integer mylastindex; |
439 | Standard_Integer mylastgood; |
440 | Standard_Integer myCurrentOwner; |
441 | TColStd_SequenceOfInteger myDetectedSeq; |
442 | Standard_Integer myCurDetected; |
42cf5bc1 |
443 | Standard_Integer myAISCurDetected; |
f838dac4 |
444 | Handle(Prs3d_Drawer) mySubintStyle; |
42cf5bc1 |
445 | |
446 | }; |
447 | |
448 | |
449 | #include <AIS_LocalContext.lxx> |
450 | |
451 | |
452 | |
453 | |
454 | |
455 | #endif // _AIS_LocalContext_HeaderFile |