summaryrefslogtreecommitdiff
path: root/src/viewpoint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/viewpoint.cpp')
-rw-r--r--src/viewpoint.cpp135
1 files changed, 72 insertions, 63 deletions
diff --git a/src/viewpoint.cpp b/src/viewpoint.cpp
index 64a2b99..5d61f1f 100644
--- a/src/viewpoint.cpp
+++ b/src/viewpoint.cpp
@@ -1,88 +1,97 @@
#include "viewpoint.h"
-#define DEBUG 1
+#define DEBUG 0
void viewpoint::setup(float w, float h, float x, float y) {
- window=ofRectangle(w,h,x,y);
- distortFactor=0.0;
- renderFBO.allocate(window.width,window.height,GL_RGB);
+ window=ofRectangle(w,h,x,y);
+ distortFactor=0.0;
+ renderFBO.allocate(window.width,window.height,GL_RGB);
- //todo: load/save from xml
- fov=17.25;
- aspect=1.79;
- near=1;
- far=20;
+ //todo: load/save from xml
+ fov=17.25;
+ aspect=1.79;
+ near=1;
+ far=20;
camera.setParent(target);
- camera.setPosition(0,0,200);
vars=new keyVar[8];
//void set(char _keyInc,char _keyDec,float _val,float _speed,float _accel,float accelTime);
vars[0].set('w','s',17.25,0.5,2.0,3.0);
- vars[1].set('g','d',0.0,0.2,3.0,3.0);
- vars[2].set('r','v',0.0,0.2,3.0,3.0);
- vars[3].set('t','c',0.0,0.2,3.0,3.0);
+ vars[1].set('g','d',0.0,10,3.0,3.0);
+ vars[2].set('r','v',0.0,10,3.0,3.0);
+ vars[3].set('t','c',0.0,10,3.0,3.0);
vars[4].set('u','n',0.0,1.0,3.0,3.0);
- vars[5].set('j','h',0.0,1.0,3.0,3.0);
- vars[6].set('o','l',0.0,0.2,3.0,3.0);
- vars[7].set('q','a',0,0.0001,2.0,3.0);
+ vars[5].set('j','h',0.0,1.0,3.0,3.0);
+ vars[6].set('o','l',1000.0,10,3.0,3.0);
+ vars[7].set('q','a',0,0.0001,2.0,3.0);
+
+ //camera.setPosition(0,0,vars[6].getVal());
}
//--------------------------------------------------------------
void viewpoint::begin(){
- camera.begin();
+
+ renderFBO.begin();
+ ofClear(0,0,0);
+
+ //ofPushView();
+
+ camera.begin();
camera.setFov(vars[0].getVal());
target.setPosition(vars[1].getVal(),vars[2].getVal(),vars[3].getVal());
target.rotate(vars[4].getInc(),1,0,0);
target.rotate(vars[5].getInc(),0,1,0);
- camera.move(0,0,vars[6].getInc());
+ camera.setPosition(0,0,vars[6].getVal());
- renderFBO.begin();
- ofClear(0,0,0);
-}
+
+ }
//--------------------------------------------------------------
void viewpoint::end(){
-
- renderFBO.end();
- camera.end();
-
- ofPushMatrix();
- bindTexture(renderFBO);
-
- //draw a grid
- //glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
- ofNoFill();
-
- ofSetLineWidth(1.0);
- //ofSetColor(I_fade1,I_fade1,I_fade1);
- int gridX=50;
- int gridY=50;
- int xStep=ofGetWidth()/2;
- int yStep=ofGetHeight()/2;
- ofTranslate(ofGetWidth()/2,ofGetHeight()/2);
-
- for (float i = -1; i < 1.001; i+=(2.0f/gridY)){
-
- glBegin(GL_QUAD_STRIP);
- 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());
- 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);
- glVertex3f(p1.x*xStep,p1.y*yStep,-0.1);
- }
-
- glEnd();
- //
- }
-
- ofFill();
-
- unbindTexture(renderFBO);
-
- ofPopMatrix();
+
+ camera.end();
+ //ofPopView();
+
+ renderFBO.end();
+
+ ofPushMatrix();
+
+ bindTexture(renderFBO);
+
+ //draw a grid
+ //glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
+ ofNoFill();
+
+ ofSetLineWidth(1.0);
+ //ofSetColor(I_fade1,I_fade1,I_fade1);
+ int gridX=50;
+ int gridY=50;
+ int xStep=ofGetWidth()/2;
+ int yStep=ofGetHeight()/2;
+ ofTranslate(ofGetWidth()/2,ofGetHeight()/2);
+
+ for (float i = -1; i < 1.001; i+=(2.0f/gridY)){
+
+ glBegin(GL_QUAD_STRIP);
+ 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());
+ 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);
+ glVertex3f(p1.x*xStep,p1.y*yStep,-0.1);
+ }
+
+ glEnd();
+ //
+ }
+
+ ofFill();
+
+ unbindTexture(renderFBO);
+
+ ofPopMatrix();
}
//--------------------------------------------------------------