コード例 #1
0
ファイル: LWLayer.cs プロジェクト: tksuoran/renderstack_net
        public void LAYRchunk()
        {
            ID chunkId     = f.ReadID4();
            U4 chunkLength = f.ReadU4();

            Debug.WriteLine(f.Type.ToString() + "::" + chunkId.ToString() + " " + chunkLength + " bytes");

            f.Push(chunkLength);

            switch (chunkId.value)
            {
            //  LWOB, LWLO, LWO2
            case ID.PNTS: pointList(); break;

            //  LWOB, LWLO
            case ID.CRVS: oldCurveList(); break;

            case ID.PCHS: oldPatchList(); break;

            case ID.SRFS: readSurfaceList(); break;

            //  LWO2
            case ID.VMAP: vertexMapping_ID4_U2_S0_d(); break;

            case ID.VMAD: vertexMappingD_ID4_U2_S0_d(); break;

            case ID.VMPA: vertexMapParameter_I4_I4(); break;

            case ID.TAGS: tags_d(); break;

            case ID.CLIP: clip_U4_sc(); break;

            case ID.PTAG: polygonTags_ID4_d(); break;

            case ID.ENVL: envelope_U4_sc(); break;

            case ID.BBOX: boundingBox_VEC12_VEC12(); break;

            case ID.DESC: descriptionLine_S0(); break;

            case ID.TEXT: comments_S0(); break;

            case ID.ICON: thumbnail_U2_U2_d(); break;

            case ID.POLS: if (f.Type.value == ID.LWO2)
                {
                    polygonList();
                }
                else
                {
                    oldPolygonList();
                } break;

            case ID.SURF: if (f.Type.value == ID.LWO2)
                {
                    surf_S0_S0_sc();
                }
                else
                {
                    readSurface_sc();
                } break;

            case ID.LAYR: if (f.Type.value == ID.LWO2)
                {
                    layer_U2_U2_VEC12_S0_U2();
                }
                else
                {
                    layer_U2_U2_S0();
                } break;

            default:        Debug.WriteLine("Unknown chunk " + chunkId); break;
            }

            f.Pop(true);
        }