From 1641253a1f8f6c5e7e7efa676c27e24c82893dfb Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 12 Jan 2012 13:11:28 +0000 Subject: fixed gymbal lock, light on-off --- src/viewpoint.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/viewpoint.cpp') diff --git a/src/viewpoint.cpp b/src/viewpoint.cpp index 1635cfd..6a12c99 100644 --- a/src/viewpoint.cpp +++ b/src/viewpoint.cpp @@ -48,8 +48,15 @@ double viewpoint::getSetting(const string& setting){ //-------------------------------------------------------------- void viewpoint::setLight(){ target.setPosition(vars[1].getVal(),vars[2].getVal(),vars[3].getVal()); - camera.orbit(vars[5].getVal(), vars[4].getVal(), vars[7].getVal(), target); - camera.lookAt(target,ofVec3f(0,1,0).rotate(vars[6].getVal(),ofVec3f(0,0,1))); + //camera.orbit(vars[5].getVal(), vars[4].getVal(), vars[7].getVal(), target); + ofVec3f p(0, 0, vars[7].getVal()); + //p.rotate(ofClamp(vars[2].getVal(), -89, 89), ofVec3f(1, 0, 0)); + p.rotate(vars[4].getVal(), ofVec3f(1, 0, 0)); + p.rotate(vars[5].getVal(), ofVec3f(0, 1, 0)); + p += target.getPosition(); + camera.setPosition(p); + + camera.lookAt(target,ofVec3f(0,1,0).rotate(vars[6].getVal(),ofVec3f(0,0,1)).rotate(vars[5].getVal(),ofVec3f(0,1,0))); light.setPosition(camera.getGlobalPosition()); } void viewpoint::setDefaults(){ @@ -111,7 +118,7 @@ void viewpoint::end(bool showStats){ if (showStats) { ofSetHexColor(0xFFFFFF); - ofDrawBitmapString("camera: "+ofToString(camera.getX(), 2)+","+ofToString(camera.getY(), 2)+","+ofToString(camera.getZ(), 2), window.x+10, window.y+window.height-30); + ofDrawBitmapString("camera: "+ofToString(camera.getX(), 2)+","+ofToString(camera.getY(), 2)+","+ofToString(camera.getZ(), 2)+" "+ofToString(vars[5].getVal())+"deg", window.x+10, window.y+window.height-30); ofDrawBitmapString("light: "+ofToString(light.getX(), 2)+","+ofToString(light.getY(), 2)+","+ofToString(light.getZ(), 2), window.x+10, window.y+window.height-18); } } -- cgit v1.2.3