Exemplo n.º 1
0
        public Aurigma.GraphicsMill.Bitmap RenderWorkspace(float renderingResolution)
        {
            if (renderingResolution < VObject.Eps)
            {
                throw new System.ArgumentOutOfRangeException("renderingResolution", StringResources.GetString("ExStrValueShouldBeAboveZero"));
            }

            float workspaceWidth, workspaceHeight;

            Aurigma.GraphicsMill.Unit prevUnit = _hostViewer.Unit;
            _hostViewer.Unit = Aurigma.GraphicsMill.Unit.Point;
            try
            {
                workspaceWidth  = _hostViewer.WorkspaceWidth;
                workspaceHeight = _hostViewer.WorkspaceHeight;
            }
            finally
            {
                _hostViewer.Unit = prevUnit;
            }

            System.Drawing.Rectangle controlRectangle = CoordinateMapper.WorkspaceToControl(new System.Drawing.RectangleF(0, 0, workspaceWidth, workspaceHeight), 1.0f, System.Drawing.Point.Empty, Aurigma.GraphicsMill.Unit.Point, renderingResolution);
            controlRectangle.Width  = System.Math.Max(1, controlRectangle.Width);
            controlRectangle.Height = System.Math.Max(1, controlRectangle.Height);

            Aurigma.GraphicsMill.Bitmap result = new Aurigma.GraphicsMill.Bitmap(controlRectangle.Width, controlRectangle.Height, Aurigma.GraphicsMill.PixelFormat.Format32bppArgb, Aurigma.GraphicsMill.RgbColor.Transparent);
            try
            {
                using (var g = result.GetGdiPlusGraphics())
                {
                    CoordinateMapper coordMapper = new CoordinateMapper();
                    coordMapper.Resolution = renderingResolution;
                    coordMapper.Zoom       = 1.0f;
                    coordMapper.Viewport   = controlRectangle;

                    _alwaysUseGdiPlus = true;
                    DrawContent(g, controlRectangle, coordMapper);
                    _alwaysUseGdiPlus = false;
                }
            }
            catch
            {
                if (result != null)
                {
                    result.Dispose();
                }

                throw;
            }

            result.DpiX = renderingResolution;
            result.DpiY = renderingResolution;

            return(result);
        }
Exemplo n.º 2
0
        internal static float ConvertPixelsToUnits(float resolution, float value, Aurigma.GraphicsMill.Unit unit)
        {
            if (resolution < VObject.Eps)
            {
                throw new System.ArgumentOutOfRangeException("resolution");
            }

            if (unit == Aurigma.GraphicsMill.Unit.Pixel)
            {
                return(value);
            }

            float inches = value / resolution;

            return(Aurigma.GraphicsMill.UnitConverter.ConvertUnitsToUnits(resolution, inches, Aurigma.GraphicsMill.Unit.Inch, unit));
        }
Exemplo n.º 3
0
        public float GetControlPixelsPerUnitX(Aurigma.GraphicsMill.Unit unit)
        {
            float result;

            if (unit == Aurigma.GraphicsMill.Unit.Pixel)
            {
                result = _zoom;
            }
            else
            {
                float inches = Aurigma.GraphicsMill.UnitConverter.ConvertUnitsToUnits(_resolution, 1.0f, unit, Aurigma.GraphicsMill.Unit.Inch);
                result = inches * _resolution * _zoom;
            }

            return(result);
        }
Exemplo n.º 4
0
        public virtual float GetControlPixelsPerUnitX(Aurigma.GraphicsMill.Unit workspaceUnit)
        {
            float result;

            if (workspaceUnit == Aurigma.GraphicsMill.Unit.Pixel)
            {
                result = _zoom;
            }
            else
            {
                float inches = Aurigma.GraphicsMill.UnitConverter.ConvertUnitsToUnits(this.ViewerResolution, 1.0f, workspaceUnit, Aurigma.GraphicsMill.Unit.Inch);
                result = inches * _viewerResolution * _zoom;
            }

            return(result);
        }
Exemplo n.º 5
0
 public System.Drawing.Rectangle WorkspaceToControl(System.Drawing.RectangleF workspaceRect, Aurigma.GraphicsMill.Unit workspaceUnit)
 {
     return(CoordinateMapper.WorkspaceToControl(workspaceRect, _zoom, _viewport.Location, workspaceUnit, _resolution));
 }
Exemplo n.º 6
0
 public System.Drawing.RectangleF ControlToWorkspace(System.Drawing.Rectangle controlRectangle, Aurigma.GraphicsMill.Unit workspaceUnit)
 {
     return(CoordinateMapper.ControlToWorkspace(controlRectangle, _zoom, _viewport.Location, workspaceUnit, _resolution));
 }
