XR_ANDROID_spatial_anchor_space
নাম স্ট্রিং
XR_ANDROID_spatial_anchor_space
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৭৯৬
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
XR_EXT_spatial_anchor
সর্বশেষ সংশোধনের তারিখ
২০২৫-০৯-১৫
আইপি স্ট্যাটাস
কোনো জ্ঞাত আইপি দাবি নেই।
অবদানকারীরা
ইউশেং চ্যাং, গুগল
কাইল চেন, গুগল
লেভানা চেন, গুগল
নিহাব জৈন, গুগল
স্পেন্সার কুইন, গুগল
সংক্ষিপ্ত বিবরণ
XR_EXT_spatial_anchor এক্সটেনশনে সংজ্ঞায়িত xrCreateSpatialAnchorEXT ফাংশনটি অ্যাপ্লিকেশনগুলিকে একটি XrSpatialEntityEXT হ্যান্ডেল ব্যবহার করে স্পেশিয়াল অ্যাঙ্কর তৈরি করার সুযোগ দেয়। এর বিপরীতে, এই এক্সটেনশনটি এমন স্পেশিয়াল অ্যাঙ্কর তৈরি করে যা একটি XrSpace হ্যান্ডেল দ্বারা উপস্থাপিত হয়। এটি সেইসব ক্ষেত্রে উপযোগী যেখানে অ্যাপ্লিকেশনটি চায়:
- অ্যাঙ্করের অবস্থান জানতে xrLocateSpaces ব্যবহার করুন।
- অ্যাঙ্করের সাপেক্ষে অন্যান্য স্পেসগুলো সনাক্ত করুন।
-
XR_ANDROID_anchor_sharing_exportব্যবহার করে অ্যাঙ্করটি এক্সপোর্ট করুন। - অ্যাপ্লিকেশনটি অ্যাঙ্কর স্থাপন করেছে এবং এখন শুধুমাত্র অ্যাঙ্করগুলির অবস্থান (ভার্চুয়াল কন্টেন্ট সংযুক্ত করার জন্য) নিয়েই চিন্তিত, এবং অ্যাঙ্কর তৈরি করতে ব্যবহৃত XrSpatialContextEXT- এর মাধ্যমে আবিষ্কৃত অন্য কোনো সত্তার অন্য কোনো উপাদান নিয়ে চিন্তিত নয়, যার ফলে অ্যাপ্লিকেশনটি স্পেশিয়াল কনটেক্সট ধ্বংস করতে পারে।
এই এক্সটেনশন দিয়ে তৈরি অ্যাঙ্করগুলি XR_ANDROID_device_anchor_persistence এক্সটেনশন ব্যবহার করে স্থায়ী করা যায় না এবং অ্যাপ্লিকেশনটিকে এর পরিবর্তে অবশ্যই XR_EXT_spatial_persistence_operations ব্যবহার করতে হবে। যদি xrCreateSpatialAnchorSpaceANDROID বা xrCreateSpatialAnchorSpaceFromIdANDROID ব্যবহার করে anchor তৈরি করা হয়, তাহলে রানটাইমকে অবশ্যই xrPersistAnchorANDROID থেকে XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে ।
একটি স্থানিক অ্যাঙ্করের জন্য XrSpace তৈরি করুন
একটি স্থানিক নোঙর এবং স্থান তৈরি করুন
xrCreateSpatialAnchorSpaceANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSpatialAnchorSpaceANDROID(
XrSession session,
XrSpatialContextEXT spatialContext,
const XrSpatialAnchorCreateInfoEXT* createInfo,
XrSpatialEntityIdEXT* anchorEntityId,
XrSpace* anchorSpace);
প্যারামিটার বিবরণ
-
sessionহলো xrCreateSession ব্যবহার করে পূর্বে তৈরি করা একটি XrSession- এর হ্যান্ডেল। -
spatialContextহলো একটি XrSpatialContextEXT যা পূর্বে xrCreateSpatialContextAsyncEXT ব্যবহার করে তৈরি করা হয়েছে। -
createInfoহলো XrSpatialAnchorCreateInfoEXT- এর একটি পয়েন্টার। -
anchorEntityIdহলো একটিXrSpatialEntityIdEXTদিকে নির্দেশকারী একটি পয়েন্টার। -
anchorSpaceহলো একটি XrSpace-এর দিকে নির্দেশকারী একটি পয়েন্টার।
xrCreateSpatialAnchorSpaceANDROID ফাংশনটি এমন একটি অ্যাঙ্কর তৈরি করে যা একটি XrSpatialEntityIdEXT এবং একটি XrSpace হ্যান্ডেল আউটপুট করে। xrCreateSpatialAnchorSpaceANDROID-এর জন্য প্রয়োজনীয় যাচাইকরণ শর্তাবলী xrCreateSpatialAnchorEXT-এর মতোই।
যদি xrCreateSpatialAnchorSpaceANDROID- এ পাঠানো XrSpatialContextEXT- টি XR_SPATIAL_CAPABILITY_ANCHOR_EXT দিয়ে কনফিগার করা না থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে।
xrCreateSpatialAnchorSpaceANDROID দ্বারা সৃষ্ট অ্যাঙ্করের আবিষ্কারযোগ্যতার ক্ষেত্রে, xrCreateSpatialAnchorEXT স্পেসিফিকেশনের শেষ অনুচ্ছেদটি প্রযোজ্য।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateSpatialAnchorSpaceANDROID কল করার আগে
XR_ANDROID_spatial_anchor_spaceএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
spatialContextঅবশ্যই একটি বৈধ XrSpatialContextEXT হ্যান্ডেল হতে হবে। -
createInfoঅবশ্যই একটি বৈধ XrSpatialAnchorCreateInfoEXT স্ট্রাকচারের পয়েন্টার হতে হবে। -
anchorEntityIdঅবশ্যই একটিXrSpatialEntityIdEXTমানের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে। -
anchorSpaceঅবশ্যই একটি XrSpace হ্যান্ডেলের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে। -
spatialContextঅবশ্যই তৈরি, বরাদ্দ বাsessionথেকে পুনরুদ্ধার করা হয়ে থাকতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_POSE_INVALID -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_SPATIAL_ANCHOR_ATTACHABLE_COMPONENT_NOT_FOUND_ANDROID -
XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT -
XR_ERROR_TIME_INVALID -
XR_ERROR_VALIDATION_FAILURE
বিদ্যমান স্পেশিয়াল অ্যাঙ্কর থেকে XrSpace তৈরি করুন
xrCreateSpatialAnchorSpaceFromIdANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSpatialAnchorSpaceFromIdANDROID(
XrSession session,
XrSpatialContextEXT spatialContext,
const XrSpatialAnchorSpaceFromIdCreateInfoANDROID* createInfo,
XrSpace* anchorSpace);
প্যারামিটার বিবরণ
-
sessionহলো xrCreateSession ব্যবহার করে পূর্বে তৈরি করা একটি XrSession- এর হ্যান্ডেল। -
spatialContextহলো একটি XrSpatialContextEXT যা পূর্বে xrCreateSpatialContextAsyncEXT ব্যবহার করে তৈরি করা হয়েছে। -
createInfoহলো XrSpatialAnchorSpaceFromIdCreateInfoANDROID- এর একটি পয়েন্টার। -
anchorSpaceহলো একটি XrSpace-এর দিকে নির্দেশকারী একটি পয়েন্টার।
যেসব ক্ষেত্রে স্পেশিয়াল অ্যাঙ্কর এনটিটি আগে থেকেই বিদ্যমান থাকে (যেমন স্থায়িত্বের কারণে), অ্যাপ্লিকেশনগুলো সেই স্পেশিয়াল অ্যাঙ্করগুলোর স্পেশিয়াল এনটিটি আইডি সরবরাহ করে একটি XrSpace তৈরি করতে পারে ।
xrCreateSpatialAnchorSpaceFromIdANDROID ফাংশনটি XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId ফিল্ডে একটি XrSpatialEntityIdEXT প্রদান করে একটি XrSpace হ্যান্ডেল তৈরি করে।
যদি xrCreateSpatialAnchorSpaceFromIdANDROID- এ পাঠানো XrSpatialContextEXT- টি XR_SPATIAL_CAPABILITY_ANCHOR_EXT দিয়ে কনফিগার করা না থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateSpatialAnchorSpaceFromIdANDROID কল করার আগে
XR_ANDROID_spatial_anchor_spaceএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
spatialContextঅবশ্যই একটি বৈধ XrSpatialContextEXT হ্যান্ডেল হতে হবে। -
createInfoঅবশ্যই একটি বৈধ XrSpatialAnchorSpaceFromIdCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে। -
anchorSpaceঅবশ্যই একটি XrSpace হ্যান্ডেলের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে। -
spatialContextঅবশ্যই তৈরি, বরাদ্দ বাsessionথেকে পুনরুদ্ধার করা হয়ে থাকতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID -
XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT -
XR_ERROR_VALIDATION_FAILURE
XrSpatialAnchorSpaceFromIdCreateInfoANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrSpatialAnchorSpaceFromIdCreateInfoANDROID {
XrStructureType type;
const void* next;
XrSpatialEntityIdEXT anchorEntityId;
} XrSpatialAnchorSpaceFromIdCreateInfoANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
anchorEntityIdহলো বিদ্যমান স্পেশিয়াল অ্যাঙ্করেরXrSpatialEntityIdEXT, যেখান থেকে XrSpace তৈরি করা হবে।
যদি XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId, spatialContext এর জন্য একটি বৈধ আইডি না হয়, তাহলে রানটাইমকে অবশ্যই XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT রিটার্ন করতে হবে।
যদি XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId কোনো অ্যাঙ্করের জন্য একটি বৈধ এনটিটি আইডি না হয়, তাহলে রানটাইমকে অবশ্যই XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSpatialAnchorSpaceFromIdCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_spatial_anchor_spaceএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে।
অ্যাঙ্কর জীবনচক্র
একটি XrSpace হ্যান্ডেলের প্যারেন্ট হলো একটি XrSession । এর মানে হলো, xrCreateSpatialAnchorSpaceFromIdANDROID :: spatialContext বা xrCreateSpatialAnchorSpaceANDROID :: spatialContext ধ্বংস হয়ে যাওয়ার পরেও অ্যাঙ্করটিকে প্রতিনিধিত্বকারী একটি XrSpace হ্যান্ডেল বৈধ থাকে। একটি স্পেশিয়াল এনটিটি অ্যাঙ্করকে প্রতিনিধিত্ব করার জন্য একটি XrSpace তৈরি করলে, অ্যাপ্লিকেশনটি XR_SPATIAL_CAPABILITY_ANCHOR_EXT দিয়ে কনফিগার করা XrSpatialContextEXT- কে ধ্বংস করে দিলেও, xrLocateSpaces ব্যবহার করে এর XrSpace- এর মাধ্যমে অ্যাঙ্করটির সর্বশেষ পোজ পাওয়া চালিয়ে যেতে পারে। অর্থাৎ, রানটাইমকে অবশ্যই অ্যাঙ্করটিকে ট্র্যাক করা চালিয়ে যেতে হবে যতক্ষণ না এটিকে প্রতিনিধিত্বকারী সমস্ত XrSpace হ্যান্ডেল ধ্বংস হয়ে যায়।
উদাহরণ কোড
XrSpace হিসেবে স্পেশিয়াল অ্যাঙ্কর তৈরি করুন
নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে একটি স্পেশিয়াল অ্যাঙ্কর তৈরি করতে হয় এবং সেটিকে একটি XrSpace হিসাবে ফেরত দিতে হয়।
XrSpatialEntityIdEXT spatialAnchorEntityId;
XrSpace spatialAnchorSpace {XR_NULL_HANDLE}; // XrSpace handle of anchor
// Spatial anchor create info
XrSpatialAnchorCreateInfoEXT createInfo{
.type = XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_EXT,
.baseSpace = localSpace,
.time = predictedDisplayTime,
.pose = {{0, 0, 0, 1}, {1, 1, 1}},
};
// Create spatial anchor using the new API
CHK_XR(xrCreateSpatialAnchorSpaceANDROID(session, spatialContext, &createInfo, &spatialAnchorEntityId, &spatialAnchorSpace));
// ...
অ্যাঙ্কর এনটিটি আইডি থেকে XrSpace তৈরি করুন
নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে একটি পূর্ব-বিদ্যমান অ্যাঙ্কর এনটিটি আইডি থেকে একটি XrSpace তৈরি করতে হয়।
XrSpace anchorSpace = XR_NULL_HANDLE;
// Spatial anchor from XrSpace create info
XrSpatialAnchorSpaceFromIdCreateInfoANDROID createInfoFromId{
.type = XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID,
.anchorEntityId = spatialAnchorEntityId,
};
// Create XrSpace handle from spatial anchor ID
CHK_XR(xrCreateSpatialAnchorSpaceFromIdANDROID(session, spatialContext, &createInfoFromId, &anchorSpace));
// ...
নতুন কমান্ড
নতুন কাঠামো
নতুন এনাম ধ্রুবক
-
XR_ANDROID_SPATIAL_ANCHOR_SPACE_EXTENSION_NAME -
XR_ANDROID_spatial_anchor_space_SPEC_VERSION XrResult- এর সম্প্রসারণ:
-
XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID
-
XrStructureType সম্প্রসারণ :
-
XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID
-
সমস্যা
সংস্করণ ইতিহাস
রিভিশন 1, 2025-09-15 (ইউশেং চ্যাং, কাইল চেন)
- প্রাথমিক সম্প্রসারণের বিবরণ।