Бранимир Караџић 7 лет назад
Родитель
Сommit
fcf91ae1a1
2 измененных файлов с 13 добавлено и 9 удалено
  1. 5 7
      include/bx/inline/math.inl
  2. 8 2
      include/bx/math.h

+ 5 - 7
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)

+ 8 - 2
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);