Exemple #1
0
/**
* This makes a step, this will be called procedurally
* to make several steps for each set of steps
**/
Object* makeStep( float height, float angle, float xTrans, float zTrans )
{
    Object *step = mkObject( "step.jpg", "stepsScene.vert", "stepsScene.frag" );
    // add the data to the object
    addVerticies( step, getSquareVerticies(), getSquareNorms(),
    getSquareConnectData(), getSquareNumVert(), getSquareNumVert(), getSquareUVs() );

    // setup my buffers for this object
    setupGLBuffers( step );
 
    float xDisp = 1.5 * cos( angle * 3.14159 / 180 );
    float zDisp = -1.5 * sin( angle * 3.14159 / 180 );

    GLfloat translation[] = { xDisp + xTrans, height, zDisp + zTrans};
    setTrans( step->shader, translation );

    // The scale for the step
    // it is 1x.25x.25
    GLfloat scale[] = {.75, .25, .25};
    setScale( step->shader, scale );

    GLfloat rotate[] = {0, angle, 0};
    setRotate( step->shader, rotate );

    return step;
}
Exemple #2
0
void fmVertController::setNumVerticies(int num, float maxSpeed) {
    if(num == verts.size()) {}
    else if(num < verts.size())
        removeVerticies(verts.size()-num);
    else if(num > verts.size())
        addVerticies(num - verts.size(), maxSpeed);
}
Exemple #3
0
/**
* Make the base ground
**/
void mkBase( void )
{
    baseGround = mkObject( "floor.jpg", "stepsScene.vert", "stepsScene.frag" );
    // add the data to the object
    addVerticies( baseGround, getSquareVerticies(), getSquareNorms(),
    getSquareConnectData(), getSquareNumVert(), getSquareNumVert(), getSquareUVs() );

    // setup my buffers for this object
    setupGLBuffers( baseGround );
    
    GLfloat scale[] = {10, .25, 10};
    setScale( baseGround->shader, scale );
}
Exemple #4
0
/**
* Make a cylinder
**/
Object* mkCylinder( float xTrans, float zTrans )
{
    Object *cylinder = mkObject( "pillar.jpg", "stepsScene.vert", "stepsScene.frag" );
    // add the data to the object
    addVerticies( cylinder, getCylinderVerticies(), getCylinderNorms(),
    getCylinderConnectData(), getCylinderNumVert(), getCylinderNumVert(), getCylinderUVs() );
    // setup my buffers for this object
    setupGLBuffers( cylinder );
    
    GLfloat translation[] = { xTrans, 40, zTrans };
    setTrans( cylinder->shader, translation );

    GLfloat scale[] = {2.5, 2.5, 80};
    setScale( cylinder->shader, scale );

    GLfloat rotate[] = {90, 0, 90};
    setRotate( cylinder->shader, rotate );

    return cylinder;
}
Exemple #5
0
/**
* Make a square
**/
Object* mkLanding( float height, float angle, float xTrans, float zTrans )
{
    Object *landing = mkObject( "step.jpg", "stepsScene.vert", "stepsScene.frag" );
    // add the data to the object
    addVerticies( landing, getSquareVerticies(), getSquareNorms(),
    getSquareConnectData(), getSquareNumVert(), getSquareNumVert(), getSquareUVs() );

    // setup my buffers for this object
    setupGLBuffers( landing );
 
    GLfloat translation[] = { xTrans, height, zTrans };
    setTrans( landing->shader, translation );

    GLfloat scale[] = {2, .25, 1};
    setScale( landing->shader, scale );

    GLfloat rotate[] = {0, angle, 0};
    setRotate( landing->shader, rotate );

    return landing;
}