]> git.tdb.fi Git - libs/gl.git/blobdiff - viewer.cpp
Convert svn:ignore to .gitignore
[libs/gl.git] / viewer.cpp
index 5ddda4792ad6d45945523d986067e0a1c340bf57..d89b34bd3472a210d4167e9e75c477154e3f1259 100644 (file)
@@ -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));
 }