XR_ANDROID_geospatial_anchor
নাম স্ট্রিং
XR_ANDROID_geospatial_anchor
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৭৯৮
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
XR_ANDROID_geospatial
এবং
XR_EXT_future
এবং
XR_EXT_spatial_entity
এবং
XR_EXT_spatial_anchor
সর্বশেষ সংশোধনের তারিখ
২০২৫-১০-৩০
আইপি স্ট্যাটাস
কোনো জ্ঞাত আইপি দাবি নেই।
অবদানকারীরা
জন উলম্যান, গুগল
বেন কিং, গুগল
নিহাব জৈন, গুগল
জ্যারেড ফাইন্ডার, গুগল
সংক্ষিপ্ত বিবরণ
এই এক্সটেনশনটি মূল জিওস্পেশিয়াল এক্সটেনশনের উপর ভিত্তি করে জিওস্পেশিয়াল অ্যাঙ্কর এবং সারফেস অ্যাঙ্কর প্রদান করে। জিওস্পেশিয়াল অ্যাঙ্কর হলো এমন অ্যাঙ্কর যা পৃথিবীর সাপেক্ষে একটি নির্দিষ্ট অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতায় মহাকাশে অবস্থিত। সারফেস অ্যাঙ্কর হলো পৃথিবী-সাপেক্ষ অ্যাঙ্কর যা ভিজ্যুয়াল পজিশনিং সার্ভিস দ্বারা জ্ঞাত কোনো পৃষ্ঠের সাপেক্ষে একটি নির্দিষ্ট অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতায় স্থাপন করা হয়। পৃথিবীর সাপেক্ষে রানটাইমের অবস্থানের নির্ভুলতা যত উন্নত হয়, অ্যাঙ্করের ভঙ্গিও সেই অনুযায়ী সামঞ্জস্য হয়।
ভূ-স্থানিক অ্যাঙ্করগুলির জন্য সিস্টেমের সক্ষমতা
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 অবশ্যই 0 হতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSystemGeospatialAnchorPropertiesANDROID ব্যবহার করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
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 স্ট্রাকচার চেইন করতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrGeospatialTrackerAnchorTrackingInfoANDROID ব্যবহার করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
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- এ নির্দিষ্ট করা geospatialTracker 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_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROID -
XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID -
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_VALIDATION_FAILURE
XrGeospatialAnchorCreateInfoANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialAnchorCreateInfoANDROID {
XrStructureType type;
const void* next;
XrGeospatialTrackerANDROID geospatialTracker;
XrGeospatialPoseANDROID geospatialPose;
} XrGeospatialAnchorCreateInfoANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। - অ্যাঙ্কর তৈরি করার জন্য ব্যবহৃত XrGeospatialTrackerANDROID হলো
geospatialTracker। -
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 এনুমারেশনটি নির্দিষ্ট করে যে একটি অ্যাঙ্কর কোন ধরনের সারফেসের সাপেক্ষে অবস্থিত।
গণনাকারীগুলোর নিম্নলিখিত মান রয়েছে:
এনামের বিবরণ
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- এ নির্দিষ্ট করা geospatialTracker 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_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROID -
XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID -
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_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হলো xrCreateSurfaceAnchorAsyncANDROID দ্বারা ফেরত দেওয়াXrFutureEXT। -
completionহলো XrSurfaceAnchorCreateCompletionANDROID- এর একটি পয়েন্টার, যা ফলাফল গ্রহণ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateSurfaceAnchorCompleteANDROID কল করার আগে
XR_ANDROID_geospatial_anchorএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
spatialContextঅবশ্যই একটি বৈধ XrSpatialContextEXT হ্যান্ডেল হতে হবে। -
completionঅবশ্যই একটি XrSurfaceAnchorCreateCompletionANDROID স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_FUTURE_INVALID_EXT -
XR_ERROR_FUTURE_PENDING_EXT -
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_VALIDATION_FAILURE
XrSurfaceAnchorCreateCompletionANDROID স্ট্রাকচারটি একটি অ্যাসিঙ্ক্রোনাস সারফেস অ্যাঙ্কর তৈরির ফলাফল ধারণ করে।
typedef struct XrSurfaceAnchorCreateCompletionANDROID {
XrStructureType type;
void* next;
XrResult futureResult;
XrSpatialEntityIdEXT anchorEntityId;
} XrSurfaceAnchorCreateCompletionANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
futureResultহলো ক্রিয়েশন অপারেশনের XrResult । যদিfutureResultXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROIDহয়, তাহলেnextচেইনের কোনো স্ট্রাকচার ব্যর্থতা সম্পর্কে আরও তথ্য প্রদান করতে পারে । -
anchorEntityIdহলো তৈরি করা অ্যাঙ্করেরXrSpatialEntityIdEXT, অথবা যদিfutureResultXR_SUCCESSনা হয়, তাহলে XR_NULL_SPATIAL_ENTITY_ID_EXT ।
ভবিষ্যতের রিটার্ন কোড
futureResult মান:
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_ERROR_OUT_OF_MEMORY -
XR_ERROR_LIMIT_REACHED -
XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID -
XR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROID -
XR_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-এর সম্প্রসারণ :
নতুন এনাম
নতুন এনাম ধ্রুবক
-
XR_ANDROID_GEOSPATIAL_ANCHOR_EXTENSION_NAME -
XR_ANDROID_geospatial_anchor_SPEC_VERSION XrResult- এর সম্প্রসারণ:
-
XR_ERROR_SURFACE_ANCHOR_LOCATION_UNSUPPORTED_ANDROID
-
XrStructureType সম্প্রসারণ :
-
XR_TYPE_GEOSPATIAL_ANCHOR_CREATE_INFO_ANDROID -
XR_TYPE_GEOSPATIAL_TRACKER_ANCHOR_TRACKING_INFO_ANDROID -
XR_TYPE_SURFACE_ANCHOR_CREATE_COMPLETION_ANDROID -
XR_TYPE_SURFACE_ANCHOR_CREATE_INFO_ANDROID -
XR_TYPE_SYSTEM_GEOSPATIAL_ANCHOR_PROPERTIES_ANDROID
-
সমস্যা
সংস্করণ ইতিহাস
সংস্করণ ১, ২০২৫-১০-৩০ (বেন কিং)
- প্রাথমিক খসড়া।