Ejemplo n.º 1
0
 public ColorBookElm Read(BinaryReader br)
 {
     // read each field
     Ehdr     = new Elm_hdr().Read(br);
     Linkages = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 2
0
 public MaterialPaletteTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr     = new Elm_hdr().Read(br);
     Linkages = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 3
0
 public AnimationScheduleInfoTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr     = new Elm_hdr().Read(br);
     Linkages = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 4
0
 public LightSetupTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr     = new Elm_hdr().Read(br);
     Linkages = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 5
0
 public ViewElm Read(BinaryReader br)
 {
     // read each field
     Ehdr               = new Elm_hdr().Read(br);
     ComponentCount     = br.ReadUInt32();
     Dummy1             = br.ReadUInt32();
     RMatrix            = new RotMatrix().Read(br);
     ViewportGlobalRect = new DRectangle().Read(br);
     Origin             = new DPoint3d().Read(br);
     Delta              = new DPoint3d().Read(br);
     Y = new double[5];
     for (int i = 0; i < 5; i++)
     {
         Y[i] = br.ReadDouble();
     }
     ActiveZ    = br.ReadDouble();
     PixelRect  = new SRectangle().Read(br);
     Flags      = new ViewFlags().Read(br);
     Dummy4     = br.ReadUInt32();
     ViewNumber = br.ReadUInt32();
     ModelId    = br.ReadUInt32();
     Z          = new UInt32[8];
     for (int i = 0; i < 8; i++)
     {
         Z[i] = br.ReadUInt32();
     }
     Linkages    = V8Linkages.V8GetLinkages(br, Ehdr);
     Name        = V8Linkages.V8GetStringLinkage(Linkages, LinkageKeyValuesString.STRING_LINKAGE_KEY_Name);
     Description = V8Linkages.V8GetStringLinkage(Linkages, LinkageKeyValuesString.STRING_LINKAGE_KEY_Description);
     return(this);
 }
Ejemplo n.º 6
0
 public LevelNameDictionaryTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr     = new Elm_hdr().Read(br);
     Linkages = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 7
0
 public NamedPresentationTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr     = new Elm_hdr().Read(br);
     Linkages = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 8
0
 public NamedPresentationTable Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     ComponentCount = br.ReadUInt32();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 9
0
 public MaterialPaletteTable Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     ComponentCount = br.ReadUInt32();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 10
0
 public AnimationScheduleInfoTable Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     ComponentCount = br.ReadUInt32();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 11
0
 public ColorBook Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     ComponentCount = br.ReadUInt32();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 12
0
 public ExtendedNonGraphicElm Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     ComponentCount = br.ReadUInt32();
     Padding        = br.ReadUInt32();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 13
0
 public LevelTable Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     ComponentCount = br.ReadUInt32();
     Dummy1         = br.ReadUInt32();
     ElementId      = br.ReadUInt64();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 14
0
 public FilterTable Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     ComponentCount = br.ReadUInt32();
     Dummy1         = br.ReadUInt32();
     ActiveFilterId = br.ReadInt32();
     Dummy2         = br.ReadUInt32();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 15
0
 public FilterTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr           = new Elm_hdr().Read(br);
     FilterId       = br.ReadUInt32();
     ParentFilterId = br.ReadUInt32();
     Dummy1         = br.ReadUInt16();
     FilterType     = br.ReadUInt16();
     Dummy2         = br.ReadUInt32();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 16
0
        public ViewGroupElm Read(BinaryReader br)
        {
            // read each field
            Ehdr           = new Elm_hdr().Read(br);
            ComponentCount = br.ReadUInt32();
            //Views = new


            Linkages    = V8Linkages.V8GetLinkages(br, Ehdr);
            Name        = V8Linkages.V8GetStringLinkage(Linkages, LinkageKeyValuesString.STRING_LINKAGE_KEY_Name);
            Description = V8Linkages.V8GetStringLinkage(Linkages, LinkageKeyValuesString.STRING_LINKAGE_KEY_Description);
            return(this);
        }
Ejemplo n.º 17
0
 public LevelTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr             = new Elm_hdr().Read(br);
     LevelId          = br.ReadUInt32();
     ParentId         = br.ReadUInt32();
     Dummy1           = br.ReadUInt32();
     Dummy2           = br.ReadUInt32();
     Linkages         = V8Linkages.V8GetLinkages(br, Ehdr);
     LevelName        = V8Linkages.V8GetStringLinkage(Linkages, LinkageKeyValuesString.STRING_LINKAGE_KEY_Name);
     LevelDescription = V8Linkages.V8GetStringLinkage(Linkages, LinkageKeyValuesString.STRING_LINKAGE_KEY_Description);
     return(this);
 }
