public virtual void Tick(decimal deltaTime) { prevPos = pos; prevVel = vel; prevRot = rot; prevRotVel = rotVel; pos += vel * deltaTime; rot *= Quaternion.Lerp(Quaternion.Identity, RotationalVelocity, deltaTime); }
public void Initialise(Vector3 initPos, Vector3 initVel, Quaternion initRot, Quaternion initRotVel) { pos = initPos; prevPos = initPos; vel = initVel; prevVel = initVel; rot = initRot; prevRot = initRot; rotVel = initRotVel; prevRotVel = initRotVel; }
//public void LookAt(Vector3 pos) => LookAt(pos, Vector3.Up); //public void LookAt(Vector3 pos, Vector3 up) => Rotation = Quaternion.LookRotation(pos - Position, up); public void RotateAround(Vector3 axis, decimal degrees) => rot *= Quaternion.CreateFromAxisAngle(axis, (decimal)degrees);
public VirtualPhysicsTransform(Vector3 initPos, Vector3 initVel, Quaternion initRot, Quaternion initRotVel) { Initialise(initPos, initVel, initRot, initRotVel); }