//----------------------------------------------------------------------------------------------------------------------------------------- // Dynamics Methods #region Dynamics /// <summary> Update the dynamics (velocity, angular velocity) of the grabreference. </summary> protected virtual void UpdateDynamics() { Vector3 currPos = this.grabReference != null ? this.grabReference.transform.position : this.transform.position; Quaternion currRot = this.grabReference != null ? this.grabReference.transform.rotation : this.transform.rotation; Vector3 velocity = (currPos - lastPosition) / Time.deltaTime; Vector3 angularVelocity = SG_Util.CalculateAngularVelocity(currRot, lastRotation, Time.deltaTime); this.velocities.Add(velocity); this.angularVelocities.Add(angularVelocity); if (velocities.Count > SG_GrabScript.maxDataPoints) { this.velocities.RemoveAt(0); this.angularVelocities.RemoveAt(0); } lastPosition = currPos; lastRotation = currRot; }