예제 #1
0
 public void Preview(Dock_e dock, double size, double offsetX, double offsetY)
 {
     m_Dock    = dock;
     m_Size    = size;
     m_OffsetX = offsetX;
     m_OffsetY = offsetY;
     ((ISwDrawing)m_Drw).Model.GraphicsRedraw2();
 }
예제 #2
0
        public void CalculateLocation(IXDrawing drawing, Dock_e dock,
                                      double size, double offsetX, double offsetY, out Point centerPt, out double scale)
        {
            var    sheet       = (drawing.Sheets.Active as ISwSheet).Sheet;
            double sheetWidth  = -1;
            double sheetHeight = -1;

            sheet.GetSize(ref sheetWidth, ref sheetHeight);

            var sheetPrps = (double[])sheet.GetProperties2();

            scale = sheetPrps[2] / sheetPrps[3];

            double x;
            double y;

            double offsetXDir;
            double offsetYDir;

            switch (dock)
            {
            case Dock_e.BottomLeft:
                x          = size / 2;
                y          = size / 2;
                offsetXDir = 1;
                offsetYDir = 1;
                break;

            case Dock_e.TopLeft:
                x          = size / 2;
                y          = sheetHeight - size / 2;
                offsetXDir = 1;
                offsetYDir = -1;
                break;

            case Dock_e.TopRight:
                x          = sheetWidth - size / 2;
                y          = sheetHeight - size / 2;
                offsetXDir = -1;
                offsetYDir = -1;
                break;

            case Dock_e.BottomRight:
                x          = sheetWidth - size / 2;
                y          = size / 2;
                offsetXDir = -1;
                offsetYDir = 1;
                break;

            default:
                throw new NotSupportedException();
            }

            centerPt = new Point(x + offsetX * offsetXDir, y + offsetY * offsetYDir, 0);
        }