internal DigitalRuneDistanceRangeJoint(DistanceRangeJointDescriptor descriptor)
        {
            WrappedDistanceRangeJoint = new DistanceLimit();

            #region set RigidBodies
            if (!(descriptor.RigidBodyA is RigidBody))
                throw new ArgumentException(String.Format("The type of the property 'RigidBodyA' must be '{0}'.", typeof(RigidBody)));
            WrappedDistanceRangeJoint.BodyA = ((RigidBody)descriptor.RigidBodyA).WrappedRigidBody;
            _rigidBodyA = descriptor.RigidBodyA;

            if (!(descriptor.RigidBodyB is RigidBody))
                throw new ArgumentException("The type of the property 'RigidBodyB' must be 'System.Physics.DigitalRune.RigidBody'.");
            WrappedDistanceRangeJoint.BodyB = ((RigidBody)descriptor.RigidBodyB).WrappedRigidBody;
            _rigidBodyB = descriptor.RigidBodyB;
            #endregion
            WrappedDistanceRangeJoint.AnchorPositionALocal = descriptor.AnchorPositionALocal.ToDigitalRune();
            WrappedDistanceRangeJoint.AnchorPositionBLocal = descriptor.AnchorPositionBLocal.ToDigitalRune();
            WrappedDistanceRangeJoint.MinDistance = descriptor.MinimumDistance;
            WrappedDistanceRangeJoint.MaxDistance = descriptor.MaximumDistance;

            Descriptor = descriptor;
        }
 public static IDistanceRangeJoint CreateDistanceRangeJoint(this IFactory<IConstraint> factory,
                               DistanceRangeJointDescriptor descriptor)
 {
     return factory.Create<IDistanceRangeJoint, DistanceRangeJointDescriptor>(descriptor);
 }
 public DefaultDistanceRangeJoint(DistanceRangeJointDescriptor descriptor)
 {
     Descriptor = descriptor;
 }