Beispiel #1
0
        internal SphericalJoint(PhysXSimulator simulator, SphericalJointDescriptor descriptor)
        {
            Actor wrappedActorA = ((RigidBody)descriptor.RigidBodyA).WrappedActor;

            if (!wrappedActorA.IsDynamic)
            {
                var vector4 = GMath.mul(new Vector4(descriptor.AnchorPositionALocal, 1), descriptor.RigidBodyA.Pose);
                descriptor.AnchorPositionALocal = new Vector3(vector4.X, vector4.Y, vector4.Z);
                wrappedActorA = null;
            }


            Actor wrappedActorB = ((RigidBody)descriptor.RigidBodyB).WrappedActor;

            if (!wrappedActorB.IsDynamic)
            {
                var vector4 = GMath.mul(new Vector4(descriptor.AnchorPositionBLocal, 1), descriptor.RigidBodyB.Pose);
                descriptor.AnchorPositionBLocal = new Vector3(vector4.X, vector4.Y, vector4.Z);
                wrappedActorB = null;
            }

            var sphericalJointDescription = new SphericalJointDescription
            {
                Actor1       = wrappedActorA,
                Actor2       = wrappedActorB,
                LocalAnchor1 = descriptor.AnchorPositionALocal.ToPhysX(),
                LocalAnchor2 = descriptor.AnchorPositionBLocal.ToPhysX(),
                JointFlags   = JointFlag.CollisionEnabled
            };

            _wrappedSphericalJoint = (PX.SphericalJoint)simulator._wrappedScene.CreateJoint(sphericalJointDescription);
            _rigidBodyA            = descriptor.RigidBodyA;
            _rigidBodyB            = descriptor.RigidBodyB;
            _anchorPositionALocal  = descriptor.AnchorPositionALocal;
            _anchorPositionBLocal  = descriptor.AnchorPositionBLocal;
            UserData = descriptor.UserData;
        }
Beispiel #2
0
 public SimulatorConfigurator(PhysXSimulator simulator)
 {
     _simulator = simulator;
 }
 public SimulatorQueries(PhysXSimulator simulator)
 {
     _simulator = simulator;
 }
Beispiel #4
0
 public SimulatorConstraintsFactory(PhysXSimulator simulator)
 {
     _simulator = simulator;
 }
 public SimulatorRigidBodyFactory(PhysXSimulator simulator)
 {
     _simulator = simulator;
 }