protected void CopyBase(MapObject o, IDGenerator generator, bool performClone = false) { if (performClone && o.ID != ID) { var parent = o.Parent; var setPar = o.Parent != null && o.Parent.Children.ContainsKey(o.ID) && o.Parent.Children[o.ID] == o; if (setPar) { o.SetParent(null); } o.ID = ID; if (setPar) { o.SetParent(parent); } } o.ClassName = ClassName; o.Visgroups.AddRange(Visgroups); o.AutoVisgroups.AddRange(AutoVisgroups); o.Parent = Parent; o.Colour = Colour; o.IsSelected = IsSelected; o.IsCodeHidden = IsCodeHidden; o.IsRenderHidden2D = IsRenderHidden2D; o.IsRenderHidden3D = IsRenderHidden3D; o.IsVisgroupHidden = IsVisgroupHidden; o.BoundingBox = BoundingBox.Clone(); o.MetaData = MetaData.Clone(); var children = GetChildren().Select(x => performClone ? x.Clone() : x.Copy(generator)); foreach (var c in children) { c.SetParent(o); } }
protected void CopyBase(MapObject o, IDGenerator generator, bool performClone = false) { if (performClone && o.ID != ID) { var parent = o.Parent; var setPar = o.Parent != null && o.Parent.Children.ContainsKey(o.ID) && o.Parent.Children[o.ID] == o; if (setPar) o.SetParent(null); o.ID = ID; if (setPar) o.SetParent(parent); } o.ClassName = ClassName; o.Visgroups.AddRange(Visgroups); o.AutoVisgroups.AddRange(AutoVisgroups); o.Parent = Parent; o.Colour = Colour; o.IsSelected = IsSelected; o.IsCodeHidden = IsCodeHidden; o.IsRenderHidden2D = IsRenderHidden2D; o.IsRenderHidden3D = IsRenderHidden3D; o.IsVisgroupHidden = IsVisgroupHidden; o.BoundingBox = BoundingBox.Clone(); o.MetaData = MetaData.Clone(); var children = GetChildren().Select(x => performClone ? x.Clone() : x.Copy(generator)); foreach (var c in children) { c.SetParent(o); } }