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;
        }
Example #2
0
		private void CreatePointOnLineJoint()
		{
			JVector lineStartPointBody1;
			Vector3D tempVector = ArrayExtensions.GetWithDefault<PropertyType, Vector3D>(Properties,
				PropertyType.LineStartPointBody);
			JitterDatatypesMapping.Convert(ref tempVector, out lineStartPointBody1);
			JVector pointBody2;
			tempVector = ArrayExtensions.GetWithDefault<PropertyType, Vector3D>(Properties,
				PropertyType.PointBody);
			JitterDatatypesMapping.Convert(ref tempVector, out pointBody2);
			if (RigidBodyB != null)
				Constraint = new PointOnLine(RigidBodyA, RigidBodyB, lineStartPointBody1, pointBody2);
			else
				Logger.Warning("You're trying to create PointOnLine with second " +
					"body at null.Maybe you should create SingleBodyPointOnLine.");
		}
 public PrismaticJoint(World world, RigidBody body1, RigidBody body2, JVector pointOnBody1, JVector 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, JVector pointOnBody1,JVector 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);
 }