Ejemplo n.º 1
0
 public Vector3 GetVelocity(Vector3 position, CoordinateSpace positionSpace = CoordinateSpace.Global, CoordinateSpace velocitySpace = CoordinateSpace.Global)
 {
     Vector3 result = positionSpace == CoordinateSpace.Global
                           ? _rigidBody.WrappedActor.GetPointVelocity(position.ToPhysX()).ToStandard()
                           : _rigidBody.WrappedActor.GetLocalPointVelocity(position.ToPhysX()).ToStandard();
     return ToCorrectSpace(velocitySpace, result);
 }
Ejemplo n.º 2
0
 public void SetLinearVelocity(Vector3 velocity, CoordinateSpace velocitySpace = CoordinateSpace.Global)
 {
     if (velocitySpace == CoordinateSpace.Local)
     {
         velocity = _rigidBody.Pose.ToGlobalDirection(velocity);
     }
     _rigidBody.WrappedActor.LinearVelocity = velocity.ToPhysX();
 }
Ejemplo n.º 3
0
            public Vector3 GetVelocity(Vector3 position, CoordinateSpace positionSpace = CoordinateSpace.Global, CoordinateSpace velocitySpace = CoordinateSpace.Global)
            {
                Vector3 result = positionSpace == CoordinateSpace.Global
                                      ? _rigidBody.WrappedActor.GetPointVelocity(position.ToPhysX()).ToStandard()
                                      : _rigidBody.WrappedActor.GetLocalPointVelocity(position.ToPhysX()).ToStandard();

                return(ToCorrectSpace(velocitySpace, result));
            }
Ejemplo n.º 4
0
 public void ApplyLinearImpulse(Vector3 impulse, CoordinateSpace impulseSpace = CoordinateSpace.Global)
 {
     if (impulseSpace == CoordinateSpace.Local)
     {
         impulse = _rigidBody.Pose.ToGlobalDirection(impulse);
     }
     _rigidBody.WrappedActor.AddForce(impulse.ToPhysX(), ForceMode.Impulse);
 }
Ejemplo n.º 5
0
 public void AddTorque(Vector3 torque, CoordinateSpace torqueSpace = CoordinateSpace.Global)
 {
     if (torqueSpace == CoordinateSpace.Local)
     {
         torque = _rigidBody.Pose.ToGlobalDirection(torque);
     }
     _rigidBody.WrappedActor.AddTorque(torque.ToPhysX(), ForceMode.Force);
 }
Ejemplo n.º 6
0
 public void AddForce(Vector3 force, CoordinateSpace forceSpace = CoordinateSpace.Global)
 {
     if (forceSpace == CoordinateSpace.Local)
     {
         force = _rigidBody.Pose.ToGlobalDirection(force);
     }
     _rigidBody.WrappedActor.AddForce(force.ToPhysX(), ForceMode.Force);
 }
Ejemplo n.º 7
0
 public void ApplyImpulse(Vector3 impulse, Vector3 position, CoordinateSpace impulseSpace = CoordinateSpace.Global, CoordinateSpace positionSpace = CoordinateSpace.Global)
 {
     if (impulseSpace == CoordinateSpace.Local)
     {
         impulse = _rigidBody.Pose.ToGlobalDirection(impulse);
     }
     if (positionSpace == CoordinateSpace.Local)
     {
         position = _rigidBody.Pose.ToGlobalPosition(position);
     }
     _rigidBody.WrappedActor.AddForceAtPosition(impulse.ToPhysX(), position.ToPhysX(), ForceMode.Impulse);
 }
Ejemplo n.º 8
0
 public void AddForce(Vector3 force, Vector3 position, CoordinateSpace forceSpace = CoordinateSpace.Global, CoordinateSpace positionSpace = CoordinateSpace.Global)
 {
     if (forceSpace == CoordinateSpace.Local)
     {
         force = _rigidBody.Pose.ToGlobalDirection(force);
     }
     if (positionSpace == CoordinateSpace.Local)
     {
         position = _rigidBody.Pose.ToGlobalPosition(position);
     }
     _rigidBody.WrappedActor.AddForceAtPosition(force.ToPhysX(), position.ToPhysX(), ForceMode.Force);
 }
Ejemplo n.º 9
0
        private void UpdatePlane()
        {
            Vector3 p = DistanceFromOrigin * _normal;
            Vector4 pWith1 = new Vector4(p.X, p.Y, p.Z, 1);
            Vector4 pPrimeWiht1 = GMath.mul(pWith1, _pose);
            Vector3 pPrime = new Vector3(pPrimeWiht1.X, pPrimeWiht1.Y, pPrimeWiht1.Z);

            Vector4 nWith0 = new Vector4(_normal.X, _normal.Y, _normal.Z, 0);
            Vector4 nPrimeWith0 = GMath.mul(nWith0, _pose.Transpose.Inverse);
            Vector3 nPrime = new Vector3(nPrimeWith0.X, nPrimeWith0.Y, nPrimeWith0.Z);

            float d = GMath.dot(pPrime, nPrime);
            _wrappedPlaneShape.Normal = nPrime.ToPhysX();

            _wrappedPlaneShape.Distance = d;
        }
Ejemplo n.º 10
0
        private void UpdatePlane()
        {
            Vector3 p           = DistanceFromOrigin * _normal;
            Vector4 pWith1      = new Vector4(p.X, p.Y, p.Z, 1);
            Vector4 pPrimeWiht1 = GMath.mul(pWith1, _pose);
            Vector3 pPrime      = new Vector3(pPrimeWiht1.X, pPrimeWiht1.Y, pPrimeWiht1.Z);

            Vector4 nWith0      = new Vector4(_normal.X, _normal.Y, _normal.Z, 0);
            Vector4 nPrimeWith0 = GMath.mul(nWith0, _pose.Transpose.Inverse);
            Vector3 nPrime      = new Vector3(nPrimeWith0.X, nPrimeWith0.Y, nPrimeWith0.Z);

            float d = GMath.dot(pPrime, nPrime);

            _wrappedPlaneShape.Normal = nPrime.ToPhysX();

            _wrappedPlaneShape.Distance = d;
        }
Ejemplo n.º 11
0
 public void SetLinearVelocity(Vector3 velocity, CoordinateSpace velocitySpace = CoordinateSpace.Global)
 {
     if (velocitySpace == CoordinateSpace.Local) velocity = _rigidBody.Pose.ToGlobalDirection(velocity);
     _rigidBody.WrappedActor.LinearVelocity = velocity.ToPhysX();
 }