現在地 >> メニュー >> GLUI >> GLUI::03

平行移動用パーツ


平行移動用パーツには、
  • XY コントロール
  • X コントロール
  • Y コントロール
  • Z コントロール
の4種類が存在する。

設定方法


add_translationメソッドを使う。

■add_translation( char *name, int trans_type, float *live_var=NULL, int id=-1, GLUI_Update_CB callback=NULL )
【name】:ラベル名
【trans_type】:平行移動の制御軸を指定
GLUI_TRANSLATION_XYX軸とY軸の平行移動制御
GLUI_TRANSLATION_XX軸の平行移動制御
GLUI_TRANSLATION_YY軸の平行移動制御
GLUI_TRANSLATION_ZZ軸の平行移動制御

【live_var】:平行移動量の格納先。「GLUI_TRANSLATION_XY」の場合は要素数2つの配列を指定。他は1つでOK。

【id】:コールバックに渡す引数
【callback】:コールバック関数


【例】
//平行移動
float trans_ary[2]={0,0};
float trans_aryZ[]={0};
... ...
GLUI *glui = GLUI_Master.create_glui("GLUI Window");
... ...
glui->add_translation("TransXY With CTRL key",GLUI_TRANSLATION_XY,trans_ary);
glui->add_translation("TransZ With CTRL key",GLUI_TRANSLATION_Z,trans_aryZ);

... ...

glPushMatrix();
glTranslatef(trans_ary[0],trans_ary[1],trans_aryZ[0]);//平行移動
glutWireTeapot(1); //描画
glPopMatrix();
... ...

【メモ】
「SHIFT キー」を押しながら操作すると、高速に移動できます。
「CTRL キー」を押しながら操作すると、ゆっくり移動できます。

詳細な設定


詳細な設定をする場合は
「GLUI_Translation クラス」を作成し、GLUI本体に関連付ける。

【例】
//平行移動
float trans_ary[2]={0,0};
float trans_aryZ[]={0};
... ...
//GLUIの初期設定
GLUI *glui = GLUI_Master.create_glui("GLUI Window");
... ...   
GLUI_Translation *gluiTrans1 = new GLUI_Translation(glui,"TransXY",GLUI_TRANSLATION_XY,trans_ary);
gluiTrans1->set_speed(0.1);
gluiTrans1->set_alignment(GLUI_ALIGN_RIGHT);//配置は右よせ
... ...
GLUI_Translation *gluiTrans2 = new GLUI_Translation(glui,"TransZ",GLUI_TRANSLATION_Z,trans_aryZ);
gluiTrans2->set_speed(0.1);
gluiTrans2->set_h(150);
gluiTrans2->set_w(150);
... ...

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます