/// <summary> /// c-tor - generic way for collecting resources /// </summary> /// <param name="meshInfo"></param> /// assetName - just for debug output public MyMesh(MyMeshPartInfo meshInfo, string assetName) { MyMaterialDescriptor matDesc = meshInfo.m_MaterialDesc; if (matDesc != null) { string texName; matDesc.Textures.TryGetValue("DiffuseTexture", out texName); var material = new MyMeshMaterial(); material.Name = meshInfo.m_MaterialDesc.MaterialName; material.Textures = matDesc.Textures; material.DrawTechnique = meshInfo.Technique; material.GlassCW = meshInfo.m_MaterialDesc.GlassCW; material.GlassCCW = meshInfo.m_MaterialDesc.GlassCCW; material.GlassSmooth = meshInfo.m_MaterialDesc.GlassSmoothNormals; Material = material; } else { //It is OK because ie. collision meshes dont have materials Material = new MyMeshMaterial(); } AssetName = assetName; }
/// <summary> /// ReadMeshParts /// </summary> /// <param name="reader"></param> /// <returns></returns> static List <MyMeshPartInfo> ReadMeshParts(BinaryReader reader, int version) { List <MyMeshPartInfo> list = new List <MyMeshPartInfo>(); int nCount = reader.ReadInt32(); for (int i = 0; i < nCount; ++i) { MyMeshPartInfo meshPart = new MyMeshPartInfo(); meshPart.Import(reader, version); list.Add(meshPart); } return(list); }