the name of this SimObject
the path to connect
the RigidBody to connect
the attachment point on the RigidBody in body coordinates
the limiting value of the path position, p
, when the body moves
beyond this then a collision is created.
true
means this is an is an upper limit; false
indicates
this is a lower limit
Private
attach_attachment point in body coords of this.body_
Private
limit_the limiting value of the path position, p
, when the body moves
beyond this then a collision is created.
Private
path_path that joint is attached to
Private
ppt_current position along the path
Private
ppt_last position along the path
Private
uppertrue
means this is an is an upper limit; false
indicates
this is a lower limit.
Static
IDCounter used for naming SimObjects.
Adds RigidBodyCollisions for this Connector to an array of collisions.
the array of collisions to which to add the RigidBodyCollision for this Connector.
simulation time when this collision is detected
distance accuracy: how close we must be to the point of collision in order to be able to handle it.
Returns a rectangle that contains this SimObject in world coordinates.
rectangle that contains this SimObject in world coordinates
Returns the expiration time, when this SimObject should be removed from the SimList. This is intended for temporary SimObjects that illustrate, for example, contact forces or collisions.
the expiration time, in time frame of the Simulation clock
Name of this SimObject, either the language-independent name for scripting purposes or the localized name for display to user.
The language-independent name should be the same as the English version but capitalized and with spaces and dashes replaced by underscore, see Util.toName, nameEquals.
The name should give an idea of the role of the SimObject in the simulation. This allows us to to treat an object in a special way depending on its name. For example, we might use the name to decide what type of DisplayObject to create to represent the SimObject.
Optional
opt_localized: booleantrue
means return the localized version of the name;
default is false
which means return the language independent name.
name of this SimObject
Returns the distance between attachment points of the bodies in the direction of the normal vector. This is equal to the dot product of the normal vector and the vector between the two attachment points.
normal distance between attachment points of the bodies
Returns the NumericalPath to which this PathEndPoint attaches the RigidBody.
the NumericalPath to which this PathEndPoint attaches the RigidBody.
Whether this implements the MassObject interface.
Whether this implements the MassObject interface.
Whether this SimObject has the given name, adjusting for transformation to the language-independent form of the name, as is done by Util.toName.
the English or language-independent version of the name
whether this SimObject has the given name (adjusted to language-independent form)
Sets the expiration time, when this SimObject should be removed from the SimList. This is intended for temporary SimObjects that illustrate, for example, contact forces or collisions.
the expiration time, in time frame of the Simulation clock
Returns true if the given SimObject is similar to this SimObject for display purposes. SimObjects are similar when they are the same type and nearly the same size and location. Mainly used when showing forces - to avoid adding too many objects to the display. See SimList.getSimilar.
the SimObject to compare to
Optional
_opt_tolerance: numberthe amount the object components can differ by
true if this SimObject is similar to obj
for display purposes
Returns a minimal string representation of this object, usually giving just identity information like the class name and name of the object.
For an object whose main purpose is to represent another Printable object, it is
recommended to include the result of calling toStringShort
on that other object.
For example, calling toStringShort()
on a DisplayShape might return something like
this:
DisplayShape{polygon:Polygon{'chain3'}}
a minimal string representation of this object.
Updates the collision to reflect current state (position, velocity, etc.) of bodies involved.
the RigidBodyCollision to update
Generated using TypeDoc
Generates a collision when the attachment point on a RigidBody moves past a certain point on a path so that the RigidBody cannot move past that point. The RigidBody would typically be connected to the path with a PathJoint, and so can move along the path.
Implementation Notes
The current position of the body determines where on the path we detect the body is, and this is stored in a PathPoint. We do a global search over the entire path here for the closest point on the path to the attachment point, see NumericalPath.findNearestGlobal, whereas later on we do a local search starting at the current PathPoint position, see NumericalPath.findNearestLocal.
NOTE: Does not deal with case where the body crosses the 'stitch' point in a closed loop path.