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 キー」を押しながら操作すると、ゆっくり移動できます。