123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
-
- namespace NRKernal
- {
- using System;
- using System.Runtime.InteropServices;
- using System.Text;
- using UnityEngine;
-
- public partial class NativeTrackableImage
- {
-
- private NativeInterface m_NativeInterface;
-
-
- public NativeTrackableImage(NativeInterface nativeInterface)
- {
- m_NativeInterface = nativeInterface;
- }
-
-
- public UInt64 CreateDataBase()
- {
- UInt64 database_handle = 0;
- var result = NativeApi.NRTrackableImageDatabaseCreate(m_NativeInterface.TrackingHandle, ref database_handle);
- NativeErrorListener.Check(result, this, "CreateDataBase");
- return database_handle;
- }
-
-
-
- public bool DestroyDataBase(UInt64 database_handle)
- {
- var result = NativeApi.NRTrackableImageDatabaseDestroy(m_NativeInterface.TrackingHandle, database_handle);
- NativeErrorListener.Check(result, this, "DestroyDataBase");
- return result == NativeResult.Success;
- }
-
-
-
-
- public bool LoadDataBase(UInt64 database_handle, string path)
- {
- var result = NativeApi.NRTrackableImageDatabaseLoadDirectory(m_NativeInterface.TrackingHandle, database_handle, path);
- return result == NativeResult.Success;
- }
-
-
-
- public Pose GetCenterPose(UInt64 trackable_handle)
- {
- Pose pose = Pose.identity;
- NativeMat4f center_pose_native = NativeMat4f.identity;
- NativeApi.NRTrackableImageGetCenterPose(m_NativeInterface.TrackingHandle, trackable_handle, ref center_pose_native);
- ConversionUtility.ApiPoseToUnityPose(center_pose_native, out pose);
- return pose;
- }
-
-
-
- public Vector2 GetSize(UInt64 trackable_handle)
- {
- float extent_x, extent_z;
- extent_x = extent_z = 0;
- NativeApi.NRTrackableImageGetExtentX(m_NativeInterface.TrackingHandle, trackable_handle, ref extent_x);
- NativeApi.NRTrackableImageGetExtentZ(m_NativeInterface.TrackingHandle, trackable_handle, ref extent_z);
- return new Vector2(extent_x * 0.001f, extent_z * 0.001f);
- }
- private partial struct NativeApi
- {
-
-
-
-
-
- [DllImport(NativeConstants.NRNativeLibrary)]
- public static extern NativeResult NRTrackableImageDatabaseCreate(UInt64 session_handle,
- ref UInt64 out_trackable_image_database_handle);
-
-
-
-
- [DllImport(NativeConstants.NRNativeLibrary)]
- public static extern NativeResult NRTrackableImageDatabaseDestroy(UInt64 session_handle,
- UInt64 trackable_image_database_handle);
-
-
-
-
-
-
- [DllImport(NativeConstants.NRNativeLibrary, CallingConvention = CallingConvention.Cdecl)]
- public static extern NativeResult NRTrackableImageDatabaseLoadDirectory(UInt64 session_handle,
- UInt64 trackable_image_database_handle, string trackable_image_database_directory);
-
-
-
-
-
- [DllImport(NativeConstants.NRNativeLibrary)]
- public static extern NativeResult NRTrackableImageGetCenterPose(UInt64 session_handle,
- UInt64 trackable_handle, ref NativeMat4f out_center_pose);
-
-
-
-
-
- [DllImport(NativeConstants.NRNativeLibrary)]
- public static extern NativeResult NRTrackableImageGetExtentX(UInt64 session_handle,
- UInt64 trackable_handle, ref float out_extent_x);
-
-
-
-
-
- [DllImport(NativeConstants.NRNativeLibrary)]
- public static extern NativeResult NRTrackableImageGetExtentZ(UInt64 session_handle,
- UInt64 trackable_handle, ref float out_extent_z);
- };
- }
- }
|