オブジェクトを選択できるロボット アームの実装に問題があります。これは、ロボットのすべての部分が前の部分に依存している実装での glTranslate()、glRotate() 呼び出しのためです。
例:
void drawRobo()
{
draw a Cylinder as Base;
glTranslate();
drawArmpart1();
glTranslate();
drawJoint1();
glRotate();
drawArmpart2();
glTranslate();
drawGrabbers(); // The claw or the endeffector
}
void drawObjects()
{
glTranslate();
drawCube() // Object
glTranslate();
drawSphere() // Object 2
}
void display()
{
drawRobo();
drawObjects();
glPostredisplay();
}
問題は、glRotate(); を使用してエンドエフェクターまたはグラバーを回転させるときです。私のオブジェクトも回転しますが、それは望ましくありません。オブジェクトに近づくようにジョイントとアームを回転させてから、グラバーを使用してそれらをピックしたいと考えています。
どうすればこれに対処できますか? glPushMAtrix() および glPopMatrix() コマンドが必要なすべての場所にあります。