#ifndef __TRIANGLE3_H #define __TRIANGLE3_H #include "Vector3.h" struct Triangle3 { Vector3 mVertices[3]; Triangle3() {} Triangle3(const Vector3 &a, const Vector3 &b, const Vector3 &c ) { Init(a, b, c); } void Init(const Vector3 &a, const Vector3 &b, const Vector3 &c ) { mVertices[0] = a; mVertices[1] = b; mVertices[2] = c; } Vector3 GetNormal() const { Vector3 v1=mVertices[0]-mVertices[1], v2=mVertices[2]-mVertices[1]; return Normalize(CrossProd(v2,v1)); } Vector3 GetCenter() const { return (mVertices[0] + mVertices[1] + mVertices[2])/3.0f; } float GetSpatialAngle(const Vector3 &point) const; }; #endif