=head1 NAME
Box2D::b2LineJoint - Provides two degrees of freedom: translation
along an axis and rotation in the plane.
=head1 SYNOPSIS
my $joint - $world->CreateJoint( $joint_def );
$joint->EnableLimit( 1 );
$joint->EnableMotor( 1 );
$joint->SetMotorSpeed( $speed );
=head1 DESCRIPTION
A line joint. This joint provides two degrees of freedom: translation
along an axis fixed in body1 and rotation in the plane. You can use a
joint limit to restrict the range of motion and a joint motor to drive
the motion or to model joint friction.
=head1 METHODS
=head2 EnableLimit( $flag )
Enable/disable the joint limit.
Parameters:
=over 4
=item * C<bool> C<$flag>
=back
=head2 EnableMotor( $flag )
Enable/disable the joint motor.
Parameters:
=over 4
=item * C<bool> C<$flag>
=back
=head2 GetAnchorA()
Get the anchor point on bodyA in world coordinates. Implements
C<Box2D::b2Joint>.
Returns a C<Box2D::b2Vec2>
=head2 GetAnchorB()
Get the anchor point on bodyB in world coordinates. Implements
C<Box2D::b2Joint>.
Returns a C<Box2D::b2Vec2>
=head2 GetJointSpeed()
Get the current joint translation speed, usually in meters per second.
Returns a C<float32>
=head2 GetJointTranslation()
Get the current joint translation, usually in meters.
Returns a C<float32>
=head2 GetLowerLimit()
Get the lower joint limit, usually in meters.
Returns a C<float32>
=head2 GetMaxMotorForce()
Returns a C<float32>
=head2 GetMotorForce()
Get the current motor force, usually in N.
Returns a C<float32>
=head2 GetMotorSpeed()
Get the motor speed, usually in meters per second.
Returns a C<float32>
=head2 GetReactionForce( $inv_dt )
Get the reaction force on body2 at the joint anchor in Newtons.
Implements C<Box2D::b2Joint>.
Parameters:
=over 4
=item * C<float32> C<$inv_dt>
=back
Returns a C<Box2D::b2Vec2>
=head2 GetReactionTorque( $inv_dt )
Get the reaction torque on body2 in N*m. Implements C<Box2D::b2Joint>.
Parameters:
=over 4
=item * C<float32> C<$inv_dt>
=back
Returns a C<float32>
=head2 GetUpperLimit()
Get the upper joint limit, usually in meters.
Returns a C<float32>
=head2 IsLimitEnabled()
Is the joint limit enabled?
Returns a C<bool>
=head2 IsMotorEnabled()
Is the joint motor enabled?
Returns a C<bool>
=head2 SetLimits( $lower, $upper )
Set the joint limits, usually in meters.
Parameters:
=over 4
=item * C<float32> C<$lower>
=item * C<float32> C<$upper>
=back
=head2 SetMaxMotorForce( $force )
Set/Get the maximum motor force, usually in N.
Parameters:
=over 4
=item * C<float32> C<$force>
=back
=head2 SetMotorSpeed( $speed )
Set the motor speed, usually in meters per second.
Parameters:
=over 4
=item * C<float32> C<$speed>
=back
=head1 SEE ALSO
=over 4
=item * L<Box2D>
=item * L<Box2D::b2LineJointDef>
=item * L<Box2D::b2Joint>
=item * L<Box2D::b2World>
=back
=head1 BUGS
See L<Box2D/BUGS>
=head1 AUTHORS
See L<Box2D/AUTHORS>
=head1 COPYRIGHT & LICENSE
See L<Box2D/"COPYRIGHT & LICENSE">
=cut