Esempio n. 1
0
    void DrawLowerArm(MatrixStack &modelToCameraStack)
    {
        modelToCameraStack.Push();
        modelToCameraStack.Translate(posLowerArm);
        modelToCameraStack.RotateX(angLowerArm);

        modelToCameraStack.Push();
        modelToCameraStack.Translate(glm::vec3(0.0f, 0.0f, lenLowerArm / 2.0f));
        modelToCameraStack.Scale(glm::vec3(widthLowerArm / 2.0f, widthLowerArm / 2.0f, lenLowerArm / 2.0f));
        glUniformMatrix4fv(modelToCameraMatrixUnif, 1, GL_FALSE, glm::value_ptr(modelToCameraStack.Top()));
        glDrawElements(GL_TRIANGLES, ARRAY_COUNT(indexData), GL_UNSIGNED_SHORT, 0);
        modelToCameraStack.Pop();

        DrawWrist(modelToCameraStack);

        modelToCameraStack.Pop();
    }
Esempio n. 2
0
void DrawRobotArm(int NumSegs)
{
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();

    /** Base of Arm **/
    glTranslatef(0,0,0);
    glRotatef(BaseSpin,0.0,1.0,0.0);
    DrawBase(NumSegs);

    /** Arm Segment #1 **/
    glTranslatef(0,0.4f,0);
    glRotatef(ShoulderAng,0.0,0.0,1.0);
    DrawArmSegment(NumSegs);

    /** Arm Segment #2 **/
    glTranslatef(0,0.5f,0);
    glRotatef(ElbowAng,0.0,0.0,1.0);
    DrawArmSegment(NumSegs);

    /** Wrist **/
    glTranslatef(0,0.5f,0);
    glRotatef(WristAng,0.0,0.0,1.0);
    DrawWrist(NumSegs);

    glTranslatef(0,0.2f,0);
    glRotatef(FingerAng1,0.0,0.0,1.0);
    DrawFingerBase(NumSegs);
    
    glTranslatef(0, 0.3f, 0);
    glRotatef(-90, 0, 0, 1);
    DrawFingerTip(NumSegs);
    
    glRotatef(90, 0, 0, 1);
    glTranslatef(0, -0.3f, 0);
    
    glRotatef(FingerAng2*2,0.0,0.0,1.0);
    DrawFingerBase(NumSegs);
    glTranslatef(0, 0.3f, 0);
    glRotatef(90, 0, 0, 1);
    DrawFingerTip(NumSegs);

    glPopMatrix();				// Pop Base of Arm
}