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