AoMEngineLibrary.AMP.GrnMax.ExportMeshMaterial C# (CSharp) Method

ExportMeshMaterial() private method

private ExportMeshMaterial ( string mainObject ) : int>.Dictionary
mainObject string
return int>.Dictionary
        private Dictionary<int, int> ExportMeshMaterial(string mainObject)
        {
            Dictionary<int, int> matIdMapping = new Dictionary<int, int>();
            if (Maxscript.QueryBoolean("classof {0}.material == Multimaterial", mainObject))
            {
                int numMaterials = Maxscript.QueryInteger("{0}.material.materialList.count", "mainObject");
                for (int i = 0; i < numMaterials; ++i)
                {
                    GrnMaterial mat = new GrnMaterial(this.File);
                    int id = this.File.Materials.Count;
                    Maxscript.Command("mat = {0}.material.materialList[{1}]", mainObject, i + 1);
                    this.ExportMaterial(mat);

                    int matListIndex = this.File.Materials.IndexOf(mat);
                    int actualMatId = Maxscript.QueryInteger("{0}.material.materialIdList[{1}]", mainObject, i + 1);
                    if (matListIndex >= 0)
                    {
                        if (!matIdMapping.ContainsKey(actualMatId))
                        {
                            matIdMapping.Add(actualMatId, matListIndex);
                        }
                        this.File.DataExtensions.RemoveAt(mat.DataExtensionIndex);
                    }
                    else
                    {
                        this.File.Materials.Add(mat);
                        if (matIdMapping.ContainsKey(actualMatId))
                        {
                            matIdMapping[actualMatId] = id;
                        }
                        else
                        {
                            matIdMapping.Add(actualMatId, id);
                        }
                    }
                }
            }
            else if (Maxscript.QueryBoolean("classof {0}.material == Standardmaterial", mainObject))
            {
                GrnMaterial mat = new GrnMaterial(this.File);
                int id = this.File.Materials.Count;
                Maxscript.Command("mat = {0}.material", mainObject);
                this.ExportMaterial(mat);

                int matListIndex = this.File.Materials.IndexOf(mat);
                if (matListIndex >= 0)
                {
                    matIdMapping.Add(1, matListIndex);
                    this.File.DataExtensions.RemoveAt(mat.DataExtensionIndex);
                }
                else
                {
                    this.File.Materials.Add(mat);
                    matIdMapping.Add(1, id);
                }
            }

            return matIdMapping;
        }