summaryrefslogtreecommitdiff
path: root/src/viewpoint.cpp
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2012-01-12 13:11:28 +0000
committerTim Redfern <tim@eclectronics.org>2012-01-12 13:11:28 +0000
commit1641253a1f8f6c5e7e7efa676c27e24c82893dfb (patch)
tree91e0404c771093e6aab5e9bf9d3bd1e21c9a4407 /src/viewpoint.cpp
parent6eb389d8c8b9a6f75e291d359a7708d2944a156d (diff)
fixed gymbal lock, light on-off
Diffstat (limited to 'src/viewpoint.cpp')
-rw-r--r--src/viewpoint.cpp13
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);
}
}