/// <summary>
 /// Updates this instance and his related Objects. Especially the cached poly polygon points
 /// </summary>
 virtual public void Update()
 {
     if (_updating)
     {
         return;
     }
     try
     {
         _updating = true;
         if (IsValid())
         {
             OoShapeObserver.LockValidation = true;
             try
             {
                 CachedPolyPointList = PolygonHelper.GetPolyPoints(Shape.Shape);
                 IsClosed(false);
                 IsBezier(false);
             }
             finally
             {
                 OoShapeObserver.LockValidation = false;
                 _updating = false;
             }
         }
         else
         {
             CachedPolyPointList = null;
         }
     }
     finally
     {
         _updating = false;
     }
 }
        /// <summary>
        /// Gets the direct access to the poly polygon points.
        /// </summary>
        /// <returns>list of polygon point lists</returns>
        virtual public List <List <PolyPointDescriptor> > GetPolyPolygonPoints()
        {
            var points = PolygonHelper.GetPolyPoints(Shape);

            return(points);
        }