নাম স্ট্রিং
XR_ANDROID_trackables_object
এক্সটেনশন প্রকার
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
467
রিভিশন
1
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধিত তারিখ
2024-10-03
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
অবদানকারী
স্পেন্সার কুইন, গুগল
নিহাভ জৈন, গুগল
জন পার্সে, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
কেনি ভার্কেমার, গুগল
ওভারভিউ
এই এক্সটেনশনটি ফিজিক্যাল অবজেক্ট ট্র্যাকিং সক্ষম করে। উদাহরণস্বরূপ, কীবোর্ড, ইঁদুর এবং পরিবেশের অন্যান্য বস্তু।
ট্র্যাক অবজেক্ট
এই এক্সটেনশনটি XR_TRACKABLE_TYPE_OBJECT_ANDROID
কে XrTrackableTypeANDROID- এ যোগ করে।
অ্যাপ্লিকেশনটি xrCreateTrackableTrackerANDROID কল করে এবং XrTrackableTrackerCreateInfoANDROID::trackableType- এ ট্র্যাকযোগ্য প্রকার হিসাবে XR_TRACKABLE_TYPE_OBJECT_ANDROID
নির্দিষ্ট করে একটি XrTrackableTrackableTrackerANDROID তৈরি করতে পারে ।
ট্র্যাকযোগ্য বস্তু পান
xrGetTrackableObjectANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrGetTrackableObjectANDROID(
XrTrackableTrackerANDROID tracker,
const XrTrackableGetInfoANDROID* getInfo,
XrTrackableObjectANDROID* objectOutput);
পরামিতি বিবরণ
-
tracker
হল XrTrackableTrackerANDROID অনুসন্ধান করার জন্য।-
getInfo
হল XrTrackableGetInfoANDROID যা ট্র্যাকযোগ্য বস্তু পেতে ব্যবহৃত হয়। -
objectOutput
হল XrTrackableObjectANDROID কাঠামোর একটি পয়েন্টার যেখানে ট্র্যাকযোগ্য বস্তুটি ফেরত দেওয়া হয়।
-
XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID
ফেরত দেওয়া হবে যদি XrTrackableANDROID
এর ট্র্যাকযোগ্য প্রকারটি XR_TRACKABLE_TYPE_OBJECT_ANDROID
না হয়, অথবা যদি XrTrackableTrackerANDROID- এর ট্র্যাকযোগ্য ধরনটি XR_TRACKABLE_TYPE_OBJECT_ANDROID
না হয় XR_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
হল XrTrackableGetInfoANDROID::baseSpace- এ অবস্থিত বস্তুর XrPosef । -
extents
হল বস্তুর XrExtent3DfEXT মাত্রা। -
objectLabel
হল XrObjectLabelANDROID যা রানটাইম এই অবজেক্টের জন্য নির্ধারণ করেছে। -
lastUpdatedTime
হল অবজেক্টের শেষ আপডেটেরXrTime
।
-
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackables_object
এক্সটেনশনটি অবশ্যই XrTrackableObjectANDROID ব্যবহার করার আগে সক্রিয় করতে হবে-
type
XR_TYPE_TRACKABLE_OBJECT_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
trackingState
অবশ্যই একটি বৈধ XrTrackingStateANDROID মান হতে হবে -
objectLabel
অবশ্যই একটি বৈধ XrObjectLabelANDROID মান হতে হবে
-
XrObjectLabelANDROID enum হল একটি 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
নতুন Enums
নতুন কাঠামো
নতুন ফাংশন
ইস্যু
সংস্করণ ইতিহাস
- রিভিশন 1, 2024-10-03 (কেনি ভার্কেমার)
- প্রাথমিক এক্সটেনশন বর্ণনা।