public static void LockRotation(ref Quaternion rotation, Vector3 lockedRots)
        {
            lockedRots -= -Vector3.One;
            Vector3 rots = GameComponentHelper.QuaternionToEulerAngleVector3(rotation) * lockedRots;

            rotation = Quaternion.CreateFromRotationMatrix(Matrix.CreateRotationX(rots.X) * Matrix.CreateRotationY(rots.Y) * Matrix.CreateRotationX(rots.Z));
        }
        /// <summary>
        /// Method to revolve and object
        /// </summary>
        /// <param name="target"></param>
        /// <param name="axis"></param>
        /// <param name="angle"></param>
        /// <param name="position"></param>
        /// <param name="rotation"></param>
        public static void Revolve(Vector3 target, Vector3 axis, float angle, ref Vector3 position, ref Quaternion rotation)
        {
            GameComponentHelper.Rotate(axis, angle, ref rotation);
            Vector3    revolveAxis = Vector3.Transform(axis, Matrix.CreateFromQuaternion(rotation));
            Quaternion rotate      = Quaternion.CreateFromAxisAngle(revolveAxis, angle);

            position = Vector3.Transform(target - position, Matrix.CreateFromQuaternion(rotate));
        }
Exemple #3
0
 /// <summary>
 /// Method to rotate object
 /// </summary>
 /// <param name="axis"></param>
 /// <param name="angle"></param>
 public virtual void Rotate(Vector3 axis, float angle)
 {
     GameComponentHelper.Rotate(axis, angle, ref rotation);
 }
Exemple #4
0
 public virtual void TranslateAA(Vector3 distance)
 {
     Position += GameComponentHelper.Translate3D(distance);
 }
Exemple #5
0
 public virtual void LookAtLockRotation(Vector3 target, float speed, Vector3 fwd, Vector3 lockedRots)
 {
     GameComponentHelper.LookAtLockRotation(target, speed, Position, ref rotation, fwd, lockedRots);
 }
Exemple #6
0
 /// <summary>
 /// Method to turn the camera at a target.
 /// </summary>
 /// <param name="target"></param>
 /// <param name="speed"></param>
 public virtual void LookAt(Vector3 target, float speed, Vector3 fwd)
 {
     GameComponentHelper.LookAt(target, speed, Position, ref rotation, fwd);
 }