public int GetGmuIdFromAppId(int appId)
        {
            using (ILogMethod method = Log.LogMethod(this.DYN_MODULE_NAME, "GetBufferIdFromEntityId"))
            {
                int result = default(int);

                try
                {
                    if (_parserMappings.ContainsKey(appId))
                    {
                        result = _parserMappings[appId];
                    }
                }
                catch (Exception ex)
                {
                    method.Exception(ex);
                }

                return(result);
            }
        }
Beispiel #2
0
        public virtual Mesh ToMesh()
        {
            Mesh mesh = new Mesh();

            mesh.name = Name;

            List <Vector3>         pVertices = new List <Vector3>();
            List <Vector3>         pNormals  = new List <Vector3>();
            List <Vector2>         pUVs      = new List <Vector2>();
            List <List <int> >     pIndices  = new List <List <int> >();
            IDictionary <int, int> map       = new IntDictionary <int>();

            HashSet <string> materials = new HashSet <string>();

            foreach (KeyValuePair <string, List <OBJFace> > facesPerMat in Faces)
            {
                string         mat   = facesPerMat.Key;
                List <OBJFace> faces = facesPerMat.Value;
                if (faces.Count == 0)
                {
                    continue;
                }

                List <int> indices = new List <int>();
                for (int fi = 0; fi < faces.Count; fi++)
                {
                    OBJFace face = faces[fi];
                    indices.Add(face[0]);
                    indices.Add(face[1]);
                    indices.Add(face[2]);
                }

                if (!materials.Contains(mat))
                {
                    materials.Add(mat);
                    mesh.subMeshCount++;
                }

                for (int ii = 0; ii < indices.Count; ii++)
                {
                    int index = indices[ii];
                    if (map.ContainsKey(index))
                    {
                        indices[ii] = map[index];
                    }
                    else
                    {
                        indices[ii] = map[index] = pVertices.Count;
                        pVertices.Add(UVertices[index]);
                        pNormals.Add(UNormals[index]);
                        pUVs.Add(UUVs[index]);
                    }
                }

                pIndices.Add(indices);
            }

            mesh.SetVertices(pVertices);
            mesh.SetNormals(pNormals);
            mesh.SetUVs(0, pUVs);

            for (int i = 0; i < pIndices.Count; i++)
            {
                mesh.SetTriangles(pIndices[i], i);
            }

            if (!ContainsNormals)
            {
                mesh.RecalculateNormals();
            }
            mesh.RecalculateBounds();
            mesh.Optimize();

            return(mesh);
        }
 internal bool ContainsKey(int key)
 {
     return(_ReplaceFieldValueIntToDocId.ContainsKey(key));
 }