public void Integration2() { RotationalFrame frame = new RotationalFrame(); Quaternion initOrient = new Quaternion(); frame.SetOrientation(initOrient); Vector3 initV = new Vector3(0, 0, 0); frame.SetAngularVelocity(initV); Vector3 torque = new Vector3(0, 1, 0); frame.SetInitialTorque(torque); Matrix3x3 inertia = new Matrix3x3(); inertia.Scale(0.1f); frame.SetInertia(inertia); // Integrate for 10 seconds for (int i = 0; i < 1000; i++) { frame.IntegrateStep1(0.01f); frame.ApplyTorque(torque); frame.IntegrateStep2(0.01f); } Assert.AreEqual(frame.GetAngularVelocity()[1], 100.0f, 0.002f); // TODO: 0.0001f }
public void SetInertia(float i) { Matrix3x3 inertia = new Matrix3x3(); inertia.Scale(i); crankshaft.SetInertia(inertia); }
public void SetInertia(float i) { inertiaCache = i; Matrix3x3 inMat = new Matrix3x3(); inMat.Scale(i); rotFr.SetInertia(inMat); }