#include "testApp.h" //-------------------------------------------------------------- void testApp::setup(){ //mesh.loadfile("Bird-test1.xml"); if (mesh.loadMesh("Bird-poses.xml")) printf("mesh loaded with %i vertices, %i face indices, %i targets\n",mesh.getNumVertices(),mesh.getNumIndices(),mesh.getNumTargets()); else printf("mesh XML file not parsed\n"); if (mesh.loadSeqs("Bird-anim.xml")) printf("animation loaded with %i sequences\n",mesh.getNumSequences()); else printf("animation XML file not parsed\n"); mesh.sequences["hover"].start(); state=HOVER; currentseq="attack"; texture.loadImage("TextureBird.jpg"); xr=90; yr=0; xo=yo=0; glEnable(GL_DEPTH_TEST); //movieExporter.setup(); } //-------------------------------------------------------------- void testApp::update(){ } //-------------------------------------------------------------- void testApp::draw(){ //calculate morph targets float segment=(sin(ofGetElapsedTimef())*0.5)+0.5; vector testweight; testweight.push_back(morphWeight("bird 2",segment)); testweight.push_back(morphWeight("bird",1.0-segment)); ofBackground(0,0,0); bindTexture(texture); ofPushMatrix(); ofTranslate(ofGetWidth()/2,ofGetHeight()/2); ofRotate(xr,0,1,0); ofRotate(yr,1,0,0); ofRotate(180,1,0,0); ofScale(1.0,1.0,1.0); //mesh.draw(testweight); mesh.drawAnimated(); ofPopMatrix(); unbindTexture(texture); ofSetHexColor(0xFFFFFF); ofDrawBitmapString("fps: "+ofToString(ofGetFrameRate(), 2), 10, 15); } //-------------------------------------------------------------- /* void start(); void stop(); void startAt(float time); void fadeout(float time); */ void testApp::keyPressed(int key){ switch (key){ case '1': if (currentseq!="hover") { //mesh.sequences["trans_flaphover"].stopAt(0.3); //mesh.sequences["trans_flaphover"].start(); mesh.sequences[currentseq].fadeout(0.5); mesh.sequences["hover"].fadein(0.5); currentseq="hover"; } break; case '2': if (currentseq!="flap") { //mesh.sequences["trans_hoverflap"].stopAt(0.3); //mesh.sequences["trans_hoverflap"].start(); mesh.sequences[currentseq].fadeout(0.5); mesh.sequences["flap"].fadein(0.5); currentseq="flap"; } break; case '3': if (currentseq!="swoop") { //mesh.sequences["trans_hoverflap"].stopAt(0.3); //mesh.sequences["trans_hoverflap"].start(); mesh.sequences[currentseq].fadeout(0.25); mesh.sequences["swoop_trans"].fadein(0.25); mesh.sequences["swoop_trans"].stopTime=ofGetElapsedTimef()+1.0; mesh.sequences["swoop"].startAt(1.0); currentseq="swoop"; } break; case '4': if (currentseq!="attack") { //mesh.sequences["trans_hoverflap"].stopAt(0.3); //mesh.sequences["trans_hoverflap"].start(); mesh.sequences[currentseq].fadeout(0.2); mesh.sequences["attack_trans"].fadein(0.2); mesh.sequences["attack_trans"].stopTime=ofGetElapsedTimef()+0.6; mesh.sequences["attack"].startAt(0.6); currentseq="attack"; } break; } } //-------------------------------------------------------------- void testApp::keyReleased(int key){ } //-------------------------------------------------------------- void testApp::mouseMoved(int x, int y ){ } //-------------------------------------------------------------- void testApp::mouseDragged(int x, int y, int button){ xr+=(x-xo); yr+=(y-yo); xo=x; yo=y; } //-------------------------------------------------------------- void testApp::mousePressed(int x, int y, int button){ xo=x; yo=y; } void testApp::mouseReleased(int x, int y, int button){ } //-------------------------------------------------------------- void testApp::windowResized(int w, int h){ } //-------------------------------------------------------------- void testApp::gotMessage(ofMessage msg){ } //-------------------------------------------------------------- void testApp::dragEvent(ofDragInfo dragInfo){ }