নাম স্ট্রিং
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 ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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
এর একটি অ্যারের একটি পয়েন্টার।trackableCapacityInput
0 হলে এটি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 ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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 এর একটি অ্যারের একটি পয়েন্টার।vertexCapacityInput
0 হলে এটিNULL
হতে পারে । শীর্ষবিন্দুগুলো ঘড়ির কাঁটার বিপরীতে থাকে। বহুভুজ অবতল হতে পারে এবং স্ব-ছেদ করা উচিত নয়। - প্রয়োজনীয়
vertices
আকার পুনরুদ্ধারের বিস্তারিত বিবরণের জন্য বাফার সাইজ প্যারামিটার বিভাগটি দেখুন।
বৈধ ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_trackables
এক্সটেনশনটি অবশ্যই XrTrackablePlaneANDROID ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_TYPE_TRACKABLE_PLANE_ANDROID
হতে হবে -
next
অবশ্যইNULL
বা একটি কাঠামোর চেইনের পরবর্তী কাঠামোর জন্য একটি বৈধ পয়েন্টার হতে হবে -
trackingState
অবশ্যই একটি বৈধ XrTrackingStateANDROID মান হতে হবে -
planeType
অবশ্যই একটি বৈধ XrPlaneTypeANDROID মান হতে হবে -
planeLabel
অবশ্যই একটি বৈধ XrPlaneLabelANDROID মান হতে হবে -
vertexCountOutput
একটিuint32_t
মানের একটি পয়েন্টার হতে হবে -
vertices
অবশ্যইvertexCapacityInput
XrVector2f স্ট্রাকচারের একটি অ্যারের নির্দেশক হতে হবে -
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 ব্যবহার করার আগে সক্রিয় করতে হবে -
type
XR_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 (কেনি ভার্কেমার)
- প্রাথমিক এক্সটেনশন বর্ণনা।