public IPointOnLineJoint Create(PointOnLineJointDescriptor descriptor) { var constraint = new DigitalRunePointOnLineJoint(descriptor); _simulator._wrappedSimulation.Constraints.Add(constraint.WrappedPointOnLineJoint); return(constraint); }
internal DigitalRunePointOnLineJoint(PointOnLineJointDescriptor descriptor) { WrappedPointOnLineJoint = new PointOnLineConstraint(); #region set RigidBodies if (!(descriptor.RigidBodyA is RigidBody)) { throw new ArgumentException(String.Format("The type of the property 'RigidBodyA' must be '{0}'.", typeof(RigidBody))); } WrappedPointOnLineJoint.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'."); } WrappedPointOnLineJoint.BodyB = ((RigidBody)descriptor.RigidBodyB).WrappedRigidBody; _rigidBodyB = descriptor.RigidBodyB; #endregion WrappedPointOnLineJoint.AnchorPositionALocal = descriptor.AnchorPositionALocal.ToDigitalRune(); WrappedPointOnLineJoint.AxisALocal = descriptor.AxisALocal.ToDigitalRune(); WrappedPointOnLineJoint.AnchorPositionBLocal = descriptor.AnchorPositionBLocal.ToDigitalRune(); WrappedPointOnLineJoint.Maximum = descriptor.MaximumDistance; WrappedPointOnLineJoint.Minimum = descriptor.MinimumDistance; Descriptor = descriptor; }
public static IPointOnLineJoint CreatePointOnLineJoint(this IFactory <IConstraint> factory, PointOnLineJointDescriptor descriptor) { return(factory.Create <IPointOnLineJoint, PointOnLineJointDescriptor>(descriptor)); }
public DefaultPointOnLineJoint(PointOnLineJointDescriptor descriptor) { Descriptor = descriptor; }