void Model_Robot::draw(Model::DrawMode mode) { float lua = theta[LUA]; float lla = theta[LLA]; float rua = theta[RUA]; float rla = theta[RLA]; float lul = theta[LUL]; float lll = theta[LLL]; float rul = theta[RUL]; float rll = theta[RLL]; torso(); glPushMatrix(); glTranslatef(0, head_height / 2, 0); head(); glPopMatrix(); glPushMatrix(); glTranslatef(torso_radius, 0, 0); glRotatef(lua, 0, 0, 1); left_upper_arm(); glTranslatef(upper_arm_height, 0, 0); glRotatef(lla, 0, 0, 1); left_lower_arm(); glPopMatrix(); glPushMatrix(); glTranslatef(-torso_radius, 0, 0); glRotatef(rua, 0, 0, 1); right_upper_arm(); glTranslatef(-upper_arm_height, 0, 0); glRotatef(rla, 0, 0, 1); right_lower_arm(); glPopMatrix(); glPushMatrix(); glTranslatef(torso_radius, -torso_height, 0); glRotatef(lul, 1, 0, 0); left_upper_leg(); glTranslatef(0, -upper_leg_height, 0); glRotatef(lll, 1, 0, 0); left_lower_leg(); glPopMatrix(); glPushMatrix(); glTranslatef(-torso_radius, -torso_height, 0); glRotatef(rul, 1, 0, 0); right_upper_leg(); glTranslatef(0, -upper_leg_height, 0); glRotatef(rll, 1, 0, 0); right_lower_leg(); glPopMatrix(); }
void OddishModel::drawCyborg(GLuint texture1,GLuint texture2,GLuint texture3){ glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glRotatef(thetaO[0], 0.0, 1.0, 0.0); glPushMatrix(); glTranslatef(0,TORSO_HEIGHT_ODDISH-1.0, 0.0); torso(texture2); glPopMatrix(); glPushMatrix(); glTranslatef(0,TORSO_HEIGHT_ODDISH, 0.0); glTranslatef(0.0, NECK_HEIGHT_ODDISH+0.5*HEAD_HEIGHT_ODDISH-0.3, 0.0); head(texture1); glTranslatef(-0.70, NECK_HEIGHT_ODDISH+0.5*HEAD_HEIGHT_ODDISH+0.5, 0.0); glTranslatef(1.30, -0.6+NECK_HEIGHT_ODDISH+0.5*HEAD_HEIGHT_ODDISH, 0.0); glTranslatef(-0.5, -0.6+NECK_HEIGHT_ODDISH+0.5*HEAD_HEIGHT_ODDISH-4, 0.0); glPopMatrix();//add JOINT_POINT_ glPushMatrix();//add JOINT_POINT_ glTranslatef(-0.85*(TORSO_RADIUS_ODDISH+JOINT_POINT_RADIUS_ODDISH), 0.9*TORSO_HEIGHT_ODDISH, 0.0); joint_point(); glTranslatef(0.0, -0.5, 0.0); //glRotatef(thetaO[3], 1.0, 0.0, 0.0); glRotatef(thetaO[3], 1.0, 0.0, 0.0); glRotatef(thetaO[11], 0.0, 0.0, 1.0); left_upper_arm(texture3); glTranslatef(0.0, 0.0,UPPER_ARM_HEIGHT_ODDISH); joint_point(); /* glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_ODDISH, 0.0); glRotatef(thetaO[4], 1.0, 0.0, 0.0); left_lower_arm(); */ glTranslatef(0.0, 0.0, LOWER_ARM_HEIGHT_ODDISH); //left_hand(); glPopMatrix(); glPushMatrix(); glTranslatef(0.85*(TORSO_RADIUS_ODDISH+JOINT_POINT_RADIUS_ODDISH), 0.9*TORSO_HEIGHT_ODDISH, 0.0); joint_point(); glTranslatef(0.4, -0.5, 0.0); glRotatef(thetaO[5], 1.0, 0.0, 0.0); glRotatef(thetaO[12], 0.0, 0.0, 1.0); right_upper_arm(texture3); glTranslatef(0.0, 0.0, UPPER_ARM_HEIGHT_ODDISH); joint_point(); //glBindTexture(GL_TEXTURE_2D, texture4); glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_ODDISH, 0.0); glRotatef(thetaO[6], 1.0, 0.0, 0.0); right_lower_arm(); glTranslatef(0.0, 0.0, LOWER_ARM_HEIGHT_ODDISH); //right_hand(texture3); glPopMatrix(); glPushMatrix(); glTranslatef(-(TORSO_RADIUS_ODDISH-JOINT_POINT_RADIUS_ODDISH), -0.15*JOINT_POINT_HEIGHT_ODDISH, 0.0); //joint_point(); glTranslatef(0, 0.1*JOINT_POINT_HEIGHT_ODDISH, 0.0); glRotatef(thetaO[7], 1.0, 0.0, 0.0); glRotatef(thetaO[13], 0.0, 0.0, 1.0); //left_upper_leg(); glTranslatef(0.0, UPPER_LEG_HEIGHT_ODDISH, 0.0); //joint_point(); glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_ODDISH, 0.0); glRotatef(thetaO[8], 1.0, 0.0, 0.0); //left_lower_leg(); glTranslatef(0.7, 0.1*JOINT_POINT_HEIGHT_ODDISH, 0.0); //glTranslatef(0.0, LOWER_LEG_HEIGHT_ODDISH_ODDISH, -0.5*FOOT_HEIGHT_ODDISH); glRotatef(thetaO[15], 1.0, 0.0, 0.0); left_foot(texture3); glPopMatrix(); glPushMatrix(); glTranslatef(TORSO_RADIUS_ODDISH-JOINT_POINT_RADIUS_ODDISH, -0.15*JOINT_POINT_HEIGHT_ODDISH, 0.0); //joint_point(); glTranslatef(0, 0.1*JOINT_POINT_HEIGHT_ODDISH, 0.0); glRotatef(thetaO[9], 1.0, 0.0, 0.0); glRotatef(thetaO[14], 0.0, 0.0, 1.0); //right_upper_leg(); glTranslatef(0.0, UPPER_LEG_HEIGHT_ODDISH, 0.0); //joint_point(); glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_ODDISH, 0.0); glRotatef(thetaO[10], 1.0, 0.0, 0.0); //right_lower_leg(); glTranslatef(-0.3, 0.1*JOINT_POINT_HEIGHT_ODDISH-0.2, 0.0); //glTranslatef(0.0, LOWER_LEG_HEIGHT_ODDISH_ODDISH, -0.5*FOOT_HEIGHT_ODDISH); glRotatef(thetaO[11], 1.0, 0.0, 0.0); right_foot(texture3); glPopMatrix(); }
void display() { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); mvstack.push( model_view ); model_view = RotateY( theta[Torso] ); torso(); model_view *= ( Translate( 0.0, TORSO_HEIGHT + 0.5 * HEAD_HEIGHT, 0.0 ) * RotateX( theta[Head1] ) * RotateY( theta[Head2] ) * Translate( 0.0, -0.5 * HEAD_HEIGHT, 0.0 ) ); head(); model_view = mvstack.pop(); mvstack.push( model_view ); model_view *= ( Translate( -( TORSO_WIDTH + UPPER_ARM_WIDTH ), 0.9 * TORSO_HEIGHT, 0.0 ) * RotateX( theta[LeftUpperArm] ) ); left_upper_arm(); model_view *= ( Translate( 0.0, UPPER_ARM_HEIGHT, 0.0 ) * RotateX( theta[LeftLowerArm] ) ); left_lower_arm(); model_view = mvstack.pop(); mvstack.push( model_view ); model_view *= ( Translate( TORSO_WIDTH + UPPER_ARM_WIDTH, 0.9 * TORSO_HEIGHT, 0.0 ) * RotateX( theta[RightUpperArm] ) ); right_upper_arm(); model_view *= ( Translate( 0.0, UPPER_ARM_HEIGHT, 0.0 ) * RotateX( theta[RightLowerArm] ) ); right_lower_arm(); model_view = mvstack.pop(); mvstack.push( model_view ); model_view *= ( Translate( -( TORSO_WIDTH + UPPER_LEG_WIDTH ), 0.1 * UPPER_LEG_HEIGHT, 0.0 ) * RotateX( theta[LeftUpperLeg] ) ); left_upper_leg(); model_view *= ( Translate( 0.0, UPPER_LEG_HEIGHT, 0.0 ) * RotateX( theta[LeftLowerLeg] ) ); left_lower_leg(); model_view = mvstack.pop(); mvstack.push( model_view ); model_view *= ( Translate( TORSO_WIDTH + UPPER_LEG_WIDTH, 0.1 * UPPER_LEG_HEIGHT, 0.0 ) * RotateX( theta[RightUpperLeg] ) ); right_upper_leg(); model_view *= ( Translate( 0.0, UPPER_LEG_HEIGHT, 0.0 ) * RotateX( theta[RightLowerLeg] ) ); right_lower_leg(); model_view = mvstack.pop(); glutSwapBuffers(); }
void MarillModel::drawCyborg(GLuint texture1,GLuint texture2,GLuint texture3,GLuint texture4){ glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glRotatef(thetaM[0], 0.0, 1.0, 0.0); glPushMatrix(); glTranslatef(0,TORSO_HEIGHT_MARILL-1.0, 0.0); torso(texture3); glPopMatrix(); glPushMatrix(); glTranslatef(0,TORSO_HEIGHT_MARILL, 0.0); neck(); glTranslatef(0.0, NECK_HEIGHT_MARILL+0.5*HEAD_HEIGHT_MARILL-0.3, 0.0); //glRotatef(theta[1], 1.0, 0.0, 0.0); //glRotatef(theta[2], 0.0, 1.0, 0.0); head(texture2); glTranslatef(-0.70, NECK_HEIGHT_MARILL+0.5*HEAD_HEIGHT_MARILL+0.5, 0.0); right_ear(texture1); glTranslatef(1.30, -0.6+NECK_HEIGHT_MARILL+0.5*HEAD_HEIGHT_MARILL, 0.0); left_ear(texture1); glTranslatef(-0.5, -0.6+NECK_HEIGHT_MARILL+0.5*HEAD_HEIGHT_MARILL-4, 0.0); tail(texture4); glPopMatrix();//add JOINT_POINT_ glPushMatrix();//add JOINT_POINT_ glTranslatef(-0.85*(TORSO_RADIUS_MARILL+JOINT_POINT_RADIUS_MARILL), 0.9*TORSO_HEIGHT_MARILL, 0.0); joint_point(); glTranslatef(0.0, 0.0, 0.0); glRotatef(thetaM[3], 1.0, 0.0, 0.0); glRotatef(thetaM[11], 0.0, 0.0, 1.0); left_upper_arm(texture4); glTranslatef(0.0, 0.0,UPPER_ARM_HEIGHT_MARILL); joint_point(); /* glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_MARILL, 0.0); glRotatef(thetaM[4], 1.0, 0.0, 0.0); left_lower_arm(); */ glTranslatef(0.0, 0.0, LOWER_ARM_HEIGHT_MARILL); //left_hand(); glPopMatrix(); glPushMatrix(); glTranslatef(0.85*(TORSO_RADIUS_MARILL+JOINT_POINT_RADIUS_MARILL), 0.9*TORSO_HEIGHT_MARILL, 0.0); joint_point(); glTranslatef(0.0, 0.0, 0.0); glRotatef(thetaM[5], 1.0, 0.0, 0.0); glRotatef(thetaM[12], 0.0, 0.0, 1.0); right_upper_arm(texture4); glTranslatef(0.0, 0.0, UPPER_ARM_HEIGHT_MARILL); joint_point(); //glBindTexture(GL_TEXTURE_2D, texture4); glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_MARILL, 0.0); glRotatef(thetaM[6], 1.0, 0.0, 0.0); right_lower_arm(); glTranslatef(0.0, 0.0, LOWER_ARM_HEIGHT_MARILL); //right_hand(texture3); glPopMatrix(); glPushMatrix(); glTranslatef(-(TORSO_RADIUS_MARILL-JOINT_POINT_RADIUS_MARILL), -0.15*JOINT_POINT_HEIGHT_MARILL, 0.0); //joint_point(); glTranslatef(0, 0.1*JOINT_POINT_HEIGHT_MARILL, 0.0); glRotatef(thetaM[7], 1.0, 0.0, 0.0); glRotatef(thetaM[13], 0.0, 0.0, 1.0); //left_upper_leg(); glTranslatef(0.0, UPPER_LEG_HEIGHT_MARILL, 0.0); //joint_point(); glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_MARILL, 0.0); glRotatef(thetaM[8], 1.0, 0.0, 0.0); //left_lower_leg(); glTranslatef(0.7, 0.1*JOINT_POINT_HEIGHT_MARILL, 0.0); //glTranslatef(0.0, LOWER_LEG_HEIGHT_MARILL_MARILL, -0.5*FOOT_HEIGHT_MARILL); glRotatef(thetaM[15], 1.0, 0.0, 0.0); left_foot(texture4); glPopMatrix(); glPushMatrix(); glTranslatef(TORSO_RADIUS_MARILL-JOINT_POINT_RADIUS_MARILL, -0.15*JOINT_POINT_HEIGHT_MARILL, 0.0); //joint_point(); glTranslatef(0, 0.1*JOINT_POINT_HEIGHT_MARILL, 0.0); glRotatef(thetaM[9], 1.0, 0.0, 0.0); glRotatef(thetaM[14], 0.0, 0.0, 1.0); //right_upper_leg(); glTranslatef(0.0, UPPER_LEG_HEIGHT_MARILL, 0.0); //joint_point(); glTranslatef(0.0, 0.1*JOINT_POINT_HEIGHT_MARILL, 0.0); glRotatef(thetaM[10], 1.0, 0.0, 0.0); //right_lower_leg(); glTranslatef(-0.3, 0.1*JOINT_POINT_HEIGHT_MARILL-0.2, 0.0); //glTranslatef(0.0, LOWER_LEG_HEIGHT_MARILL_MARILL, -0.5*FOOT_HEIGHT_MARILL); glRotatef(thetaM[11], 1.0, 0.0, 0.0); right_foot(texture4); glPopMatrix(); }