رشته نام
XR_ANDROID_trackables_object
نوع پسوند
پسوند نمونه
شماره برنامه افزودنی ثبت شده
467
تجدید نظر
1
وابستگی های افزونه و نسخه
آخرین تاریخ اصلاح
03-10-2024
وضعیت IP
هیچ ادعای IP شناخته شده ای وجود ندارد.
مشارکت کنندگان
اسپنسر کوین، گوگل
نیهاو جین، گوگل
جان پورسی، گوگل
جارد فایندر، گوگل
لوانا چن، گوگل
کنی ورکامر، گوگل
نمای کلی
این افزونه ردیابی جسم فیزیکی را امکان پذیر می کند. به عنوان مثال، صفحه کلید، ماوس و سایر اشیاء موجود در محیط.
ردیابی اشیاء
این برنامه افزودنی XR_TRACKABLE_TYPE_OBJECT_ANDROID
را به XrTrackableTypeANDROID اضافه می کند.
برنامه ممکن است با فراخوانی xrCreateTrackableTrackerANDROID و تعیین XR_TRACKABLE_TYPE_OBJECT_ANDROID
به عنوان نوع قابل ردیابی در XrTrackableTrackerCreateInfoANDROID::trackableType، یک XrTrackableTrackerANDROID ایجاد کند تا اشیا را ردیابی کند.
دریافت شی قابل ردیابی
تابع xrGetTrackableObjectANDROID به صورت زیر تعریف می شود:
XrResult xrGetTrackableObjectANDROID(
XrTrackableTrackerANDROID tracker,
const XrTrackableGetInfoANDROID* getInfo,
XrTrackableObjectANDROID* objectOutput);
توضیحات پارامترها
-
tracker
XrTrackableTracker ANDROID برای پرس و جو است.-
getInfo
XrTrackableGetInfoANDROID با اطلاعات مورد استفاده برای دریافت شی قابل پیگیری است. -
objectOutput
یک اشاره گر به ساختار XrTrackableObjectANDROID است که در آن شی قابل پیگیری برگردانده می شود.
-
اگر نوع قابل ردیابی XrTrackableANDROID
XR_TRACKABLE_TYPE_OBJECT_ANDROID
نباشد، یا اگر نوع قابل ردیابی XrTrackableTrackerANDROID XR_TRACKABLE_TYPE_OBJECT_ANDROID
نباشد، XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID
برگردانده خواهد شد.
استفاده معتبر (ضمنی)
- پسوند
XR_ANDROID_trackables_object
باید قبل از فراخوانی xrGetTrackableObjectANDROID فعال شود-
tracker
باید یک دسته معتبر XrTrackableTrackerANDROID باشد -
getInfo
باید یک اشاره گر به یک ساختار معتبر XrTrackableGetInfoANDROID باشد -
objectOutput
باید یک اشاره گر به یک ساختار XrTrackableObjectANDROID باشد
-
کدهای بازگشت
-
XR_SUCCESS
-
XR_SESSION_LOSS_PENDING
-
-
XR_ERROR_FUNCTION_UNSUPPORTED
-
XR_ERROR_VALIDATION_FAILURE
-
XR_ERROR_RUNTIME_FAILURE
-
XR_ERROR_HANDLE_INVALID
-
XR_ERROR_INSTANCE_LOST
-
XR_ERROR_SESSION_LOST
-
XR_ERROR_SESSION_NOT_RUNNING
-
XR_ERROR_TIME_INVALID
-
ساختار XrTrackableObjectANDROID به صورت زیر تعریف می شود:
typedef struct XrTrackableObjectANDROID {
XrStructureType type;
void* next;
XrTrackingStateANDROID trackingState;
XrPosef centerPose;
XrExtent3DfEXT extents;
XrObjectLabelANDROID objectLabel;
XrTime lastUpdatedTime;
} XrTrackableObjectANDROID;
توضیحات اعضا
-
type
XrStructureType این ساختار است.-
next
NULL
یا اشاره گر به ساختار بعدی در زنجیره ساختار است. چنین ساختاری در هسته OpenXR یا این پسوند تعریف نشده است. -
trackingState
XrTrackingStateANDROID شی است. -
centerPose
XrPosef شی واقع در XrTrackableGetInfoANDROID::baseSpace است. -
extents
بعد XrExtent3DfEXT شی است. -
objectLabel
XrObjectLabelANDROID است که زمان اجرا برای این شی تعیین کرده است. -
lastUpdatedTime
XrTime
آخرین به روز رسانی شی است.
-
استفاده معتبر (ضمنی)
- پسوند
XR_ANDROID_trackables_object
باید قبل از استفاده از XrTrackableObjectANDROID فعال شود-
type
بایدXR_TYPE_TRACKABLE_OBJECT_ANDROID
باشد -
next
بایدNULL
یا یک اشاره گر معتبر به ساختار بعدی در یک زنجیره ساختار باشد -
trackingState
باید یک مقدار معتبر XrTrackingStateANDROID باشد -
objectLabel
باید یک مقدار معتبر XrObjectLabelANDROID باشد
-
فهرست XrObjectLabelANDROID یک برچسب برای یک شی XrTrackableANDROID
است.
typedef enum XrObjectLabelANDROID {
XR_OBJECT_LABEL_UNKNOWN_ANDROID = 0,
XR_OBJECT_LABEL_KEYBOARD_ANDROID = 1,
XR_OBJECT_LABEL_MOUSE_ANDROID = 2,
XR_OBJECT_LABEL_LAPTOP_ANDROID = 3,
XR_OBJECT_LABEL_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrObjectLabelANDROID;
کد مثال برای دریافت اشیاء قابل ردیابی
کد مثال زیر نحوه دریافت اشیاء قابل ردیابی را نشان می دهد.
XrSession session; // previously initialized
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateTrackableTrackerANDROID xrCreateTrackableTrackerANDROID; // previously initialized
PFN_xrGetAllTrackablesANDROID xrGetAllTrackablesANDROID; // previously initialized
PFN_xrGetTrackableObjectANDROID xrGetTrackableObjectANDROID; // previously initialized
PFN_xrDestroyTrackableTrackerANDROID xrDestroyTrackableTrackerANDROID; // previously initialized
XrTime updateTime; // Time used for the current frame's simulation update.
XrSpace appSpace; // Space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrTrackableTrackerCreateInfoANDROID
createInfo{XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID};
createInfo.trackableType = XR_TRACKABLE_TYPE_OBJECT_ANDROID;
XrTrackableTracker objectTrackableTracker;
XrResult result = xrCreateTrackableTrackerANDROID(
session,
&createInfo,
&objectrackableTracker);
if (result != XR_SUCCESS) { /* Handle failures. */ }
uint32_t trackableCountOutput = 0;
std::vector<XrTrackableANDROID> allObjectTrackables;
// Query the number of trackables available.
result = xrGetAllTrackablesANDROID(
objectTrackableTracker,
0,
&trackableCountOutput,
nullptr
);
if (result == XR_SUCCESS) {
allObjectTrackables.resize(trackableCountOutput, XR_NULL_TRACKABLE_ANDROID);
// Fetch the actual trackable handles in the appropriately resized array.
result = xrGetAllTrackablesANDROID(
objectTrackableTracker,
trackableCountOutput,
&trackableCountOutput,
allObjectTrackables.data());
if (result == XR_SUCCESS) {
for (XrTrackableANDROID trackable : allObjectTrackables) {
// Object trackable query information
XrTrackableGetInfoANDROID objectGetInfo;
objectGetInfo.type = XR_TYPE_TRACKABLE_GET_INFO_ANDROID;
objectGetInfo.next = nullptr;
objectGetInfo.trackable = trackable;
objectGetInfo.space = appSpace;
objectGetInfo.time = updateTime;
// Get the object trackable. Note that the tracker only returns object types.
XrTrackableObjectANDROID object = { XR_TYPE_TRACKABLE_OBJECT_ANDROID };
result = xrGetTrackableObjectANDROID(
objectTrackableTracker,
&objectGetInfo,
&object
);
if (result == XR_SUCCESS) {
/** Do Stuff with the object */
}
}
}
}
// Release trackable tracker.
result = xrDestroyTrackableTrackerANDROID(objectTrackableTracker);
ثابت های جدید Enum
شمارش XrStructureType با:
-
XR_TYPE_TRACKABLE_OBJECT_ANDROID
-
XR_TYPE_TRACKABLE_OBJECT_CONFIGURATION_ANDROID
شمارش XrTrackableTypeANDROID با:
-
XR_TRACKABLE_TYPE_OBJECT_ANDROID
فهرست های جدید
ساختارهای جدید
توابع جدید
مسائل
تاریخچه نسخه
- بازبینی 1، 03/10/2024 (کنی ورکامر)
- توضیحات پسوند اولیه