public void CompressMorph(ModelMaterialCollection materials, ModelVertexCollection vertices) { var typeMorphDict = new MultiDictionary <MorphType, PmxMorphData>(); foreach (var morph in MorphList) { typeMorphDict.Add(morph.MorphType, morph); } foreach (var morphList in typeMorphDict.Values) { Compress(morphList, World.KeyFrames.MorphFrameDict); } var removeMaterialIndices = new List <int>(); removeMaterialIndices.AddRange(materials.CompressMaterial(typeMorphDict[MorphType.MATERIAL], vertices)); RemoveElements(typeMorphDict[MorphType.MATERIAL], removeMaterialIndices); removeMaterialIndices.Sort((a, b) => b - a); foreach (int index in removeMaterialIndices) { materials.MaterialList.RemoveAt(index); } }
public CurtainFireModel(World world) { World = world; Vertices = new ModelVertexCollection(World); Materials = new ModelMaterialCollection(World); Morphs = new ModelMorphCollection(World); Bones = new ModelBoneCollection(World); }