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();
        }
Exemplo n.º 2
0
        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);
        }