Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/draw.cc')
-rw-r--r--src/render/draw.cc30
1 files changed, 12 insertions, 18 deletions
diff --git a/src/render/draw.cc b/src/render/draw.cc
index cb16b89..f3df6c0 100644
--- a/src/render/draw.cc
+++ b/src/render/draw.cc
@@ -38,10 +38,6 @@ math::Vector3f v7(-1, -1, -1);
const float drawdistance = 128.0f;
const float drawfxdistance = 32.0f;
-math::Vector3f camera_target;
-math::Vector3f camera_eye;
-math::Axis camera_axis;
-
float angle = 0;
// function to test flags
@@ -266,7 +262,7 @@ void pass_prepare(float seconds)
if (entity->model()) {
entity->state()->state_visible = false;
- float dq = math::distancesquared(camera_eye, entity->location());
+ float dq = math::distancesquared(Camera::eye(), entity->location());
if (dq <= drawfxdistance*drawfxdistance*entity->model()->radius()) {
// entites within drawing distance
@@ -487,13 +483,13 @@ void draw_pass_model_fx()
gl::color(color);
glTexCoord2f(0,1);
- gl::vertex(location + (camera_axis.up() - camera_axis.left()) * light_size);
+ gl::vertex(location + (Camera::axis().up() - Camera::axis().left()) * light_size);
glTexCoord2f(0,0);
- gl::vertex(location + (camera_axis.up() + camera_axis.left()) * light_size);
+ gl::vertex(location + (Camera::axis().up() + Camera::axis().left()) * light_size);
glTexCoord2f(1,0);
- gl::vertex(location + (camera_axis.up() * -1 + camera_axis.left()) * light_size);
+ gl::vertex(location + (Camera::axis().up() * -1 + Camera::axis().left()) * light_size);
glTexCoord2f(1,1);
- gl::vertex(location + (camera_axis.up() * -1 - camera_axis.left()) * light_size);
+ gl::vertex(location + (Camera::axis().up() * -1 - Camera::axis().left()) * light_size);
Stats::quads++;
@@ -531,7 +527,7 @@ void draw_pass_model_fx()
color.assign(flare->color());
}
- float a = dotproduct(flare_axis.forward(), camera_axis.forward());
+ float a = dotproduct(flare_axis.forward(), Camera::axis().forward());
if (a < -0.1f) {
color.a = -a - 0.1f;
gl::color(color);
@@ -621,11 +617,11 @@ void draw_pass_spacegrid()
float s = 1.0f / gridsize;
float z = -4.0f;
- float dx = camera_target.x - floorf(camera_target.x);
- float dy = camera_target.y - floorf(camera_target.y);
+ float dx = Camera::target().x - floorf(Camera::target().x);
+ float dy = Camera::target().y - floorf(Camera::target().y);
gl::push();
- gl::translate(camera_target);
+ gl::translate(Camera::target());
gl::color(0,0, 1.0f);
gl::normal(0, 0, 1.0f);
@@ -653,7 +649,7 @@ void draw_pass_spacegrid()
/* ----- Main draw routine ----------------------------------------- */
-void draw(math::Axis const &axis, math::Vector3f const &eye, math::Vector3f const &target, float seconds)
+void draw(float seconds)
{
Stats::clear();
@@ -662,10 +658,8 @@ void draw(math::Axis const &axis, math::Vector3f const &eye, math::Vector3f cons
if( angle > 360.0f ) {
angle -= 360.0f;
}
-
- camera_target.assign(target);
- camera_eye.assign(eye);
- camera_axis.assign(axis);
+
+ Camera::draw(seconds); // draw the current camera transformation
pass_prepare(seconds);