示例#1
0
        private void method_18(DxfReader r, Class259 objectBuilder)
        {
            this.bool_2 = true;
            DxfVersion version = r.ModelBuilder.Version;

            this.dwgVersion_0 = Class885.smethod_3(version);
            if (this.stream_0 == null)
            {
                this.stream_0 = (Stream) new PagedMemoryStream(1024L, 1024);
            }
            if (this.dwgVersion_0 > DwgVersion.Dwg1018 && this.stream_1 == null)
            {
                this.stream_1 = (Stream) new PagedMemoryStream(1024L, 1024);
            }
            r.method_85();
            Encoding    encoding   = Encodings.GetEncoding((int)r.Model.Header.DrawingCodePage);
            Interface40 nterface40 = (Interface40) new Class725(this.stream_0, encoding, version);

            DxfProxyEntity.Class361 class361 = new DxfProxyEntity.Class361((Interface29) new Class990((Stream)null, nterface40, this.dwgVersion_0 > DwgVersion.Dwg1018 ? (Interface40) new Class728(this.stream_1, encoding, version) : nterface40, nterface40));
            while (r.CurrentGroup.Code != 0)
            {
                switch (Class820.smethod_2(r.CurrentGroup.Code))
                {
                case Enum5.const_8:
                case Enum5.const_9:
                case Enum5.const_14:
                case Enum5.const_15:
                    ulong            handle           = (ulong)r.CurrentGroup.Value;
                    DxfHandledObject dxfHandledObject = new DxfHandledObject();
                    dxfHandledObject.SetHandle(handle);
                    DxfObjectReference dxfObjectReference = new DxfObjectReference((IDxfHandledObject)dxfHandledObject);
                    Struct18           group1             = new Struct18(r.CurrentGroup.Code, (object)dxfObjectReference);
                    class361.imethod_0(group1);
                    r.method_85();
                    continue;

                case Enum5.const_13:
                    int             code    = r.CurrentGroup.Code;
                    WW.Math.Point3D point3D = new WW.Math.Point3D((double)r.CurrentGroup.Value, 0.0, 0.0);
                    r.method_85();
                    if (r.CurrentGroup.Code == code + 10)
                    {
                        point3D.Y = (double)r.CurrentGroup.Value;
                        r.method_85();
                        if (r.CurrentGroup.Code == code + 20)
                        {
                            point3D.Z = (double)r.CurrentGroup.Value;
                            r.method_85();
                        }
                    }
                    Struct18 group2 = new Struct18(code, (object)point3D);
                    class361.imethod_0(group2);
                    continue;

                default:
                    class361.imethod_0(r.CurrentGroup);
                    r.method_85();
                    continue;
                }
            }
        }
示例#2
0
        internal override void Write(Class432 ow)
        {
            base.Write(ow);
            Interface29 objectWriter = ow.ObjectWriter;

            if (ow.Version > DxfVersion.Dxf14)
            {
                objectWriter.imethod_33(this.dxfClass_0 == null ? 0 : (int)this.dxfClass_0.ClassNumber);
                if (ow.Version > DxfVersion.Dxf15)
                {
                    objectWriter.imethod_4("cn:" + (this.dxfClass_0 == null ? string.Empty : this.dxfClass_0.CPlusPlusClassName));
                }
                objectWriter.imethod_33((int)(this.dwgVersion_0 | (DwgVersion)((int)this.short_1 << 16)));
                objectWriter.imethod_14(this.bool_2);
                if (this.bool_2)
                {
                    objectWriter.imethod_33(this.dxfClass_0 == null ? 0 : (int)this.dxfClass_0.ItemClassId);
                    objectWriter.imethod_33(this.dxfClass_0 == null ? 0 : (int)this.dxfClass_0.ClassNumber);
                }
            }
            else
            {
                objectWriter.imethod_33(this.dxfClass_0 == null ? 0 : (int)this.dxfClass_0.ItemClassId);
                objectWriter.imethod_33(this.dxfClass_0 == null ? 0 : (int)this.dxfClass_0.ClassNumber);
            }
            Interface30 binaryDataReader = Class444.Create(ow.Version, this.stream_0);

            binaryDataReader.imethod_4(0L);
            Interface30 stringDataReader = (Interface30)null;

            if (this.stream_1 != null)
            {
                stringDataReader = Class444.Create(ow.Version, this.stream_1);
                stringDataReader.imethod_4(0L);
            }
            if (this.bool_2 && this.method_23(ow.Version))
            {
                DxfProxyEntity.Class362 class362 = new DxfProxyEntity.Class362(this.dwgVersion_0, this.long_0, binaryDataReader, this.uint_0, stringDataReader, this.list_0);
                DxfProxyEntity.Class361 class361 = new DxfProxyEntity.Class361(ow.ObjectWriter);
                while (!class362.IsAtEndOfStream)
                {
                    class361.imethod_0(class362.method_0());
                }
            }
            else
            {
                this.method_14(ow.ObjectWriter, this.stream_0, this.long_0);
                if (ow.Version > DxfVersion.Dxf18)
                {
                    if (stringDataReader != null && this.uint_0 > 0U)
                    {
                        this.method_14((Interface29)((Class990)ow.ObjectWriter).StringBitStreamWriter, this.stream_1, (long)this.uint_0);
                    }
                }
                else
                {
                    this.method_15(ow.ObjectWriter);
                }
            }
            foreach (DxfTypedObjectReference typedObjectReference in this.list_0)
            {
                objectWriter.imethod_42(typedObjectReference.ReferenceType, (DxfHandledObject)typedObjectReference.ObjectReference.Value);
            }
        }