public QHullTrianglePlanePoints(Vector3 a, Vector3 b, Vector3 c) { mPointsList = new List <Vector3>(); mTrianglePlane = new QHullTrianglePlane(a, b, c); mFathestPoint = Vector3.zero; mFathestDistance = -1e20f; mIsDelete = false; }
public List <Vector3> GetTriangles() { List <Vector3> points = new List <Vector3>(); int triangleCount = mTrianglePlanePoints.Count; for (int i = 0; i < triangleCount; ++i) { QHullTrianglePlane plane = mTrianglePlanePoints[i].mTrianglePlane; points.AddRange(plane.mVertexPoints); } return(points); }
private void CalcHullVertexes() { int triangleCount = mTrianglePlanePoints.Count; List <Vector3> vertes = new List <Vector3>(); List <int> indices = new List <int>(); for (int i = 0; i < triangleCount; ++i) { QHullTrianglePlane plane = mTrianglePlanePoints[i].mTrianglePlane; for (int j = 0; j < 3; ++j) { int index = vertes.FindIndex(delegate(Vector3 v) { return(v == plane.mVertexPoints[j]); }); if (index == -1) { indices.Add(vertes.Count); vertes.Add(plane.mVertexPoints[j]); } else { indices.Add(index); } } } }