public void FrameReset(ProxyForceFieldMotion motion)
 {
     worldMotion = motion;
     forces.Reset(worldMotion);
     errorScore.Reset();
     didUpdate = false;
 }
 public void Reset(ProxyForceFieldMotion motion)
 {
     currentMotion     = motion;
     forceDir          = Vector3.zero;
     forceTorque       = Quaternion.identity;
     forceDecollision  = Vector3.zero;
     forceCount        = 0;
     forceDirMagnitude = 0.0f;
 }
        public static SolverFieldState Create(ProxyForceFieldMotion motion)
        {
            var f = new SolverFieldForceAccumulator();

            f.Reset(motion);
            return(new SolverFieldState()
            {
                worldMotion = motion,
                forces = f,
            });
        }