Integration of OCCT 6.5.0 from SVN
[occt.git] / samples / mfc / standard / 01_Geometry / src / ISession2D / ISession2D_Curve.h
1 #ifndef _ISession2D_Curve_HeaderFile
2 #define _ISession2D_Curve_HeaderFile
3
4 #include <Standard_Macro.hxx>
5 #include <Standard_DefineHandle.hxx>
6
7
8 #include <Quantity_Length.hxx>
9 #include <Aspect_TypeOfline.hxx>
10 #include <Aspect_WidthOfline.hxx>
11 #include <Standard_Integer.hxx>
12 #include <SelectMgr_SelectableObject.hxx>
13 #include <Handle_PrsMgr_PresentationManager2d.hxx>
14 #include <Handle_Graphic2d_GraphicObject.hxx>
15 #include <Handle_SelectMgr_Selection.hxx>
16 #include <Standard_OStream.hxx>
17 #include <Standard_IStream.hxx>
18 #include <Standard_CString.hxx>
19
20 class TColGeom2d_HSequenceOfCurve;
21 class PrsMgr_PresentationManager2d;
22 class Graphic2d_GraphicObject;
23 class SelectMgr_Selection;
24 class ISession2D_ObjectOwner;
25
26 #include "Geom2d_Curve.hxx"
27
28 #include "AIS_InteractiveObject.hxx"
29
30 DEFINE_STANDARD_HANDLE(ISession2D_Curve,AIS_InteractiveObject)
31 class ISession2D_Curve : public AIS_InteractiveObject {
32
33 public:
34
35  // Methods PUBLIC
36  // 
37
38          ISession2D_Curve
39                     (const Handle_Geom2d_Curve aGeom2dCurve,
40                      const Aspect_TypeOfLine aTypeOfline = Aspect_TOL_SOLID,
41                      const Aspect_WidthOfLine aWidthOfLine = Aspect_WOL_MEDIUM,
42                      const Standard_Integer aColorIndex = 4);
43
44 inline   Standard_Integer        NbPossibleSelection() const;
45
46 inline   Aspect_TypeOfLine  GetTypeOfLine
47                               () const;
48 inline   void               SetTypeOfLine
49                               (const Aspect_TypeOfLine aNewTypeOfLine) ;
50 inline   Aspect_WidthOfLine GetWidthOfLine
51                               () const;
52 inline   void               SetWidthOfLine
53                               (const Aspect_WidthOfLine aNewWidthOfLine) ;
54 inline   Standard_Integer   GetColorIndex
55                               () const;
56 inline   void               SetColorIndex
57                               (const Standard_Integer aNewColorIndex) ;
58
59 inline   Standard_Boolean  GetDisplayPole
60                               () const;
61 inline   void               SetDisplayPole
62                               (const Standard_Boolean aNewDisplayPole) ;
63
64 inline   Standard_Boolean  ISession2D_Curve::GetDisplayCurbure
65                               () const;
66 inline   void               ISession2D_Curve::SetDisplayCurbure
67                               (const Standard_Boolean aNewDisplayCurbure);
68
69
70 inline   Standard_Real  GetDiscretisation
71                               () const;
72 inline   void               SetDiscretisation
73                               (const Standard_Real aNewDiscretisation) ;
74
75
76 DEFINE_STANDARD_RTTI(ISession2D_Curve)
77
78
79 protected:
80
81  // Methods PROTECTED
82  // 
83
84
85  // Fields PROTECTED
86  //
87
88
89 private: 
90
91  // Methods PRIVATE
92  // 
93 virtual  void Compute(const Handle(PrsMgr_PresentationManager2d)& aPresentationManager,const Handle(Graphic2d_GraphicObject)& aGrObj,const Standard_Integer aMode = 0) ;
94 void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,const Standard_Integer aMode) ;
95
96
97  // Fields PRIVATE
98  //
99 Handle_Geom2d_Curve myGeom2dCurve;
100 Aspect_TypeOfLine   myTypeOfLine;
101 Aspect_WidthOfLine  myWidthOfLine;
102 Standard_Integer    myColorIndex;
103 Standard_Boolean    myDisplayPole;
104 Standard_Boolean    myDisplayCurbure;
105 Standard_Real       myDiscretisation;
106 Standard_Real       myradiusmax ;
107 Standard_Real       myradiusratio ;
108
109
110 };
111
112
113
114 // other inCurve functions and methods (like "C++: function call" methods)
115 //
116
117 inline   Standard_Integer  ISession2D_Curve::NbPossibleSelection() const
118 {
119 return 1;
120 }
121
122 inline  Aspect_TypeOfLine ISession2D_Curve::GetTypeOfLine() const
123 {
124   return myTypeOfLine ;
125 }
126  
127 inline  void ISession2D_Curve::SetTypeOfLine(const Aspect_TypeOfLine aNewTypeOfLine) 
128 {
129   myTypeOfLine = aNewTypeOfLine;
130 }
131
132 inline  Aspect_WidthOfLine ISession2D_Curve::GetWidthOfLine() const
133 {
134   return myWidthOfLine ;
135 }
136
137 inline  void ISession2D_Curve::SetWidthOfLine(const Aspect_WidthOfLine aNewWidthOfLine) 
138 {
139   myWidthOfLine = aNewWidthOfLine;
140 }
141
142 inline  Standard_Integer ISession2D_Curve::GetColorIndex() const
143 {
144   return myColorIndex ;
145 }
146
147 inline  void ISession2D_Curve::SetColorIndex(const Standard_Integer aNewColorIndex) 
148 {
149   myColorIndex = aNewColorIndex;
150 }
151
152 inline   Standard_Boolean  ISession2D_Curve::GetDisplayPole
153                               () const
154 {
155 return myDisplayPole;
156 }
157 inline   void               ISession2D_Curve::SetDisplayPole
158                               (const Standard_Boolean aNewDisplayPole)
159 {
160 myDisplayPole = aNewDisplayPole;
161 }
162
163 inline   Standard_Boolean  ISession2D_Curve::GetDisplayCurbure
164                               () const
165 {
166 return myDisplayCurbure;
167 }
168 inline   void               ISession2D_Curve::SetDisplayCurbure
169                               (const Standard_Boolean aNewDisplayCurbure)
170 {
171 myDisplayCurbure = aNewDisplayCurbure;
172 }
173
174  
175 inline   Standard_Real  ISession2D_Curve::GetDiscretisation
176                               () const
177 {
178 return myDiscretisation;
179 }
180 inline   void               ISession2D_Curve::SetDiscretisation
181                               (const Standard_Real aNewDiscretisation) 
182 {
183 myDiscretisation = aNewDiscretisation;
184 }
185
186
187
188 #endif
189