static rthsMeshData GetMeshData(Mesh mesh)
        {
            if (mesh == null)
            {
                return(default(rthsMeshData));
            }

            MeshRecord rec;

            if (!s_meshDataCache.TryGetValue(mesh, out rec))
            {
                rec = new MeshRecord();
                s_meshDataCache.Add(mesh, rec);
            }
            rec.Update(mesh);
            rec.useCount++;
            return(rec.meshData);
        }
        static rthsMeshData GetBakedMeshData(SkinnedMeshRenderer smr)
        {
            if (smr == null || smr.sharedMesh == null)
            {
                return(default(rthsMeshData));
            }

            MeshRecord rec;

            if (!s_bakedMeshDataCache.TryGetValue(smr, out rec))
            {
                rec           = new MeshRecord();
                rec.bakedMesh = new Mesh();
                smr.BakeMesh(rec.bakedMesh);
                rec.Update(rec.bakedMesh);
                s_bakedMeshDataCache.Add(smr, rec);
            }
            rec.useCount++;
            return(rec.meshData);
        }