Net3dBool.BooleanModeller.composeSolid C# (CSharp) Method

composeSolid() private method

private composeSolid ( int faceStatus1, int faceStatus2, int faceStatus3 ) : Solid
faceStatus1 int
faceStatus2 int
faceStatus3 int
return Solid
        private Solid composeSolid(int faceStatus1, int faceStatus2, int faceStatus3)
        {
            var vertices = new List<Vertex>();
            var indices = new List<int>();
            var colors = new List<Color3f>();

            //group the elements of the two solids whose faces fit with the desired status
            groupObjectComponents(object1, vertices, indices, colors, faceStatus1, faceStatus2);
            groupObjectComponents(object2, vertices, indices, colors, faceStatus3, faceStatus3);

            //turn the arrayLists to arrays
            Point3d[] verticesArray = new Point3d[vertices.Count];
            for (int i = 0; i < vertices.Count; i++)
            {
                verticesArray[i] = vertices[i].getPosition();
            }
            int[] indicesArray = new int[indices.Count];
            for (int i = 0; i < indices.Count; i++)
            {
                indicesArray[i] = indices[i];
            }
            Color3f[] colorsArray = new Color3f[colors.Count];
            for (int i = 0; i < colors.Count; i++)
            {
                colorsArray[i] = colors[i].Clone();
            }

            //returns the solid containing the grouped elements
            return new Solid(verticesArray, indicesArray, colorsArray);
        }