Files
DarkRP2D/external/Box2D-2.3.1/Contributions/Platforms/Box2D.Net/BodyDef.cpp
Julian Nießner d175d433a8 Added Box2D
2018-05-06 12:43:20 +02:00

169 lines
2.4 KiB
C++

#pragma once
#include "stdafx.h"
#include "Vector.cpp"
#include "ShapeDef.cpp"
using namespace System::Collections::Generic;
namespace Box2D
{
namespace Net
{
/// The type of body.
public enum class BodyType
{
e_staticBody = ::b2BodyDef::e_staticBody, ///< A static body should not move and has infinite mass.
e_dynamicBody = ::b2BodyDef::e_dynamicBody ///< A regular moving body.
};
public ref class BodyDef
{
internal:
b2BodyDef *def;
public:
BodyDef() : def(new b2BodyDef()) { }
virtual ~BodyDef()
{
delete def;
}
property Vector^ Position
{
Vector^ get()
{
return gcnew Vector(def->position);
}
void set(Vector^ value)
{
def->position = value->getVec2();
}
}
property float32 Angle
{
float32 get()
{
return def->angle;
}
void set(float32 value)
{
def->angle = value;
}
}
property float32 LinearDamping
{
float32 get()
{
return def->linearDamping;
}
void set(float32 value)
{
def->linearDamping = value;
}
}
property float32 AngularDamping
{
float32 get()
{
return def->angularDamping;
}
void set(float32 value)
{
def->angularDamping = value;
}
}
property bool AllowSleep
{
bool get()
{
return def->allowSleep;
}
void set(bool value)
{
def->allowSleep = value;
}
}
property bool IsBullet
{
bool get()
{
return def->isBullet;
}
void set(bool value)
{
def->isBullet = value;
}
}
property bool IsSleeping
{
bool get()
{
return def->isSleeping;
}
void set(bool value)
{
def->isSleeping = value;
}
}
property bool FixedRotation
{
bool get()
{
return def->fixedRotation;
}
void set(bool value)
{
def->fixedRotation = value;
}
}
property BodyType BodyType
{
Box2D::Net::BodyType get()
{
return (Box2D::Net::BodyType)def->type;
}
void set(Box2D::Net::BodyType value)
{
def->type = ((::b2BodyDef::Type)value);
}
}
//TODO:
/*property Object^ UserData
{
Object^ get()
{
Object^ ReturnMe;
System::Runtime::InteropServices::Marshal::PtrToStructure((System::IntPtr)def->userData, ReturnMe);
return ReturnMe;
}
void set(Object^ value)
{
def->userData = value;
}
}*/
};
}
}