=head1 NAME

Box2D::b2JointDef - Used to construct joints.

=head1 SYNOPSIS

  # Don't use this class directly, use a subclass.

=head1 DESCRIPTION

Joint definitions are used to construct joints.

=head1 METHODS

=head2 new()

Default constructor.

=head2 bodyA()

=head2 bodyA( $bodyA )

The first attached body.

Parameters:

=over 4

=item * C<Box2D::b2Body*> C<$bodyA> (optional)

=back

Returns a C<Box2D::b2Body*>

=head2 bodyB()

=head2 bodyB( $bodyB )

The second attached body.

Parameters:

=over 4

=item * C<Box2D::b2Body*> C<$bodyB> (optional)

=back

Returns a C<Box2D::b2Body*>

=head2 collideConnected()

=head2 collideConnected( $collideConnected )

Set this flag to true if the attached bodies should collide.

Parameters:

=over 4

=item * C<bool> C<$collideConnected> (optional)

=back

Returns a C<bool>

=head2 type()

=head2 type( $type )

The joint type is set automatically for concrete joint types.

Parameters:

=over 4

=item * C<Box2D::b2JointType> C<$type> (optional)

=back

Returns a C<Box2D::b2JointType>

=head2 userData()

=head2 userData( $userData )

Use this to attach application specific data to your joints.

Parameters:

=over 4

=item * C<scalar> C<$userData> (optional)

=back

Returns a C<scalar>

=head1 SEE ALSO

=over 4

=item * L<Box2D>

=item * L<Box2D::b2Joint>

=item * L<Box2D::b2DistanceJointDef>

=item * L<Box2D::b2FrictionJointDef>

=item * L<Box2D::b2GearJointDef>

=item * L<Box2D::b2LineJointDef>

=item * L<Box2D::b2MouseJointDef>

=item * L<Box2D::b2PrismaticJointDef>

=item * L<Box2D::b2PulleyJointDef>

=item * L<Box2D::b2RevoluteJointDef>

=item * L<Box2D::b2WeldJointDef>

=back

=head1 BUGS

See L<Box2D/BUGS>

=head1 AUTHORS

See L<Box2D/AUTHORS>

=head1 COPYRIGHT & LICENSE

See L<Box2D/"COPYRIGHT & LICENSE">

=cut