예제 #1
0
        public void dBodyGetRotationTest()
        {
            IntPtr newWorldId = Ode.dWorldCreate();
            IntPtr newBodyId = Ode.dBodyCreate(newWorldId);
            Ode.dMatrix3 r = new Ode.dMatrix3(
              			new float[] {
                    1.0f, 0.0f, 0.0f, 0.0f,
                    0.0f, 1.0f, 0.0f, 0.0f,
                    0.0f, 0.0f, 1.0f, 0.0f
              			}
            );

            Ode.dMatrix3 r2
            = new Ode.dMatrix3(
              			new float[] {
                    0.0f, 0.0f, 0.0f, 0.0f,
                    0.0f, 0.0f, 0.0f, 0.0f,
                    0.0f, 0.0f, 0.0f, 0.0f
              			}
            );

            Ode.dBodySetRotation(newBodyId, r);

            r2 = Ode.dBodyGetRotation(newBodyId);

            Assert.AreEqual(r,r2,"Assigned and returned rotation matrix values are not equal");
        }
예제 #2
0
 public void dBodySetRotationTest()
 {
     IntPtr newWorldId = Ode.dWorldCreate();
     IntPtr newBodyId = Ode.dBodyCreate(newWorldId);
     Ode.dMatrix3 r = new Ode.dMatrix3(
       			new float[] {
             1.0f, 0.0f, 0.0f, 0.0f,
             0.0f, 1.0f, 0.0f, 0.0f,
             0.0f, 0.0f, 1.0f, 0.0f
       			}
     );
     try {
         Ode.dBodySetRotation(newBodyId, r);
     }
     catch (Exception e) {
         Assert.Fail("dBodySetRotation failed with exception: " + e.GetType());
     }
 }
예제 #3
0
        public void dMassRotateTest()
        {
            Ode.dMass newMass = new Ode.dMass();
            newMass.c = new Ode.dVector4(); // Just to be safe the dMass
            newMass.I = new Ode.dMatrix3(); // structure is initialized

            Ode.dMassSetSphere(ref newMass, 0.2f, 3.5f);
            Ode.dMatrix3 r = new Ode.dMatrix3(
                new float[] {
                    1.0f, 0.0f, 0.0f , 0.0f,
                    0.0f, 1.0f, 0.0f, 0.0f,
                    0.0f, 0.0f, 1.0f, 0.0f
                }
            );

            try {
                Ode.dMassRotate(ref newMass, r);
            }
            catch (Exception e) {
                Assert.Fail("dMassRotate failed with exception: " + e.GetType());
            }
        }
예제 #4
0
        public void dGeomSetRotationTest()
        {
            IntPtr simplespace = Ode.dSimpleSpaceCreate(IntPtr.Zero);
            IntPtr box = Ode.dCreateBox(
              			simplespace, 25.0f, 5.0f, 25.0f
            );
            Ode.dMatrix3 r = new Ode.dMatrix3(
              			new float[] {
                    1.0f, 0.0f, 0.0f, 0.0f,
                    0.0f, 1.0f, 0.0f, 0.0f,
                    0.0f, 0.0f, 1.0f, 0.0f
              			}
            );

            try {
                Ode.dGeomSetRotation(box, r);
            }
            catch (Exception e) {
                Assert.Fail("dGeomSetRotation failed with exception: " + e.GetType());
            }
        }