public CharacterJoint3D(IWorld world, IBody3D body1, IBody3D body2, TSVector position, TSVector hingeAxis) : base((World)world) { RigidBody rigid1 = (RigidBody)body1; RigidBody rigid2 = (RigidBody)body2; fixedAngle = new FixedAngle(rigid1, rigid2); pointOnLine = new PointOnLine(rigid1, rigid2, rigid1.position, rigid2.position); firstBody = body1; secondBody = body2; hingeA = hingeAxis; worldPointConstraint = new PointOnPoint[2]; hingeAxis *= FP.Half; TSVector anchor = position; TSVector.Add(ref anchor, ref hingeAxis, out anchor); TSVector anchor2 = position; TSVector.Subtract(ref anchor2, ref hingeAxis, out anchor2); worldPointConstraint[0] = new PointOnPoint((RigidBody)body1, (RigidBody)body2, anchor); worldPointConstraint[1] = new PointOnPoint((RigidBody)body2, (RigidBody)body1, anchor2); StateTracker.AddTracking(worldPointConstraint[0]); StateTracker.AddTracking(worldPointConstraint[1]); //UnityEngine.CharacterJoint; Activate(); }
private void CreateFixedAngleJoint() { if (RigidBodyB != null) { Constraint = new FixedAngle(RigidBodyA, RigidBodyB); } else { Constraint = new global::Jitter.Dynamics.Constraints.SingleBody.FixedAngle(RigidBodyA); } }
public PrismaticJoint(World world, RigidBody body1, RigidBody body2, float minimumDistance, float maximumDistance) : base(world) { fixedAngle = new FixedAngle(body1, body2); pointOnLine = new PointOnLine(body1, body2, body1.position, body2.position); minDistance = new PointPointDistance(body1, body2, body1.position, body2.position); minDistance.Behavior = PointPointDistance.DistanceBehavior.LimitMinimumDistance; minDistance.Distance = minimumDistance; maxDistance = new PointPointDistance(body1, body2, body1.position, body2.position); maxDistance.Behavior = PointPointDistance.DistanceBehavior.LimitMaximumDistance; maxDistance.Distance = maximumDistance; }
public PrismaticJoint(World world, RigidBody body1, RigidBody body2, float minimumDistance, float maximumDistance) : base(world) { FixedAngleConstraint = new FixedAngle(body1, body2); PointOnLineConstraint = new PointOnLine(body1, body2, body1.position, body2.position); MinimumDistanceConstraint = new PointPointDistance(body1, body2, body1.position, body2.position) { Behavior = PointPointDistance.DistanceBehavior.LimitMinimumDistance, Distance = minimumDistance }; MaximumDistanceConstraint = new PointPointDistance(body1, body2, body1.position, body2.position) { Behavior = PointPointDistance.DistanceBehavior.LimitMaximumDistance, Distance = maximumDistance }; }
public PrismaticJoint(World world, RigidBody body1, RigidBody body2, Vector3 pointOnBody1, Vector3 pointOnBody2, float maximumDistance, float minimumDistance) : base(world) { fixedAngle = new FixedAngle(body1, body2); pointOnLine = new PointOnLine(body1, body2, pointOnBody1, pointOnBody2); }
public PrismaticJoint(World world, RigidBody body1, RigidBody body2, Vector3 pointOnBody1, Vector3 pointOnBody2) : base(world) { fixedAngle = new FixedAngle(body1, body2); pointOnLine = new PointOnLine(body1, body2, pointOnBody1, pointOnBody2); }
public PrismaticJoint(World world, RigidBody body1, RigidBody body2) : base(world) { fixedAngle = new FixedAngle(body1, body2); pointOnLine = new PointOnLine(body1, body2, body1.position, body2.position); }
public PrismaticJoint(World world, RigidBody body1, RigidBody body2, JVector pointOnBody1, JVector pointOnBody2, float maximumDistance, float minimumDistance) : base(world) { FixedAngleConstraint = new FixedAngle(body1, body2); PointOnLineConstraint = new PointOnLine(body1, body2, pointOnBody1, pointOnBody2); }
public PrismaticJoint3D(World world, RigidBody body1, RigidBody body2, FPVector pointOnBody1, FPVector pointOnBody2, FP maximumDistance, FP minimumDistance) : base(world) { fixedAngle = new FixedAngle(body1, body2); pointOnLine = new PointOnLine(body1, body2, pointOnBody1, pointOnBody2); }