Esempio n. 1
0
 public void LookAt(Vector3 location)
 {
     RotationMatrix = Matrix4.CreateFromQuaternion(Matrix4.LookAt(Vector3.Zero, -(location - Transformation.GetPosition()).Normalized(), new Vector3(0, 1, 0)).ExtractRotation());
     ViewMatrix     = RotationMatrix * Matrix4.CreateTranslation(-Transformation.GetPosition());
     Transformation.SetOrientation(RotationMatrix.ExtractRotation());
     Transformation.ClearModifiedFlag();
     VPMatrix = Matrix4.Mult(ViewMatrix, ProjectionMatrix);
 }
Esempio n. 2
0
 public Camera(Vector3 position, Vector3 lookAt, Vector3 up, float aspectRatio, float fov, float near, float far)
 {
     Transformation = new TransformationManager(position, Quaternion.Identity, 1.0f);
     Matrix4.CreatePerspectiveFieldOfView(fov, aspectRatio, near, far, out ProjectionMatrix);
     Far   = far;
     Pitch = 0.0f;
     Roll  = 0.0f;
     Transformation.SetOrientation(Matrix4.LookAt(Vector3.Zero, lookAt, up).ExtractRotation().Inverted());
     Update();
 }
Esempio n. 3
0
 public Camera(Vector3 position, Vector3 lookAt, Vector3 up, float aspectRatio, float fov, float near, float far)
 {
     Transformation = new TransformationManager(position, Quaternion.Identity, 1.0f);
     Matrix4.CreatePerspectiveFieldOfView(fov, aspectRatio, near, far, out ProjectionMatrix);
     Far = far;
     if(Current == null)
         Current = this;
     if(MainDisplayCamera == null)
         MainDisplayCamera = this;
     Pitch = 0.0f;
     Roll = 0.0f;
     Transformation.SetOrientation(Matrix4.LookAt(Vector3.Zero, lookAt, up).ExtractRotation().Inverted());
     Update();
 }
Esempio n. 4
0
 public void ApplyChanges()
 {
     Transformation.SetPosition(Body.CenterOfMassPosition);
     Transformation.SetOrientation(Body.Orientation);
 }