Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
 public virtual void Visit(DxfMLine mline)
 {
 }
Beispiel #4
0
 public virtual void Visit(DxfMLine mline)
 {
     this.VisitEntity((DxfEntity)mline);
 }