//-------------------------------------------------------------- void LeapVisualizer::drawHand (Hand & hand,ofxLeapMotion & leap){ if (hand.isValid()){ drawFingers (hand,leap); drawPalm (hand,leap); drawArm (hand,leap); } }
//draw the model of a person void drawMan(){ set_colour(0.28f,0.36f,0.8f, 0.7f, 0.6f, 0.6f); glPushMatrix(); glTranslatef(0.0f, dofs[MAN_Y].curValue, dofs[MAN_Z].curValue); glRotatef(dofs[MAN_ROT_X].curValue, 1,0,0); //torso glPushMatrix(); glRotatef(-90.0f,1.0f,0.0f,0.0f); gluCylinder(aardvark, 0.4f, 0.6f, 1.2f, 32, 32); glPopMatrix(); //Whole left arm rotations glPushMatrix(); glTranslatef(-0.48,1.1,0); glRotatef(dofs[LEFT_SHOULDERX].curValue, 1,0,0); glTranslatef(0.48,-1.1,0); //left shoulder glPushMatrix(); glTranslatef(-0.6f, 1.1f, 0.0f); gluSphere(aardvark, 0.25, 32, 32); glPopMatrix(); //left upper arm glPushMatrix(); glTranslatef(-0.6f, 1.1f, 0.0f); glRotatef(90,1.0,0.0,0.0); gluCylinder(aardvark,0.23f, 0.1f, 0.7, 32, 32); glPopMatrix(); //left elbow glPushMatrix(); glTranslatef(-0.6, 0.4, 0.0); gluSphere(aardvark, 0.12, 32, 32); glPopMatrix(); //left elbow rotations glPushMatrix(); glTranslatef(0,0.4,0); glRotatef(dofs[LEFT_ELBOW].curValue, 1,0,0); glTranslatef(0,-0.4,0); //left forearm glPushMatrix(); glTranslatef(-0.6,0.4,0.0); glRotatef(90,1.0,0.0,0.0); gluCylinder(aardvark, 0.11, 0.04, 0.7, 32, 32); glPopMatrix(); //left palm glPushMatrix(); glTranslatef(-0.6,-0.4,0.0); glRotatef(180,0,0,1); glRotatef(180,0,1,0); glScalef(0.12,0.12,0.12); drawPalm(); glPopMatrix(); //end left elbow rotation glPopMatrix(); //end whole left arm rotations glPopMatrix(); //Whole right arm rotations glPushMatrix(); glTranslatef(0.48,1.1,0); glRotatef(dofs[RIGHT_SHOULDERX].curValue, 1, 0, 0); glTranslatef(-0.48,-1.1,0); //right shoulder glPushMatrix(); glTranslatef(0.6f, 1.1f, 0.0f); gluSphere(aardvark, 0.25, 32, 32); glPopMatrix(); //right upper arm glPushMatrix(); glTranslatef(0.6f, 1.1f, 0.0f); glRotatef(90,1.0,0.0,0.0); gluCylinder(aardvark,0.23f, 0.1f, 0.7, 32, 32); glPopMatrix(); //right elbow glPushMatrix(); glTranslatef(0.6, 0.4, 0.0); gluSphere(aardvark, 0.12, 32, 32); glPopMatrix(); //right elbow rotation glPushMatrix(); glTranslatef(0,0.4,0); glRotatef(dofs[RIGHT_ELBOW].curValue, 1,0,0); glTranslatef(0,-0.4,0); //right forearm glPushMatrix(); glTranslatef(0.6,0.4,0.0); glRotatef(90,1.0,0.0,0.0); gluCylinder(aardvark, 0.11, 0.04, 0.7, 32, 32); glPopMatrix(); //right palm glPushMatrix(); glTranslatef(0.6,-0.4,0.0); glRotatef(180,0,0,1); glScalef(0.12,0.12,0.12); drawPalm(); glPopMatrix(); //end right elbow rotation glPopMatrix(); //end whole right arm rotations glPopMatrix(); //Neck and Head rotations glPushMatrix(); glTranslatef(0,1.08,0); glRotatef(dofs[NECK_ANGLE].curValue, 1,0,0); glTranslatef(0,-1.08,0); //neck glPushMatrix(); glTranslatef(0.0f, 1.0f, 0.0f); glRotatef(-90.0f, 1.0f, 0.0f, 0.0f); gluCylinder(aardvark, 0.2f, 0.2f, 0.4f, 32, 32); glPopMatrix(); //head glPushMatrix(); glTranslatef(0.0f, 1.7f, 0.0f); glRotatef(-90,1,0,0); gluSphere(aardvark, 0.4, 32, 32); glPopMatrix(); //end Neck and Head rotations glPopMatrix(); //ass glPushMatrix(); glTranslatef(0.0f, -0.5f, 0.0f); glRotatef(-90.0f, 1.0f, 0.0f, 0.0f); gluCylinder(aardvark, 0.53f, 0.4f, 0.5f, 32, 32); glPopMatrix(); //rotate legs into kneeling position glPushMatrix(); glTranslatef(0,0.05,0.2); glRotatef(dofs[LEGS_ROT].curValue, 1,0,0); //rotate left leg to point feet and calves outwards glPushMatrix(); glRotatef(-10, 0,1,0); //left thigh glPushMatrix(); glTranslatef(-0.225f, -0.5f, 0.0f); glRotatef(90.0f, 1.0f, 0.0f, 0.0f); gluCylinder(aardvark, 0.28f, 0.1f, 0.8f, 32, 32); glPopMatrix(); //Left calf and foot rotations glPushMatrix(); glTranslatef(0, -1.33, 0); glRotatef(dofs[LEFT_KNEE].curValue, 1, 0, 0); glTranslatef(0, 1.33, 0); //left knee glPushMatrix(); glTranslatef(-0.225f, -1.35f, 0.0f); gluSphere(aardvark, 0.15f, 32, 32); glPopMatrix(); //left calf and foot glPushMatrix(); glTranslatef(-0.225f, -1.4f, 0.0f); gluCylinder(aardvark, 0.11f, 0.04f, 0.6f, 32, 32); glTranslatef(0,-0.1,0.6); glRotatef(-90,1,0,0); glScalef(0.1,0.05,0.2); glutSolidCube(2.0); glPopMatrix(); //end left calf and foot rotations glPopMatrix(); //end rotate left leg to point feet and calves outwards glPopMatrix(); //rotate right leg to point feet and calves outwards glPushMatrix(); glRotatef(10,0,1,0); //right thigh glPushMatrix(); glTranslatef(0.225f, -0.5f, 0.0f); glRotatef(90.0f, 1.0f, 0.0f, 0.0f); gluCylinder(aardvark, 0.28f, 0.1f, 0.8f, 32, 32); glPopMatrix(); //Right calf and foot rotations glPushMatrix(); glTranslatef(0, -1.33, 0); glRotatef(dofs[RIGHT_KNEE].curValue, 1, 0, 0); glTranslatef(0, 1.33, 0); //right nee glPushMatrix(); glTranslatef(0.225f, -1.35f, 0.0f); gluSphere(aardvark, 0.15f, 32, 32); glPopMatrix(); //right calf and foot glPushMatrix(); glTranslatef(0.225f, -1.4f, 0.0f); //glRotatef(90.0f, 1.0f, 0.0f, 0.0f); gluCylinder(aardvark, 0.11f, 0.04f, 0.6f, 32, 32); glTranslatef(0,-0.1,0.6); glRotatef(-90,1,0,0); glScalef(0.1,0.05,0.2); glutSolidCube(2.0); glPopMatrix(); //end right calf and foot rotations glPopMatrix(); //end rotate right leg to point feet and calves outwards glPopMatrix(); //end rotate legs into kneeling position glPopMatrix(); glPopMatrix(); }