VisClient/org/hfbk/vis/SpacemouseFreedomViewpoint.java

Go to the documentation of this file.
00001 /*
00002  * Created on 03.05.2008
00003  *
00004  */
00005 package org.hfbk.vis;
00006 
00007 import java.nio.FloatBuffer;
00008 
00009 import org.dronus.gl.Buffers;
00010 import org.hfbk.nubsi.Spacemouse;
00011 import org.lwjgl.opengl.GL11;
00012 import org.lwjgl.util.vector.Matrix4f;
00013 import org.lwjgl.util.vector.Vector3f;
00014 
00027 public class SpacemouseFreedomViewpoint extends MouseViewpoint {
00028         Spacemouse sm;
00029         
00030         Matrix4f transf=new Matrix4f();
00031         
00032         float speed=15; 
00033         
00034         public SpacemouseFreedomViewpoint() {
00035                 sm=Spacemouse.instance;
00036         }
00037         
00038         
00039         public void render(float dt) {
00040                 
00041                 Vector3f trans=new Vector3f(sm.trans), rot=new Vector3f(sm.rot);
00042                 
00043                 Matrix4f temp=new Matrix4f();
00044                 trans.scale(-speed*dt);         
00045                 temp.translate(trans);          
00046                 
00047                 rot.scale(dt);
00048                 temp.rotate(rot.x, new Vector3f(-1,0,0));
00049                 temp.rotate(rot.y, new Vector3f(0,-1,0));
00050                 temp.rotate(rot.z, new Vector3f(0,0,-1));
00051                 
00052                 Matrix4f.mul(temp,transf, transf);
00053                 
00054                 FloatBuffer transfFb=Buffers.matrixBuffer();
00055                 transf.store(transfFb);
00056                 transfFb.rewind();              
00057                 GL11.glLoadMatrix(transfFb);
00058         }
00059 }

Generated on Tue Apr 7 17:57:20 2009 for visclient by  doxygen 1.5.1