指定された軸を中心とした回転を表す 3 つのウィンドウを作成したいと考えています。そのためにXYZAxis
、 function を含むクラスを作成しましたrender
。次に、main からcreatWindow
GLUT ウィンドウを作成する関数を呼び出します。glutDisplayFunc
ただし、関数 render を:( main のフラグメントに正しく渡す方法がわかりません
void (XYZAxis::* pmf)(void);
pmf = &XYZAxis::render;
XYZAxis *xaxis=&XYZAxis(origin,5,10);
glutDisplayFunc( void(xaxis->*pmf)() ) ;
glutIdleFunc(void(xaxis->*pmf)());
XYZAxis クラス内の関数
void render(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
this->orientation=this->orientation*(this->angle);
this->draw();
glutSwapBuffers();
}
ただし、プログラムはglutMainLoop()
;に到達するとコンパイルされます。エラーをスローしてウィンドウを閉じます
GLUT: 警告 (無名): 以下は GLUT 3.0 の新しいチェックです。コードを更新します。GLUT: Fatal Error in (unamed): ウィンドウ 1 には再表示が必要ですが、表示コールバックはありません。
正しく行う方法はありますか?何かアイデアはありますか?