MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
mgVBOLeaf クラス

mgVBOに対して描画データ作成後の情報を保持するためのクラス. [詳解]

mgVBOLeaf の継承関係図
mgVBOElement

公開メンバ関数

 mgVBOLeaf ()
 
 mgVBOLeaf (GLfloat size, MGColor &color)
 
 mgVBOLeaf (const mgVBOLeaf &vbol)
 
 mgVBOLeaf (const mgVBOLeafBuilder &builder)
 
 ~mgVBOLeaf ()
 
bool is_made (MGCL::VIEWMODE viewMode=MGCL::DONTCARE)
 
void make_display_list (MGCL::VIEWMODE vmode=MGCL::DONTCARE)
 
void draw (MGCL::VIEWMODE viewMode=MGCL::DONTCARE)
 
void redraw (MGCL::VIEWMODE viewMode=MGCL::DONTCARE)
 
virtual void selectionDraw (MGCL::VIEWMODE viewMode=MGCL::DONTCARE)
 
void setDrawType (mgGLSL::DrawType drawType)
 DrawTypeをセットする [詳解]
 
mgGLSL::DrawType getDrawType () const
 
void setTexture (mgTexture *texture)
 
const mgTexturegetTexture () const
 Textureをset/getする。 [詳解]
 
mgTexturegetTexture ()
 
bool texture_is_bound () const
 Test if a texture is binded. [詳解]
 
void updateVertex (unsigned ID, const MGPosition &P)
 
void updateVertices (unsigned startID, const std::vector< MGPosition > &Ps)
 
void updateVertices (unsigned startID, const MGBPointSeq &Ps)
 
void updateVertices (unsigned startID, unsigned numVertices, const float *area)
 
unsigned getVerticesNumber () const
 Vertexの数を求める [詳解]
 
unsigned getDName () const
 
virtual GLuint getSelectionName () const
 
void setPolygonMode (GLenum mode)
 
void setStaticAttribColor (const MGColor &color)
 
void setPrimitiveMode (GLenum primitiveMode)
 
void setLightMode (int mode)
 Set light mode. mode=-1:undefined, =0:disabled, =1:enabled. [詳解]
 
void setLineStipple (short int factor, GLushort pattern)
 
void setStaticAttribLineWidth (GLfloat size)
 
void setStaticAttribPointSize (GLfloat size)
 size<=0. はundefinedを示す [詳解]
 
- 基底クラス mgVBOElement に属する継承公開メンバ関数
 mgVBOElement ()
 
virtual ~mgVBOElement ()
 
virtual mgVBOvboPointer ()
 When this is a mgVBOPointer, return the vbo pointer referenced. [詳解]
 
virtual const mgVBOLeafleafPointer ()
 When this is a mgVBOLeaf, return the mgVBOLeaf pointer. [詳解]
 
virtual void set_display ()
 set_display/set_no_display controls if this mgVBO be displayed or not. [詳解]
 
virtual void set_no_display ()
 
virtual bool getNoDisplayMode () const
 
bool is_no_display () const
 
bool is_display () const
 

その他の継承メンバ

- 基底クラス mgVBOElement に属する継承静的公開メンバ関数
static void setDrawParam (const MGDrawParam &dpara)
 
static MGDrawParamgetDrawParam ()
 
static void setHilightColor (const MGColor &hcolor)
 
static const MGColorgetHilightColor ()
 
static void setDefaultPointSize (GLfloat psize)
 
static GLfloat getDefaultPointSize ()
 
- 基底クラス mgVBOElement に属する継承限定公開変数類
bool m_no_display:1
 

詳解

mgVBOに対して描画データ作成後の情報を保持するためのクラス.

mgVBOはmgVBOLeafとmgVBO自身をelementとして保持する。 mgVBOをelementとするのはMGGroupまたはMGShellのメンバーデータの表示情報を 保持するため

構築子と解体子

mgVBOLeaf::mgVBOLeaf ( )
mgVBOLeaf::mgVBOLeaf ( GLfloat  size,
MGColor color 
)
mgVBOLeaf::mgVBOLeaf ( const mgVBOLeaf vbol)
mgVBOLeaf::mgVBOLeaf ( const mgVBOLeafBuilder &  builder)
mgVBOLeaf::~mgVBOLeaf ( )

関数詳解

void mgVBOLeaf::draw ( MGCL::VIEWMODE  viewMode = MGCL::DONTCARE)
virtual

描画関数draw()は、is_made()であれば、作成し、表示処理をする。 is_made()(描画データ作成済み)であれば、すでに作成されたmgVBOElementの描画を行う。 mgVBOLeafでは常に作成すみであり表示処理をおこなう。

mgVBOElementを実装しています。

unsigned mgVBOLeaf::getDName ( ) const
inlinevirtual

Obtain display list name. 0(null) はこのmgVBOElementはmgVBOLeafであり、名前をもたないことを示す。 名前はmgVBOだけが持つ

mgVBOElementを実装しています。

