Added Box2D
This commit is contained in:
106
external/Box2D-2.3.1/Contributions/Platforms/Box2D.Net/Joint.cpp
vendored
Normal file
106
external/Box2D-2.3.1/Contributions/Platforms/Box2D.Net/Joint.cpp
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
#pragma once
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "Body.cpp"
|
||||
#include "JointDef.cpp"
|
||||
|
||||
namespace Box2D
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
public ref class Joint
|
||||
{
|
||||
internal:
|
||||
b2Joint *joint;
|
||||
Joint(b2Joint *jointRef) : joint(jointRef) { }
|
||||
public:
|
||||
|
||||
property JointType JointType
|
||||
{
|
||||
Box2D::Net::JointType get()
|
||||
{
|
||||
return (Box2D::Net::JointType) joint->GetType();
|
||||
}
|
||||
}
|
||||
|
||||
property Body^ Body1
|
||||
{
|
||||
Body^ get()
|
||||
{
|
||||
return gcnew Body(joint->GetBody1());
|
||||
}
|
||||
}
|
||||
|
||||
property Body^ Body2
|
||||
{
|
||||
Body^ get()
|
||||
{
|
||||
return gcnew Body(joint->GetBody2());
|
||||
}
|
||||
}
|
||||
|
||||
property Vector^ Anchor1
|
||||
{
|
||||
Vector^ get()
|
||||
{
|
||||
return gcnew Vector(joint->GetAnchor1());
|
||||
}
|
||||
}
|
||||
|
||||
property Vector^ Anchor2
|
||||
{
|
||||
Vector^ get()
|
||||
{
|
||||
return gcnew Vector(joint->GetAnchor2());
|
||||
}
|
||||
}
|
||||
|
||||
Vector^ GetReactionForce()
|
||||
{
|
||||
return gcnew Vector(joint->GetReactionForce());
|
||||
}
|
||||
|
||||
float32 GetReactionTorque()
|
||||
{
|
||||
return joint->GetReactionTorque();
|
||||
}
|
||||
|
||||
Joint^ GetNext()
|
||||
{
|
||||
return gcnew Joint(joint->GetNext());
|
||||
}
|
||||
|
||||
//TODO:
|
||||
/*
|
||||
void* GetUserData();
|
||||
*/
|
||||
};
|
||||
|
||||
public ref class MouseJoint : public Joint
|
||||
{
|
||||
internal:
|
||||
b2MouseJoint *mouseJoint;
|
||||
MouseJoint(b2MouseJoint *joint) : Joint(joint), mouseJoint(joint) { }
|
||||
public:
|
||||
MouseJoint(Joint^ joint) : Joint(joint->joint), mouseJoint(0)
|
||||
{
|
||||
if(joint->JointType == Box2D::Net::JointType::e_mouseJoint &&
|
||||
reinterpret_cast<b2MouseJoint *>(joint->joint))
|
||||
{
|
||||
mouseJoint = reinterpret_cast<b2MouseJoint *>(joint->joint);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw gcnew System::Exception("Attempting to convert a Joint to a MouseJoint, "
|
||||
"but the joint is not a mouse joint.");
|
||||
}
|
||||
}
|
||||
|
||||
void SetTarget(Vector^ Target)
|
||||
{
|
||||
mouseJoint->SetTarget(Target->getVec2());
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user