XR_ANDROID_geospatial_anchor
নামের স্ট্রিং
XR_ANDROID_geospatial_anchor
এক্সটেনশনের ধরন
ইনস্ট্যান্স এক্সটেনশন
রেজিস্টার করা এক্সটেনশন নম্বর
798
সংশোধন
1
অনুমোদনের স্ট্যাটাস
অনুমোদিত নয়
এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি
XR_ANDROID_geospatial
এবং
XR_EXT_future
এবং
XR_EXT_spatial_entity
এবং
XR_EXT_spatial_anchor
শেষবার পরিবর্তন করার তারিখ
2025-10-30
IP স্ট্যাটাস
IP সংক্রান্ত কোনও দাবি নেই।
কন্ট্রিবিউটর
জন উলম্যান, Google
বেন কিং, Google
নিহাভ জৈন, Google
জ্যারেড ফাইন্ডার, Google
এক নজরে
এই এক্সটেনশন জিওস্পেশিয়াল অ্যাঙ্কর ও সারফেস অ্যাঙ্কর প্রদান করে যা বেস জিওস্পেশিয়াল এক্সটেনশনের উপর তৈরি করা হয়। জিওস্পেশিয়াল অ্যাঙ্কর হল এমন অ্যাঙ্কর যা পৃথিবীর সাপেক্ষে নির্দিষ্ট অক্ষাংশ, দ্রাঘিমাংশ ও উচ্চতায় স্পেসে অবস্থান করে। সারফেস অ্যাঙ্কর হল পৃথিবী-সম্পর্কিত অ্যাঙ্কর যা ভিজ্যুয়াল পজিশনিং সার্ভিস দ্বারা পরিচিত সারফেসের সাপেক্ষে প্রদত্ত অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতায় স্থাপন করা হয়। পৃথিবীর সাপেক্ষে রানটাইমের পজিশনের নির্ভুলতা যত উন্নত হবে, অ্যাঙ্করের পোজ সেই অনুযায়ী অ্যাডজাস্ট হবে।
জিওস্পেশিয়াল অ্যাঙ্করের জন্য সিস্টেমের ক্ষমতা
XrSystemGeospatialAnchorPropertiesANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrSystemGeospatialAnchorPropertiesANDROID {
XrStructureType type;
void* next;
uint32_t maxSurfaceAnchorCount;
} XrSystemGeospatialAnchorPropertiesANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।maxSurfaceAnchorCountহল একটিuint32_tযা সর্বাধিক কতগুলি সারফেস অ্যাঙ্কর তৈরি করা যেতে পারে তা নির্দেশ করে।
xrGetSystemProperties কল করার সময় XrSystemProperties-এর সাথে XrSystemGeospatialAnchorPropertiesANDROID স্ট্রাকচার চেইন করে, কোনও অ্যাপ্লিকেশন সিস্টেমের জিওস্পেশিয়াল অ্যাঙ্কর ক্ষমতা পরীক্ষা করতে পারে।
XrSystemGeospatialPropertiesANDROID :: supportsGeospatial যদি XR_TRUE হয়, তাহলে maxSurfaceAnchorCount রানটাইম যতগুলি সারফেস অ্যাঙ্কর সাপোর্ট করে তার সর্বাধিক সংখ্যা নির্দেশ করে। এই ক্ষেত্রে সীমা অবশ্যই ০-এর বেশি হতে হবে।
XrSystemGeospatialPropertiesANDROID :: supportsGeospatial যদি XR_TRUE না হয়, তাহলে maxSurfaceAnchorCount অবশ্যই ০ হতে হবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_geospatial_anchorএক্সটেনশন XrSystemGeospatialAnchorPropertiesANDROID ব্যবহার করার আগে অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_SYSTEM_GEOSPATIAL_ANCHOR_PROPERTIES_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
অ্যাঙ্করের জন্য প্লেন ট্র্যাকিং
XrGeospatialTrackerAnchorTrackingInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialTrackerAnchorTrackingInfoANDROID {
XrStructureType type;
const void* next;
XrBool32 shouldTrackPlanes;
} XrGeospatialTrackerAnchorTrackingInfoANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।shouldTrackPlanesহল একটিXrBool32যা নির্দেশ করে যে জিওস্পেশিয়াল ট্র্যাকার সারফেস-লকড অ্যাঙ্করের পজিশনিং উন্নত করার জন্য প্লেন ট্র্যাক করবে কিনা।
সারফেস-লকড অ্যাঙ্করের পজিশনিং উন্নত করতে প্লেন ট্র্যাকিং চালু করা যেতে পারে।
সারফেস অ্যাঙ্কর পোজ উন্নত করার জন্য অ্যাপ্লিকেশন যদি প্লেন ট্র্যাকিং চালু করতে চায়, তাহলে xrCreateGeospatialTrackerANDROID কল করার সময় এটি XrGeospatialTrackerCreateInfoANDROID-এর সাথে XrGeospatialTrackerAnchorTrackingInfoANDROID স্ট্রাকচার চেন করতে পারবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_geospatial_anchorএক্সটেনশন XrGeospatialTrackerAnchorTrackingInfoANDROID ব্যবহার করার আগে অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_GEOSPATIAL_TRACKER_ANCHOR_TRACKING_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
জিওস্পেশিয়াল অ্যাঙ্কর
xrCreateGeospatialAnchorANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateGeospatialAnchorANDROID(
XrSpatialContextEXT spatialContext,
const XrGeospatialAnchorCreateInfoANDROID* createInfo,
XrSpatialEntityIdEXT* anchorEntityId);
প্যারামিটারের বিবরণ
spatialContextহল XrSpatialContextEXT যাতে অ্যাঙ্কর তৈরি করা হয়।XR_SPATIAL_CAPABILITY_ANCHOR_EXT-এর জন্য কনটেক্সট কনফিগার করতেই হবে, অন্যথায় রানটাইম অবশ্যইXR_ERROR_VALIDATION_FAILUREরিটার্ন করবে।createInfoহল XrGeospatialAnchorCreateInfoANDROID-এর একটি পয়েন্টার যাতে অ্যাঙ্কর তৈরির প্যারামিটার রয়েছে।anchorEntityIdহলXrSpatialEntityIdEXT-এর একটি পয়েন্টার যেখানে অ্যাঙ্কর এন্টিটি আইডি রিটার্ন করা হয়।
XrGeospatialAnchorCreateInfoANDROID :: geospatialTracker-এ উল্লেখ করা XrGeospatialTrackerANDROID যদি XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID স্ট্যাটাসে না থাকে, তাহলে রানটাইমকে XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID ফিরিয়ে দিতেই হবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrCreateGeospatialAnchorANDROID কল করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশন অবশ্যই চালু করতে হবে -
spatialContextঅবশ্যই একটি সঠিক XrSpatialContextEXT হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি সঠিক XrGeospatialAnchorCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে -
anchorEntityIdঅবশ্যইXrSpatialEntityIdEXTভ্যালুর পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROIDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROIDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
XrGeospatialAnchorCreateInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialAnchorCreateInfoANDROID {
XrStructureType type;
const void* next;
XrGeospatialTrackerANDROID geospatialTracker;
XrGeospatialPoseANDROID geospatialPose;
} XrGeospatialAnchorCreateInfoANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।geospatialTrackerহল XrGeospatialTrackerANDROID যা অ্যাঙ্কর তৈরি করতে ব্যবহার করা হয়।geospatialPoseহল XrGeospatialPoseANDROID-এর একটি পয়েন্টার যা অ্যাঙ্করের লোকেশন ও ওরিয়েন্টেশন নির্ধারণ করে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrGeospatialAnchorCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_GEOSPATIAL_ANCHOR_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে -
geospatialTrackerঅবশ্যই একটি সঠিক XrGeospatialTrackerANDROID হ্যান্ডেল হতে হবে -
geospatialPoseঅবশ্যই একটি সঠিক XrGeospatialPoseANDROID স্ট্রাকচার হতে হবে
সারফেস অ্যাঙ্কর
সারফেস অ্যাঙ্কর হল এমন অ্যাঙ্কর যা কোনও সারফেসের সাপেক্ষে প্লেস করা হয়, যেমন ভূখণ্ড বা ছাদ।
XrSurfaceAnchorTypeANDROID এনিউমারেশন এইভাবে সংজ্ঞায়িত করা হয়:
typedef enum XrSurfaceAnchorTypeANDROID {
XR_SURFACE_ANCHOR_TYPE_TERRAIN_ANDROID = 1,
XR_SURFACE_ANCHOR_TYPE_ROOFTOP_ANDROID = 2,
XR_SURFACE_ANCHOR_TYPE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSurfaceAnchorTypeANDROID;
XrSurfaceAnchorTypeANDROID এনিউমারেশন সারফেসের ধরন নির্দিষ্ট করে যার সাথে অ্যাঙ্কর সম্পর্কিত।
এনিউমারেন্টের নিম্নলিখিত মান আছে:
Enum-এর বিবরণ
XR_SURFACE_ANCHOR_TYPE_TERRAIN_ANDROID
মাটির সাপেক্ষে রাখা অ্যাঙ্করের ধরন।
XR_SURFACE_ANCHOR_TYPE_ROOFTOP_ANDROID
ছাদ বা বিল্ডিং নেই এমন গ্রাউন্ডের সাপেক্ষে প্লেস করা অ্যাঙ্করের ধরন।
xrCreateSurfaceAnchorAsyncANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSurfaceAnchorAsyncANDROID(
XrSpatialContextEXT spatialContext,
const XrSurfaceAnchorCreateInfoANDROID* createInfo,
XrFutureEXT* future);
প্যারামিটারের বিবরণ
spatialContextহল XrSpatialContextEXT যাতে অ্যাঙ্কর তৈরি করা হয়।createInfoহল XrSurfaceAnchorCreateInfoANDROID-এর একটি পয়েন্টার যাতে অ্যাঙ্কর তৈরির প্যারামিটার রয়েছে।futureহলXrFutureEXT-এর একটি পয়েন্টার যা অ্যাসিঙ্ক্রোনাস অপারেশনের ফলাফল ধরে রাখবে।
xrCreateSurfaceAnchorAsyncANDROID ফাংশন সারফেস অ্যাঙ্কর তৈরি করার জন্য অ্যাসিঙ্ক্রোনাস অপারেশন শুরু করে। স্ট্যান্ডার্ড জিওস্পেশিয়াল অ্যাঙ্করের মতো নয়, রানটাইম সঠিক উচ্চতা নির্ধারণ করতে ভূখণ্ডের ডেটা আনতে পারে। অ্যাপ্লিকেশনটি একবারে XrSystemGeospatialAnchorPropertiesANDROID :: maxSurfaceAnchorCount-এর বেশি সারফেস অ্যাঙ্কর তৈরি করার চেষ্টা করলে রানটাইমকে XR_ERROR_LIMIT_REACHED রিটার্ন করতেই হবে। XrSurfaceAnchorCreateInfoANDROID :: geospatialTracker-এ নির্দিষ্ট করা XrGeospatialTrackerANDROID যদি XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID স্ট্যাটাসে না থাকে, তাহলে রানটাইমকে XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID রিটার্ন করতেই হবে। প্রদত্ত লোকেশনের জন্য কোনও সারফেস ডেটা না থাকলে, XR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROID ফলাফল সহ অপারেশনটি অ্যাসিঙ্ক্রোনাসভাবে ব্যর্থ হতে পারে। spatialContext-এর জন্য XR_SPATIAL_CAPABILITY_ANCHOR_EXT কনফিগার করা না থাকলে, রানটাইম অবশ্যই XR_ERROR_VALIDATION_FAILURE রিটার্ন করবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrCreateSurfaceAnchorAsyncANDROID কল করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশন অবশ্যই চালু করতে হবে -
spatialContextঅবশ্যই একটি সঠিক XrSpatialContextEXT হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি সঠিক XrSurfaceAnchorCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে -
futureঅবশ্যইXrFutureEXTভ্যালুর পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROIDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROIDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
XrSurfaceAnchorCreateInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrSurfaceAnchorCreateInfoANDROID {
XrStructureType type;
const void* next;
XrGeospatialTrackerANDROID geospatialTracker;
XrSurfaceAnchorTypeANDROID surfaceAnchorType;
XrQuaternionf eastUpSouthOrientation;
double latitude;
double longitude;
double altitudeRelativeToSurface;
} XrSurfaceAnchorCreateInfoANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।geospatialTrackerহল ব্যবহার করার জন্য XrGeospatialTrackerANDROID।surfaceAnchorTypeহল অ্যাঙ্করের জন্য XrSurfaceAnchorTypeANDROID।eastUpSouthOrientationহল কোঅর্ডিনেট সিস্টেমের সাপেক্ষে ওরিয়েন্টেশন যেখানে +X=পূর্ব, +Y=উপর এবং +Z=দক্ষিণ।latitudeহল ডিগ্রিতে অক্ষাংশ, -৮৯.৯ এবং +৮৯.৯-এর মধ্যে।longitudeহল ডিগ্রিতে দ্রাঘিমাংশ, -১৮০ থেকে +১৮০-এর মধ্যে।altitudeRelativeToSurfaceহলsurfaceAnchorTypeদ্বারা নির্দিষ্ট করা সারফেসের সাপেক্ষে মিটার এককে উচ্চতা।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrSurfaceAnchorCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে -
geospatialTrackerঅবশ্যই একটি সঠিক XrGeospatialTrackerANDROID হ্যান্ডেল হতে হবে -
surfaceAnchorTypeঅবশ্যই একটি সঠিক XrSurfaceAnchorTypeANDROID ভ্যালু হতে হবে -
latitudeঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে -
longitudeঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে -
altitudeRelativeToSurfaceঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে
xrCreateSurfaceAnchorCompleteANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateSurfaceAnchorCompleteANDROID(
XrSpatialContextEXT spatialContext,
XrFutureEXT future,
XrSurfaceAnchorCreateCompletionANDROID* completion);
প্যারামিটারের বিবরণ
spatialContextহল XrSpatialContextEXT যা তৈরি করার জন্য ব্যবহার করা হয়।futureহলXrFutureEXTযা xrCreateSurfaceAnchorAsyncANDROID থেকে পাওয়া গেছে।completionহল XrSurfaceAnchorCreateCompletionANDROID-এর একটি পয়েন্টার যা ফলাফল পায়।
সঠিক ব্যবহার (অন্তর্নিহিত)
-
XR_ANDROID_geospatial_anchorএক্সটেনশন xrCreateSurfaceAnchorCompleteANDROID কল করার আগে অবশ্যই চালু করতে হবে -
spatialContextঅবশ্যই একটি সঠিক XrSpatialContextEXT হ্যান্ডেল হতে হবে -
completionঅবশ্যই XrSurfaceAnchorCreateCompletionANDROID স্ট্রাকচারের পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_FUTURE_INVALID_EXTXR_ERROR_FUTURE_PENDING_EXTXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
XrSurfaceAnchorCreateCompletionANDROID স্ট্রাকচারটি একটি অ্যাসিঙ্ক্রোনাস সারফেস অ্যাঙ্কর তৈরির ফলাফল ধরে রাখে।
typedef struct XrSurfaceAnchorCreateCompletionANDROID {
XrStructureType type;
void* next;
XrResult futureResult;
XrSpatialEntityIdEXT anchorEntityId;
} XrSurfaceAnchorCreateCompletionANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।futureResultহল ক্রিয়েশন অপারেশনের XrResult।futureResultযদিXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROIDহয়, তাহলেnextচেনের স্ট্রাকচার হয়তো ব্যর্থতা সম্পর্কে আরও তথ্য প্রদান করতে পারে।anchorEntityIdহল তৈরি করা অ্যাঙ্করেরXrSpatialEntityIdEXT, অথবা XR_NULL_SPATIAL_ENTITY_ID_EXT যদিfutureResult,XR_SUCCESSনা হয়।
ভবিষ্যতের রিটার্ন কোড
futureResult ভ্যালু:
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_RUNTIME_FAILUREXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_OUT_OF_MEMORYXR_ERROR_LIMIT_REACHEDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROIDXR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROIDXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROID
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrSurfaceAnchorCreateCompletionANDROID ব্যবহার করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে -
futureResultঅবশ্যই একটি সঠিক XrResult মান হতে হবে
উদাহরণ
টেরেন অ্যাঙ্কর তৈরি করুন
PFN_xrCreateSpatialContextAsyncEXT xrCreateSpatialContextAsyncEXT;
PFN_xrCreateSpatialContextCompleteEXT xrCreateSpatialContextCompleteEXT;
PFN_xrCreateSurfaceAnchorAsyncANDROID xrCreateSurfaceAnchorAsyncANDROID;
PFN_xrPollFutureEXT xrPollFutureEXT;
PFN_xrCreateSurfaceAnchorCompleteANDROID xrCreateSurfaceAnchorCompleteANDROID;
XrInstance instance;
XrSession session;
XrGeospatialTrackerANDROID geospatialTracker;
// Create a spatial context
XrSpatialContextEXT spatialContext{};
{
std::vector<XrSpatialComponentTypeEXT> enabledComponents = {
XR_SPATIAL_COMPONENT_TYPE_ANCHOR_EXT,
};
XrSpatialCapabilityConfigurationAnchorEXT
anchorConfig{XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_ANCHOR_EXT};
anchorConfig.capability = XR_SPATIAL_CAPABILITY_ANCHOR_EXT;
anchorConfig.enabledComponentCount = enabledComponents.size();
anchorConfig.enabledComponents = enabledComponents.data();
std::array<XrSpatialCapabilityConfigurationBaseHeaderEXT*, 1> capabilityConfigs = {
reinterpret_cast<XrSpatialCapabilityConfigurationBaseHeaderEXT*>(&anchorConfig),
};
XrSpatialContextCreateInfoEXT spatialContextCreateInfo{XR_TYPE_SPATIAL_CONTEXT_CREATE_INFO_EXT};
spatialContextCreateInfo.capabilityConfigCount = capabilityConfigs.size();
spatialContextCreateInfo.capabilityConfigs = capabilityConfigs.data();
XrFutureEXT createContextFuture;
CHK_XR(xrCreateSpatialContextAsyncEXT(session, &spatialContextCreateInfo, &createContextFuture));
// ... wait until future is ready ...
XrCreateSpatialContextCompletionEXT contextCompletion{XR_TYPE_CREATE_SPATIAL_CONTEXT_COMPLETION_EXT};
CHK_XR(xrCreateSpatialContextCompleteEXT(session, createContextFuture, &contextCompletion));
if (contextCompletion.futureResult != XR_SUCCESS) {
return;
}
spatialContext = contextCompletion.spatialContext;
}
XrSurfaceAnchorCreateInfoANDROID anchorCreateInfo{
XR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROID};
anchorCreateInfo.surfaceAnchorType = XR_SURFACE_ANCHOR_TYPE_TERRAIN_ANDROID;
anchorCreateInfo.eastUpSouthOrientation = {0, 0, 0, 1};
anchorCreateInfo.latitude = 37.7749;
anchorCreateInfo.longitude = -122.4194;
anchorCreateInfo.altitudeRelativeToSurface = 0;
anchorCreateInfo.geospatialTracker = geospatialTracker;
XrFutureEXT anchorFuture = XR_NULL_FUTURE_EXT;
CHK_XR(xrCreateSurfaceAnchorAsyncANDROID(spatialContext, &anchorCreateInfo, &anchorFuture));
XrFuturePollInfoEXT anchorPollInfo{XR_TYPE_FUTURE_POLL_INFO_EXT};
XrFuturePollResultEXT anchorPollResult{XR_TYPE_FUTURE_POLL_RESULT_EXT};
anchorPollInfo.future = anchorFuture;
anchorPollResult.state = XR_FUTURE_STATE_PENDING_EXT;
while (anchorPollResult.state == XR_FUTURE_STATE_PENDING_EXT) {
// Do in render loop/state loop.
CHK_XR(xrPollFutureEXT(instance, &anchorPollInfo, &anchorPollResult));
}
XrSurfaceAnchorCreateCompletionANDROID anchorCompletion{
XR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROID};
CHK_XR(xrCreateSurfaceAnchorCompleteANDROID(spatialContext, anchorFuture, &anchorCompletion));
if (anchorCompletion.futureResult == XR_SUCCESS) {
// Use completion.anchorEntityId.
XrSpatialEntityIdEXT anchorId = anchorCompletion.anchorEntityId;
// Query in UpdateSnapshot.
}
নতুন কমান্ড
- xrCreateGeospatialAnchorANDROID
- xrCreateSurfaceAnchorAsyncANDROID
- xrCreateSurfaceAnchorCompleteANDROID
নতুন স্ট্রাকচার
- XrGeospatialAnchorCreateInfoANDROID
- XrSurfaceAnchorCreateCompletionANDROID
- XrSurfaceAnchorCreateInfoANDROID
XrGeospatialTrackerCreateInfoANDROID এক্সটেন্ড করা হচ্ছে :
XrSystemProperties এক্সটেন্ড করা হচ্ছে :
নতুন Enum
নতুন Enum কনস্ট্যান্ট
XR_ANDROID_GEOSPATIAL_ANCHOR_EXTENSION_NAMEXR_ANDROID_geospatial_anchor_SPEC_VERSIONXrResult এক্সটেন্ড করা হচ্ছে :
XR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROID
XrStructureType এক্সটেন্ড করা হচ্ছে :
XR_TYPE_GEOSPATIAL_ANCHOR_CREATE_INFO_ANDROIDXR_TYPE_GEOSPATIAL_TRACKER_ANCHOR_TRACKING_INFO_ANDROIDXR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROIDXR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROIDXR_TYPE_SYSTEM_GEOSPATIAL_ANCHOR_PROPERTIES_ANDROID
সমস্যা
ভার্সনের ইতিহাস
রিভিশন ১, ৩০-১০-২০২৫ (বেন কিং)
- প্রাথমিক ড্রাফ্ট।