Example #1
0
        /// <summary>
        /// Performs a hit test on the <see cref="ArcPrimitive"/> at a given point.
        /// </summary>
        /// <param name="point">The mouse position in destination coordinates.</param>
        /// <returns>
        /// <b>True</b> if <paramref name="point"/> "hits" the <see cref="ArcPrimitive"/>,
        /// <b>false</b> otherwise.
        /// </returns>
        /// <remarks>
        /// A "hit" is defined as when the mouse position is <see cref="VectorGraphic.HitTestDistance"/>
        /// screen pixels away from any point on the arc.
        /// </remarks>
        public override bool HitTest(Point point)
        {
            this.CoordinateSystem = CoordinateSystem.Source;

            bool result = ArcPrimitive.HitTest(
                SpatialTransform.ConvertToSource(point), this.Rectangle,
                this.StartAngle, this.SweepAngle,
                this.SpatialTransform);

            this.ResetCoordinateSystem();

            return(result);
        }
 /// <summary>
 /// Gets the point on the <see cref="Graphic"/> closest to the specified point.
 /// </summary>
 /// <param name="point">A point in either source or destination coordinates.</param>
 /// <returns>The point on the graphic closest to the given <paramref name="point"/>.</returns>
 /// <remarks>
 /// <para>
 /// Depending on the value of <see cref="Graphic.CoordinateSystem"/>,
 /// the computation will be carried out in either source
 /// or destination coordinates.</para>
 /// </remarks>
 public override PointF GetClosestPoint(PointF point)
 {
     return(ArcPrimitive.GetClosestPoint(point, this.Rectangle, this.StartAngle, this.SweepAngle));
 }