diff --git a/include/bx/inline/math.inl b/include/bx/inline/math.inl index 4be1e21..0a931d8 100644 --- a/include/bx/inline/math.inl +++ b/include/bx/inline/math.inl @@ -1035,18 +1035,16 @@ namespace bx return bx::normalize(baxca); } - inline void calcPlane(float _result[4], const bx::Vec3& _va, const bx::Vec3& _vb, const bx::Vec3& _vc) + inline void calcPlane(Plane& _outPlane, const bx::Vec3& _va, const bx::Vec3& _vb, const bx::Vec3& _vc) { bx::Vec3 normal = calcNormal(_va, _vb, _vc); - calcPlane(_result, normal, _va); + calcPlane(_outPlane, normal, _va); } - inline void calcPlane(float _result[4], const bx::Vec3& _normal, const bx::Vec3& _pos) + inline void calcPlane(Plane& _outPlane, const bx::Vec3& _normal, const bx::Vec3& _pos) { - _result[0] = _normal.x; - _result[1] = _normal.y; - _result[2] = _normal.z; - _result[3] = -dot(_normal, _pos); + _outPlane.normal = _normal; + _outPlane.dist = -dot(_normal, _pos); } inline BX_CONST_FUNC float toLinear(float _a) diff --git a/include/bx/math.h b/include/bx/math.h index 29d2aed..95fd1b3 100644 --- a/include/bx/math.h +++ b/include/bx/math.h @@ -56,6 +56,12 @@ namespace bx float x, y, z; }; + struct Plane + { + bx::Vec3 normal; + float dist; + }; + /// struct Quaternion { @@ -557,10 +563,10 @@ namespace bx bx::Vec3 calcNormal(const bx::Vec3& _va, const bx::Vec3& _vb, const bx::Vec3& _vc); /// - void calcPlane(float _result[4], const bx::Vec3& _va, const bx::Vec3& _vb, const bx::Vec3& _vc); + void calcPlane(Plane& _outPlane, const bx::Vec3& _va, const bx::Vec3& _vb, const bx::Vec3& _vc); /// - void calcPlane(float _result[4], const bx::Vec3& _normal, const bx::Vec3& _pos); + void calcPlane(Plane& _outPlane, const bx::Vec3& _normal, const bx::Vec3& _pos); /// void calcLinearFit2D(float _result[2], const void* _points, uint32_t _stride, uint32_t _numPoints);