Пример #1
0
        private void AddRenderableInternal(string id, string indoorMapName, IntPtr nativeRenderablePtr)
        {
            Mesh[]        meshes;
            DoubleVector3 originECEF;
            string        materialName;

            if (m_meshUploader.TryGetUnityMeshesForID(id, out meshes, out originECEF, out materialName))
            {
                m_meshUploader.RemoveUploadedMesh(id);
                var gameObjects = m_indoorMapStreamer.AddObjectsForMeshes(id, meshes, originECEF, Vector3.zero, Quaternion.identity, materialName);
                var descriptor  = new IndoorMaterialDescriptor(indoorMapName, materialName);
                var material    = m_indoorMapsApiInternal.IndoorMapMaterialFactory.CreateMaterialFromDescriptor(descriptor);

                foreach (var gameObject in gameObjects)
                {
                    gameObject.AddComponent <IndoorMapRenderable>().Init(nativeRenderablePtr, material, m_indoorMapsApiInternal);
                }
            }
            else
            {
                Debug.LogErrorFormat("ERROR: Could not get mesh for ID {0}.", id);
            }
        }
        private void AddMeshInternal(string id)
        {
            if (m_enabled)
            {
                Mesh[]        meshes;
                DoubleVector3 originECEF;
                string        materialName;

                if (m_meshUploader.TryGetUnityMeshesForID(id, out meshes, out originECEF, out materialName))
                {
                    m_meshUploader.RemoveUploadedMesh(id);
                    var streamer = GetStreamerFromName(id);
                    streamer.AddObjectsForMeshes(id, meshes, originECEF, Vector3.zero, Quaternion.identity, materialName);
                }
                else
                {
                    Debug.LogErrorFormat("ERROR: Could not get mesh for ID {0}.", id);
                }
            }
        }