示例#1
0
 public CameraTransform(Point3D position, Quaternion rotation)
 {
     DefaultPosition = new Point3D(position);
     DefaultRotation = new Quaternion(rotation);
     Position = new Point3D(position);
     Rotation = new Quaternion(rotation);
 }
示例#2
0
 public void Reset()
 {
     Position = new Point3D(DefaultPosition);
     Rotation = new Quaternion(DefaultRotation);
 }
示例#3
0
 public void Roll(double angle)
 {
     Rotation = GetRotateQuaternion(GetRollAxis(), angle) * Rotation;
 }
示例#4
0
 public void Pitch(double angle)
 {
     Rotation = GetRotateQuaternion(GetPitchAxis(), angle) * Rotation;
 }
示例#5
0
 public void Yaw(double angle)
 {
     Rotation = GetRotateQuaternion(GetYawAxis(), angle) * Rotation;
 }
示例#6
0
 private static Point3D Rotate(Quaternion rotation, Point3D point)
 {
     Quaternion result = rotation * (new Quaternion(0.0, point.X, point.Y, point.Z)) * rotation.GetConjugate();
     return new Point3D(result.I, result.J, result.K);
 }