topical media & game development
lib-of-vs-addons-ofx3DModelLoader-example-src-testApp.cpp / cpp
include <testApp.h>
GLfloat lightOnePosition[] = {40.0, 40, 100.0, 0.0};
GLfloat lightOneColor[] = {0.99, 0.99, 0.99, 1.0};
GLfloat lightTwoPosition[] = {-40.0, 40, 100.0, 0.0};
GLfloat lightTwoColor[] = {0.99, 0.99, 0.99, 1.0};
//--------------------------------------------------------------
void testApp::setup(){
ofBackground(255,255,255);
ofSetVerticalSync(true);
//some model / light stuff
glEnable (GL_DEPTH_TEST);
glShadeModel (GL_SMOOTH);
/* initialize lighting */
glLightfv (GL_LIGHT0, GL_POSITION, lightOnePosition);
glLightfv (GL_LIGHT0, GL_DIFFUSE, lightOneColor);
glEnable (GL_LIGHT0);
glLightfv (GL_LIGHT1, GL_POSITION, lightTwoPosition);
glLightfv (GL_LIGHT1, GL_DIFFUSE, lightTwoColor);
glEnable (GL_LIGHT1);
glEnable (GL_LIGHTING);
glColorMaterial (GL_FRONT_AND_BACK, GL_DIFFUSE);
glEnable (GL_COLOR_MATERIAL);
//load the squirrel model - the 3ds and the texture file need to be in the same folder
squirrelModel.loadModel("squirrel/NewSquirrel.3ds", 20);
//you can create as many rotations as you want
//choose which axis you want it to effect
//you can update these rotations later on
squirrelModel.setRotation(0, 90, 1, 0, 0);
squirrelModel.setRotation(1, 270, 0, 0, 1);
squirrelModel.setScale(0.9, 0.9, 0.9);
squirrelModel.setPosition(ofGetWidth()/2, ofGetHeight()/2, 0);
}
//--------------------------------------------------------------
void testApp::update(){
squirrelModel.setRotation(1, 270 + ofGetElapsedTimef() * 60, 0, 0, 1);
}
//--------------------------------------------------------------
void testApp::draw(){
//fake back wall
ofSetColor(20, 20, 20);
glBegin(GL_QUADS);
glVertex3f(0.0, ofGetHeight(), -600);
glVertex3f(ofGetWidth(), ofGetHeight(), -600);
glVertex3f(ofGetWidth(), 0, -600);
glVertex3f(0, 0, -600);
glEnd();
//fake wall
ofSetColor(50, 50, 50);
glBegin(GL_QUADS);
glVertex3f(0.0, ofGetHeight(), 0);
glVertex3f(ofGetWidth(), ofGetHeight(), 0);
glVertex3f(ofGetWidth(), ofGetHeight(), -600);
glVertex3f(0, ofGetHeight(), -600);
glEnd();
//lets tumble the world with the mouse
glPushMatrix();
//draw in middle of the screen
glTranslatef(ofGetWidth()/2,ofGetHeight()/2,0);
//tumble according to mouse
glRotatef(-mouseY,1,0,0);
glRotatef(mouseX,0,1,0);
glTranslatef(-ofGetWidth()/2,-ofGetHeight()/2,0);
ofSetColor(255, 255, 255, 255);
squirrelModel.draw();
glPopMatrix();
ofSetColor(0x000000);
ofDrawBitmapString("fps: "+ofToString(ofGetFrameRate(), 2), 10, 15);
}
//--------------------------------------------------------------
void testApp::keyPressed (int key){
}
//--------------------------------------------------------------
void testApp::keyReleased (int key){
}
//--------------------------------------------------------------
void testApp::mouseMoved(int x, int y ){
}
//--------------------------------------------------------------
void testApp::mouseDragged(int x, int y, int button){
}
//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button){
}
//--------------------------------------------------------------
void testApp::mouseReleased(int x, int y, int button){
}
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.