XR_ANDROID_geospatial
নাম স্ট্রিং
XR_ANDROID_geospatial
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৭৯০
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
XR_EXT_future
সর্বশেষ সংশোধনের তারিখ
২০২৫-১২-১৮
আইপি স্ট্যাটাস
কোনো জ্ঞাত আইপি দাবি নেই।
অবদানকারীরা
জন উলম্যান, গুগল
বেন কিং, গুগল
নিহাব জৈন, গুগল
জ্যারেড ফাইন্ডার, গুগল
সংক্ষিপ্ত বিবরণ
এই এক্সটেনশনটি গুগলের জিওস্পেশিয়াল এপিআই-এর জন্য জিওস্পেশিয়াল ট্র্যাকিং প্রদান করে, যা সুনির্দিষ্ট ভূ-অবস্থান ও অভিমুখ নির্ধারণ করে এবং অ্যাপ্লিকেশনটিকে পৃথিবীর সাপেক্ষে কনটেন্ট স্থাপন করতে সাহায্য করে। এটি মোশন ট্র্যাকিং, জিপিএস ও অন্যান্য সেন্সর এবং গুগলের ভিজ্যুয়াল পজিশনিং সিস্টেম (ভিপিএস)-এর সমন্বয়ে এই কাজটি করে থাকে। ভিপিএস একটি ডিভাইসের ক্যামেরা থেকে পাওয়া ছবির সাথে স্ট্রিট ভিউ-এর ছবির তুলনা করে সুনির্দিষ্ট অবস্থান ও অভিমুখ নির্ধারণ করে। জিওস্পেশিয়াল এপিআই প্রায়শই সাব-মিটার পজিশনাল নির্ভুলতা (জিপিএস-এর চেয়ে অনেক গুণ ভালো) এবং সাব-ডিগ্রি অভিমুখ নির্ভুলতা প্রদান করে।
এই এক্সটেনশনের এপিআইগুলো সফলভাবে ব্যবহার করার জন্য (এক্সটেনশন সাপোর্ট চেক করা ছাড়া), অ্যাপ্লিকেশনটিকে অবশ্যই XR_ANDROID_google_cloud_auth মতো কোনো একটি পদ্ধতির মাধ্যমে অথেনটিকেশন ক্রেডেনশিয়াল সফলভাবে সেট করতে হবে। সেটআপ এবং ত্রুটির ফলাফল সম্পর্কে আরও বিস্তারিত জানতে অথ এক্সটেনশনটির ডকুমেন্টেশন দেখুন।
অনুমতি
এই এক্সটেনশনটি ব্যবহার করার জন্য অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির ম্যানিফেস্টে অবশ্যই 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অথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে।
একটি ভূ-স্থানিক ট্র্যাকার হ্যান্ডেল তৈরি করুন
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 রিটার্ন করতে হবে।
অবশেষে xrDestroyGeospatialTrackerANDROID ফাংশনের মাধ্যমে XrGeospatialTrackerANDROID হ্যান্ডেলটি অবশ্যই মুক্ত করতে হবে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCreateGeospatialTrackerANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
createInfoঅবশ্যই একটি বৈধ XrGeospatialTrackerCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে। -
geospatialTrackerOutputঅবশ্যই একটি XrGeospatialTrackerANDROID হ্যান্ডেলের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
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_PERMISSION_INSUFFICIENT -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_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_INVALID -
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_HANDLE_INVALID
ভূ-স্থানিক ট্র্যাকার অবস্থা
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 এনুমারেশনটি একটি জিওস্পেশিয়াল ট্র্যাকারের বিভিন্ন অবস্থা শনাক্ত করে।
গণনাকারীগুলোর নিম্নলিখিত মান রয়েছে:
এনামের বিবরণ
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 । - যদি
stateXR_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);
প্যারামিটার বিবরণ
- রূপান্তরের জন্য ব্যবহৃত XrGeospatialTrackerANDROID হলো
geospatialTracker। -
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 ফিল্ডগুলো পড়তে পারবে না । যদি XrGeospatialPoseResultANDROID :: poseFlags এ XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID সেট করা না থাকে, তাহলে অ্যাপ্লিকেশনটি XrGeospatialPoseANDROID :: eastUpSouthOrientation বা XrGeospatialPoseResultANDROID :: orientationYawAccuracy পড়তে পারবে না। যদি XR_GEOSPATIAL_POSE_POSITION_VALID_BIT_ANDROID সেট করা না থাকে, তাহলে XR_GEOSPATIAL_POSE_ORIENTATION_VALID_BIT_ANDROID ও সেট করা যাবে না।
নির্ভুলতা প্রত্যাশার চেয়ে কম হলে, এটি একটি ইঙ্গিত হতে পারে যে ডিভাইসটি ভিপিএস লোক্যালাইজেশন ব্যবহার করছে না। লোক্যালাইজেশন উন্নত করার জন্য অ্যাপ্লিকেশনটি ব্যবহারকারীকে তাদের ডিভাইসটি সাইনবোর্ড এবং ভবনের দিকে তাক করতে নির্দেশ দিতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrLocateGeospatialPoseFromPoseANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
geospatialTrackerঅবশ্যই একটি বৈধ XrGeospatialTrackerANDROID হ্যান্ডেল হতে হবে। -
locateInfoঅবশ্যই একটি বৈধ XrGeospatialPoseFromPoseLocateInfoANDROID স্ট্রাকচারের একটি পয়েন্টার হতে হবে। -
geospatialPoseResultঅবশ্যই একটি XrGeospatialPoseResultANDROID স্ট্রাকচারের একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_POSE_INVALID -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_TIME_INVALID -
XR_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);
প্যারামিটার বিবরণ
- রূপান্তরের জন্য ব্যবহৃত XrGeospatialTrackerANDROID হলো
geospatialTracker। -
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_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_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_TIME_INVALID -
XR_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 কাঠামো হতে হবে।
ভিপিএস প্রাপ্যতা
XrVPSAvailabilityANDROID এনুমারেশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef enum XrVPSAvailabilityANDROID {
XR_VPS_AVAILABILITY_UNAVAILABLE_ANDROID = 1,
XR_VPS_AVAILABILITY_AVAILABLE_ANDROID = 2,
XR_VPSAVAILABILITY_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrVPSAvailabilityANDROID;
XrVPSAvailabilityANDROID এনুমারেশনটি ভিপিএস-এর প্রাপ্যতা নির্দেশ করে।
গণনাকারীগুলোর নিম্নলিখিত মান রয়েছে:
এনামের বিবরণ
XR_VPS_AVAILABILITY_UNAVAILABLE_ANDROID
প্রদত্ত অবস্থানের কাছাকাছি ভিপিএস উপলব্ধ নেই।
XR_VPS_AVAILABILITY_AVAILABLE_ANDROID
প্রদত্ত অবস্থানের কাছাকাছি ভিপিএস উপলব্ধ আছে।
xrCheckVpsAvailabilityAsyncANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCheckVpsAvailabilityAsyncANDROID(
XrSession session,
double latitude,
double longitude,
XrFutureEXT* future);
প্যারামিটার বিবরণ
- চেকটির জন্য
sessionহলো ব্যবহারযোগ্য XrSession । -
latitudeহলো ডিগ্রিতে পরিমাপকৃত অক্ষাংশ। -
longitudeহলো ডিগ্রিতে প্রকাশিত দ্রাঘিমাংশ। -
futureহলোXrFutureEXTএর একটি পয়েন্টার যা অ্যাসিঙ্ক্রোনাস অপারেশনের ফলাফল ধারণ করবে।
ভিজ্যুয়াল পজিশনিং সার্ভিস (ভিপিএস)-এর প্রাপ্যতা নির্দেশ করে যে, কোনো নির্দিষ্ট স্থানে ভূ-স্থানিক নির্ভুলতা উন্নত করতে ভিপিএস ব্যবহার করা যাবে কি না।
xrCheckVpsAvailabilityAsyncANDROID ফাংশনটি একটি নির্দিষ্ট অবস্থানে VPS-এর প্রাপ্যতা যাচাই করার জন্য একটি অ্যাসিঙ্ক্রোনাস চেক শুরু করে। এই ফাংশনটি কল করার জন্য অ্যাপ্লিকেশনটির একটি XrGeospatialTrackerANDROID-এর প্রয়োজন হয় না, এবং এটি একটি তৈরি করবে কিনা সেই সিদ্ধান্ত নিতে এই অপারেশনের ফলাফল ব্যবহার করতে পারে । যদি অ্যাপ্লিকেশনটি প্রয়োজনীয় অনুমতি না পেয়ে থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_PERMISSION_INSUFFICIENT রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCheckVpsAvailabilityAsyncANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
latitudeঅবশ্যই একটি বৈধdoubleভ্যালু হতে হবে -
longitudeঅবশ্যই একটি বৈধdoubleভ্যালু হতে হবে। -
futureঅবশ্যই একটিXrFutureEXTমানের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_FUNCTION_UNSUPPORTED -
XR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROID -
XR_ERROR_HANDLE_INVALID -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_VALIDATION_FAILURE
xrCheckVpsAvailabilityCompleteANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrCheckVpsAvailabilityCompleteANDROID(
XrSession session,
XrFutureEXT future,
XrVPSAvailabilityCheckCompletionANDROID* completion);
প্যারামিটার বিবরণ
-
sessionহলো চেকের জন্য ব্যবহৃত XrSession । -
futureহলো xrCheckVpsAvailabilityAsyncANDROID দ্বারা ফেরত দেওয়াXrFutureEXT। -
completionহলো XrVPSAvailabilityCheckCompletionANDROID- এর একটি পয়েন্টার, যা ফলাফলটি গ্রহণ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- xrCheckVpsAvailabilityCompleteANDROID কল করার আগে
XR_ANDROID_geospatialএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
sessionঅবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে। -
completionঅবশ্যই একটি XrVPSAvailabilityCheckCompletionANDROID স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
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_RUNTIME_FAILURE -
XR_ERROR_SESSION_LOST -
XR_ERROR_VALIDATION_FAILURE
XrVPSAvailabilityCheckCompletionANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়:
typedef struct XrVPSAvailabilityCheckCompletionANDROID {
XrStructureType type;
void* next;
XrResult futureResult;
XrVPSAvailabilityANDROID availability;
} XrVPSAvailabilityCheckCompletionANDROID;
সদস্যদের বিবরণ
-
typeহলো এই স্ট্রাকচারটির XrStructureType । -
nextহলোNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার। -
futureResultহলো চেক অপারেশনটির XrResult । যদিfutureResultXR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROIDহয়, তাহলেnextচেইনের কোনো স্ট্রাকচার ব্যর্থতা সম্পর্কে আরও তথ্য প্রদান করতে পারে । -
availabilityহলো প্রাপ্ত XrVPSAvailabilityANDROID ।futureResultমানXR_SUCCESSনা হলে অ্যাপ্লিকেশনটি এই ফিল্ডটি পড়তে পারবে না।
ভবিষ্যতের রিটার্ন কোড
futureResult মান:
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
XR_ERROR_RUNTIME_FAILURE -
XR_ERROR_INSTANCE_LOST -
XR_ERROR_SESSION_LOST -
XR_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;
}
}
}
ভূ-স্থানিক ভঙ্গি এপিআই কল করুন
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-এর সম্প্রসারণ :
নতুন এনাম
নতুন বিটমাস্ক
নতুন এনাম ধ্রুবক
-
XR_ANDROID_GEOSPATIAL_EXTENSION_NAME -
XR_ANDROID_geospatial_SPEC_VERSION XrObjectType- এর সম্প্রসারণ:
-
XR_OBJECT_TYPE_GEOSPATIAL_TRACKER_ANDROID
-
XrResult- এর সম্প্রসারণ:
-
XR_ERROR_GEOSPATIAL_CLOUD_AUTH_FAILED_ANDROID -
XR_ERROR_GEOSPATIAL_COORDINATES_INVALID_ANDROID -
XR_ERROR_GEOSPATIAL_TRACKER_NOT_RUNNING_ANDROID
-
XrStructureType সম্প্রসারণ :
-
XR_TYPE_EVENT_DATA_GEOSPATIAL_TRACKER_STATE_CHANGED_ANDROID -
XR_TYPE_GEOSPATIAL_POSE_FROM_POSE_LOCATE_INFO_ANDROID -
XR_TYPE_GEOSPATIAL_POSE_LOCATE_INFO_ANDROID -
XR_TYPE_GEOSPATIAL_POSE_RESULT_ANDROID -
XR_TYPE_GEOSPATIAL_TRACKER_CREATE_INFO_ANDROID -
XR_TYPE_SYSTEM_GEOSPATIAL_PROPERTIES_ANDROID -
XR_TYPE_VPS_AVAILABILITY_CHECK_COMPLETION_ANDROID
-
সমস্যা
সংস্করণ ইতিহাস
সংস্করণ ১, ২০২৫-১২-১৮ (বেন কিং)
- প্রাথমিক সম্প্রসারণের বিবরণ।