Added Box2D
This commit is contained in:
178
external/Box2D-2.3.1/Contributions/Platforms/Box2D.Net/JointDef.cpp
vendored
Normal file
178
external/Box2D-2.3.1/Contributions/Platforms/Box2D.Net/JointDef.cpp
vendored
Normal file
@@ -0,0 +1,178 @@
|
||||
#pragma once
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "Body.cpp"
|
||||
#include "Vector.cpp"
|
||||
|
||||
using namespace System::Runtime::InteropServices;
|
||||
|
||||
namespace Box2D
|
||||
{
|
||||
namespace Net
|
||||
{
|
||||
//TODO: is there a way to automatically include the b2JointType as an enum here?
|
||||
public enum class JointType
|
||||
{
|
||||
e_unknownJoint = ::e_unknownJoint,
|
||||
e_revoluteJoint = ::e_revoluteJoint,
|
||||
e_prismaticJoint = ::e_prismaticJoint,
|
||||
|
||||
e_distanceJoint = ::e_distanceJoint,
|
||||
e_pulleyJoint = ::e_pulleyJoint,
|
||||
e_mouseJoint = ::e_mouseJoint,
|
||||
e_gearJoint = ::e_gearJoint
|
||||
};
|
||||
|
||||
public ref class JointDef
|
||||
{
|
||||
internal:
|
||||
b2JointDef *def;
|
||||
JointDef() : def(new b2JointDef()) { }
|
||||
JointDef(b2JointDef *justBuilt) : def(justBuilt) { }
|
||||
virtual ~JointDef()
|
||||
{
|
||||
delete def;
|
||||
}
|
||||
|
||||
public:
|
||||
property JointType Type
|
||||
{
|
||||
JointType get()
|
||||
{
|
||||
return (JointType)def->type;
|
||||
}
|
||||
|
||||
void set(JointType value)
|
||||
{
|
||||
def->type = (b2JointType)value;
|
||||
}
|
||||
}
|
||||
|
||||
property Object^ UserData
|
||||
{
|
||||
Object^ get()
|
||||
{
|
||||
return System::Runtime::InteropServices::GCHandle::FromIntPtr((System::IntPtr)def->userData).Target;
|
||||
}
|
||||
|
||||
void set(Object^ value)
|
||||
{
|
||||
GCHandle^ gch = GCHandle::Alloc(value);
|
||||
def->userData = (void *)gch->ToIntPtr(*gch);
|
||||
}
|
||||
}
|
||||
|
||||
property Body^ Body1
|
||||
{
|
||||
Body^ get()
|
||||
{
|
||||
return gcnew Body(def->body1);
|
||||
}
|
||||
|
||||
void set(Body^ value)
|
||||
{
|
||||
def->body1 = value->body;
|
||||
}
|
||||
}
|
||||
|
||||
property Body^ Body2
|
||||
{
|
||||
Body^ get()
|
||||
{
|
||||
return gcnew Body(def->body2);
|
||||
}
|
||||
|
||||
void set(Body^ value)
|
||||
{
|
||||
def->body2 = value->body;
|
||||
}
|
||||
}
|
||||
|
||||
property bool CollideConnected
|
||||
{
|
||||
bool get()
|
||||
{
|
||||
return def->collideConnected;
|
||||
}
|
||||
|
||||
void set(bool value)
|
||||
{
|
||||
def->collideConnected = value;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public ref class MouseJointDef : public JointDef
|
||||
{
|
||||
internal:
|
||||
b2MouseJointDef *mouseJoint;
|
||||
public:
|
||||
MouseJointDef() : JointDef(mouseJoint = new b2MouseJointDef()) { }
|
||||
|
||||
property Vector^ Target
|
||||
{
|
||||
Vector^ get()
|
||||
{
|
||||
return gcnew Vector(mouseJoint->target);
|
||||
}
|
||||
|
||||
void set(Vector^ value)
|
||||
{
|
||||
mouseJoint->target = value->getVec2();
|
||||
}
|
||||
}
|
||||
|
||||
property float32 MaxForce
|
||||
{
|
||||
float32 get()
|
||||
{
|
||||
return mouseJoint->maxForce;
|
||||
}
|
||||
|
||||
void set(float32 value)
|
||||
{
|
||||
mouseJoint->maxForce = value;
|
||||
}
|
||||
}
|
||||
|
||||
property float32 FrequencyHz
|
||||
{
|
||||
float32 get()
|
||||
{
|
||||
return mouseJoint->frequencyHz;
|
||||
}
|
||||
|
||||
void set(float32 value)
|
||||
{
|
||||
mouseJoint->frequencyHz = value;
|
||||
}
|
||||
}
|
||||
|
||||
property float32 DampingRatio
|
||||
{
|
||||
float32 get()
|
||||
{
|
||||
return mouseJoint->dampingRatio;
|
||||
}
|
||||
|
||||
void set(float32 value)
|
||||
{
|
||||
mouseJoint->dampingRatio = value;
|
||||
}
|
||||
}
|
||||
|
||||
property float32 TimeStep
|
||||
{
|
||||
float32 get()
|
||||
{
|
||||
return mouseJoint->timeStep;
|
||||
}
|
||||
|
||||
void set(float32 value)
|
||||
{
|
||||
mouseJoint->timeStep = value;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user