void struct_part_name(void)
{
glNewList(part_name,GL_COMPILE);
.../* GL Commands to model */
glEndList();
}
void struct_left_arm(void)
{
glNewList(left_arm,GL_COMPILE);
// Shoulder
glTranslatef(1.1,0.25,0.0);
glScalef(0.5,0.5,0.5);
glColor3ub(128,128,128);
glutSolidSphere(0.5,20,20);
// Arm
glTranslatef(0.0,-1.10,0.0);
glScalef(0.5,1.5,0.5);
glColor3ub(255,255,255);
glutSolidCube(1.0);
glEndList();
}
...
#include
...
void DrawRobot()
{
glPushMatrix(); /* all objects are bust's son
that is if we move bust all other parts move too */
/*-------------------- DRAW HEAD AND BUST -----------------------*/
glPushMatrix();
/* Draw head */
/* Draw bust */
glPopMatrix();
[attachment=3301:head&bust.jpg] /*---------------- DRAW RIGHT ARM AND FOREARM --------------*/
glPushMatrix();
glPushMatrix();
/* Draw Right arm */
glPopMatrix();
glPushMatrix(); /* forearm is arm's child */
/* Draw Forearm */
glPopMatrix();
glPopMatrix();
[attachment=3302:arm&forearm.jpg] /*-------------- DRAW LEFT ARM AND FOREARM -----------------*/
glPushMatrix();
glPushMatrix();
/* Draw Left arm */
glPopMatrix();
glPushMatrix(); /* forearm is arm's child */
/* Draw Forearm */
glPopMatrix();
glPopMatrix();
[attachment=3303:arm&forearml.jpg] /*------------------ DRAW PELVIS AND LEGS ----------------*/
glPushMatrix(); /* another glPushMatrix because
if we move pelvis the legs move too...
(legs are pelvis' son) */
glPushMatrix();
/* Draw pelvis */
glPopMatrix();
glPushMatrix();
glPushMatrix();
/* Draw Right thigh */
glPopMatrix();
glPushMatrix(); /* leg is thigh's child */
/* Draw Leg */
glPopMatrix();
glPopMatrix();
glPushMatrix();
glPushMatrix();
/* Draw Left thigh */
glPopMatrix();
glPushMatrix(); /* leg is thigh's child */
/* Draw Leg */
glPopMatrix();
glPopMatrix();
glPopMatrix();
glPopMatrix();
}
[attachment=3304:pelvis&legs.jpg]
[size="5"]The Code
void DrawRobot(void)
{
/*-------------BUST AND HEAD--------------*/
glPushMatrix();
glRotatef(bust_angle_y,0,1,0);
glRotatef(bust_angle_x,1,0,0);
glPushMatrix();
glCallList(bust);
glCallList(head);
glPopMatrix();
/*--------RIGHT ARM AND FOREARM---------*/
glPushMatrix();
glTranslatef(0,0.25,0);
glRotatef(right_arm_angle,1,0,0);
glTranslatef(0,-0.25,0);
glPushMatrix();
glCallList(right_arm);
glPopMatrix();
glPushMatrix();
glTranslatef(1.25,-0.7,0);
glRotatef(right_forearm_angle,1,0,0);
glTranslatef(-1.25,0.7,0);
glCallList(right_forearm);
glPopMatrix();
glPopMatrix();
/*---------LEFT ARM AND FOREARM---------*/
glPushMatrix();
glTranslatef(0,0.25,0);
glRotatef(left_arm_angle,1,0,0);
glTranslatef(0,-0.25,0);
glPushMatrix();
glCallList(left_arm);
glPopMatrix();
glPushMatrix();
glTranslatef(1.25,-0.7,0);
glRotatef(left_forearm_angle,1,0,0);
glTranslatef(-1.25,0.7,0);
glCallList(left_forearm);
glPopMatrix();
glPopMatrix();
'2' & 'W'
'3' & 'E'
'4' & 'R'
'5' & 'T'
'6' & 'Y'
'7' & 'U'
'8' & 'I'
KEY ARROWS
PGUP & PGDOWN
'V' 'B' 'N' 'M'right arm control
right forearm control
left arm control
left forearm control
left thigh control
left leg control
right thigh control
right thigh control
rotate model
light control
camera control
And finally the bin & source are attached to this article. Happy coding... Arturo "IRIX" Montieri : [email="montieri@hotmail.com"]montieri@hotmail.com[/email]
This program can not run on my computer, please help on this error problem