public void InteralCacheOrganTemplates() { CachedOrganTemplates = (new[] { new MeshVariant { mesh = MeshRef } }.Concat(MeshVariants)).Select(variant => { var newDraft = new MeshDraft(variant.mesh); var bounds = variant.mesh.bounds; Vector3 translatePostMesh; if (UseMeshOrigin) { translatePostMesh = new Vector3((bounds.center.x + bounds.size.x / 2f) * IndividualScale.x, 0, 0); } else { newDraft.Move(Vector3.right * (-bounds.center.x + bounds.size.x / 2)); translatePostMesh = new Vector3(bounds.size.x * IndividualScale.x, 0, 0); } newDraft.Scale(IndividualScale); return(new TurtleOrganTemplate( newDraft, variant.materialOverride ?? material, translatePostMesh, AlsoMove )); }).ToArray(); }
private static MeshDraft CreateMesh(VOX.Model model, Dictionary <ColorPlanePos, ColorPlane> planes, float scale = 1.0f, float halfTexelShift = 0.0f) { MeshDraft mesh = new MeshDraft(); foreach (KeyValuePair <ColorPlanePos, ColorPlane> plane in planes) { mesh.Add(CreateOptimizedFaces(model, plane.Key, plane.Value, halfTexelShift)); } mesh.Scale(scale); return(mesh); }