最終更新: 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); ... ...