コード例 #1
0
ファイル: MeshCutter.cs プロジェクト: albanlandry/mesh-cutter
    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);
        }
    }
コード例 #2
0
    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);
        }
    }
コード例 #3
0
ファイル: MeshCutter.cs プロジェクト: albanlandry/mesh-cutter
    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);
    }
コード例 #4
0
    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);
    }