1 // Copyright (c) 2020 OPEN CASCADE SAS
3 // This file is part of the examples of the Open CASCADE Technology software library.
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
22 #ifndef _Sample2D_Markers_HeaderFile
23 #define _Sample2D_Markers_HeaderFile
25 #include <AIS_InteractiveObject.hxx>
26 #include <Graphic3d_ArrayOfPoints.hxx>
28 //! AIS AIS interactive object for sample 2D marker
29 class Sample2D_Markers : public AIS_InteractiveObject
31 DEFINE_STANDARD_RTTI_INLINE(Sample2D_Markers, AIS_InteractiveObject)
33 enum Sample2D_CurrentTypeOfMarker
35 Sample2D_CTOM_Generic,
36 Sample2D_CTOM_Polyline,
44 Standard_EXPORT Sample2D_Markers (const Standard_Real theXPosition,
45 const Standard_Real theYPosition,
46 const Aspect_TypeOfMarker theMarkerType,
47 const Quantity_Color theColor,
48 const Standard_Real theScaleOrId=5.0);
51 Standard_EXPORT Sample2D_Markers (const Standard_Real theXPosition,
52 const Standard_Real theYPosition,
53 const Handle(Graphic3d_ArrayOfPoints)& theArrayOfPoints,
54 const Aspect_TypeOfMarker theMarkerType,
55 const Quantity_Color theColor,
56 const Standard_Real theScaleOrId=2.0);
60 //! Return TRUE for supported display modes (only mode 0 is supported).
61 virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer theMode) const Standard_OVERRIDE { return theMode == 0; }
63 //! Compute presentation.
64 virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& /*aPresentationManager*/,
65 const Handle(Prs3d_Presentation)& /*aPresentation*/,
66 const Standard_Integer theMode) Standard_OVERRIDE;
68 //! Compute selection (not implemented).
69 virtual void ComputeSelection (const Handle(SelectMgr_Selection)& ,
70 const Standard_Integer ) Standard_OVERRIDE {}
72 virtual void SetContext(const Handle(AIS_InteractiveContext)& ) Standard_OVERRIDE {}
76 Sample2D_CurrentTypeOfMarker myCurrentTypeOfMarker;
77 Standard_Real myXPosition;
78 Standard_Real myYPosition;
79 Aspect_TypeOfMarker myMarkerType;
80 Quantity_Color myColor;
81 Standard_Real myWidth;
82 Standard_Real myHeight;
83 Standard_Real myIndex;
84 //! specific polyline marker
85 Handle(Graphic3d_ArrayOfPoints) myArrayOfPoints;