XR_ANDROID_geospatial
নামের স্ট্রিং
XR_ANDROID_geospatial
এক্সটেনশনের ধরন
ইনস্ট্যান্স এক্সটেনশন
রেজিস্টার করা এক্সটেনশন নম্বর
790
সংশোধন
1
অনুমোদনের স্ট্যাটাস
অনুমোদিত নয়
এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি
XR_EXT_future
শেষবার পরিবর্তন করার তারিখ
2025-12-18
IP স্ট্যাটাস
IP সংক্রান্ত কোনও দাবি নেই।
কন্ট্রিবিউটর
জন উলম্যান, Google
বেন কিং, Google
নিহাভ জৈন, Google
জ্যারেড ফাইন্ডার, Google
এক নজরে
এই এক্সটেনশন Google-এর জিওস্পেশিয়াল API-এর জন্য জিওস্পেশিয়াল ট্র্যাকিং প্রদান করে, যা সুনির্দিষ্ট জিও-লোকেশন এবং ওরিয়েন্টেশন প্রদান করে এবং অ্যাপ্লিকেশনকে পৃথিবীর সাপেক্ষে কন্টেন্ট প্লেস করার অনুমতি দেয়। এটি মোশন ট্র্যাকিং, জিপিএস ও অন্যান্য সেন্সর এবং Google-এর ভিজ্যুয়াল পজিশনিং সিস্টেম (VPS) একসাথে ব্যবহার করে এই কাজ করে। সুনির্দিষ্ট লোকেশন ও ওরিয়েন্টেশন নির্ধারণ করার জন্য VPS কোনও ডিভাইসের ক্যামেরা থেকে পাওয়া ছবি Street View ছবির সাথে তুলনা করে। Geospatial API প্রায়ই সাব-মিটার পজিশনাল অ্যাকুরেসি (জিপিএস-এর থেকে অনেক বেশি ভালো) এবং সাব-ডিগ্রি ওরিয়েন্টেশন অ্যাকুরেসি প্রদান করে।
এই এক্সটেনশনে API সঠিকভাবে ব্যবহার করতে (এক্সটেনশন সাপোর্ট চেক করা ছাড়া), অ্যাপ্লিকেশনকে XR_ANDROID_google_cloud_auth-এর মতো কোনও মেকানিজমের মাধ্যমে যাচাইকরণ সংক্রান্ত ক্রেডেনশিয়াল সঠিকভাবে সেট করতেই হবে। সেট-আপ ও সমস্যার ফলাফল সম্পর্কে আরও জানতে, অথ এক্সটেনশনের ডকুমেন্টেশন দেখুন।
অনুমতি
এই এক্সটেনশন ব্যবহার করার জন্য Android অ্যাপ্লিকেশনের ম্যানিফেস্টে android.permission.ACCESS_FINE_LOCATION অনুমতি তালিকাভুক্ত থাকতেই হবে। android.permission.ACCESS_FINE_LOCATION অনুমতিকে বিপজ্জনক অনুমতি হিসেবে বিবেচনা করা হয়। এইসব ফাংশন ব্যবহার করার জন্য অ্যাপ্লিকেশনকে রানটাইমে অবশ্যই অনুমতি চাইতে হবে:
(সুরক্ষা লেভেল: বিপজ্জনক)
সিস্টেমের ক্ষমতা পরীক্ষা করা
XrSystemGeospatialPropertiesANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrSystemGeospatialPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsGeospatial;
} XrSystemGeospatialPropertiesANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।supportsGeospatialহল একটিXrBool32, যা বর্তমান সিস্টেম জিওস্পেশিয়াল ফিচার সাপোর্ট করে কিনা তা নির্দেশ করে।
xrGetSystemProperties কল করার সময় XrSystemProperties-এর সাথে XrSystemGeospatialPropertiesANDROID স্ট্রাকচার চেইন করার মাধ্যমে, সিস্টেম জিওস্পেশিয়াল ফিচার সাপোর্ট করে কিনা তা কোনও অ্যাপ্লিকেশন চেক করতে পারে।
রানটাইম supportsGeospatial-এর জন্য XR_FALSE রিটার্ন করলে, সিস্টেম জিওস্পেশিয়াল ফিচার সাপোর্ট করে না এবং তাই xrCreateGeospatialTrackerANDROID থেকে XR_ERROR_FEATURE_UNSUPPORTED রিটার্ন করতেই হবে। supportsGeospatial, XR_FALSE হলে অ্যাপ্লিকেশনটির জিওস্পেশিয়াল কার্যকারিতা ব্যবহার করা এড়িয়ে চলা উচিত।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrSystemGeospatialPropertiesANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_SYSTEM_GEOSPATIAL_PROPERTIES_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
Geospatial Tracker হ্যান্ডেল তৈরি করুন
XR_DEFINE_HANDLE(XrGeospatialTrackerANDROID)
xrCreateGeospatialTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCreateGeospatialTrackerANDROID(
XrSession session,
const XrGeospatialTrackerCreateInfoANDROID* createInfo,
XrGeospatialTrackerANDROID* geospatialTrackerOutput);
প্যারামিটারের বিবরণ
sessionহল একটি XrSession যেখানে জিওস্পেশিয়াল ট্র্যাকার অ্যাক্টিভ থাকবে।createInfoহল XrGeospatialTrackerCreateInfoANDROID স্ট্রাকচারের একটি পয়েন্টার যা প্রাথমিক জিওস্পেশিয়াল ট্র্যাকার প্যারামিটার নির্দিষ্ট করে।geospatialTrackerOutputহল একটি হ্যান্ডেলের পয়েন্টার যেখানে তৈরি করা XrGeospatialTrackerANDROID ফিরিয়ে দেওয়া হয়।
একটি অ্যাপ্লিকেশন xrCreateGeospatialTrackerANDROID কল করে XrGeospatialTrackerANDROID হ্যান্ডেল তৈরি করতে পারে। ফেরত আসা XrGeospatialTrackerANDROID হ্যান্ডেল পরবর্তীকালে API কলে ব্যবহার করা যেতে পারে। অ্যাপ্লিকেশনটি প্রয়োজনীয় অনুমতি না পেলে, রানটাইম অবশ্যই XR_ERROR_PERMISSION_INSUFFICIENT রিটার্ন করবে। নির্দিষ্ট XrSession-এর জন্য একবারে শুধুমাত্র একটি XrGeospatialTrackerANDROID থাকতে পারে। এই ফাংশন আবার কল করার আগে, অ্যাপ্লিকেশনকে অবশ্যই নিশ্চিত করতে হবে যে আগের যেকোনও XrGeospatialTrackerANDROID অবজেক্ট ধ্বংস করা হয়েছে, অন্যথায় রানটাইম অবশ্যই XR_ERROR_LIMIT_REACHED রিটার্ন করবে। ট্র্যাকারটি সফলভাবে তৈরি হলে, এটি প্রাথমিকভাবে XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID স্ট্যাটাসে প্রবেশ করবে এবং ট্র্যাকারটি ব্যবহার করার আগে স্ট্যাটাসটি XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID-এ পরিবর্তিত না হওয়া পর্যন্ত অ্যাপ্লিকেশনটিকে অবশ্যই অপেক্ষা করতে হবে। XrEventDataGeospatialTrackerStateChangedANDROID দেখুন। অ্যাপ্লিকেশনটি যদি এমন একটি ফাংশনে XrGeospatialTrackerANDROID পাস করে যা XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID স্ট্যাটাসে নেই, তাহলে রানটাইমকে XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID রিটার্ন করতেই হবে।
XrGeospatialTrackerANDROID হ্যান্ডেল xrDestroyGeospatialTrackerANDROID ফাংশনের মাধ্যমে অবশ্যই শেষ পর্যন্ত ফ্রি করতে হবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrCreateGeospatialTrackerANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
sessionঅবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে -
createInfoঅবশ্যই একটি সঠিক XrGeospatialTrackerCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে -
geospatialTrackerOutputঅবশ্যই XrGeospatialTrackerANDROID হ্যান্ডেলের পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_PERMISSION_INSUFFICIENTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
XrGeospatialTrackerCreateInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialTrackerCreateInfoANDROID {
XrStructureType type;
const void* next;
} XrGeospatialTrackerCreateInfoANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrGeospatialTrackerCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_GEOSPATIAL_TRACKER_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLহতে হবে অথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে। আরও দেখুন: XrGeospatialTrackerAnchorTrackingInfoANDROID
xrDestroyGeospatialTrackerANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrDestroyGeospatialTrackerANDROID(
XrGeospatialTrackerANDROID geospatialTracker);
প্যারামিটারের বিবরণ
geospatialTrackerহল XrGeospatialTrackerANDROID যা ধ্বংস করা হবে।
জিওস্পেশিয়াল ট্র্যাকার ও অন্তর্নিহিত রিসোর্স রিলিজ করার জন্য কোনও অ্যাপ্লিকেশন xrDestroyGeospatialTrackerANDROID ফাংশন ব্যবহার করতে পারে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrDestroyGeospatialTrackerANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
geospatialTrackerঅবশ্যই একটি সঠিক XrGeospatialTrackerANDROID হ্যান্ডেল হতে হবে
থ্রেড নিরাপত্তা
geospatialTrackerএবং যেকোনও চাইল্ড হ্যান্ডেল অ্যাক্সেস করার সুবিধা, অবশ্যই এক্সটার্নালভাবে সিঙ্ক করতে হবে
রিটার্ন কোড
XR_SUCCESS
XR_ERROR_CALL_ORDER_INVALIDXR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_RUNTIME_FAILURE
জিওস্পেশিয়াল ট্র্যাকার স্টেট
XrGeospatialTrackerStateANDROID এনিউমারেশন এইভাবে সংজ্ঞায়িত করা হয়:
typedef enum XrGeospatialTrackerStateANDROID {
XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID = 0,
XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID = 1,
XR_GEOSPATIAL_TRACKER_STATE_INITIALIZATION_FAILED_ANDROID = 2,
XR_GEOSPATIAL_TRACKER_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrGeospatialTrackerStateANDROID;
XrGeospatialTrackerStateANDROID এনিউমারেশন জিওস্পেশিয়াল ট্র্যাকারের বিভিন্ন স্ট্যাটাস শনাক্ত করে।
এনিউমারেন্টের নিম্নলিখিত মান আছে:
Enum-এর বিবরণ
XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID
জিওস্পেশিয়াল ট্র্যাকার চলছে না।
XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID
জিওস্পেশিয়াল ট্র্যাকার চালু আছে এবং ব্যবহার করা যাবে।
XR_GEOSPATIAL_TRACKER_STATE_INITIALIZATION_FAILED_ANDROID
জিওস্পেশিয়াল ট্র্যাকার শুরু করা যায়নি এবং এটি আর কখনও ব্যবহার করা যাবে না।
XrEventDataGeospatialTrackerStateChangedANDROID স্ট্রাকচারটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
typedef struct XrEventDataGeospatialTrackerStateChangedANDROID {
XrStructureType type;
const void* next;
XrGeospatialTrackerANDROID geospatialTracker;
XrGeospatialTrackerStateANDROID state;
XrResult initializationResult;
XrTime time;
} XrEventDataGeospatialTrackerStateChangedANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।geospatialTrackerহল XrGeospatialTrackerANDROID যার স্ট্যাটাস পরিবর্তন হয়েছে।stateহল নতুন XrGeospatialTrackerStateANDROID .stateযদিXR_GEOSPATIAL_TRACKER_STATE_INITIALIZATION_FAILED_ANDROIDহয়, তাহলেinitializationResultহল সমস্যার ফলাফল, অন্যথায়XR_SUCCESS।timeহলXrTimeযখন স্ট্যাটাস পরিবর্তন করা হয়েছে।
জিওস্পেশিয়াল ট্র্যাকার স্টেট পরিবর্তন হলে XrEventDataGeospatialTrackerStateChangedANDROID স্ট্রাকচার পাঠানো হয়। অ্যাপ্লিকেশনে সঠিক XrGeospatialTrackerANDROID থাকলে, এটি এই ইভেন্টের জন্য পোল করা উচিত। ট্র্যাকারের জন্য পাওয়া প্রথম ইভেন্টে state XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID থাকবে। রানটাইম-নির্ধারিত সময়সীমা পেরিয়ে যাওয়ার পরে, স্ট্যাটাস অবশ্যই XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID অথবা XR_GEOSPATIAL_TRACKER_STATE_INITIALIZATION_FAILED_ANDROID-এ পরিবর্তিত হবে। এই ট্রানজিশন সম্পূর্ণ হতে কিছুটা সময় লাগবে। state পরিবর্তন হয়ে XR_GEOSPATIAL_TRACKER_STATE_INITIALIZATION_FAILED_ANDROID হলে, এটি অবশ্যই এই ট্র্যাকারের জন্য পাওয়া শেষ ইভেন্ট হতে হবে এবং initializationResult ফিল্ডে ত্রুটি কোড থাকবে। সমস্যা হতে কয়েক সেকেন্ড সময় লাগতে পারে। এই ক্ষেত্রে অ্যাপ্লিকেশনকে ট্র্যাকারটি নষ্ট করে দিতে হবে। state পরিবর্তন হয়ে XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID হলে, আগে তৈরি করা সব জিওস্পেশিয়াল অ্যাঙ্কর অবশ্যই স্থায়ীভাবে ট্র্যাক করা বন্ধ করে দেবে এবং অ্যাপ্লিকেশন দ্বারা ধ্বংস হয়ে যাবে। XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID ও XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID-এর মধ্যে স্টেট হয়ত অনেকবার পরিবর্তন হতে পারে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrEventDataGeospatialTrackerStateChangedANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_EVENT_DATA_GEOSPATIAL_TRACKER_STATE_CHANGED_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
জিওস্পেশিয়াল পোজ
XrGeospatialPoseANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialPoseANDROID {
XrQuaternionf eastUpSouthOrientation;
double latitude;
double longitude;
double altitude;
} XrGeospatialPoseANDROID;
মেম্বারদের বিবরণ
eastUpSouthOrientationহল একটি XrQuaternionf যা একটি কোঅর্ডিনেট সিস্টেমের সাপেক্ষে ওরিয়েন্টেশনকে সংজ্ঞায়িত করে যেখানে +X=পূর্ব, +Y=উপর এবং +Z=দক্ষিণ।latitudeহল ডিগ্রিতে অক্ষাংশ, -৯০ থেকে +৯০-এর মধ্যে।longitudeহল ডিগ্রিতে দ্রাঘিমাংশ, -১৮০ থেকে +১৮০-এর মধ্যে।altitudeহল WGS84 উপবৃত্তাকার থেকে মিটারে উচ্চতা।
XrGeospatialPoseANDROID স্ট্রাকচার WGS84 উপবৃত্তাকার ব্যবহার করে পৃথিবীর সাপেক্ষে অবস্থান এবং ওরিয়েন্টেশন দেখায়।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrGeospatialPoseANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
latitudeঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে -
longitudeঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে -
altitudeঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে
XrGeospatialPoseFlagBitsANDROID এনিউমারেশন এইভাবে সংজ্ঞায়িত করা হয়:
// Flag bits for XrGeospatialPoseFlagsANDROID
static const XrGeospatialPoseFlagsANDROID XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID = 0x00000001;
static const XrGeospatialPoseFlagsANDROID XR_GEOSPATIAL_POSE_POSITION_VALID_BIT_ANDROID = 0x00000002;
XrGeospatialPoseFlagBitsANDROID এনিউমারেশন জিওস্পেশিয়াল পোজের জন্য ফ্ল্যাগ নির্দিষ্ট করে।
ফ্ল্যাগ বিটের অর্থ হল:
ফ্ল্যাগ সম্পর্কিত বিবরণ
XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID— এটি দেখায় যে ওরিয়েন্টেশন মেম্বারে সঠিক ডেটা আছেXR_GEOSPATIAL_POSE_POSITION_VALID_BIT_ANDROID— পজিশন মেম্বারে সঠিক ডেটা আছে কিনা তা দেখায়
XrGeospatialPoseFlagsANDROID টাইপ হল XrGeospatialPoseFlagBitsANDROID-এর বিটমাস্ক।
typedef XrFlags64 XrGeospatialPoseFlagsANDROID;
XrPosef-কে জিওস্পেশিয়াল পোজে কনভার্ট করা হচ্ছে
xrLocateGeospatialPoseFromPoseANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrLocateGeospatialPoseFromPoseANDROID(
XrGeospatialTrackerANDROID geospatialTracker,
const XrGeospatialPoseFromPoseLocateInfoANDROID* locateInfo,
XrGeospatialPoseResultANDROID* geospatialPoseResult);
প্যারামিটারের বিবরণ
geospatialTrackerহল XrGeospatialTrackerANDROID যা কনভার্সনের জন্য ব্যবহার করা হয়।locateInfoহল XrGeospatialPoseFromPoseLocateInfoANDROID-এর একটি পয়েন্টার যাতে কোয়েরি প্যারামিটার আছে।geospatialPoseResultহল XrGeospatialPoseResultANDROID-এর একটি পয়েন্টার যা ফলাফল গ্রহণ করে।
xrLocateGeospatialPoseFromPoseANDROID ফাংশন XrGeospatialPoseFromPoseLocateInfoANDROID :: space-এ একটি পোজকে জিওস্পেশিয়াল পোজে কনভার্ট করে। geospatialTracker-এর স্ট্যাটাস XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID না হলে, রানটাইম XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID রিটার্ন করতেই হবে। ফাংশনটি XR_SUCCESS রিটার্ন করলে, geospatialPoseResult-এর XrGeospatialPoseResultANDROID :: poseFlags ফিল্ডটি নির্ধারণ করে যে কোন আউটপুট ফিল্ডগুলি বৈধ। XrGeospatialPoseResultANDROID :: poseFlags -এ XR_GEOSPATIAL_POSE_POSITION_VALID_BIT_ANDROID সেট করা না থাকলে, অ্যাপ্লিকেশনটি XrGeospatialPoseResultANDROID -এ XrGeospatialPoseANDROID :: latitude , XrGeospatialPoseANDROID :: longitude , XrGeospatialPoseANDROID :: altitude , XrGeospatialPoseResultANDROID :: horizontalAccuracy বা XrGeospatialPoseResultANDROID :: verticalAccuracy ফিল্ডগুলি অবশ্যই পড়বে না। XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID যদি XrGeospatialPoseResultANDROID :: poseFlags -এ সেট করা না থাকে, তাহলে অ্যাপ্লিকেশনটি XrGeospatialPoseANDROID :: eastUpSouthOrientation বা XrGeospatialPoseResultANDROID :: orientationYawAccuracy অবশ্যই রিড করবে না। XR_GEOSPATIAL_POSE_POSITION_VALID_BIT_ANDROID সেট করা না থাকলে, XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID-ও অবশ্যই সেট করা যাবে না।
অ্যাকুরেসি প্রত্যাশার চেয়ে কম হলে, এটি হতে পারে যে ডিভাইসটি VPS লোকালাইজেশন ব্যবহার করছে না। লোকালাইজেশন উন্নত করতে, অ্যাপ্লিকেশনটি ব্যবহারকারীকে তার ডিভাইসটি চিহ্ন এবং বিল্ডিংয়ের দিকে নির্দেশ করার নির্দেশ দিতে পারে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrLocateGeospatialPoseFromPoseANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
geospatialTrackerঅবশ্যই একটি সঠিক XrGeospatialTrackerANDROID হ্যান্ডেল হতে হবে -
locateInfoঅবশ্যই একটি সঠিক XrGeospatialPoseFromPoseLocateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে -
geospatialPoseResultঅবশ্যই XrGeospatialPoseResultANDROID স্ট্রাকচারের পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROIDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_TIME_INVALIDXR_ERROR_VALIDATION_FAILURE
XrGeospatialPoseFromPoseLocateInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialPoseFromPoseLocateInfoANDROID {
XrStructureType type;
const void* next;
XrSpace space;
XrTime time;
XrPosef pose;
} XrGeospatialPoseFromPoseLocateInfoANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।spaceহল XrSpace যেখানেposeসংজ্ঞায়িত করা হয়েছে।timeহলXrTimeযার ভিত্তিতেposeমূল্যায়ন করা হবে।poseহলspace-এ XrPosef যা জিওস্পেশিয়াল পোজে কনভার্ট করতে হবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrGeospatialPoseFromPoseLocateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_GEOSPATIAL_POSE_FROM_POSE_LOCATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে -
spaceঅবশ্যই একটি সঠিক XrSpace হ্যান্ডেল হতে হবে
XrGeospatialPoseResultANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialPoseResultANDROID {
XrStructureType type;
void* next;
XrGeospatialPoseFlagsANDROID poseFlags;
XrGeospatialPoseANDROID geospatialPose;
double horizontalAccuracy;
double verticalAccuracy;
double orientationYawAccuracy;
} XrGeospatialPoseResultANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।poseFlagsহল XrGeospatialPoseFlagsANDROID-এর বিটমাস্ক যা পোজ কম্পোনেন্টের বৈধতা নির্দেশ করে।geospatialPoseহল ফলাফল হিসেবে পাওয়া XrGeospatialPoseANDROID .horizontalAccuracyহল জিওস্পেশিয়াল পোজ পজিশনের আনুমানিক অনুভূমিক অ্যাকুরেসি, যা প্রদত্ত অক্ষাংশ এবং দ্রাঘিমাংশের চারপাশে ৬৮% কনফিডেন্স লেভেলের বৃত্তের ব্যাসার্ধ (মিটারে) হিসাবে সংজ্ঞায়িত করা হয়।verticalAccuracyহল জিওস্পেশিয়াল পোজ পজিশনের আনুমানিক ভার্টিক্যাল অ্যাকুরেসি, যা প্রদত্ত উচ্চতার আশেপাশে ৬৮% কনফিডেন্স লেভেলের দূরত্ব মিটারে সংজ্ঞায়িত করা হয়। অন্যভাবে বলতে গেলে, ৬৮% সম্ভাবনা আছে যে প্রকৃত উচ্চতা [ XrGeospatialPoseANDROID ::altitude-verticalAccuracy, XrGeospatialPoseANDROID ::altitude\+verticalAccuracy] রেঞ্জের মধ্যে থাকবে।orientationYawAccuracyহল জিওস্পেশিয়াল পোজ ওরিয়েন্টেশনের আনুমানিক ইয়াও অ্যাকুরেসি, যা প্রদত্ত ওরিয়েন্টেশনের চারপাশে ৬৮% কনফিডেন্স লেভেলের ডিগ্রিতে ব্যাসার্ধ হিসেবে সংজ্ঞায়িত করা হয়।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrGeospatialPoseResultANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_GEOSPATIAL_POSE_RESULT_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
জিওস্পেশিয়াল পোজকে XrPosef-এ কনভার্ট করা
xrLocateGeospatialPoseANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrLocateGeospatialPoseANDROID(
XrGeospatialTrackerANDROID geospatialTracker,
const XrGeospatialPoseLocateInfoANDROID* locateInfo,
XrSpaceLocation* location);
প্যারামিটারের বিবরণ
geospatialTrackerহল XrGeospatialTrackerANDROID যা কনভার্সনের জন্য ব্যবহার করা হয়।locateInfoহল XrGeospatialPoseLocateInfoANDROID-এর একটি পয়েন্টার যাতে কোয়েরি প্যারামিটার রয়েছে।locationহল XrSpaceLocation-এর একটি পয়েন্টার যা ফলস্বরূপ পোজ পায়।
xrLocateGeospatialPoseANDROID ফাংশনটি একটি জিওস্পেশিয়াল পোজকে XrSpaceLocation-এ কনভার্ট করে। XrGeospatialTrackerANDROID রান না করলে, রানটাইম XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID রিটার্ন করতেই হবে। ফাংশনটি XR_SUCCESS রিটার্ন করলে, location-এর XrSpaceLocation :: locationFlags ফিল্ড নির্ধারণ করে যে কোন আউটপুট ফিল্ডগুলি সঠিক।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrLocateGeospatialPoseANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
geospatialTrackerঅবশ্যই একটি সঠিক XrGeospatialTrackerANDROID হ্যান্ডেল হতে হবে -
locateInfoঅবশ্যই একটি সঠিক XrGeospatialPoseLocateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে -
locationঅবশ্যই XrSpaceLocation স্ট্রাকচারের পয়েন্টার হতে হবে
রিটার্ন কোড
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_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_TIME_INVALIDXR_ERROR_VALIDATION_FAILURE
XrGeospatialPoseLocateInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrGeospatialPoseLocateInfoANDROID {
XrStructureType type;
const void* next;
XrSpace space;
XrTime time;
XrGeospatialPoseANDROID geospatialPose;
} XrGeospatialPoseLocateInfoANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।spaceহল XrSpace যেখানে ফলাফল হিসেবে পাওয়া পোজ দেখানো হবে।timeহলXrTimeযেখানে পোজটি লোকেট করতে হবে।geospatialPoseহল কনভার্ট করার জন্য XrGeospatialPoseANDROID।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrGeospatialPoseLocateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_GEOSPATIAL_POSE_LOCATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে -
spaceঅবশ্যই একটি সঠিক XrSpace হ্যান্ডেল হতে হবে -
geospatialPoseঅবশ্যই একটি সঠিক XrGeospatialPoseANDROID স্ট্রাকচার হতে হবে
VPS-এর উপলভ্যতা
XrVPSAvailabilityANDROID এনিউমারেশন এইভাবে সংজ্ঞায়িত করা হয়:
typedef enum XrVPSAvailabilityANDROID {
XR_VPS_AVAILABILITY_UNAVAILABLE_ANDROID = 1,
XR_VPS_AVAILABILITY_AVAILABLE_ANDROID = 2,
XR_VPSAVAILABILITY_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrVPSAvailabilityANDROID;
XrVPSAvailabilityANDROID এনিউমারেশন VPS-এর উপলভ্যতা নির্দেশ করে।
এনিউমারেন্টের নিম্নলিখিত মান আছে:
Enum-এর বিবরণ
XR_VPS_AVAILABILITY_UNAVAILABLE_ANDROID
প্রদত্ত লোকেশনের কাছাকাছি VPS উপলভ্য নেই।
XR_VPS_AVAILABILITY_AVAILABLE_ANDROID
প্রদত্ত লোকেশনের কাছাকাছি VPS উপলভ্য।
xrCheckVpsAvailabilityAsyncANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCheckVpsAvailabilityAsyncANDROID(
XrSession session,
double latitude,
double longitude,
XrFutureEXT* future);
প্যারামিটারের বিবরণ
sessionহল XrSession যা চেক করার জন্য ব্যবহার করা হয়।latitudeহল ডিগ্রিতে অক্ষাংশ।longitudeহল ডিগ্রিতে দ্রাঘিমাংশ।futureহলXrFutureEXT-এর একটি পয়েন্টার যা অ্যাসিঙ্ক্রোনাস অপারেশনের ফলাফল ধরে রাখবে।
ভিজ্যুয়াল পজিশনিং সার্ভিস (VPS) উপলভ্য থাকার অর্থ হল, কোনও নির্দিষ্ট লোকেশনে জিওস্পেশিয়াল অ্যাকুরেসি উন্নত করার জন্য VPS ব্যবহার করা যেতে পারে।
xrCheckVpsAvailabilityAsyncANDROID ফাংশনটি প্রদত্ত লোকেশনে VPS উপলভ্যতার জন্য একটি অ্যাসিঙ্ক্রোনাস চেক শুরু করে। এই ফাংশন কল করার জন্য অ্যাপ্লিকেশনটির XrGeospatialTrackerANDROID-এর প্রয়োজন নেই এবং এটি তৈরি করা হবে কিনা তা সিদ্ধান্ত নিতে এই অপারেশনের ফলাফল ব্যবহার করতে পারে। অ্যাপ্লিকেশনটি প্রয়োজনীয় অনুমতি না পেলে, রানটাইম অবশ্যই XR_ERROR_PERMISSION_INSUFFICIENT রিটার্ন করবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrCheckVpsAvailabilityAsyncANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
sessionঅবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে -
latitudeঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে -
longitudeঅবশ্যই একটি সঠিকdoubleভ্যালু হতে হবে -
futureঅবশ্যইXrFutureEXTভ্যালুর পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROIDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
xrCheckVpsAvailabilityCompleteANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCheckVpsAvailabilityCompleteANDROID(
XrSession session,
XrFutureEXT future,
XrVPSAvailabilityCheckCompletionANDROID* completion);
প্যারামিটারের বিবরণ
sessionহল চেক করার জন্য ব্যবহৃত XrSession।futureহলXrFutureEXTযা xrCheckVpsAvailabilityAsyncANDROID থেকে পাওয়া গেছে।completionহল XrVPSAvailabilityCheckCompletionANDROID-এর একটি পয়েন্টার যা ফলাফল পায়।
সঠিক ব্যবহার (অন্তর্নিহিত)
- xrCheckVpsAvailabilityCompleteANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
sessionঅবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে -
completionঅবশ্যই XrVPSAvailabilityCheckCompletionANDROID স্ট্রাকচারের পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_FUTURE_INVALID_EXTXR_ERROR_FUTURE_PENDING_EXTXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
XrVPSAvailabilityCheckCompletionANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:
typedef struct XrVPSAvailabilityCheckCompletionANDROID {
XrStructureType type;
void* next;
XrResult futureResult;
XrVPSAvailabilityANDROID availability;
} XrVPSAvailabilityCheckCompletionANDROID;
মেম্বারদের বিবরণ
typeহল এই স্ট্রাকচারের XrStructureType।nextহলNULLঅথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার।futureResultহল চেক অপারেশনের XrResult।futureResultযদিXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROIDহয়, তাহলেnextচেনের স্ট্রাকচার হয়তো ব্যর্থতা সম্পর্কে আরও তথ্য প্রদান করতে পারে।availabilityহল ফলস্বরূপ পাওয়া XrVPSAvailabilityANDROID .futureResultযদিXR_SUCCESSনা হয়, তাহলে অ্যাপ্লিকেশনটি অবশ্যই এই ফিল্ডটি পড়বে না।
ভবিষ্যতের রিটার্ন কোড
futureResult ভ্যালু:
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_RUNTIME_FAILUREXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROID
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrVPSAvailabilityCheckCompletionANDROID ব্যবহার করার আগে
XR_ANDROID_geospatialএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_VPS_AVAILABILITY_CHECK_COMPLETION_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে -
futureResultঅবশ্যই একটি সঠিক XrResult মান হতে হবে -
availabilityঅবশ্যই একটি সঠিক XrVPSAvailabilityANDROID ভ্যালু হতে হবে
উদাহরণ
জিওস্পেশিয়াল ট্র্যাকার সেট-আপ করুন
PFN_xrCheckVpsAvailabilityAsyncANDROID xrCheckVpsAvailabilityAsyncANDROID;
PFN_xrPollFutureEXT xrPollFutureEXT;
PFN_xrCheckVpsAvailabilityCompleteANDROID xrCheckVpsAvailabilityCompleteANDROID;
PFN_xrCreateGeospatialTrackerANDROID xrCreateGeospatialTrackerANDROID;
XrInstance instance = XR_NULL_HANDLE;
XrSystemId systemId = XR_NULL_SYSTEM_ID;
XrSession session = XR_NULL_HANDLE;
double lat = 37.422, lng = -122.084;
// Check for support.
XrSystemGeospatialPropertiesANDROID geospatialSystemProperties{
XR_TYPE_SYSTEM_GEOSPATIAL_PROPERTIES_ANDROID};
XrSystemProperties systemProperties{XR_TYPE_SYSTEM_PROPERTIES,
&geospatialSystemProperties};
CHK_XR(xrGetSystemProperties(instance, systemId, &systemProperties));
if (!geospatialSystemProperties.supportsGeospatial) {
return;
}
// Check VPS Availability.
XrFutureEXT future = XR_NULL_FUTURE_EXT;
CHK_XR(xrCheckVpsAvailabilityAsyncANDROID(session, lat, lng, &future));
XrFuturePollInfoEXT pollInfo{XR_TYPE_FUTURE_POLL_INFO_EXT};
XrFuturePollResultEXT pollResult{XR_TYPE_FUTURE_POLL_RESULT_EXT};
pollInfo.future = future;
pollResult.state = XR_FUTURE_STATE_PENDING_EXT;
while (pollResult.state == XR_FUTURE_STATE_PENDING_EXT) {
// Do in render loop/state loop.
CHK_XR(xrPollFutureEXT(instance, &pollInfo, &pollResult));
}
XrVPSAvailabilityCheckCompletionANDROID vpsCompletion{
XR_TYPE_VPS_AVAILABILITY_CHECK_COMPLETION_ANDROID};
CHK_XR(xrCheckVpsAvailabilityCompleteANDROID(session, future, &vpsCompletion));
if (vpsCompletion.futureResult == XR_SUCCESS) {
if (vpsCompletion.availability == XR_VPS_AVAILABILITY_UNAVAILABLE_ANDROID) {
// Visual Positioning Service is not available. Accuracy of positions and
// orientations from Geospatial APIs are expected to be lower at this location.
} else {
// Visual Positioning Service is available. Higher accuracy of position and
// orientation is achievable at this location.
}
}
// Create Geospatial Tracker.
XrGeospatialTrackerCreateInfoANDROID createInfo{
XR_TYPE_GEOSPATIAL_TRACKER_CREATE_INFO_ANDROID};
XrGeospatialTrackerANDROID geospatialTracker = XR_NULL_HANDLE;
CHK_XR(xrCreateGeospatialTrackerANDROID(session, &createInfo, &geospatialTracker));
// In application main event loop:
while (true) {
XrEventDataBuffer event = {XR_TYPE_EVENT_DATA_BUFFER};
if (xrPollEvent(instance, &event) != XR_SUCCESS) {
continue;
}
switch (event.type) {
case XR_TYPE_EVENT_DATA_GEOSPATIAL_TRACKER_STATE_CHANGED_ANDROID:
const XrEventDataGeospatialTrackerStateChangedANDROID& eventData =
*reinterpret_cast<XrEventDataGeospatialTrackerStateChangedANDROID*>(&event);
switch (eventData.state) {
case XR_GEOSPATIAL_TRACKER_STATE_STOPPED_ANDROID:
// Destroy existing anchors, if any.
break;
case XR_GEOSPATIAL_TRACKER_STATE_RUNNING_ANDROID:
// Start adding content.
break;
case XR_GEOSPATIAL_TRACKER_STATE_INITIALIZATION_FAILED_ANDROID:
// Handle eventData.initializationResult error result.
break;
}
}
}
Geospatial Pose API কল করা
PFN_xrLocateGeospatialPoseFromPoseANDROID xrLocateGeospatialPoseFromPoseANDROID;
PFN_xrLocateGeospatialPoseANDROID xrLocateGeospatialPoseANDROID;
XrGeospatialTrackerANDROID geospatialTracker;
// Get pose from view space.
XrSpace viewSpace;
XrPosef identityPose = {{0,0,0,1},{0,0,0}};
XrGeospatialPoseFromPoseLocateInfoANDROID poseGetInfo{
XR_TYPE_GEOSPATIAL_POSE_FROM_POSE_LOCATE_INFO_ANDROID};
XrGeospatialPoseResultANDROID poseResult{
XR_TYPE_GEOSPATIAL_POSE_RESULT_ANDROID};
poseGetInfo.space = viewSpace;
poseGetInfo.pose = identityPose;
poseGetInfo.time = 0; // Next frame timestamp.
CHK_XR(xrLocateGeospatialPoseFromPoseANDROID(geospatialTracker, &poseGetInfo, &poseResult));
if ((poseResult.poseFlags & XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID) &&
(poseResult.poseFlags & XR_GEOSPATIAL_POSE_POSITION_VALID_BIT_ANDROID)) {
// poseResult.geospatialPose is valid.
}
// Convert Geospatial pose to an XrSpaceLocation.
XrGeospatialPoseLocateInfoANDROID poseLocateInfo{
XR_TYPE_GEOSPATIAL_POSE_LOCATE_INFO_ANDROID};
XrSpaceLocation location{XR_TYPE_SPACE_LOCATION};
poseLocateInfo.space = viewSpace;
poseLocateInfo.geospatialPose = poseResult.geospatialPose;
poseLocateInfo.time = 0; // Next frame timestamp.
CHK_XR(xrLocateGeospatialPoseANDROID(geospatialTracker, &poseLocateInfo, &location));
if ((location.locationFlags & XR_SPACE_LOCATION_ORIENTATION_VALID_BIT) &&
(location.locationFlags & XR_SPACE_LOCATION_POSITION_VALID_BIT)) {
// location.pose is valid.
}
নতুন অবজেক্টের ধরন
নতুন কমান্ড
- xrCheckVpsAvailabilityAsyncANDROID
- xrCheckVpsAvailabilityCompleteANDROID
- xrCreateGeospatialTrackerANDROID
- xrDestroyGeospatialTrackerANDROID
- xrLocateGeospatialPoseANDROID
- xrLocateGeospatialPoseFromPoseANDROID
নতুন স্ট্রাকচার
- XrEventDataGeospatialTrackerStateChangedANDROID
- XrGeospatialPoseANDROID
- XrGeospatialPoseFromPoseLocateInfoANDROID
- XrGeospatialPoseLocateInfoANDROID
- XrGeospatialPoseResultANDROID
- XrGeospatialTrackerCreateInfoANDROID
- XrVPSAvailabilityCheckCompletionANDROID
XrSystemProperties এক্সটেন্ড করা হচ্ছে :
নতুন Enum
নতুন বিটমাস্ক
নতুন Enum কনস্ট্যান্ট
XR_ANDROID_GEOSPATIAL_EXTENSION_NAMEXR_ANDROID_geospatial_SPEC_VERSIONXrObjectType এক্সটেন্ড করা হচ্ছে :
XR_OBJECT_TYPE_GEOSPATIAL_TRACKER_ANDROID
XrResult এক্সটেন্ড করা হচ্ছে :
XR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROIDXR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROIDXR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID
XrStructureType এক্সটেন্ড করা হচ্ছে :
XR_TYPE_EVENT_DATA_GEOSPATIAL_TRACKER_STATE_CHANGED_ANDROIDXR_TYPE_GEOSPATIAL_POSE_FROM_POSE_LOCATE_INFO_ANDROIDXR_TYPE_GEOSPATIAL_POSE_LOCATE_INFO_ANDROIDXR_TYPE_GEOSPATIAL_POSE_RESULT_ANDROIDXR_TYPE_GEOSPATIAL_TRACKER_CREATE_INFO_ANDROIDXR_TYPE_SYSTEM_GEOSPATIAL_PROPERTIES_ANDROIDXR_TYPE_VPS_AVAILABILITY_CHECK_COMPLETION_ANDROID
সমস্যা
ভার্সনের ইতিহাস
Revision 1, 2025-12-18 (Ben King)
- এক্সটেনশনের প্রাথমিক বিবরণ।