Exemplo n.º 7
0
        public static System.Drawing.Rectangle WorkspaceToControl(System.Drawing.RectangleF workspaceRect, float zoom, System.Drawing.Point viewportOrigin, Aurigma.GraphicsMill.Unit workspaceUnit, float dpi)
        {
            System.Drawing.Point lt, rb;
            lt = WorkspaceToControl(workspaceRect.Location, zoom, viewportOrigin, workspaceUnit, dpi);
            rb = WorkspaceToControl(new System.Drawing.PointF(workspaceRect.Right, workspaceRect.Bottom), zoom, viewportOrigin, workspaceUnit, dpi);

            return(System.Drawing.Rectangle.FromLTRB(lt.X, lt.Y, rb.X, rb.Y));
        }
Exemplo n.º 8
0
        public static System.Drawing.RectangleF ControlToWorkspace(System.Drawing.Rectangle controlRect, float zoom, System.Drawing.Point viewportOrigin, Aurigma.GraphicsMill.Unit workspaceUnit, float dpi)
        {
            System.Drawing.PointF lt, rb;
            lt = ControlToWorkspace(controlRect.Location, zoom, viewportOrigin, workspaceUnit, dpi);
            rb = ControlToWorkspace(new System.Drawing.Point(controlRect.Right, controlRect.Bottom), zoom, viewportOrigin, workspaceUnit, dpi);

            return(System.Drawing.RectangleF.FromLTRB(lt.X, lt.Y, rb.X, rb.Y));
        }
Exemplo n.º 9
0
        public static System.Drawing.Point WorkspaceToControl(System.Drawing.PointF workspacePoint, float zoom, System.Drawing.Point viewportOrigin, Aurigma.GraphicsMill.Unit workspaceUnit, float dpi)
        {
            if (workspaceUnit != Aurigma.GraphicsMill.Unit.Pixel)
            {
                workspacePoint.X = Aurigma.GraphicsMill.UnitConverter.ConvertUnitsToPixels(dpi, workspacePoint.X * zoom, workspaceUnit);
                workspacePoint.Y = Aurigma.GraphicsMill.UnitConverter.ConvertUnitsToPixels(dpi, workspacePoint.Y * zoom, workspaceUnit);
            }

            int x, y;

            x = (int)(workspacePoint.X - viewportOrigin.X);
            y = (int)(workspacePoint.Y - viewportOrigin.Y);

            return(new System.Drawing.Point(x, y));
        }
Exemplo n.º 10
0
        public static System.Drawing.PointF ControlToWorkspace(System.Drawing.Point controlPoint, float zoom, System.Drawing.Point viewportOrigin, Aurigma.GraphicsMill.Unit workspaceUnit, float dpi)
        {
            float x, y;

            x = (controlPoint.X + viewportOrigin.X) / zoom;
            y = (controlPoint.Y + viewportOrigin.Y) / zoom;

            if (workspaceUnit != Aurigma.GraphicsMill.Unit.Pixel)
            {
                x = ConvertPixelsToUnits(dpi, x, workspaceUnit);
                y = ConvertPixelsToUnits(dpi, y, workspaceUnit);
            }

            return(new System.Drawing.PointF(x, y));
        }
Exemplo n.º 11
0
 public float GetControlPixelsPerUnitY(Aurigma.GraphicsMill.Unit unit)
 {
     return(GetControlPixelsPerUnitX(unit));
 }
Exemplo n.º 12
0
 public virtual float GetControlPixelsPerUnitY(Aurigma.GraphicsMill.Unit workspaceUnit)
 {
     return(GetControlPixelsPerUnitX(workspaceUnit));
 }
Exemplo n.º 13
0
        public virtual System.Drawing.RectangleF ControlToWorkspace(System.Drawing.Rectangle controlRectangle, Aurigma.GraphicsMill.Unit workspaceUnit)
        {
            System.Drawing.PointF lt, rb;
            lt = ControlToWorkspace(controlRectangle.Location, workspaceUnit);
            rb = ControlToWorkspace(new System.Drawing.Point(controlRectangle.Right, controlRectangle.Bottom), workspaceUnit);

            return(System.Drawing.RectangleF.FromLTRB(lt.X, lt.Y, rb.X, rb.Y));
        }
Exemplo n.º 14
0
        public virtual System.Drawing.Rectangle WorkspaceToControl(System.Drawing.RectangleF workspaceRectangle, Aurigma.GraphicsMill.Unit workspaceUnit)
        {
            System.Drawing.Point lt, rb;
            lt = WorkspaceToControl(workspaceRectangle.Location, workspaceUnit);
            rb = WorkspaceToControl(new System.Drawing.PointF(workspaceRectangle.Right, workspaceRectangle.Bottom), workspaceUnit);

            return(System.Drawing.Rectangle.FromLTRB(lt.X, lt.Y, rb.X, rb.Y));
        }
Exemplo n.º 15
0
 public abstract System.Drawing.PointF ControlToWorkspace(System.Drawing.Point controlPoint, Aurigma.GraphicsMill.Unit workspaceUnit);
Exemplo n.º 16
0
 public abstract System.Drawing.Point WorkspaceToControl(System.Drawing.PointF workspacePoint, Aurigma.GraphicsMill.Unit workspaceUnit);