Autodesk 3DS file format.
Inheritance: AssetFormat
Esempio n. 1
0
        internal Autodesk3ds(AssetLoader loader, Autodesk3dsFormat format)
            : base(format.Manager, "3DS Model - " + loader.Name)
        {
            var reader = loader.Reader;

            AssetFormat = format;

            Chunk chunk, subchunk;
            if (!Chunk.ReadRequired(loader, ChunkId.Main, out chunk))
                return;

            while (chunk.ReadSubchunk(out subchunk)) {
                switch (subchunk.Id) {
                    case ChunkId.ModelVersion:
                        int modelVersion = subchunk.ReadContentInt(0);
                        if (modelVersion > MaxModelVersion || modelVersion < MinModelVersion)
                            loader.AddError(chunk.Offset, "3DS model version {0} is out of range ({1} to {2} supported).", modelVersion, MinModelVersion, MaxModelVersion);
                        break;

                    case ChunkId.Editor:
                        ReadEditor(subchunk);
                        break;

                    default:
                        chunk.ReportUnknownSubchunkError(subchunk);
                        break;
                }

                subchunk.RequireAtEnd();
            }
        }
Esempio n. 2
0
        internal Autodesk3ds(AssetLoader loader, Autodesk3dsFormat format)
            : base(format.Manager, "3DS Model - " + loader.Name)
        {
            var reader = loader.Reader;

            AssetFormat = format;

            Chunk chunk, subchunk;

            if (!Chunk.ReadRequired(loader, ChunkId.Main, out chunk))
            {
                return;
            }

            while (chunk.ReadSubchunk(out subchunk))
            {
                switch (subchunk.Id)
                {
                case ChunkId.ModelVersion:
                    int modelVersion = subchunk.ReadContentInt(0);
                    if (modelVersion > MaxModelVersion || modelVersion < MinModelVersion)
                    {
                        loader.AddError(chunk.Offset, "3DS model version {0} is out of range ({1} to {2} supported).", modelVersion, MinModelVersion, MaxModelVersion);
                    }
                    break;

                case ChunkId.Editor:
                    ReadEditor(subchunk);
                    break;

                default:
                    chunk.ReportUnknownSubchunkError(subchunk);
                    break;
                }

                subchunk.RequireAtEnd();
            }
        }