X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=viewer.cpp;h=001aee69fbc29c89c34ee7f32cea10c1e287876a;hb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;hp=5ddda4792ad6d45945523d986067e0a1c340bf57;hpb=bdd9a8e26efad3ba349e4ffd58171cfee3cacfb0;p=libs%2Fgl.git diff --git a/viewer.cpp b/viewer.cpp index 5ddda479..001aee69 100644 --- a/viewer.cpp +++ b/viewer.cpp @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2010 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include #include #include @@ -44,6 +37,7 @@ private: public: Viewer(int, char **); + ~Viewer(); virtual int main(); private: @@ -106,8 +100,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 +117,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 +219,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 +229,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)); }