public override IGraphCloneable Clone(CloneContext cloneContext) { DxfMLine dxfMline = (DxfMLine)cloneContext.GetExistingClone((IGraphCloneable)this); if (dxfMline == null) { dxfMline = new DxfMLine(); cloneContext.RegisterClone((IGraphCloneable)this, (IGraphCloneable)dxfMline); dxfMline.CopyFrom((DxfHandledObject)this, cloneContext); } return((IGraphCloneable)dxfMline); }
public override void CopyFrom(DxfHandledObject from, CloneContext cloneContext) { base.CopyFrom(from, cloneContext); DxfMLine dxfMline = (DxfMLine)from; if (dxfMline.Style != null) { if (cloneContext.SourceModel == cloneContext.TargetModel) { this.Style = dxfMline.Style; } else if ((this.Style = cloneContext.TargetModel.MLineStyles.Find(dxfMline.Style.Name)) == null) { switch (cloneContext.ReferenceResolutionType) { case ReferenceResolutionType.IgnoreMissing: this.Style = cloneContext.TargetModel.DefaultMLineStyle; break; case ReferenceResolutionType.CloneMissing: DxfMLineStyle dxfMlineStyle = (DxfMLineStyle)dxfMline.Style.Clone(cloneContext); if (!cloneContext.CloneExact) { cloneContext.TargetModel.MLineStyles.Add(dxfMlineStyle); } this.Style = dxfMlineStyle; break; case ReferenceResolutionType.FailOnMissing: throw new DxfException(string.Format("Could not resolve reference to mline style with name {0}.", (object)dxfMline.Style.Name)); } } } this.double_1 = dxfMline.double_1; this.mlineAlignment_0 = dxfMline.mlineAlignment_0; this.mlineFlags_0 = dxfMline.mlineFlags_0; this.point3D_0 = dxfMline.point3D_0; this.vector3D_0 = dxfMline.vector3D_0; foreach (DxfMLine.Segment segment in dxfMline.list_0) { this.list_0.Add(segment.Clone(cloneContext)); } }
public virtual void Visit(DxfMLine mline) { }
public virtual void Visit(DxfMLine mline) { this.VisitEntity((DxfEntity)mline); }