private void FillBoundaryGeneral(List <Vector3> added) { // 1. Reorder added so in order ot their occurence along the perimeter. MeshUtils.ReorderList(added); Vector3 center = MeshUtils.FindCenter(added); //Create triangle for each edge to the center tempTriangle[2] = center; for (int i = 0; i < added.Count; i += 2) { // Add fronface triangle in meshPositive tempTriangle[0] = added[i]; tempTriangle[1] = added[i + 1]; PositiveMesh.AddTriangle(tempTriangle); // Add backface triangle in meshNegative tempTriangle[0] = added[i + 1]; tempTriangle[1] = added[i]; NegativeMesh.AddTriangle(tempTriangle); } }
private void FillBoundaryGeneral(List <Vector3> added) { // Упорядочиваем по порядку их появления по периметру MeshUtils.ReorderList(added); Vector3 center = MeshUtils.FindCenter(added); // Создаем треугольник для каждого ребра к центру tempTriangle[2] = center; for (int i = 0; i < added.Count; i += 2) { // Добавляем внешний треугольник в meshPositive tempTriangle[0] = added[i]; tempTriangle[1] = added[i + 1]; PositiveMesh.AddTriangle(tempTriangle); // Добавить задний треугольник в meshNegative tempTriangle[0] = added[i + 1]; tempTriangle[1] = added[i]; NegativeMesh.AddTriangle(tempTriangle); } }
private void AddTriangle(List <Vector3> face, int t1, int t2, int t3) { tempTriangle[0] = face[t1]; tempTriangle[1] = face[t2]; tempTriangle[2] = face[t3]; PositiveMesh.AddTriangle(tempTriangle); tempTriangle[1] = face[t3]; tempTriangle[2] = face[t2]; NegativeMesh.AddTriangle(tempTriangle); }
private void AddTriangle(List <Vector3> face, int t1, int t2, int t3) { if (face.Count - 1 < t1 || face.Count - 1 < t2 || face.Count < t3) { Debug.Log("problem with index"); return; } tempTriangle[0] = face[t1]; tempTriangle[1] = face[t2]; tempTriangle[2] = face[t3]; PositiveMesh.AddTriangle(tempTriangle); tempTriangle[1] = face[t3]; tempTriangle[2] = face[t2]; NegativeMesh.AddTriangle(tempTriangle); }