The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
%{

#include <Box2D/Box2D.h>

%}

%module{Box2D};

%name{Box2D::b2DistanceJoint} class b2DistanceJoint :public %name{Box2D::b2Joint} b2Joint
{

float32 GetReactionTorque(float32 inv_dt);

void SetLength(float32 length);

float32 GetLength();

void SetFrequency(float32 hz);

float32 GetFrequency();

void SetDampingRatio(float32 ratio);

float32 GetDampingRatio();

%{

b2Vec2*
b2DistanceJoint::GetAnchorA()
	PREINIT:
		const char* CLASS = "Box2D::b2Vec2";
	CODE:
		RETVAL = new b2Vec2(THIS->GetAnchorA());
	OUTPUT:
		RETVAL

b2Vec2*
b2DistanceJoint::GetAnchorB()
	PREINIT:
		const char* CLASS = "Box2D::b2Vec2";
	CODE:
		RETVAL = new b2Vec2(THIS->GetAnchorB());
	OUTPUT:
		RETVAL

b2Vec2*
b2DistanceJoint::GetReactionForce(inv_dt)
	float32 inv_dt
	PREINIT:
		const char* CLASS = "Box2D::b2Vec2";
	CODE:
		RETVAL = new b2Vec2(THIS->GetReactionForce(inv_dt));
	OUTPUT:
		RETVAL

%}

};