#include "SimpleTri.h" using namespace std; SimpleTri::SimpleTri(const SimpleVec &a, const SimpleVec &b, const SimpleVec &c) { Init(a, b, c); } void SimpleTri::Init(const SimpleVec &a, const SimpleVec &b, const SimpleVec &c) { mVertices[0] = a; mVertices[1] = b; mVertices[2] = c; } SimpleVec SimpleTri::GetNormal() const { const SimpleVec v1 = mVertices[0] - mVertices[1]; const SimpleVec v2 = mVertices[2] - mVertices[1]; return Normalize(CrossProd(v2, v1)); } SimpleVec SimpleTri::GetWorldCenter() const { return (mVertices[0] + mVertices[1] + mVertices[2]) / 3.0f; } float SimpleTri::GetArea() const { SimpleVec v1 = mVertices[0] - mVertices[1], v2=mVertices[2] - mVertices[1]; return 0.5f * Magnitude(CrossProd(v2, v1)); }