コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: MapObject.cs プロジェクト: KonstantinUb/sledge
 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);
     }
 }