X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=viewer.cpp;h=d89b34bd3472a210d4167e9e75c477154e3f1259;hb=54b22ff744391e49e5a402acb98c0c3bdd0031a7;hp=5ddda4792ad6d45945523d986067e0a1c340bf57;hpb=bdd9a8e26efad3ba349e4ffd58171cfee3cacfb0;p=libs%2Fgl.git diff --git a/viewer.cpp b/viewer.cpp index 5ddda479..d89b34bd 100644 --- a/viewer.cpp +++ b/viewer.cpp @@ -44,6 +44,7 @@ private: public: Viewer(int, char **); + ~Viewer(); virtual int main(); private: @@ -106,8 +107,13 @@ Viewer::Viewer(int argc, char **argv): lighting.attach(0, light); camera.set_up_direction(GL::Vector3(0, 0, 1)); - camera.set_position(GL::Vector3(distance, 0, 0)); - camera.look_at(GL::Vector3(0, 0, 0)); + update_camera(); +} + +Viewer::~Viewer() +{ + delete object; + delete mesh; } int Viewer::main() @@ -118,7 +124,7 @@ int Viewer::main() void Viewer::tick() { - window.get_display().tick(); + window.tick(); GL::Framebuffer::system().clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT); @@ -220,6 +226,7 @@ void Viewer::update_camera() float cp = cos(pitch); float sp = sin(pitch); camera.set_position(GL::Vector3(-cy*cp*distance, -sy*cp*distance, -sp*distance)); + camera.set_depth_clip(distance*0.02, distance*50); camera.look_at(GL::Vector3(0, 0, 0)); } @@ -229,5 +236,5 @@ void Viewer::update_light() float sy = sin(light_yaw); float cp = cos(light_pitch); float sp = sin(light_pitch); - light.set_position(GL::Vector4(-cy*cp, -sy*cp, -sp)); + light.set_position(GL::Vector4(-cy*cp, -sy*cp, -sp, 0)); }