/** * 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; }
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); }
/** * 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 ); }
/** * 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; }
/** * 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; }