XR_ANDROID_spatial_anchor_space

নামের স্ট্রিং

XR_ANDROID_spatial_anchor_space

এক্সটেনশনের ধরন

ইনস্ট্যান্স এক্সটেনশন

রেজিস্টার করা এক্সটেনশন নম্বর

796

সংশোধন

1

অনুমোদনের স্ট্যাটাস

অনুমোদিত নয়

এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি

XR_EXT_spatial_anchor

শেষবার পরিবর্তন করার তারিখ

2025-09-15

IP স্ট্যাটাস

IP সংক্রান্ত কোনও দাবি নেই।

কন্ট্রিবিউটর

YuSheng Chang, Google
Kyle Chen, Google
Levana Chen, Google
Nihav Jain, Google
Spencer Quin, Google

এক নজরে

XR_EXT_spatial_anchor এক্সটেনশনে সংজ্ঞায়িত xrCreateSpatialAnchorEXT ফাংশন, অ্যাপ্লিকেশনকে XrSpatialEntityEXT হ্যান্ডেল সহ স্পেশিয়াল অ্যাঙ্কর তৈরি করার অনুমতি দেয়। এর বিপরীতে, এই এক্সটেনশন একটি স্পেশিয়াল অ্যাঙ্কর তৈরি করে যা পরিবর্তে একটি XrSpace হ্যান্ডেল দ্বারা উপস্থাপিত হয়। এটি সেইসব ক্ষেত্রে উপযোগী যেখানে অ্যাপ্লিকেশনটি:

  • অ্যাঙ্করের লোকেশন পেতে xrLocateSpaces ব্যবহার করুন।
  • অ্যাঙ্করের সাপেক্ষে অন্যান্য স্পেসের লোকেশন নির্ধারণ করুন।
  • XR_ANDROID_anchor_sharing_export ব্যবহার করে অ্যাঙ্কর এক্সপোর্ট করুন।
  • অ্যাপ্লিকেশন অ্যাঙ্কর প্লেস করেছে এবং এখন শুধু অ্যাঙ্করের লোকেশন (ভার্চুয়াল কন্টেন্ট অ্যাটাচ করার জন্য) নিয়ে চিন্তিত এবং XrSpatialContextEXT-এর মাধ্যমে খুঁজে পাওয়া অন্য কোনও এন্টিটির অন্য কোনও কম্পোনেন্ট নিয়ে চিন্তিত নয়, যা অ্যাঙ্কর তৈরি করতে ব্যবহার করা হয়, যার ফলে অ্যাপ্লিকেশন স্পেশিয়াল কনটেক্সট ধ্বংস করতে পারে।

এই এক্সটেনশনের মাধ্যমে তৈরি করা অ্যাঙ্কর XR_ANDROID_device_anchor_persistence এক্সটেনশন ব্যবহার করে পারসিস্ট করা যাবে না এবং তার পরিবর্তে অ্যাপ্লিকেশনকে অবশ্যই XR_EXT_spatial_persistence_operations ব্যবহার করতে হবে। XrPersistedAnchorSpaceInfoANDROID :: anchor যদি xrCreateSpatialAnchorSpaceANDROID বা xrCreateSpatialAnchorSpaceFromIdANDROID ব্যবহার করে তৈরি করা হয়, তাহলে রানটাইমকে xrPersistAnchorANDROID থেকে XR_ERROR_VALIDATION_FAILURE রিটার্ন করতেই হবে।

স্পেশিয়াল অ্যাঙ্করের জন্য XrSpace তৈরি করুন

স্পেশিয়াল অ্যাঙ্কর ও স্পেস তৈরি করুন

xrCreateSpatialAnchorSpaceANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:

XrResult xrCreateSpatialAnchorSpaceANDROID(
    XrSession                                   session,
    XrSpatialContextEXT                         spatialContext,
    const XrSpatialAnchorCreateInfoEXT*         createInfo,
    XrSpatialEntityIdEXT*                       anchorEntityId,
    XrSpace*                                    anchorSpace);

প্যারামিটারের বিবরণ

  • session হল XrSession-এর একটি হ্যান্ডেল যা আগে xrCreateSession-এর মাধ্যমে তৈরি করা হয়েছে
  • 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);

প্যারামিটারের বিবরণ

যেসব ক্ষেত্রে স্পেশিয়াল অ্যাঙ্কর এন্টিটি আগে থেকেই থাকে (যেমন, পারসিস্টেন্সের কারণে), সেখানে অ্যাপ্লিকেশনগুলি তাদের স্পেশিয়াল এন্টিটি আইডি প্রদান করে এইসব স্পেশিয়াল অ্যাঙ্কর থেকে একটি 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 তৈরি করতে হবে।

spatialContext-এর জন্য XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId সঠিক আইডি না হলে, রানটাইমকে XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT রিটার্ন করতেই হবে।

XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId যদি কোনও অ্যাঙ্করের জন্য সঠিক এন্টিটি আইডি না হয়, তাহলে রানটাইমকে XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID রিটার্ন করতেই হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

অ্যাঙ্কর লাইফসাইকেল

XrSpace হ্যান্ডেলের পেরেন্ট হল XrSession। এর অর্থ হল, xrCreateSpatialAnchorSpaceFromIdANDROID :: spatialContext বা xrCreateSpatialAnchorSpaceANDROID :: spatialContext নষ্ট হয়ে যাওয়ার পরেও অ্যাঙ্করকে উপস্থাপন করা XrSpace হ্যান্ডেল বৈধ থাকে। স্পেশিয়াল এন্টিটি অ্যাঙ্করকে দেখানোর জন্য XrSpace তৈরি করলে, অ্যাপ্লিকেশনটি XrSpatialContextEXT ধ্বংস করতে পারে যা XR_SPATIAL_CAPABILITY_ANCHOR_EXT-এর সাথে কনফিগার করা হয়েছিল, তবে 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));

// ...

নতুন কমান্ড

নতুন স্ট্রাকচার

নতুন Enum কনস্ট্যান্ট

  • 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

ইস্যু

ভার্সনের ইতিহাস

  • রিভিশন ১, ১৫-০৯-২০২৫ (YuSheng Chang, Kyle Chen)

    • এক্সটেনশনের প্রাথমিক বিবরণ।