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);

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

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

বৈধ ব্যবহার (অন্তর্নিহিত)

অ্যাঙ্কর জীবনচক্র

একটি 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 (ইউশেং চ্যাং, কাইল চেন)

    • প্রাথমিক সম্প্রসারণের বিবরণ।