| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- /*************************************************************************
 
-  *  Copyright © 2018-2023 Liwen All rights reserved.
 
-  *------------------------------------------------------------------------
 
-  *  File         :  B3dmFileLoader.cs
 
-  *  Description  :  load b3dm format tile info 
 
-  *------------------------------------------------------------------------
 
-  *  Author       :  Liwen
 
-  *  Version      :  1.0.0
 
-  *  Date         :  1/5/2019
 
-  *  Description  :  Initial development version.
 
-  *************************************************************************/
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using UnityEngine;
 
- using System;
 
- using System.Runtime.InteropServices;
 
- using System.Linq;
 
- using System.IO;
 
- namespace AIPagedLod
 
- {
 
-     public class B3dmFileLoader : PagedLodFileLoader
 
-     {
 
-         public B3dmFileLoader()
 
-         {
 
-         }
 
-         public B3dmFileLoader(string fileName)
 
-         {
 
-             mFileName = fileName;
 
-         }
 
-         public override void LoadObjectMeshInfo()
 
-         {
 
-             IntPtr ptr = B3dmLoader.OpenB3dmFile(mFileName);
 
-             if (ptr == IntPtr.Zero)
 
-             {
 
-                 Debug.LogError("OpenB3dmFile failure " + mFileName);
 
-                 return;
 
-             }
 
-             LoadObjectMeshInfoFromPtr(ptr);
 
-             B3dmLoader.CloseB3dmFile(ptr);
 
-         }
 
-         private void LoadObjectMeshInfoFromPtr(IntPtr ptr)
 
-         {
 
-             int meshCount = B3dmLoader.GetMeshCount(ptr);
 
-             for (int i = 0; i < meshCount; ++i)
 
-             {
 
-                 TileObjectInfo info = new TileObjectInfo();
 
-                 info.mVertices = B3dmLoader.GetVertexs(ptr, i, mIsDaJiangData);
 
-                 info.mTriangles = B3dmLoader.GetTriangles(ptr, i, mIsDaJiangData);
 
-                 info.mTexCoords = B3dmLoader.GetTexCoords(ptr, i);
 
-                 info.mImageResolutionS = B3dmLoader.GetImageResolutionS(ptr, i);
 
-                 info.mImageResolutionT = B3dmLoader.GetImageResolutionT(ptr, i);
 
-                 info.mImageData = B3dmLoader.GetImageData(ptr, i);
 
-                 info.mTextureFormat = B3dmLoader.GetImageFormat(ptr, i);
 
-                 info.mUnityTextureFormat = TextureFormat.RGBA32;
 
-                 mObjectInfoList.Add(info);
 
-             }
 
-         }
 
-         public void LoadObjectMeshInfoFromData(byte[] data)
 
-         {
 
-             IntPtr ptr = B3dmLoader.LoadB3dmFromData(ref data[0], data.Length);
 
-             if (ptr == IntPtr.Zero)
 
-             {
 
-                 Debug.LogError("OpenB3dmFile failure--------------");
 
-                 return;
 
-             }
 
-             LoadObjectMeshInfoFromPtr(ptr);
 
-             B3dmLoader.CloseB3dmFile(ptr);
 
-         }
 
-     }
 
- }
 
 
  |