/// <summary> /// Gets the polygon points. /// </summary> /// <returns>a warper for helping handling polygon points or <c>null</c> if this is not a shape that have polygon points.</returns> virtual public OoPolygonPointsObserver GetPolygonPointsObserver() { if (_ppObs == null && PolygonHelper.IsFreeform(Shape)) { _ppObs = new OoPolygonPointsObserver(this); } return(_ppObs); }
/// <summary> /// Initializes a new instance of the <see cref="OoPolygonPointsObserver" /> class. /// </summary> /// <param name="shape">The corresponding shape.</param> /// <exception cref="ArgumentNullException">shape</exception> /// <exception cref="ArgumentException">shape must be a polygon or a bezier curve;shape</exception> public OoPolygonPointsObserver(OoShapeObserver shape) { if (shape == null) { throw new ArgumentNullException("shape"); } if (!PolygonHelper.IsFreeform(shape.Shape)) { throw new ArgumentException("shape must be a polygon or a bezier curve", "shape"); } Shape = shape; Shape.BoundRectChangeEventHandlers += Shape_BoundRectChangeEventHandlers; Shape.ObserverDisposing += Shape_ObserverDisposing; Update(); IsEmpty = false; }