নাম স্ট্রিং
XR_ANDROID_trackables_object
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
467
রিভিশন
1
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধিত তারিখ
2024-11-01
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
অবদানকারী
দিয়েগো টিপালডি, গুগল
ডেভিড জোসেফ ট্যান, গুগল
ক্রিস্টোফার ডোয়ার, গুগল
স্পেন্সার কুইন, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
কেনি ভারকাইমার, গুগল
ওভারভিউ
এই এক্সটেনশনটি ফিজিক্যাল অবজেক্ট ট্র্যাকিং সক্ষম করে। উদাহরণস্বরূপ, কীবোর্ড, ইঁদুর এবং পরিবেশের অন্যান্য বস্তু।
ট্র্যাক অবজেক্ট
এই এক্সটেনশনটি XR_TRACKABLE_TYPE_OBJECT_ANDROID XrTrackableTypeANDROID এ যোগ করে।
অ্যাপ্লিকেশনটি xrCreateTrackableTrackerANDROID কল করে এবং XrTrackableTrackerCreateInfoANDROID::trackableType এ ট্র্যাকযোগ্য প্রকার হিসাবে XR_TRACKABLE_TYPE_OBJECT_ANDROID নির্দিষ্ট করে একটি XrTrackableTrackerANDROID তৈরি করতে পারে ।
XrTrackableObjectConfigurationANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrTrackableObjectConfigurationANDROID {
XrStructureType type;
void* next;
uint32_t labelCount;
const XrObjectLabelANDROID* activeLabels;
} XrTrackableObjectConfigurationANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোরXrStructureType। -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
labelCountহলactiveLabelsলেবেলের গণনা। -
activeLabelsহলXRObjectLabelANDROIDএর অ্যারের একটি পয়েন্টার যা ট্র্যাকিংয়ে সক্রিয় বস্তুগুলি নির্দেশ করে।
অ্যাপ্লিকেশনটি XrTrackableTrackerCreateInfoANDROID এর পরবর্তী চেইনে একটি XrTrackableObjectConfigurationANDROID যোগ করে একটি অতিরিক্ত কনফিগারেশন সেট করতে পারে । xrGetAllTrackablesANDROID থেকে আউটপুট activeLabels সাথে মেলে ফিল্টার করা হবে।
যদি অ্যাপ্লিকেশানটি XrTrackableObjectConfigurationANDROID সেট না করে, তাহলে সিস্টেম চিহ্নিত করা সমস্ত বস্তু ট্র্যাক করা হবে৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackables_objectএক্সটেনশনটি অবশ্যইXrTrackableObjectANDROIDব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_TRACKABLE_OBJECT_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
activeLabelsঅবশ্যইlabelCountবৈধXrObjectLabelANDROIDমানগুলির একটি অ্যারের নির্দেশক হতে হবে -
labelCountপ্যারামিটারটি অবশ্যই0এর বেশি হতে হবে
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;
ট্র্যাকযোগ্য বস্তু পান
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 -
XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID
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ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_TRACKABLE_OBJECT_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
trackingStateঅবশ্যই একটি বৈধXrTrackingStateANDROIDমান হতে হবে -
objectLabelঅবশ্যই একটি বৈধ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;
XrTrackableTrackerANDROID objectTrackableTracker;
XrResult result = xrCreateTrackableTrackerANDROID(
session,
&createInfo,
&objectTrackableTracker);
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.baseSpace = 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 (কেনি ভার্কেমার)
- প্রাথমিক এক্সটেনশন বর্ণনা।
OpenXR™ এবং OpenXR লোগো হল The Khronos Group Inc. এর মালিকানাধীন ট্রেডমার্ক এবং চীন, ইউরোপীয় ইউনিয়ন, জাপান এবং যুক্তরাজ্যে ট্রেডমার্ক হিসেবে নিবন্ধিত।