From e2b18c44a6ae38bb84f717c86988a80da137c3e7 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Mon, 28 Apr 2008 19:28:09 +0000 Subject: improved camera in tracking mode --- src/render/draw.cc | 15 +++++++++------ src/render/draw.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'src/render') diff --git a/src/render/draw.cc b/src/render/draw.cc index 5b64497..4b42596 100644 --- a/src/render/draw.cc +++ b/src/render/draw.cc @@ -35,6 +35,8 @@ const float drawdistance = 128.0f; const float drawfxdistance = 32.0f; math::Vector3f camera_target; +math::Vector3f camera_eye; + float angle = 0; @@ -43,13 +45,13 @@ float angle = 0; inline bool test_draw_distance(core::Entity *entity) { return (entity->model() && - (math::distancesquared(camera_target, entity->location()) <= (drawdistance*drawdistance*entity->model()->radius()))); + (math::distancesquared(camera_eye, entity->location()) <= (drawdistance*drawdistance*entity->model()->radius()))); } inline bool test_drawfx_distance(core::Entity *entity) { return (entity->model() && - (math::distancesquared(camera_target, entity->location()) <= (drawfxdistance*drawfxdistance*entity->model()->radius()))); + (math::distancesquared(camera_eye, entity->location()) <= (drawfxdistance*drawfxdistance*entity->model()->radius()))); } @@ -483,7 +485,7 @@ void draw_local_axis() } /* ----- Main draw routine ----------------------------------------- */ -void draw(math::Vector3f const &target, float seconds) +void draw(math::Vector3f const &eye, math::Vector3f const &target, float seconds) { Stats::clear(); @@ -493,7 +495,8 @@ void draw(math::Vector3f const &target, float seconds) angle -= 360.0f; } - camera_target = target; + camera_target.assign(target); + camera_eye.assign(eye); gl::enable(GL_DEPTH_TEST); // enable depth buffer writing gl::enable(GL_CULL_FACE); // enable culling @@ -545,11 +548,11 @@ void draw(math::Vector3f const &target, float seconds) gl::disable(GL_COLOR_MATERIAL); // disable color tracking gl::disable(GL_CULL_FACE); // disable culling - draw_local_axis(); + // draw_local_axis(); draw_pass_spacegrid(); // draw the blue spacegrid - gl::disable(GL_DEPTH_TEST); // disable depth buffer writing + gl::disable(GL_DEPTH_TEST); // disable depth buffer // GL_BLEND must be enabled for the GUI } diff --git a/src/render/draw.h b/src/render/draw.h index 6db1c9b..b423aad 100644 --- a/src/render/draw.h +++ b/src/render/draw.h @@ -13,7 +13,7 @@ namespace render { /// draw the world -void draw(math::Vector3f const &target, float seconds); +void draw(math::Vector3f const &eye, math::Vector3f const &target, float seconds); class Stats { public: -- cgit v1.2.3