Fix unity build compilation
This commit is contained in:
parent
d610baf920
commit
60ed70d3fd
|
|
@ -16,37 +16,40 @@
|
||||||
|
|
||||||
namespace Nz
|
namespace Nz
|
||||||
{
|
{
|
||||||
class CallbackHitResult : public btCollisionWorld::RayResultCallback
|
namespace NAZARA_ANONYMOUS_NAMESPACE
|
||||||
{
|
{
|
||||||
public:
|
class CallbackHitResult : public btCollisionWorld::RayResultCallback
|
||||||
CallbackHitResult(const Vector3f& from, const Vector3f& to, const FunctionRef<std::optional<float>(const BulletPhysWorld3D::RaycastHit& hitInfo)>& callback) :
|
{
|
||||||
m_callback(callback),
|
public:
|
||||||
m_from(from),
|
CallbackHitResult(const Vector3f& from, const Vector3f& to, const FunctionRef<std::optional<float>(const BulletPhysWorld3D::RaycastHit& hitInfo)>& callback) :
|
||||||
m_to(to)
|
m_callback(callback),
|
||||||
{
|
m_from(from),
|
||||||
}
|
m_to(to)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
btScalar addSingleResult(btCollisionWorld::LocalRayResult& rayResult, bool normalInWorldSpace) override
|
btScalar addSingleResult(btCollisionWorld::LocalRayResult& rayResult, bool normalInWorldSpace) override
|
||||||
{
|
{
|
||||||
m_collisionObject = rayResult.m_collisionObject;
|
m_collisionObject = rayResult.m_collisionObject;
|
||||||
|
|
||||||
BulletPhysWorld3D::RaycastHit hitInfo;
|
BulletPhysWorld3D::RaycastHit hitInfo;
|
||||||
hitInfo.fraction = rayResult.m_hitFraction;
|
hitInfo.fraction = rayResult.m_hitFraction;
|
||||||
hitInfo.hitPosition = Lerp(m_from, m_to, rayResult.m_hitFraction);
|
hitInfo.hitPosition = Lerp(m_from, m_to, rayResult.m_hitFraction);
|
||||||
hitInfo.hitNormal = FromBullet((normalInWorldSpace) ? rayResult.m_hitNormalLocal : m_collisionObject->getWorldTransform().getBasis() * rayResult.m_hitNormalLocal);
|
hitInfo.hitNormal = FromBullet((normalInWorldSpace) ? rayResult.m_hitNormalLocal : m_collisionObject->getWorldTransform().getBasis() * rayResult.m_hitNormalLocal);
|
||||||
|
|
||||||
if (const btRigidBody* body = btRigidBody::upcast(m_collisionObject))
|
if (const btRigidBody* body = btRigidBody::upcast(m_collisionObject))
|
||||||
hitInfo.hitBody = static_cast<BulletRigidBody3D*>(body->getUserPointer());
|
hitInfo.hitBody = static_cast<BulletRigidBody3D*>(body->getUserPointer());
|
||||||
|
|
||||||
m_closestHitFraction = std::max(m_callback(hitInfo).value_or(m_closestHitFraction), 0.f);
|
m_closestHitFraction = std::max(m_callback(hitInfo).value_or(m_closestHitFraction), 0.f);
|
||||||
return m_closestHitFraction;
|
return m_closestHitFraction;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const FunctionRef<std::optional<float>(const BulletPhysWorld3D::RaycastHit& hitInfo)>& m_callback;
|
const FunctionRef<std::optional<float>(const BulletPhysWorld3D::RaycastHit& hitInfo)>& m_callback;
|
||||||
Vector3f m_from;
|
Vector3f m_from;
|
||||||
Vector3f m_to;
|
Vector3f m_to;
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
struct BulletPhysWorld3D::BulletWorld
|
struct BulletPhysWorld3D::BulletWorld
|
||||||
{
|
{
|
||||||
|
|
@ -104,6 +107,8 @@ namespace Nz
|
||||||
|
|
||||||
bool BulletPhysWorld3D::RaycastQuery(const Vector3f& from, const Vector3f& to, const FunctionRef<std::optional<float>(const RaycastHit& hitInfo)>& callback)
|
bool BulletPhysWorld3D::RaycastQuery(const Vector3f& from, const Vector3f& to, const FunctionRef<std::optional<float>(const RaycastHit& hitInfo)>& callback)
|
||||||
{
|
{
|
||||||
|
NAZARA_USE_ANONYMOUS_NAMESPACE
|
||||||
|
|
||||||
CallbackHitResult resultHandler(from, to, callback);
|
CallbackHitResult resultHandler(from, to, callback);
|
||||||
m_world->dynamicWorld.rayTest(ToBullet(from), ToBullet(to), resultHandler);
|
m_world->dynamicWorld.rayTest(ToBullet(from), ToBullet(to), resultHandler);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -350,6 +350,8 @@ namespace Nz
|
||||||
|
|
||||||
bool JoltPhysWorld3D::RaycastQuery(const Vector3f& from, const Vector3f& to, const FunctionRef<std::optional<float>(const RaycastHit& hitInfo)>& callback)
|
bool JoltPhysWorld3D::RaycastQuery(const Vector3f& from, const Vector3f& to, const FunctionRef<std::optional<float>(const RaycastHit& hitInfo)>& callback)
|
||||||
{
|
{
|
||||||
|
NAZARA_USE_ANONYMOUS_NAMESPACE
|
||||||
|
|
||||||
JPH::RRayCast rayCast;
|
JPH::RRayCast rayCast;
|
||||||
rayCast.mDirection = ToJolt(to - from);
|
rayCast.mDirection = ToJolt(to - from);
|
||||||
rayCast.mOrigin = ToJolt(from);
|
rayCast.mOrigin = ToJolt(from);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue