// Override me
        virtual public void GenerateTriangles()
        {
            foreach (object o in ShapeCollection.Shapes)
            {
                if (o is LfPolygonViewModel)
                {
                    LfPolygonViewModel pvm = (LfPolygonViewModel)o;

                    pvm.GenerateTriangles();
                }
            }
        }
        public void GenerateTriangles()
        {
            foreach (object o in StateShapes.Shapes)
            {
                if (o is LfPolygonViewModel)
                {
                    LfPolygonViewModel pvm = (LfPolygonViewModel)o;

                    pvm.GenerateTriangles();
                }
            }

            foreach (ChildObjectViewModel covm in ChildObjectsWithStates.Children)
            {
                foreach (ChildCOViewModel propvm in covm.StateProperties)
                {
                    propvm.GenerateTriangles();
                }
            }
        }