/****************************************************************************
* Copyright 2019 Nreal Techonology Limited. All rights reserved.
*
* This file is part of NRSDK.
*
* https://www.nreal.ai/
*
*****************************************************************************/
namespace NRKernal
{
using System;
using System.Collections.Generic;
using UnityEngine;
public interface ITrackableDataProvider
{
///
/// Updates trackable info.
///
///
///
///
bool UpdateTrackables(TrackableType trackable_type, List trackables);
/// Gets an identify.
/// Handle of the trackable.
/// The identify.
UInt32 GetIdentify(UInt64 trackable_handle);
/// Gets trackable type.
/// Handle of the trackable.
/// The trackable type.
TrackableType GetTrackableType(UInt64 trackable_handle);
/// Gets tracking state.
/// Handle of the trackable.
/// The tracking state.
TrackingState GetTrackingState(UInt64 trackable_handle);
}
public interface ITrackableImageDataProvider
{
/// Creates data base.
/// The new data base.
UInt64 CreateDataBase();
/// Destroys the data base described by database_handle.
/// Handle of the database.
/// True if it succeeds, false if it fails.
bool DestroyDataBase(UInt64 database_handle);
/// Loads data base.
/// Handle of the database.
/// Full pathname of the file.
/// True if it succeeds, false if it fails.
bool LoadDataBase(UInt64 database_handle, string path);
/// Gets center pose.
/// Handle of the trackable.
/// The center pose.
Pose GetCenterPose(UInt64 trackable_handle);
/// Gets a size.
/// Handle of the trackable.
/// The size.
Vector2 GetSize(UInt64 trackable_handle);
}
public interface ITrackablePlaneDataProvider
{
/// Gets plane type.
/// Handle of the trackable.
/// The plane type.
TrackablePlaneType GetPlaneType(UInt64 trackable_handle);
/// Gets center pose.
/// Handle of the trackble.
/// The center pose.
Pose GetCenterPose(UInt64 trackable_handle);
/// Gets extent x coordinate.
/// Handle of the trackable.
/// The extent x coordinate.
float GetExtentX(UInt64 trackable_handle);
/// Gets extent z coordinate.
/// Handle of the trackable.
/// The extent z coordinate.
float GetExtentZ(UInt64 trackable_handle);
///
/// Gets points of boundary polygon.
///
///
///
void GetBoundaryPolygon(UInt64 trackable_handle, List polygonList);
}
}