Ejemplo n.º 18
0
 public FontTableElm Read(BinaryReader br)
 {
     // read each field
     Ehdr       = new Elm_hdr().Read(br);
     Dummy1     = br.ReadUInt32();
     Dummy2     = br.ReadUInt32();
     FontNumber = br.ReadUInt32();
     NameLength = br.ReadUInt16();
     NameBytes  = br.ReadBytes(NameLength);
     FontName   = Encoding.Unicode.GetString(NameBytes);
     Linkages   = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 19
0
        public static Linkage[] V8GetLinkages(BinaryReader br, Elm_hdr ehdr)
        {
            Linkage[] linkages = Array.Empty <Linkage>();

            // saves/restores current reader position
            // so we can call it whenever we want
            var currentReaderPosition = br.BaseStream.Position;
            // read element header
            int attributesSize = (int)(ehdr.ElementSize - ehdr.AttrOffset);

            if (attributesSize == 0)
            {
                return(linkages);
            }

            // seek at beginning of attributes
            br.BaseStream.Seek(ehdr.HeaderPosition + 2 * ehdr.AttrOffset, SeekOrigin.Begin);
            int i = 0;

            do
            {
                Array.Resize(ref linkages, linkages.Length + 1);
                var linkage = new Linkage().Read(br);
                linkages[^ 1] = linkage;
Ejemplo n.º 20
0
 public static string V8GetElmType(Elm_hdr ehdr)
 {
     return(ehdr.Type switch
     {
         1 => "CELL_LIB_ELM",
         2 => "CELL_HEADER_ELM",
         3 => "LINE_ELM",
         4 => "LINE_STRING_ELM",
         5 => "GROUP_DATA_ELM",
         6 => "SHAPE_ELM",
         7 => "TEXT_NODE_ELM",
         8 => "DIG_SETDATA_ELM",
         9 => "DGNFIL_HEADER_ELM",
         10 => "LEV_SYM_ELM",
         11 => "CURVE_ELM",
         12 => "CMPLX_STRING_ELM",
         13 => "CONIC_ELM",
         14 => "CMPLX_SHAPE_ELM",
         15 => "ELLIPSE_ELM",
         16 => "ARC_ELM",
         17 => "TEXT_ELM",
         18 => "SURFACE_ELM",
         19 => "SOLID_ELM",
         21 => "BSPLINE_POLE_ELM",
         22 => "POINT_STRING_ELM",
         23 => "CONE_ELM",
         24 => "BSPLINE_SURFACE_ELM",
         25 => "BSURF_BOUNDARY_ELM",
         26 => "BSPLINE_KNOT_ELM",
         27 => "BSPLINE_CURVE_ELM",
         28 => "BSPLINE_WEIGHT_ELM",
         33 => "DIMENSION_ELM",
         34 => "SHAREDCELL_DEF_ELM",
         35 => "SHARED_CELL_ELM",
         36 => "MULTILINE_ELM",
         37 => "ATTRIBUTE_ELM",
         38 => "DGNSTORE_COMP",
         39 => "DGNSTORE_HDR",
         44 => "TYPE44_ELM",
         66 => "MICROSTATION_ELM",
         87 => "RASTER_HDR",
         88 => "RASTER_COMP",
         90 => "RASTER_REFERENCE_ELM",
         91 => "RASTER_REFERENCE_COMP",
         92 => "RASTER_HIERARCHY_ELM",
         93 => "RASTER_HIERARCHY_COMP",
         94 => "RASTER_FRAME_ELM",
         95 => ehdr.Level switch
         {
             1 => "MS_LEVEL_TABLE_ENTRY",
             2 => "MS_FONT_TABLE_ENTRY",
             3 => "MS_TEXTSTYLE_TABLE_ENTRY",
             4 => "MS_FILTER_TABLE_ENTRY",
             5 => "MS_DIMSTYLE_TABLE_ENTRY",
             6 => "MS_MLINESTYLE_TABLE_ENTRY",
             7 => "MS_LSTYLE_NAME_ENTRY",
             8 => "MS_LSTYLE_DEF_ENTRY",
             9 => "MS_DICTIONARY_TABLE_ENTRY",
             10 => "MS_REGAPP_TABLE_ENTRY",
             11 => "MS_COLORBOOK_TABLE_ENTRY",
             12 => "MS_CUSTOM_RENDERMODE_ENTRY",
             16 => "MS_SYMBOLSTYLE_TABLE_ENTRY",
             17 => "MS_COLORBOOK_ENTRY",
             18 => "MS_MATERIAL_PALETTE_ENTRY",
             19 => "MS_LEVEL_NAME_DICTIONARY_TABLE_ENTRY",
             20 => "MS_ANIMATION_PARAMETER_TABLE_ENTRY",
             21 => "MS_ANIMATION_SCHEDULEINFO_TABLE_ENTRY",
             22 => "MS_RENDERSETUP_ENTRY",
             23 => "MS_LIGHTSETUP_ENTRY",
             24 => "MS_NAMED_PRESENTATION_TABLE_ENTRY",
             _ => $"???",
         },
Ejemplo n.º 21
0
 public ModelHeaderElm Read(BinaryReader br)
 {
     // read each field
     Ehdr             = new Elm_hdr().Read(br);
     Dummy1           = br.ReadUInt32();
     Dummy2           = br.ReadUInt32();
     Dummy3           = br.ReadUInt32();
     Dummy4           = br.ReadUInt32();
     Dummy5           = br.ReadUInt32();
     Dummy6           = br.ReadUInt32();
     Dummy7           = br.ReadUInt32();
     GridPerReference = br.ReadUInt32();
     Dummy9           = br.ReadUInt32();
     Dummy10          = br.ReadUInt32();
     Dummy11          = br.ReadUInt32();
     Dummy12          = br.ReadUInt32();
     MuNumerator      = br.ReadDouble();
     MuDenominator    = br.ReadDouble();
     SuNumerator      = br.ReadDouble();
     SuDenominator    = br.ReadDouble();
     GlobalOrigin     = new DPoint3d().Read(br);
     LastModified     = br.ReadDouble();
     Y0             = br.ReadInt64();
     Y1             = br.ReadInt64();
     Y2             = br.ReadInt64();
     Y3             = br.ReadInt64();
     Y4             = br.ReadInt64();
     Y5             = br.ReadInt64();
     Y6             = br.ReadInt64();
     Y7             = br.ReadInt64();
     Y8             = br.ReadInt64();
     Y9             = br.ReadInt64();
     UorsPerStorage = br.ReadDouble();
     StNumerator    = br.ReadDouble();
     StDenominator  = br.ReadDouble();
     Z0             = br.ReadDouble();
     Z1             = br.ReadDouble();
     Z2             = br.ReadDouble();
     Z3             = br.ReadDouble();
     Z4             = br.ReadDouble();
     Z5             = br.ReadDouble();
     Z6             = br.ReadDouble();
     Z7             = br.ReadDouble();
     Z8             = br.ReadDouble();
     Z9             = br.ReadDouble();
     Z10            = br.ReadDouble();
     Z11            = br.ReadDouble();
     Z12            = br.ReadDouble();
     Z13            = br.ReadDouble();
     Z14            = br.ReadDouble();
     Z15            = br.ReadDouble();
     Z16            = br.ReadDouble();
     Z17            = br.ReadDouble();
     Z18            = br.ReadDouble();
     Z19            = br.ReadDouble();
     Z20            = br.ReadDouble();
     Z21            = br.ReadDouble();
     Z22            = br.ReadDouble();
     Z23            = br.ReadDouble();
     Z24            = br.ReadDouble();
     Z25            = br.ReadDouble();
     Z26            = br.ReadDouble();
     Z27            = br.ReadDouble();
     Z28            = br.ReadDouble();
     Z29            = br.ReadDouble();
     Z30            = br.ReadDouble();
     Linkages       = V8Linkages.V8GetLinkages(br, Ehdr);
     return(this);
 }
Ejemplo n.º 22
0
        public TestStyleTableElm Read(BinaryReader br)
        {
            // read each field
            Ehdr                = new Elm_hdr().Read(br);
            StyleId             = br.ReadUInt64();         // 0x20
            FontNumber          = br.ReadUInt32();         // 0x28
            Dummy1              = br.ReadUInt32();         // 0x2c
            Width               = br.ReadDouble();         // 0x30
            Height              = br.ReadDouble();         // 0x38
            Slant               = br.ReadDouble();         // 0x40
            LineSpacing         = br.ReadDouble();         // 0x48
            InterCharSpacing    = br.ReadDouble();         // 0x50
            UnderlineOffset     = br.ReadDouble();         // 0x58
            OverlineOffset      = br.ReadDouble();         // 0x60
            Dummy2              = br.ReadDouble();         // 0x68
            LineOffset          = new DPoint2d().Read(br); // 0x70
            Justification       = br.ReadUInt16();         // 0x80
            Dummy8              = br.ReadUInt16();         // 0x82
            LineLength          = br.ReadUInt16();         // 0x84
            Dummy9              = br.ReadUInt16();         // 0x86
            Dummy10             = br.ReadUInt16();         // 0x88
            Dummy11             = br.ReadUInt16();         // 0x8a
            BackgroudWeight     = br.ReadInt32();          // 0x8c
            BackgroudColor      = br.ReadInt32();          // 0x90
            BackgroudFillColor  = br.ReadInt32();          // 0x94
            BackgroundBorder    = new DPoint2d().Read(br); // 0x98
            UnderlineStyle      = br.ReadInt32();          // 0xa8
            UnderlineWeight     = br.ReadUInt32();         // 0xac
            UnderlineColor      = br.ReadUInt32();         // 0xb0
            OverlineStyle       = br.ReadInt32();          // 0xb4
            OverlineWeight      = br.ReadUInt32();         // 0xb8
            OverlineColor       = br.ReadUInt32();         // 0xbc
            Dummy4              = br.ReadUInt32();         // 0xc0
            Dummy5              = br.ReadUInt32();         // 0xc4
            Dummy6              = br.ReadUInt32();         // 0xc8
            Dummy7              = br.ReadUInt32();         // 0xcc
            ColorIndex          = br.ReadUInt32();         // 0xd0
            Dummy12             = br.ReadUInt32();         // 0xd4
            Dummy13             = br.ReadUInt32();         // 0xd8
            Dummy14             = br.ReadUInt32();         // 0xdc
            Dummy15             = br.ReadUInt32();         // 0xe0
            Dummy16             = br.ReadUInt32();         // 0xe4
            TextStyleNameLength = br.ReadUInt16();         // 0xe8
            var namePosition = br.BaseStream.Position;
            var Data         = br.ReadBytes(TextStyleNameLength);

            if ((TextStyleNameLength >= 4) && (Data[0] == 0xff) && (Data[1] == 0xfe) && (Data[2] == 0x01) && (Data[3] == 0x00))
            {
                // skip UTF32 LE BOM
                br.BaseStream.Seek(namePosition + 4, SeekOrigin.Begin);
                TextStyleNameLength -= 4;
            }
            else
            {
                br.BaseStream.Seek(namePosition, SeekOrigin.Begin);
            }

            TextStyleName = System.Text.Encoding.UTF8.GetString(br.ReadBytes(TextStyleNameLength));
            Linkages      = V8Linkages.V8GetLinkages(br, Ehdr);
            return(this);
        }