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; }
public SimulatorConfigurator(PhysXSimulator simulator) { _simulator = simulator; }
public SimulatorQueries(PhysXSimulator simulator) { _simulator = simulator; }
public SimulatorConstraintsFactory(PhysXSimulator simulator) { _simulator = simulator; }
public SimulatorRigidBodyFactory(PhysXSimulator simulator) { _simulator = simulator; }