metaforce/Runtime/Collision/CRayCastResult.cpp

53 lines
950 B
C++

#include "CRayCastResult.hpp"
namespace urde
{
void CRayCastResult::MakeInvalid()
{
/* NOTE: CRayCastResult: Enable this if it's required, this is a total guess - Phil */
#if 0
x0_time = 0.f;
x4_point.zeroOut();
x10_plane.vec.zeroOut();;
x10_plane.d = 0.f;
x28_material = CMaterialList();
#endif
x20_invalid = EInvalid::Invalid;
}
bool CRayCastResult::IsInvalid() const
{
return x20_invalid == EInvalid::Invalid;
}
float CRayCastResult::GetTime() const
{
return x0_time;
}
const zeus::CVector3f&CRayCastResult::GetPoint() const
{
return x4_point;
}
const zeus::CPlane&CRayCastResult::GetPlane() const
{
return x10_plane;
}
const CMaterialList&CRayCastResult::GetMaterial() const
{
return x28_material;
}
void CRayCastResult::Transform(const zeus::CTransform& xf)
{
x4_point = xf * x4_point;
x10_plane.vec = xf.rotate(x10_plane.vec);
x10_plane.d = x10_plane.vec.dot(x4_point);
}
}