summaryrefslogtreecommitdiff
path: root/src/viewpoint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/viewpoint.cpp')
-rw-r--r--src/viewpoint.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/viewpoint.cpp b/src/viewpoint.cpp
index d354edd..1635cfd 100644
--- a/src/viewpoint.cpp
+++ b/src/viewpoint.cpp
@@ -14,7 +14,7 @@ void viewpoint::setup(map<string,string>&settings){
near=1;
far=20;
- vars=new keyVar[8];
+ vars=new keyVar[9];
vars[0].set('w','s',ofToFloat(settings["fov"]),0.2,1.0,3.0);
vars[1].set('g','d',ofToFloat(settings["targX"]),1,1.0,3.0);
@@ -22,8 +22,9 @@ void viewpoint::setup(map<string,string>&settings){
vars[3].set('t','c',ofToFloat(settings["targZ"]),1,1.0,3.0);
vars[4].set('u','n',ofToFloat(settings["lat"]),1,1.0,3.0);
vars[5].set('j','h',ofToFloat(settings["lng"]),1,1.0,3.0);
- vars[6].set('o','l',ofToFloat(settings["dolly"]),1,1.0,3.0);
- vars[7].set('q','a',ofToFloat(settings["distort"]),.00001,1.0,3.0);
+ vars[6].set(',','m',ofToFloat(settings["roll"]),1,1.0,3.0);
+ vars[7].set('o','l',ofToFloat(settings["dolly"]),1,1.0,3.0);
+ vars[8].set('q','a',ofToFloat(settings["distort"]),.00001,1.0,3.0);
light.enable();
light.setDirectional();
@@ -39,15 +40,16 @@ double viewpoint::getSetting(const string& setting){
if (setting=="targZ") return vars[3].getVal();
if (setting=="lat") return vars[4].getVal();
if (setting=="lng") return vars[5].getVal();
+ if (setting=="roll") return vars[6].getVal();
if (setting=="dolly") return vars[7].getVal();
- if (setting=="distort") return vars[7].getVal();
+ if (setting=="distort") return vars[8].getVal();
return 0.0;
}
//--------------------------------------------------------------
void viewpoint::setLight(){
target.setPosition(vars[1].getVal(),vars[2].getVal(),vars[3].getVal());
- camera.orbit(vars[5].getVal(), vars[4].getVal(), vars[6].getVal(), target);
- camera.lookAt(target,ofVec3f(0,1,0));
+ 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)));
light.setPosition(camera.getGlobalPosition());
}
void viewpoint::setDefaults(){
@@ -57,8 +59,9 @@ void viewpoint::setDefaults(){
vars[3].setVal(0.0);
vars[4].setVal(0.0);
vars[5].setVal(0.0);
- vars[6].setVal(1000.0);
- vars[7].setVal(0.0);
+ vars[6].setVal(0.0);
+ vars[7].setVal(1000.0);
+ vars[8].setVal(0.0);
}
//--------------------------------------------------------------
void viewpoint::begin(){
@@ -69,9 +72,9 @@ void viewpoint::begin(){
camera.setFov(vars[0].getVal());
}
//--------------------------------------------------------------
-void viewpoint::end(){
- camera.end();
+void viewpoint::end(bool showStats){
+ camera.end();
renderFBO.end();
ofPushMatrix();
@@ -92,8 +95,8 @@ void viewpoint::end(){
ofPoint p0;
ofPoint p1;
for (float j = -1; j < 1.001; j+=(2.0f/gridX)){
- p0=distort(ofPoint(j,i-(2.0f/gridY)),vars[7].getVal());
- p1=distort(ofPoint(j,i),vars[7].getVal());
+ p0=distort(ofPoint(j,i-(2.0f/gridY)),vars[8].getVal());
+ p1=distort(ofPoint(j,i),vars[8].getVal());
glTexCoord2f((j+1)*0.5,((i-(2.0f/gridY))+1)*0.5);
glVertex3f(p0.x*xStep,p0.y*yStep,-0.1);
glTexCoord2f((j+1)*0.5,(i+1)*0.5);
@@ -106,9 +109,11 @@ void viewpoint::end(){
unbindTexture(renderFBO);
ofPopMatrix();
- 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("light: "+ofToString(light.getX(), 2)+","+ofToString(light.getY(), 2)+","+ofToString(light.getZ(), 2), window.x+10, window.y+window.height-18);
+ 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("light: "+ofToString(light.getX(), 2)+","+ofToString(light.getY(), 2)+","+ofToString(light.getZ(), 2), window.x+10, window.y+window.height-18);
+ }
}
//--------------------------------------------------------------
void viewpoint::keyPressed(int key){