Ejemplo n.º 1
0
        public override void CopyFrom(DxfHandledObject from, CloneContext cloneContext)
        {
            base.CopyFrom(from, cloneContext);
            DxfBlockPropertiesTable blockPropertiesTable = (DxfBlockPropertiesTable)from;

            this.NodeId            = (DxfEvalGraph.GraphNodeId)cloneContext.Clone((IGraphCloneable)blockPropertiesTable.NodeId);
            this.TableName         = blockPropertiesTable.TableName;
            this.DescriptionString = blockPropertiesTable.DescriptionString;
            this.Unknown1          = blockPropertiesTable.Unknown1;
            this.PropertiesCanBeModifiedIndividually = blockPropertiesTable.PropertiesCanBeModifiedIndividually;
            this.UnknownFlag2 = blockPropertiesTable.UnknownFlag2;
            this.UnknownFlag3 = blockPropertiesTable.UnknownFlag3;
            if (blockPropertiesTable.Data == null)
            {
                this.Data = (DxfXRecordValue[][])null;
            }
            else
            {
                this.Data = new DxfXRecordValue[blockPropertiesTable.Data.Length][];
                for (int index1 = 0; index1 < blockPropertiesTable.Data.Length; ++index1)
                {
                    int length = blockPropertiesTable.Data[index1] == null ? 0 : blockPropertiesTable.Data[index1].Length;
                    this.Data[index1] = new DxfXRecordValue[length];
                    for (int index2 = 0; index2 < length; ++index2)
                    {
                        this.Data[index1][index2] = (DxfXRecordValue)blockPropertiesTable.Data[index1][index2].Clone(cloneContext);
                    }
                }
            }
            if (blockPropertiesTable.DataNodeId == null)
            {
                this.DataNodeId = (int[])null;
            }
            else
            {
                this.DataNodeId = new int[blockPropertiesTable.DataNodeId.Length];
                for (int index = 0; index < blockPropertiesTable.DataNodeId.Length; ++index)
                {
                    this.DataNodeId[index] = blockPropertiesTable.DataNodeId[index];
                }
            }
            if (blockPropertiesTable.ColumnInformation == null)
            {
                this.ColumnInformation = (DxfBlockPropertiesTableColumnDefinition[])null;
            }
            else
            {
                this.ColumnInformation = new DxfBlockPropertiesTableColumnDefinition[blockPropertiesTable.ColumnInformation.Length];
                for (int index = 0; index < blockPropertiesTable.ColumnInformation.Length; ++index)
                {
                    this.ColumnInformation[index] = blockPropertiesTable.ColumnInformation[index].Clone(cloneContext) as DxfBlockPropertiesTableColumnDefinition;
                }
            }
        }
Ejemplo n.º 2
0
        public override IGraphCloneable Clone(CloneContext cloneContext)
        {
            DxfBlockPropertiesTable blockPropertiesTable = (DxfBlockPropertiesTable)cloneContext.GetExistingClone((IGraphCloneable)this);

            if (blockPropertiesTable == null)
            {
                blockPropertiesTable = new DxfBlockPropertiesTable();
                cloneContext.RegisterClone((IGraphCloneable)this, (IGraphCloneable)blockPropertiesTable);
                blockPropertiesTable.CopyFrom((DxfHandledObject)this, cloneContext);
            }
            return((IGraphCloneable)blockPropertiesTable);
        }