Exemple #1
0
        public static void PasteFiguresAsBin(PlotterController controller)
        {
            if (!Clipboard.ContainsData(CadClipBoard.TypeNameBin))
            {
                return;
            }

            byte[] bin = (byte[])Clipboard.GetData(CadClipBoard.TypeNameBin);

            List <CadFigure> figList = BinToFigList(bin);

            // Pase figures in fig list
            Vector3d pp = controller.LastDownPoint;

            MinMax3D mm3d = CadUtil.GetFigureMinMaxIncludeChild(figList);

            Vector3d d = pp - mm3d.GetMinAsVector();

            CadOpeList opeRoot = new CadOpeList();

            foreach (CadFigure fig in figList)
            {
                PasteFigure(controller, fig, d);
                controller.CurrentLayer.AddFigure(fig);    // 子ObjectはLayerに追加しない

                CadOpe ope = new CadOpeAddFigure(controller.CurrentLayer.ID, fig.ID);
                opeRoot.OpeList.Add(ope);
            }

            controller.HistoryMan.foward(opeRoot);
        }