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::b2RevoluteJoint} class b2RevoluteJoint : public %name{Box2D::b2Joint} b2Joint
{

float32 GetReactionTorque(float32 inv_dt);

float32 GetJointAngle();

float32 GetJointSpeed();

bool IsLimitEnabled();

void EnableLimit(bool flag);

float32 GetLowerLimit();

float32 GetUpperLimit();

void SetLimits(float32 lower, float32 upper);

bool IsMotorEnabled();

void EnableMotor(bool flag);

void SetMotorSpeed(float32 speed);

float32 GetMotorSpeed();

void SetMaxMotorTorque(float32 torque);

float32 GetMotorTorque();

%{

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

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

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

%}

};