নাম স্ট্রিং
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
ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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
ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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. এর মালিকানাধীন ট্রেডমার্ক এবং চীন, ইউরোপীয় ইউনিয়ন, জাপান এবং যুক্তরাজ্যে ট্রেডমার্ক হিসেবে নিবন্ধিত।