Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

=head1 NAME
Box2D::b2PulleyJointDef - Pulley joint definition.
=head1 SYNOPSIS
my $joint_def = Box2D::b2PulleyJointDef->new();
$joint_def->Initialize( $bodyA, $bodyB, $groundAnchorA,
$groundAnchorB, $anchorA, $anchorB, $ratio );
my $joint = $world->CreateJoint( $joint_def );
=head1 DESCRIPTION
Pulley joint definition. This requires two ground anchors, two dynamic
body anchor points, max lengths for each side, and a pulley ratio.
=head1 METHODS
Default constructor.
Returns a C<Box2D::b2PulleyJointDef>
=head2 Initialize( $bodyA, $bodyB, $groundAnchorA, $groundAnchorB,
$anchorA, $anchorB, $ratio )
Initialize the bodies, anchors, lengths, max lengths, and ratio using
the world anchors.
Parameters:
=over 4
=item * C<Box2D::b2Body> C<$bodyA>
=item * C<Box2D::b2Body> C<$bodyB>
=item * C<Box2D::b2Vec2> C<$groundAnchorA>
=item * C<Box2D::b2Vec2> C<$groundAnchorB>
=item * C<Box2D::b2Vec2> C<$anchorA>
=item * C<Box2D::b2Vec2> C<$anchorB>
=item * C<float32> C<$ratio>
=back
=head2 groundAnchorA()
=head2 groundAnchorA( $groundAnchorA )
The first ground anchor in world coordinates. This point never moves.
Parameters:
=over 4
=item * C<Box2D::b2Vec2> C<$groundAnchorA> (optional)
=back
Returns a C<Box2D::b2Vec2>
=head2 groundAnchorB()
=head2 groundAnchorB( $groundAnchorB )
The second ground anchor in world coordinates. This point never moves.
Parameters:
=over 4
=item * C<Box2D::b2Vec2> C<$groundAnchorB> (optional)
=back
Returns a C<Box2D::b2Vec2>
=head2 lengthA()
=head2 lengthA( $lengthA )
The a reference length for the segment attached to bodyA.
Parameters:
=over 4
=item * C<float32> C<$lengthA> (optional)
=back
Returns a C<float32>
=head2 lengthB()
=head2 lengthB( $lengthB )
The a reference length for the segment attached to bodyB.
Parameters:
=over 4
=item * C<float32> C<$lengthB> (optional)
=back
Returns a C<float32>
=head2 localAnchorA()
=head2 localAnchorA( $localAnchorA )
The local anchor point relative to bodyA's origin.
Parameters:
=over 4
=item * C<Box2D::b2Vec2> C<$localAnchorA> (optional)
=back
Returns a C<Box2D::b2Vec2>
=head2 localAnchorB()
=head2 localAnchorB( $localAnchorB )
The local anchor point relative to bodyB's origin.
Parameters:
=over 4
=item * C<Box2D::b2Vec2> C<$localAnchorB> (optional)
=back
Returns a C<Box2D::b2Vec2>
=head2 maxLengthA()
=head2 maxLengthA( $maxLengthA )
The maximum length of the segment attached to bodyA.
Parameters:
=over 4
=item * C<float32> C<$maxLengthA> (optional)
=back
Returns a C<float32>
=head2 maxLengthB()
=head2 maxLengthB( $maxLengthB )
The maximum length of the segment attached to bodyB.
Parameters:
=over 4
=item * C<float32> C<$maxLengthB> (optional)
=back
Returns a C<float32>
=head2 ratio()
=head2 ratio( $ratio )
The pulley ratio, used to simulate a block-and-tackle.
Parameters:
=over 4
=item * C<float32> C<$ratio> (optional)
=back
Returns a C<float32>
=head1 SEE ALSO
=over 4
=item * L<Box2D>
=item * L<Box2D::b2PulleyJoint>
=item * L<Box2D::b2JointDef>
=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