নাম স্ট্রিং
XR_ANDROID_trackables
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
456
রিভিশন
1
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধিত তারিখ
2024-09-30
আইপি স্ট্যাটাস
কোন পরিচিত আইপি দাবি.
অবদানকারী
স্পেন্সার কুইন, গুগল
নিহাভ জৈন, গুগল
জন পার্সে, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
কেনি ভারকাইমার, গুগল
ওভারভিউ
এই এক্সটেনশনটি অ্যাপ্লিকেশনটিকে ভৌত পরিবেশ থেকে ট্র্যাকেবল অ্যাক্সেস করতে এবং একটি ট্র্যাকেবলের সাথে সংযুক্ত অ্যাঙ্কর তৈরি করতে দেয়।
এই এক্সটেনশন প্লেন ট্র্যাকযোগ্য সংজ্ঞায়িত করে। অন্যান্য এক্সটেনশন অতিরিক্ত ট্র্যাকযোগ্য প্রকার যোগ করতে পারে । উদাহরণ স্বরূপ XR_ANDROID_trackables_object অবজেক্ট ট্র্যাকেবল যোগ করে, এবং XR_ANDROID_depth_texture ডেপথ বাফার যোগ করে যা পরিবেশের অবাধ বিন্দুতে রেকাস্টিং করার অনুমতি দেয়।
একটি ট্র্যাকযোগ্য এমন কিছু যা শারীরিক পরিবেশে ট্র্যাক করা হয় ( XrTrackableTypeANDROID দেখুন):
- একটি সমতল (যেমন প্রাচীর, মেঝে, ছাদ, টেবিল)
- একটি বস্তু (যেমন কীবোর্ড, মাউস, ল্যাপটপ)
একটি ট্র্যাকযোগ্য ট্র্যাকার তৈরি করুন
একটি XrTrackableTrackerANDROID হল একটি হ্যান্ডেল যা পরিবেশে একটি প্রদত্ত XrTrackableTypeANDROID- এর ট্র্যাকবলগুলি আবিষ্কার এবং আপডেট করার জন্য প্রয়োজনীয় সংস্থানগুলিকে উপস্থাপন করে৷
XR_DEFINE_HANDLE(XrTrackableTrackerANDROID)
xrCreateTrackableTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateTrackableTrackerANDROID(
XrSession session,
const XrTrackableTrackerCreateInfoANDROID* createInfo,
XrTrackableTrackerANDROID* trackableTracker);
পরামিতি বিবরণ
-
sessionহল XrSession যা ট্র্যাকার তৈরি করে। -
createInfoহল একটি XrTrackableTrackerCreateInfoANDROID কাঠামোর একটি পয়েন্টার যেখানে ট্র্যাকার তৈরি করতে ব্যবহার করা হবে এমন প্যারামিটার রয়েছে। -
trackableTrackerহল একটি হ্যান্ডেলের একটি পয়েন্টার যেখানে তৈরি করা XrTrackableTrackerANDROID ফেরত দেওয়া হয়।
অ্যাপ্লিকেশনটি একটি ট্র্যাকযোগ্য ট্র্যাকার তৈরি করতে xrCreateTrackableTrackerANDROID ফাংশন ব্যবহার করতে পারে ।
-
XR_ERROR_FEATURE_UNSUPPORTEDফেরত দেওয়া হবে যদি সিস্টেমটি নির্দিষ্ট ধরনের ট্র্যাকেবল সমর্থন না করে। - কলিং অ্যাপে প্রয়োজনীয় অনুমতি না দেওয়া হলে
XR_ERROR_PERMISSION_INSUFFICIENTফেরত দেওয়া হবে।
অ্যাপ্লিকেশনটি পরবর্তী API কলগুলিতে ফিরে আসা ট্র্যাকার হ্যান্ডেল ব্যবহার করতে পারে । XrTrackableTrackableTrackerANDROID হ্যান্ডেলটি অবশেষে xrDestroyTrackableTrackerANDROID ফাংশন ব্যবহার করে মুক্ত করতে হবে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি অবশ্যই xrCreateTrackableTrackerANDROID কল করার আগে সক্রিয় করা উচিত -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি বৈধ XrTrackableTrackerCreateInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
trackableTrackerঅবশ্যই একটি XrTrackableTrackerANDROID হ্যান্ডেলের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
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_OUT_OF_MEMORY -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_FEATURE_UNSUPPORTED
XrTrackableTrackerCreateInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrTrackableTrackerCreateInfoANDROID {
XrStructureType type;
void* next;
XrTrackableTypeANDROID trackableType;
} XrTrackableTrackerCreateInfoANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
trackableTypeহল XrTrackableTypeANDROID যা ট্র্যাকার ট্র্যাক করবে।
XrTrackableTrackableTrackerCreateInfoANDROID কাঠামো XrCreateTrackableTrackerANDROID- এ পাস করা হলে XrTrackableTrackerANDROID- এর জন্য তৈরির বিকল্পগুলি প্রদান করে।
এক্সটেনশনগুলি ট্র্যাকযোগ্য ট্র্যাকারগুলির জন্য অতিরিক্ত কনফিগারেশনের অনুমতি দেওয়ার জন্য next সংযুক্ত করা যেতে পারে এমন কাঠামোগুলিকে সংজ্ঞায়িত করতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি অবশ্যই XrTrackableTrackerCreateInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে। আরও দেখুন: XrTrackableObjectConfigurationANDROID -
trackableTypeঅবশ্যই একটি বৈধ XrTrackableTypeANDROID মান হতে হবে
XrTrackableTypeANDROID enum এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef enum XrTrackableTypeANDROID {
XR_TRACKABLE_TYPE_NOT_VALID_ANDROID = 0,
XR_TRACKABLE_TYPE_PLANE_ANDROID = 1,
XR_TRACKABLE_TYPE_DEPTH_ANDROID = 1000463000,
XR_TRACKABLE_TYPE_OBJECT_ANDROID = 1000466000
} XrTrackableTypeANDROID;
xrDestroyTrackableTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrDestroyTrackableTrackerANDROID(
XrTrackableTrackerANDROID trackableTracker);
পরামিতি বিবরণ
-
trackableTrackerহল একটি XrTrackableTrackableTrackerANDROID হ্যান্ডেল পূর্বে xrCreateTrackableTrackerANDROID দ্বারা তৈরি।
xrDestroyTrackableTrackerANDROID ফাংশন ট্র্যাকযোগ্য ট্র্যাকারকে ধ্বংস করে।
যদি একই XrTrackableTypeANDROID দিয়ে তৈরি করা অন্য কোন বৈধ XrTrackableTrackerANDROID না থাকে, তাহলে সিস্টেম রিসোর্স সংরক্ষণ করতে সেই ট্র্যাকযোগ্য ধরনের জন্য প্রয়োজনীয় ট্র্যাকিং পরিষেবাগুলি অক্ষম করতে পারে ৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি অবশ্যই xrDestroyTrackableTrackerANDROID কল করার আগে সক্রিয় করতে হবে -
trackableTrackerঅবশ্যই একটি বৈধ XrTrackableTrackerANDROID হ্যান্ডেল হতে হবে
থ্রেড নিরাপত্তা
-
trackableTrackerঅ্যাক্সেস এবং যে কোনও শিশু হ্যান্ডেলগুলিকে বাহ্যিকভাবে সিঙ্ক্রোনাইজ করতে হবে
রিটার্ন কোড
-
XR_SUCCESS
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID
সব trackables পান
XrTrackableANDROID পরমাণুকে সংজ্ঞায়িত করা হয়েছে:
XR_DEFINE_ATOM(XrTrackableANDROID)
XrTrackableANDROID একটি একক ট্র্যাকযোগ্য প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং এটি শুধুমাত্র তার সম্পর্কিত XrTrackableTrackerANDROID- এর জীবনচক্রের মধ্যেই বৈধ।
xrGetAllTrackablesANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrGetAllTrackablesANDROID(
XrTrackableTrackerANDROID trackableTracker,
uint32_t trackableCapacityInput,
uint32_t* trackableCountOutput,
XrTrackableANDROID* trackables);
পরামিতি বিবরণ
trackableTrackerহল XrTrackableTrackerANDROID অনুসন্ধান করার জন্য।trackableCapacityInputহলtrackablesঅ্যারের ক্ষমতা, বা প্রয়োজনীয় ক্ষমতা পুনরুদ্ধারের জন্য একটি অনুরোধ নির্দেশ করার জন্য 0।trackableCountOutputহলtrackablesসংখ্যার জন্য একটি নির্দেশক, অথবাtrackablesঅপর্যাপ্ত হলে প্রয়োজনীয় ক্ষমতার একটি পয়েন্টার।trackablesহলXrTrackableANDROIDএর একটি অ্যারের একটি পয়েন্টার।trackableCapacityInput0 হলে এটিNULLহতে পারে ।প্রয়োজনীয়
trackablesআকার পুনরুদ্ধার করার বিশদ বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
xrGetAllTrackablesANDROID পরিবেশে পাওয়া ট্র্যাকেবলগুলির প্রতিনিধিত্ব করে XrTrackableANDROID এর একটি অ্যারে পূরণ করে৷ ফিরে আসা trackables XrTrackableTypeANDROID অবশ্যই trackableTracker এর XrTrackableTypeANDROID- এর সাথে মিলবে৷
ট্র্যাকযোগ্য প্লেন পান
xrGetTrackablePlaneANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrGetTrackablePlaneANDROID(
XrTrackableTrackerANDROID trackableTracker,
const XrTrackableGetInfoANDROID* getInfo,
XrTrackablePlaneANDROID* planeOutput);
পরামিতি বিবরণ
trackableTrackerহল XrTrackableTrackerANDROID অনুসন্ধান করার জন্য।getInfoহল XrTrackableGetInfoANDROID যা ট্র্যাকযোগ্য প্লেন পেতে ব্যবহৃত তথ্য সহ।planeOutputহল XrTrackablePlaneANDROID কাঠামোর একটি পয়েন্টার যেখানে ট্র্যাকযোগ্য প্লেনটি ফেরত দেওয়া হয়।
xrGetTrackablePlaneANDROID ফাংশন ট্র্যাকযোগ্য সমতল সম্পর্কে বিশদ বিবরণ প্রদান করে, যেমন এর জ্যামিতি, অভিযোজন এবং ট্র্যাকিং অবস্থা।
XrTrackableGetInfoANDROID::time, XrTrackableGetInfoANDROID::baseSpace ব্যবহার করে xrGetTrackablePlaneANDROID- এ কল করার সময় প্লেনের তথ্য সমাধান করা হয়েছে এবং বেস স্পেসের সাথে সম্পর্কিত।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি xrGetTrackablePlaneANDROID কল করার আগে সক্রিয় করা আবশ্যক -
trackableTrackerঅবশ্যই একটি বৈধ XrTrackableTrackerANDROID হ্যান্ডেল হতে হবে -
getInfoঅবশ্যই একটি বৈধ XrTrackableGetInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
planeOutputঅবশ্যই একটি XrTrackablePlaneANDROID কাঠামোর একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
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_LIMIT_REACHED -
XR_ERROR_TIME_INVALID
XrTrackableGetInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrTrackableGetInfoANDROID {
XrStructureType type;
void* next;
XrTrackableANDROID trackable;
XrSpace baseSpace;
XrTime time;
} XrTrackableGetInfoANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
trackableহলXrTrackableANDROIDসমতল অনুসন্ধান করার জন্য। -
baseSpaceপ্লেন পোজ এইtimeএই XrSpace আপেক্ষিক হবে. -
timeহলXrTimeযেখানেbaseSpaceসাপেক্ষে স্থানাঙ্কগুলি মূল্যায়ন করা হয়।
XrTrackableGetInfoANDROID কাঠামো xrGetTrackablePlaneANDROID- এ পাস করা হলে ক্যোয়ারী বিকল্প প্রদান করে। trackable অবশ্যই xrGetTrackablePlaneANDROID- এ ব্যবহৃত trackableTracker সাথে মিল থাকতে হবে।
XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID ফেরত দেওয়া হবে যদি trackable করার যোগ্য ধরনটি XR_TRACKABLE_TYPE_PLANE_ANDROID না হয়।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি অবশ্যই XrTrackableGetInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_TRACKABLE_GET_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
baseSpaceঅবশ্যই একটি বৈধ XrSpace হ্যান্ডেল হতে হবে
XrTrackablePlaneANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrTrackablePlaneANDROID {
XrStructureType type;
void* next;
XrTrackingStateANDROID trackingState;
XrPosef centerPose;
XrExtent2Df extents;
XrPlaneTypeANDROID planeType;
XrPlaneLabelANDROID planeLabel;
XrTrackableANDROID subsumedByPlane;
XrTime lastUpdatedTime;
uint32_t vertexCapacityInput;
uint32_t* vertexCountOutput;
XrVector2f* vertices;
} XrTrackablePlaneANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
trackingStateহল প্লেনের XrTrackingStateANDROID । -
centerPoseহল একটি XrPosef যা সংশ্লিষ্ট XrTrackableGetInfoANDROID::baseSpace- এর রেফারেন্স ফ্রেমের মধ্যে সমতলের অবস্থান এবং অভিযোজন নির্ধারণ করে। এখানে একটি পরিচয় অভিযোজন সমতলের স্বাভাবিকের সাথে +Y সমান্তরাল সহ একটি স্থানাঙ্ক অক্ষের প্রতিনিধিত্ব করে। -
extentsহল সমতলের XrExtent2Df মাত্রা। -
planeTypeহল XrPlaneTypeANDROID যা এই প্লেনের জন্য রানটাইম নির্ধারণ করেছে। -
planeLabelহল XrPlaneLabelANDROID যা এই প্লেনের জন্য রানটাইম নির্ধারণ করেছে। -
subsumedByPlaneহল প্লেনেরXrTrackableANDROIDযা এই প্লেনটিকে সাবসাম করে (XR_NULL_TRACKABLE_ANDROIDযদি কোনটি না থাকে)৷ -
lastUpdatedTimeহল প্লেনের শেষ আপডেটেরXrTime। -
vertexCapacityInputহলverticesঅ্যারের ধারণক্ষমতা, অথবা প্রয়োজনীয় ক্ষমতা পুনরুদ্ধারের জন্য একটি অনুরোধ নির্দেশ করার জন্য 0। -
vertexCountOutputহল লিখিতverticesগণনার একটি পয়েন্টার, অথবাverticesঅপর্যাপ্ত হলে প্রয়োজনীয় ক্ষমতার একটি পয়েন্টার। -
verticesহল XrVector2f এর একটি অ্যারের একটি পয়েন্টার।vertexCapacityInput0 হলে এটিNULLহতে পারে । শীর্ষবিন্দুগুলো ঘড়ির কাঁটার বিপরীতে থাকে। বহুভুজ অবতল হতে পারে এবং স্ব-ছেদ করা উচিত নয়। - প্রয়োজনীয়
verticesআকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি অবশ্যই XrTrackablePlaneANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_TRACKABLE_PLANE_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
trackingStateঅবশ্যই একটি বৈধ XrTrackingStateANDROID মান হতে হবে -
planeTypeঅবশ্যই একটি বৈধ XrPlaneTypeANDROID মান হতে হবে -
planeLabelঅবশ্যই একটি বৈধ XrPlaneLabelANDROID মান হতে হবে -
vertexCountOutputএকটিuint32_tমানের একটি পয়েন্টার হতে হবে -
verticesঅবশ্যইvertexCapacityInputXrVector2f স্ট্রাকচারের একটি অ্যারের নির্দেশক হতে হবে -
vertexCapacityInputপ্যারামিটার অবশ্যই0এর বেশি হতে হবে
XrTrackingStateANDROID enum একটি XrTrackableANDROID এর ট্র্যাকিং অবস্থা বর্ণনা করে।
typedef enum XrTrackingStateANDROID {
XR_TRACKING_STATE_PAUSED_ANDROID = 0,
XR_TRACKING_STATE_STOPPED_ANDROID = 1,
XR_TRACKING_STATE_TRACKING_ANDROID = 2
} XrTrackingStateANDROID;
বর্ণনা | |
| নির্দেশ করে যে ট্র্যাকযোগ্য বা অ্যাঙ্কর ট্র্যাকিং বিরাম দেওয়া হয়েছে কিন্তু ভবিষ্যতে আবার শুরু করা হতে পারে। |
| এই Trackable এ ট্র্যাকিং বন্ধ হয়ে গেছে এবং আর কখনোই শুরু হবে না। |
| বস্তুটি ট্র্যাক করা হয় এবং এর ভঙ্গি বর্তমান। |
XrPlaneTypeANDROID enum হল একটি XrTrackableANDROID প্লেনের প্রকার।
typedef enum XrPlaneTypeANDROID {
XR_PLANE_TYPE_HORIZONTAL_DOWNWARD_FACING_ANDROID = 0,
XR_PLANE_TYPE_HORIZONTAL_UPWARD_FACING_ANDROID = 1,
XR_PLANE_TYPE_VERTICAL_ANDROID = 2,
XR_PLANE_TYPE_ARBITRARY_ANDROID = 3
} XrPlaneTypeANDROID;
XrPlaneLabelANDROID enum হল একটি XrTrackableANDROID প্লেনের জন্য একটি লেবেল৷
typedef enum XrPlaneLabelANDROID {
XR_PLANE_LABEL_UNKNOWN_ANDROID = 0,
XR_PLANE_LABEL_WALL_ANDROID = 1,
XR_PLANE_LABEL_FLOOR_ANDROID = 2,
XR_PLANE_LABEL_CEILING_ANDROID = 3,
XR_PLANE_LABEL_TABLE_ANDROID = 4
} XrPlaneLabelANDROID;
অ্যাঙ্কর স্পেস তৈরি করুন
XrResult xrCreateAnchorSpaceANDROID(
XrSession session,
const XrAnchorSpaceCreateInfoANDROID* createInfo,
XrSpace* anchorOutput);
পরামিতি বিবরণ
-
sessionহল XrSession যা অ্যাঙ্কর স্পেস তৈরি করে। -
createInfoহল একটি XrAnchorSpaceCreateInfoANDROID স্ট্রাকচারের একটি পয়েন্টার যেখানে অ্যাঙ্কর স্পেস তৈরি করতে ব্যবহৃত পরামিতি রয়েছে। -
anchorOutputহল একটি হ্যান্ডেলের একটি পয়েন্টার যেখানে তৈরি করা XrSpace ফেরত দেওয়া হয়।
যে কোনো সময়ে অ্যাঙ্করের অবস্থান এবং দিক উভয়ই ট্র্যাক বা আনট্র্যাক করা হয়। এর মানে হল যে XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT উভয়কেই সেট করতে হবে অথবা anchorOutput জন্য যখন অ্যাপ্লিকেশনটি xrLocateSpace বা xrLocateSpaces কল করবে তখন উভয়কেই সাফ করতে হবে।
অ্যাপ্লিকেশনটিকে অবশেষে xrDestroySpace ব্যবহার করে রিটার্ন করা XrSpace মুক্ত করতে হবে ।
- সিস্টেম অ্যাঙ্কর সমর্থন না করলে
XR_ERROR_FEATURE_UNSUPPORTEDঅবশ্যই ফেরত দিতে হবে। - নির্দিষ্ট অ্যাঙ্কর সংযুক্তি সমর্থিত না হলে
XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROIDঅবশ্যই ফেরত দিতে হবে৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি অবশ্যই xrCreateAnchorSpaceANDROID কল করার আগে সক্রিয় করতে হবে -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি বৈধ XrAnchorSpaceCreateInfoANDROID কাঠামোর একটি নির্দেশক হতে হবে -
anchorOutputঅবশ্যই একটি XrSpace হ্যান্ডেলের একটি পয়েন্টার হতে হবে
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID -
XR_ERROR_VALIDATION_FAILURE -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_POSE_INVALID -
XR_ERROR_TIME_INVALID -
XR_ERROR_OUT_OF_MEMORY
XrAnchorSpaceCreateInfoANDROID গঠনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrAnchorSpaceCreateInfoANDROID {
XrStructureType type;
void* next;
XrSpace space;
XrTime time;
XrPosef pose;
XrTrackableANDROID trackable;
} XrAnchorSpaceCreateInfoANDROID;
সদস্য বিবরণ
-
typeহল এই কাঠামোর XrStructureType । -
nextহলNULLবা একটি স্ট্রাকচার চেইনের পরবর্তী কাঠামোর একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো কাঠামো সংজ্ঞায়িত করা হয়নি। -
spaceহল XrSpace যার উপর অ্যাঙ্কর তৈরি করা হবে। -
timeহল অ্যাঙ্কর সৃষ্টিরXrTime। -
poseহল অ্যাঙ্করের XrPosef । -
trackableহলXrTrackableANDROIDযার উপর অ্যাঙ্কর সংযুক্ত করা হবে। এটি একটি স্থানিক অ্যাঙ্কর তৈরি করতেXR_NULL_TRACKABLE_ANDROIDহতে পারে ৷
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackablesএক্সটেনশনটি অবশ্যই XrAnchorSpaceCreateInfoANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
typeXR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
spaceঅবশ্যই একটি বৈধ XrSpace হ্যান্ডেল হতে হবে
সমস্ত ট্র্যাকযোগ্য পাওয়ার জন্য উদাহরণ কোড
নিম্নলিখিত উদাহরণ কোড দেখায় কিভাবে একটি প্রদত্ত ধরনের সমস্ত ট্র্যাকবল পেতে হয়।
XrSession session; // previously initialized
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateTrackableTrackerANDROID xrCreateTrackableTrackerANDROID; // previously initialized
PFN_xrGetAllTrackablesANDROID xrGetAllTrackablesANDROID; // previously initialized
PFN_xrDestroyTrackableTrackerANDROID xrDestroyTrackableTrackerANDROID; // previously initialized
XrTrackableTrackerCreateInfoANDROID createInfo{XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID};
createInfo.trackableType = XR_TRACKABLE_TYPE_PLANE_ANDROID;
XrTrackableTrackerANDROID planeTrackableTracker;
XrResult result = xrCreateTrackableTrackerANDROID(
session,
&createInfo,
&planeTrackableTracker);
if (result != XR_SUCCESS) { /* Handle failures. */ }
uint32_t trackableCountOutput = 0;
std::vector<XrTrackableANDROID> allPlaneTrackables;
// Query the number of trackables available.
result = xrGetAllTrackablesANDROID(
planeTrackableTracker,
0,
&trackableCountOutput,
nullptr
);
if (result == XR_SUCCESS) {
allPlaneTrackables.resize(trackableCountOutput, XR_NULL_HANDLE);
// Fetch the actual trackable handles in the appropriately resized array.
result = xrGetAllTrackablesANDROID(
planeTrackableTracker,
trackableCountOutput,
&trackableCountOutput,
allPlaneTrackables.data());
if (result == XR_SUCCESS) {
for (XrTrackableANDROID trackable : allPlaneTrackables) {
// You now have all trackables of the specified type.
}
}
}
// Release trackable tracker.
result = xrDestroyTrackableTrackerANDROID(planeTrackableTracker);
ট্র্যাকযোগ্য প্লেন পাওয়ার জন্য উদাহরণ কোড
নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে একটি বিদ্যমান XrTrackableANDROID থেকে একটি ট্র্যাকযোগ্য প্লেন পেতে হয়, একটি হিট ফলাফল XR_ANDROID_raycast বা xrGetTrackablesANDROID থেকে প্রাপ্ত।
XrTrackableTrackerANDROID planeTracker; // previously created
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrGetTrackablePlaneANDROID xrGetTrackablePlaneANDROID; // previously initialized
XrTime updateTime; // Time used for the current frame's simulation update.
XrSpace appSpace; // Space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrTrackableANDROID planeTrackable; // Acquired from a hit result or getTrackables().
XrTrackableGetInfoANDROID planeGetInfo;
planeGetInfo.type = XR_TYPE_TRACKABLE_GET_INFO_ANDROID;
planeGetInfo.next = nullptr;
planeGetInfo.trackable = planeTrackable;
planeGetInfo.space = appSpace;
planeGetInfo.time = updateTime;
XrTrackablePlaneANDROID plane = { XR_TYPE_TRACKABLE_PLANE_ANDROID };
result = xrGetTrackablePlaneANDROID(
planeTracker,
&planeGetInfo,
&plane
);
if (result == XR_SUCCESS) {
// Plane tracking state, center pose, extents, type now available in plane.
}
অ্যাঙ্কর স্পেস তৈরির জন্য উদাহরণ কোড
নিম্নলিখিত উদাহরণ কোড প্রদর্শন করে কিভাবে একটি ট্র্যাকযোগ্য সাথে সংযুক্ত একটি অ্যাঙ্কর স্পেস তৈরি করতে হয়।
XrSession session; // Created at app startup.
XrTime updateTime; // Time used for the current frame's simulation update.
XrSpace appSpace; // Space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrTrackableANDROID planeTrackable; // Acquired from a hit result or getTrackables().
// Create an anchor at (2, 2, 2) world-coordinates.
XrAnchorSpaceCreateInfoANDROID spatialAnchorCreateInfo;
spatialAnchorCreateInfo.type = XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID;
spatialAnchorCreateInfo.next = nullptr;
spatialAnchorCreateInfo.space = appSpace;
spatialAnchorCreateInfo.time = updateTime;
spatialAnchorCreateInfo.pose = { { 0, 0, 0, 1 }, { 2, 2, 2 } };
XrSpace spatialAnchor = XR_NULL_HANDLE;
XrResult result = xrCreateAnchorSpaceANDROID(
session,
&spatialAnchorCreateInfo,
&spatialAnchor
);
// Create an anchor attached to a trackable.
XrTrackablePlane plane = ...;
XrAnchorSpaceCreateInfoANDROID trackableAnchorCreateInfo;
trackableAnchorCreateInfo.type = XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID;
trackableAnchorCreateInfo.next = nullptr;
trackableAnchorCreateInfo.space = appState;
trackableAnchorCreateInfo.pose = plane.centerPose;
trackableAnchorCreateInfo.trackable = planeTrackable;
XrSpace trackableAnchor = XR_NULL_HANDLE;
XrResult result = xrCreateAnchorSpaceANDROID(
session,
&trackableAnchorCreateInfo,
&trackableAnchor
);
while (true) {
// app update loop
// ...
// Get the current location of the anchor's space w.r.t the world.
XrSpaceLocation anchorLocation = { XR_TYPE_SPACE_LOCATION };
result = xrLocateSpace(trackableAnchor, appSpace, updateTime, &anchorLocation);
if (anchor.trackingState == XR_TRACKING_STATE_TRACKING_ANDROID) {
// Update anchor pose.
doDrawingForAnchor(anchorLocation.pose);
} else {
// ...
}
}
// Cleanup - destroy the space, detatch the anchor so its no longer tracked by the
// runtime and then release all resources held by it.
xrDestroySpace(spatialAnchor);
xrDestroySpace(trackableAnchor);
নতুন বেস প্রকার
নতুন অবজেক্ট টাইপ
নতুন Enum ধ্রুবক
XrStructureType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_TYPE_TRACKABLE_GET_INFO_ANDROID -
XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID -
XR_TYPE_TRACKABLE_PLANE_ANDROID -
XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID
XrObjectType গণনা এর সাথে প্রসারিত করা হয়েছে:
-
XR_OBJECT_TYPE_TRACKABLE_TRACKER_ANDROID
XrResult গণনা এর সাথে বর্ধিত করা হয়েছে:
-
XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID -
XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID
নতুন Enums
নতুন কাঠামো
- XrTrackableTrackerCreateInfoANDROID
- XrTrackableGetInfoANDROID
- XrTrackablePlaneANDROID
- XrAnchorSpaceCreateInfoANDROID
নতুন ফাংশন
- xrCreateTrackableTrackerANDROID
- xrDestroyTrackableTrackerANDROID
- xrGetAllTrackablesANDROID
- xrGetTrackablePlaneANDROID
- xrCreateAnchorSpaceANDROID
ইস্যু
সংস্করণ ইতিহাস
- রিভিশন 1, 2024-09-27 (কেনি ভার্কেমার)
- প্রাথমিক এক্সটেনশন বর্ণনা।
OpenXR™ এবং OpenXR লোগো হল The Khronos Group Inc. এর মালিকানাধীন ট্রেডমার্ক এবং চীন, ইউরোপীয় ইউনিয়ন, জাপান এবং যুক্তরাজ্যে ট্রেডমার্ক হিসেবে নিবন্ধিত।