diff options
| author | Tim Redfern <tim@eclectronics.org> | 2012-01-12 13:11:28 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2012-01-12 13:11:28 +0000 |
| commit | 1641253a1f8f6c5e7e7efa676c27e24c82893dfb (patch) | |
| tree | 91e0404c771093e6aab5e9bf9d3bd1e21c9a4407 /src/viewpoint.cpp | |
| parent | 6eb389d8c8b9a6f75e291d359a7708d2944a156d (diff) | |
fixed gymbal lock, light on-off
Diffstat (limited to 'src/viewpoint.cpp')
| -rw-r--r-- | src/viewpoint.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
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); } } |
