最終更新:
mikk_ni3_92 2009年11月09日(月) 18:42:08
現在地 >> メニュー >> GLUI >> GLUI::03
add_translationメソッドを使う。
■add_translation( char *name, int trans_type, float *live_var=NULL, int id=-1, GLUI_Update_CB callback=NULL )
【name】:ラベル名
【trans_type】:平行移動の制御軸を指定
【live_var】:平行移動量の格納先。「GLUI_TRANSLATION_XY」の場合は要素数2つの配列を指定。他は1つでOK。
【id】:コールバックに渡す引数
【callback】:コールバック関数
【例】
【メモ】
「SHIFT キー」を押しながら操作すると、高速に移動できます。
「CTRL キー」を押しながら操作すると、ゆっくり移動できます。
詳細な設定をする場合は
「GLUI_Translation クラス」を作成し、GLUI本体に関連付ける。
【例】
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_XY | X軸とY軸の平行移動制御 |
| GLUI_TRANSLATION_X | X軸の平行移動制御 |
| GLUI_TRANSLATION_Y | Y軸の平行移動制御 |
| GLUI_TRANSLATION_Z | Z軸の平行移動制御 |
【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);
... ...
最新コメント