public SuperMesh(GH_Mesh myMesh, string guid)
{
parentGuid = guid;
data.uvs = "";
data.normals = "";
Mesh actualMesh = myMesh.Value;
// COLOURS (if any)
if (actualMesh.VertexColors.Count > 0)
{
data.vertexColors = new List<int>();
type = "SPKL_ColorMesh";
foreach (System.Drawing.Color c in actualMesh.VertexColors)
{
c.ToString();
data.vertexColors.Add(ColorToInt(c));
}
}
// VERTICES
data.vertices = new List<double>();
foreach (Point3d vertex in actualMesh.Vertices)
{
data.vertices.Add(Math.Round(vertex.Y * 1, 3));
data.vertices.Add(Math.Round(vertex.Z * 1, 3));
data.vertices.Add(Math.Round(vertex.X * 1, 3));
}
// FACES
data.faces = new List<int>();
foreach (MeshFace face in actualMesh.Faces)
{
if (face.IsTriangle)
{
data.faces.Add(0);
data.faces.Add(face.A);
data.faces.Add(face.B);
data.faces.Add(face.C);
}
else
{
// some reason quad meshes say nono to shadows in threejs :(
data.faces.Add(0);
data.faces.Add(face.A);
data.faces.Add(face.B);
data.faces.Add(face.C);
data.faces.Add(0);
data.faces.Add(face.A);
data.faces.Add(face.C);
data.faces.Add(face.D);
}
}
}