예제 #1
0
//--------------------------------------------------------------
void LeapVisualizer::drawHand (Hand & hand,ofxLeapMotion & leap){
	if (hand.isValid()){
		drawFingers (hand,leap);
		drawPalm (hand,leap);
		drawArm (hand,leap);
	}
}
예제 #2
0
파일: anim.cpp 프로젝트: llevar/uoft
//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();
}