mgGLSL::DrawType mgVBOLeaf::getDrawType ( ) const
inline
virtual GLuint mgVBOLeaf::getSelectionName ( ) const
inlinevirtual

Selectionに設定する名前を求める。=0のとき、名前の設定処理をしない。 0(null) はこのmgVBOElementはmgVBOLeafであり、名前をもたないことを示す。 名前はmgVBOだけが持つ

mgVBOElementを実装しています。

const mgTexture* mgVBOLeaf::getTexture ( ) const

Textureをset/getする。

mgTexture* mgVBOLeaf::getTexture ( )
unsigned mgVBOLeaf::getVerticesNumber ( ) const
inline

Vertexの数を求める

bool mgVBOLeaf::is_made ( MGCL::VIEWMODE  viewMode = MGCL::DONTCARE)
inlinevirtual

Cloned mgVBOLeaf has only static attributes copied. All the other data are initialized. このmgVBOElementがnull(いまだdraw/make_display_list()処理されていない)かを判定 mgVBOはm_gelに対するmake_display_list()処理がなされていないときfalseが返される mgVBOLeafはmake_display_list()されたときのみ存在するため常にtrueが返る。

mgVBOElementを実装しています。

void mgVBOLeaf::make_display_list ( MGCL::VIEWMODE  vmode = MGCL::DONTCARE)
inlinevirtual

すでに作成済みであっても強制的に再作成を行う。 mgVBOLeafは作成済みの場合のみ存在するため何もしない。

mgVBOElementを実装しています。

void mgVBOLeaf::redraw ( MGCL::VIEWMODE  viewMode = MGCL::DONTCARE)
inlinevirtual

draw()はmgVBOLeafが作成済み(not null)であれば作成処理を行わないが、 redraw()は強制的に再作成を行い描画処理をおこなう。 mgVBOLeafでは常に作成すみであり表示処理をおこなう。

mgVBOElementを実装しています。

virtual void mgVBOLeaf::selectionDraw ( MGCL::VIEWMODE  viewMode = MGCL::DONTCARE)
virtual

描画関数selectionDraw()は、Object選択のための表示処理をする。 通常のdrawとの相違:///Colorとしてm_bufferIDを用い、size処理以外の attributesの処理(normal, texture, color)をしない。

mgVBOElementを実装しています。

void mgVBOLeaf::setDrawType ( mgGLSL::DrawType  drawType)
inline

DrawTypeをセットする

void mgVBOLeaf::setLightMode ( int  mode)

Set light mode. mode=-1:undefined, =0:disabled, =1:enabled.

void mgVBOLeaf::setLineStipple ( short int  factor,
GLushort  pattern 
)

Line stipple属性をセットする。 When factor=0 is input, line pattern is disabled. This means the line is solid. When factor<0, the stipple attribute is undefined. This means the attribute is defined by the environment. When factor<=0, pattern is unnecessary.

void mgVBOLeaf::setPolygonMode ( GLenum  mode)

m_primitiveMode=GL_QUAD_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN のときにのみ有効でそのPolygonMode(GL_POINT, GL_LINE, GL_FILL)を指定する. setPolygonModeしていないmgVBOLeafはGL_FILLとされる。

void mgVBOLeaf::setPrimitiveMode ( GLenum  primitiveMode)
inline
void mgVBOLeaf::setStaticAttribColor ( const MGColor color)
inline
void mgVBOLeaf::setStaticAttribLineWidth ( GLfloat  size)
void mgVBOLeaf::setStaticAttribPointSize ( GLfloat  size)

size<=0. はundefinedを示す

void mgVBOLeaf::setTexture ( mgTexture texture)

Textureをset/getする。 textureは参照するのみ

bool mgVBOLeaf::texture_is_bound ( ) const

Test if a texture is binded.

void mgVBOLeaf::updateVertex ( unsigned  ID,
const MGPosition P 
)

作成済のmgVBOLeafのIDの位置のVertex dataをPのデータに置き換える。 0<= ID <getVerticesNumber();

void mgVBOLeaf::updateVertices ( unsigned  startID,
const std::vector< MGPosition > &  Ps 
)

作成済のmgVBOLeafのstartIDの位置からnum個のVertex dataをPsのデータに 置き換える。 0<= startID , startID+num<=getVerticesNumber(). Here num=Ps.size();

void mgVBOLeaf::updateVertices ( unsigned  startID,
const MGBPointSeq Ps 
)

作成済のmgVBOLeafのstartIDの位置からnum個のVertex dataをPsのデータに 置き換える。 0<= startID , startID+num<=getVerticesNumber(). Here num=Ps.length();

void mgVBOLeaf::updateVertices ( unsigned  startID,
unsigned  numVertices,
const float *  area 
)

作成済のmgVBOLeafのstartIDの位置からnumVertices個の頂点dataをareaのデータに 置き換える。 0<= startID , startID+numVertices<=getVerticesNumber(). areaの配列の長さ=numVertices*3となる


このクラス詳解は次のファイルから抽出されました: