public CadObjectDB Restore() { CadObjectDB ret = new CadObjectDB(); ret.LayerIdProvider.Counter = LayerIdCount; ret.FigIdProvider.Counter = FigureIdCount; // Figure map List <CadFigure> figList = MpUtil_v1001.FigureListFromMp_v1001(FigureList); var dic = new Dictionary <uint, CadFigure>(); for (int i = 0; i < figList.Count; i++) { CadFigure fig = figList[i]; dic.Add(fig.ID, fig); FigureList[i].TempFigure = fig; } ret.FigureMap = dic; // Child list for (int i = 0; i < figList.Count; i++) { MpFigure_v1001 mpfig = FigureList[i]; SetFigChild(mpfig, dic); } // Layer map ret.LayerList = MpUtil_v1001.LayerListFromMp(LayerList, dic); ret.LayerMap = new Dictionary <uint, CadLayer>(); for (int i = 0; i < ret.LayerList.Count; i++) { CadLayer layer = ret.LayerList[i]; ret.LayerMap.Add(layer.ID, layer); } ret.CurrentLayerID = CurrentLayerID; return(ret); }
public void RestoreTo(CadFigure fig) { fig.ID = ID; fig.Locked = Locked; fig.IsLoop = IsLoop; fig.Normal = Normal.Restore(); if (ChildList != null) { fig.ChildList = MpUtil_v1001.FigureListFromMp_v1001(ChildList); for (int i = 0; i < fig.ChildList.Count; i++) { CadFigure c = fig.ChildList[i]; c.Parent = fig; } } else { fig.ChildList.Clear(); } fig.GeometricDataFromMp_v1001(GeoData); }