0023776: Redesign of MFC samples after V2d viewer removing
[occt.git] / samples / mfc / standard / Common / Primitive / Sample2D_Markers.h
1 #ifndef _Sample2D_Markers_HeaderFile
2 #define _Sample2D_Markers_HeaderFile
3
4 #include <Standard_Macro.hxx>
5 #include <Standard_DefineHandle.hxx>
6 #include <Graphic3d_Array1OfVertex.hxx>
7 DEFINE_STANDARD_HANDLE(Sample2D_Markers,AIS_InteractiveObject)
8 class Sample2D_Markers : public AIS_InteractiveObject {
9
10 enum Sample2D_CurrentTypeOfMarker {
11 Sample2D_CTOM_Generic,
12 Sample2D_CTOM_Polyline,
13 Sample2D_CTOM_Circle,
14 Sample2D_CTOM_Ellips
15 } ;
16
17 public:
18
19  // Generic marker
20  Standard_EXPORT Sample2D_Markers (const Quantity_Length theXPosition , 
21                    const Quantity_Length theYPosition ,
22                    const Aspect_TypeOfMarker theMarkerType,
23                    const Quantity_Color theColor,
24                    const Standard_Real theScaleOrId=5.0);
25
26  // Polyline marker
27   Standard_EXPORT Sample2D_Markers (const Quantity_Length theXPosition , 
28                    const Quantity_Length theYPosition ,
29                    const Graphic3d_Array1OfVertex& theListVertex,
30                    const Aspect_TypeOfMarker theMarkerType,
31                    const Quantity_Color theColor,
32                    const Standard_Real theScaleOrId=2.0);
33
34
35 DEFINE_STANDARD_RTTI(Sample2D_Markers)
36
37 private: 
38
39 virtual void Compute (  const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,
40                   const Handle(Prs3d_Presentation)& aPresentation,
41                   const Standard_Integer aMode);
42
43 virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection,
44                            const Standard_Integer aMode){} ;
45
46
47 Standard_EXPORT virtual void SetContext(const Handle(AIS_InteractiveContext)& theContext){};
48
49
50
51 Sample2D_CurrentTypeOfMarker myCurrentTypeOfMarker;
52 Quantity_Length          myXPosition   ; 
53 Quantity_Length          myYPosition   ; 
54 Aspect_TypeOfMarker      myMarkerType;
55 Quantity_Color           myColor;
56 Quantity_Length          myWidth       ;
57 Quantity_Length          myHeight      ;
58 Standard_Real         myIndex       ;//myScaleOrId
59 // specific polyline marker
60 Graphic3d_Array1OfVertex myListVertex  ;
61 };
62
63
64
65 // other inCurve functions and methods (like "C++: function call" methods)
66 //
67
68
69
70 #endif