/// <summary> /// Get the top left point of the screen in CAD coordinates; /// </summary> /// <param name="canvasScreenConverter"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static Point GetTopLeftCADPoint(this ICADScreenConverter canvasScreenConverter) { if (canvasScreenConverter == null) { throw new ArgumentNullException(nameof(canvasScreenConverter)); } return(canvasScreenConverter.ToCAD(new Point(0, 0))); }
/// <summary> /// Get the right bottom point of the screen in CAD coordinates; /// </summary> /// <param name="canvasScreenConverter"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"></exception> public static Point GetBottomRightCADPoint(this ICADScreenConverter canvasScreenConverter) { if (canvasScreenConverter == null) { throw new ArgumentNullException(nameof(canvasScreenConverter)); } return(canvasScreenConverter.ToCAD(new Point(canvasScreenConverter.ActualWidth, canvasScreenConverter.ActualHeight))); }
/// <summary> /// Indicates whether the point in inside the object; /// </summary> /// <param name="point">The posion in cad coordinates</param> /// <param name="cadScreenConverter"></param> /// <returns></returns> public virtual bool PointInObject(Point point, ICADScreenConverter cadScreenConverter) => false;
/// <summary> /// Indicated whether the object in inside a rectangle; /// </summary> /// <param name="rect">The selection rectangle</param> /// <param name="anyPoint">To indicate whether the drawobject should be hit when the rect just intersets with the drawobject that is not inside the rect</param> /// <param name="cadScreenConverter"></param> /// <returns></returns> public virtual bool ObjectInRectangle(CADRect rect, ICADScreenConverter cadScreenConverter, bool anyPoint) => false;
/// <summary> /// Create an instance of WPFCanvas; /// </summary> /// <param name="cadScreenConverter">An converter instance</param> public WPFCanvas(ICADScreenConverter cadScreenConverter) { CADScreenConverter = cadScreenConverter ?? throw new ArgumentNullException(nameof(cadScreenConverter)); }