MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
ConstructionPlane.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 // MGConstructionPlane.h : MGConstructionPlane クラスの宣言およびインターフェイスの定義をします。
6 #ifndef _MGConstructionPlane_HH_
7 #define _MGConstructionPlane_HH_
8 
9 class MGBox;
10 class MGPosition;
11 class MGContext;
12 
13 #include "mg/Plane.h"
14 #include "mgGL/Color.h"
15 #include "mgGL/VBO.h"
16 
22 
33 class MG_DLL_DECLR MGConstructionPlane: public mgVBO{
34 
35 public:
36 
38 
40 
42  double origin[3],
43  double uaxis[3],
44  double vaxis[3],
45  double uspan,
46  double vspan,
47  int uline_num,
48  int vline_num,
49  double nspan=1.
50 );
52  const MGPlane& plane,
53  double uspan,
54  double vspan,
55  int uline_num,
56  int vline_num,
57  double nspan=1.
58 );
59 
60 //Copy constructor.
61 //MGConstructionPlane(const MGConstructionPlane& pobj2);
62 
64 //~MGConstructionPlane();
65 
67 
68 //Assignment operator.
69 //MGConstructionPlane& operator=(const MGConstructionPlane& pobj);
70 
72 
75 void bind_to_grid(
76  const MGPosition& uv,
77  MGPosition& uvout
78 )const;
79 
81 void change_origin(
82  const MGPosition& new_origin
83 );
84 
87 MGPosition convert_to_world(const MGPosition& cplane_coord)const;
88 
91 MGPosition convert_from_world(const MGPosition& world_coord)const;
92 
95 
98 bool is_bind_to_grid()const{return m_bind_to_grid;};
99 
101 MGVector eval(const MGPosition& uv)const{return m_plane.eval(uv);};
102 MGVector eval(double u, double v)const{return m_plane.eval(u,v);};
103 
105 void get_colors(
106  MGColor& lineColor,
107  MGColor& uaxisColor,
108  MGColor& vaxisColor
109 )const;
110 
112 void get_grid_data(
113  double& uspan,
114  double& vspan,
115  int& uline_num,
116  int& vline_num,
117  double& nspan
118 )const;
119 
124 MGPosition locate(
125  const MGStraight& sl,
126  MGPosition& uv
127 )const;
128 
129 bool disabled()const{return m_disabled;};
130 bool enabled()const{return !m_disabled;};
131 
133 void set_bind_to_grid_enable(){m_bind_to_grid=true;};
134 void set_bind_to_grid_disable(){m_bind_to_grid=false;};
135 
138 void importGridAttrib(const MGContext& ctx);
139 
147 void setGridDataByBox(
148  const MGBox& box,
149  int view_num=1,
150  const MGColor* gridColors=0
153 );
154 
156 void set_grid_data(
157  const MGPlane& plane,
158  double uspan,
159  double vspan,
160  int uline_num,
161  int vline_num,
162  double nspan=1
163 );
164 
165 bool valid()const{return m_plane.sdim()>0;};
166 const MGPlane& plane()const{return m_plane;};
167 MGPlane& plane(){return m_plane;};
168 double uspan()const{return m_uspan;};
169 double vspan()const{return m_vspan;};
170 int vnum()const{return m_vnum;};
171 int unum()const{return m_unum;};
172 
174 void set_colors(const MGColor colors[3]);
175 
182 void set_colorsByViewID(
183  int vid,
184  const MGColor colors[4]
185 );
186 
188 //void set_default_colors();
189 
191 void set_line_color(const MGColor& color);
192 
194 void set_uaxis_color(const MGColor& color);
195 
197 void set_vaxis_color(const MGColor& color);
198 
199 void set_disable(){m_disabled=true;};
200 void set_enable(){m_disabled=false;};
201 void set_span(double span);
202 void set_uspan(double span);
203 void set_vspan(double span);
204 void set_num(int line_num);
205 void set_unum(int unum);
206 void set_vnum(int vnum);
207 void set_plane(const MGPlane& plane);
208 
209 private:
210  bool m_disabled;
211  bool m_bind_to_grid;
213  MGPlane m_plane;
215  double m_vspan;
216  double m_uspan;
217  double m_nspan;
218  int m_vnum;
219  int m_unum;
220  MGColor m_lineColor,m_uaxisColor,m_vaxisColor;
221 
223  //const static float* m_lColorV;//Grid's line color except (u,v) plus axis.
224 
226 MG_DLL_DECLR friend void MGcplane_parameter(
227  const MGBox& box,
228  double& span,
229  int& lnum,
230  int& sdid,
231  MGPosition& mid
233 );
234 
236 MG_DLL_DECLR friend std::ostream& operator<< (std::ostream& out, const MGConstructionPlane& pln);
237 
239 MG_DLL_DECLR friend MGOfstream& operator<< (MGOfstream& buf, const MGConstructionPlane& cpl);
240 MG_DLL_DECLR friend MGIfstream& operator>> (MGIfstream& buf, MGConstructionPlane& cpl);
241 
242 };
243  // end of DisplayHandling group
245 #endif
void set_enable()
Definition: ConstructionPlane.h:200
bool valid() const
Definition: ConstructionPlane.h:165
MGPlane is infinite plane in 3D space.
Definition: Plane.h:38
Definition: MGCL.h:272
virtual void make_display_list(MGCL::VIEWMODE vmode=MGCL::DONTCARE)
MGVector eval(const MGPosition &uv) const
Obtain the position data of the parameter (u,v).
Definition: ConstructionPlane.h:101
MGIfstream is a class to read the serialized data generated by MGOfstream.
Definition: Ifstream.h:30
void set_bind_to_grid_disable()
Definition: ConstructionPlane.h:134
std::ostream & operator<<(std::ostream &ostrm, const MGisect &is)
Debug Function.
Definition: isect.h:95
Vector of a general n space dimension.
Definition: Vector.h:26
MGContext defines the attributes of a document.
Definition: Context.h:33
Defines a Box of any space dimendion.
Definition: Box.h:34
MGColor defines the OpenGL color (R,G,B,A).
Definition: Color.h:26
MGPlane & plane()
Definition: ConstructionPlane.h:167
const MGPlane & plane() const
Definition: ConstructionPlane.h:166
MGStraight is a curve of any space dimension, represent a straight line.
Definition: Straight.h:49
double uspan() const
Definition: ConstructionPlane.h:168
Represent a positional data.
Definition: Position.h:28
VIEWMODE
Definition: MGCL.h:271
MGOfstream is a class to serialize all of the subclasses of MGGel.
Definition: Ofstream.h:31
void set_bind_to_grid_enable()
set bind_to_grid enable or disable.
Definition: ConstructionPlane.h:133
bool disabled() const
Definition: ConstructionPlane.h:129
bool enabled() const
Definition: ConstructionPlane.h:130
int unum() const
Definition: ConstructionPlane.h:171
OpenGL 4 用描画のためのクラス, in other words, display list.
Definition: VBO.h:76
MGConstructionPlane defines a construction plane ton input 3D data.
Definition: ConstructionPlane.h:33
int vnum() const
Definition: ConstructionPlane.h:170
double vspan() const
Definition: ConstructionPlane.h:169
bool is_bind_to_grid() const
Definition: ConstructionPlane.h:98
MGVector eval(double u, double v) const
Definition: ConstructionPlane.h:102
void set_disable()
Definition: ConstructionPlane.h:199