BulletPhysics3D: Add StaticPlaneCollider3D

This commit is contained in:
SirLynix
2023-03-23 13:10:00 +01:00
committed by Jérôme Leclercq
parent 021801f02e
commit 3efd422e86
3 changed files with 65 additions and 2 deletions

View File

@@ -20,6 +20,7 @@
#include <BulletCollision/CollisionShapes/btCylinderShape.h>
#include <BulletCollision/CollisionShapes/btEmptyShape.h>
#include <BulletCollision/CollisionShapes/btSphereShape.h>
#include <BulletCollision/CollisionShapes/btStaticPlaneShape.h>
#include <Nazara/BulletPhysics3D/Debug.hpp>
namespace Nz
@@ -426,4 +427,44 @@ namespace Nz
{
return ColliderType3D::Sphere;
}
/******************************** StaticPlaneCollider3D *********************************/
StaticPlaneCollider3D::StaticPlaneCollider3D(const Planef& plane) :
StaticPlaneCollider3D(plane.normal, plane.distance)
{
}
StaticPlaneCollider3D::StaticPlaneCollider3D(const Vector3f& normal, float distance) :
m_normal(normal),
m_distance(distance)
{
m_shape = std::make_unique<btStaticPlaneShape>(ToBullet(m_normal), m_distance);
}
StaticPlaneCollider3D::~StaticPlaneCollider3D() = default;
void StaticPlaneCollider3D::BuildDebugMesh(std::vector<Vector3f>& vertices, std::vector<UInt16>& indices, const Matrix4f& offsetMatrix) const
{
}
float StaticPlaneCollider3D::GetDistance() const
{
return m_distance;
}
const Vector3f& StaticPlaneCollider3D::GetNormal() const
{
return m_normal;
}
btCollisionShape* StaticPlaneCollider3D::GetShape() const
{
return m_shape.get();
}
ColliderType3D StaticPlaneCollider3D::GetType() const
{
return ColliderType3D::StaticPlane;
}
}