افزونه XR_ANDROID_trackables OpenXR

رشته نام

XR_ANDROID_trackables

نوع پسوند

پسوند نمونه

شماره برنامه افزودنی ثبت شده

456

تجدید نظر

1

وابستگی های افزونه و نسخه

OpenXR 1.0

آخرین تاریخ اصلاح

30-09-2024

وضعیت IP

هیچ ادعای IP شناخته شده ای وجود ندارد.

مشارکت کنندگان

اسپنسر کوین، گوگل

نیهاو جین، گوگل

جان پورسی، گوگل

جارد فایندر، گوگل

لوانا چن، گوگل

کنی ورکامر، گوگل

نمای کلی

این برنامه افزودنی به برنامه اجازه می دهد تا به ردیابی ها از محیط فیزیکی دسترسی داشته باشد و لنگرهای متصل به یک ردیابی ایجاد کند.

این برنامه افزودنی ردیابی هواپیما را تعریف می کند. سایر برنامه های افزودنی ممکن است انواع قابل ردیابی اضافی را اضافه کنند. به عنوان مثال XR_ANDROID_trackables_object ردیابی‌های شی را اضافه می‌کند و XR_ANDROID_depth_texture بافرهای عمقی را اضافه می‌کند که امکان ارسال پرتو به نقاط دلخواه در محیط را فراهم می‌کند.

ردیابی چیزی است که در محیط فیزیکی ردیابی می شود (به XrTrackableTypeANDROID مراجعه کنید):

  • یک هواپیما (به عنوان مثال دیوار، کف، سقف، میز)
  • یک شی (به عنوان مثال صفحه کلید، ماوس، لپ تاپ)

یک ردیاب قابل ردیابی ایجاد کنید

XrTrackableTrackerANDROID دسته‌ای است که منابع مورد نیاز برای کشف و به‌روزرسانی ردیابی‌های یک XrTrackableTypeANDROID معین را در محیط نشان می‌دهد.

XR_DEFINE_HANDLE(XrTrackableTrackerANDROID)

تابع xrCreateTrackableTrackerANDROID به صورت زیر تعریف می شود:

XrResult xrCreateTrackableTrackerANDROID(
    XrSession                                   session,
    const XrTrackableTrackerCreateInfoANDROID*  createInfo,
    XrTrackableTrackerANDROID*                  trackableTracker);

توضیحات پارامترها

  • session XrSession است که ردیاب را ایجاد می کند.
  • createInfo یک اشاره گر به ساختار XrTrackableTrackerCreateInfoANDROID است که حاوی پارامترهایی است که برای ایجاد ردیاب استفاده می شود.
  • trackableTracker یک اشاره گر به یک دسته است که در آن XrTrackableTrackerANDROID ایجاد شده برگردانده می شود.

این برنامه می تواند از عملکرد xrCreateTrackableTrackerANDROID برای ایجاد یک ردیاب قابل ردیابی استفاده کند.

  • XR_ERROR_FEATURE_UNSUPPORTED اگر سیستم از ردیابی‌های نوع مشخص شده پشتیبانی نکند، بازگردانده می‌شود.
  • اگر مجوزهای لازم به برنامه تماس اعطا نشده باشد، XR_ERROR_PERMISSION_INSUFFICIENT برگردانده خواهد شد.

برنامه می‌تواند از دسته ردیاب برگشتی در تماس‌های API بعدی استفاده کند. دسته XrTrackableTrackerANDROID باید در نهایت با استفاده از تابع xrDestroyTrackableTrackerANDROID آزاد شود.

استفاده معتبر (ضمنی)

کدهای بازگشت

موفقیت

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

شکست

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_VALIDATION_FAILURE
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_FEATURE_UNSUPPORTED

ساختار XrTrackableTrackerCreateInfoANDROID به صورت زیر تعریف می شود:

typedef struct XrTrackableTrackerCreateInfoANDROID {
    XrStructureType           type;
    void*                     next;
    XrTrackableTypeANDROID    trackableType;
} XrTrackableTrackerCreateInfoANDROID;

توضیحات اعضا

  • type XrStructureType این ساختار است.
  • next NULL یا اشاره گر به ساختار بعدی در زنجیره ساختار است. چنین ساختاری در هسته OpenXR یا این پسوند تعریف نشده است.
  • trackableType XrTrackableTypeANDROID است که ردیاب آن را ردیابی می کند.

ساختار XrTrackableTrackerCreateInfoANDROID گزینه های ایجاد XrTrackableTrackerANDROID را هنگامی که به xrCreateTrackableTrackerANDROID منتقل می شود، ارائه می دهد.

برنامه‌های افزودنی ممکن است ساختارهایی را تعریف کنند که می‌توانند به next متصل شوند تا پیکربندی اضافی برای ردیاب‌های قابل ردیابی را فراهم کنند.

استفاده معتبر (ضمنی)

شماره XrTrackableTypeANDROID به صورت زیر تعریف می شود:

typedef enum XrTrackableTypeANDROID {
    XR_TRACKABLE_TYPE_NOT_VALID_ANDROID = 0,
    XR_TRACKABLE_TYPE_PLANE_ANDROID = 1,
    XR_TRACKABLE_TYPE_DEPTH_ANDROID = 1000463000,
    XR_TRACKABLE_TYPE_OBJECT_ANDROID = 1000466000
} XrTrackableTypeANDROID;

تابع xrDestroyTrackableTrackerANDROID به صورت زیر تعریف می شود:

XrResult xrDestroyTrackableTrackerANDROID(
    XrTrackableTrackerANDROID                   trackableTracker);

توضیحات پارامترها

تابع xrDestroyTrackableTrackerANDROID ردیاب قابل ردیابی را از بین می برد.

اگر XrTrackableTrackerANDROID معتبر دیگری وجود نداشته باشد که با همان XrTrackableTypeANDROID ایجاد شده باشد، سیستم ممکن است خدمات ردیابی مورد نیاز برای آن نوع قابل ردیابی را غیرفعال کند تا منابع سیستم ذخیره شود.

استفاده معتبر (ضمنی)

ایمنی نخ

  • دسترسی به trackableTracker و هر دسته کودک باید به صورت خارجی همگام شود

کدهای بازگشت

موفقیت

  • XR_SUCCESS

شکست

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

همه موارد قابل پیگیری را دریافت کنید

اتم XrTrackableANDROID به صورت زیر تعریف می شود:

XR_DEFINE_ATOM(XrTrackableANDROID)

XrTrackableANDROID برای نشان دادن یک ردیابی منفرد استفاده می شود و فقط در چرخه عمر XrTrackableTrackerANDROID مرتبط با آن معتبر است.

تابع xrGetAllTrackablesANDROID به صورت زیر تعریف می شود:

XrResult xrGetAllTrackablesANDROID(
    XrTrackableTrackerANDROID                   trackableTracker,
    uint32_t                                    trackableCapacityInput,
    uint32_t*                                   trackableCountOutput,
    XrTrackableANDROID*                         trackables);

توضیحات پارامترها

  • trackableTracker XrTrackableTracker ANDROID برای پرس و جو است.

  • trackableCapacityInput ظرفیت آرایه trackables یا 0 برای نشان دادن درخواست برای بازیابی ظرفیت مورد نیاز است.

  • trackableCountOutput یک اشاره‌گر به تعداد trackables نوشته شده است، یا اشاره‌گر به ظرفیت مورد نیاز در مواردی که trackables کافی نیست.

  • trackables یک اشاره گر به آرایه ای از XrTrackableANDROID است. اگر trackableCapacityInput 0 باشد می تواند NULL باشد.

  • برای توضیحات مفصل در مورد بازیابی اندازه trackables مورد نیاز، به بخش پارامترهای اندازه بافر مراجعه کنید.

xrGetAllTrackablesANDROID آرایه ای از XrTrackableANDROID را پر می کند که نشان دهنده ردیابی های موجود در محیط است. XrTrackableTypeANDROID trackables برگشتی باید با XrTrackableTypeANDROID trackableTracker مطابقت داشته باشد.

هواپیمای قابل ردیابی بگیرید

تابع xrGetTrackablePlaneANDROID به صورت زیر تعریف می شود:

XrResult xrGetTrackablePlaneANDROID(
    XrTrackableTrackerANDROID                   trackableTracker,
    const XrTrackableGetInfoANDROID*            getInfo,
    XrTrackablePlaneANDROID*                    planeOutput);

توضیحات پارامترها

  • trackableTracker XrTrackableTracker ANDROID برای پرس و جو است.

  • getInfo XrTrackableGetInfoANDROID با اطلاعات مورد استفاده برای دریافت هواپیمای قابل ردیابی است.

  • planeOutput یک اشاره گر به ساختار XrTrackablePlaneANDROID است که در آن صفحه قابل ردیابی برگردانده می شود.

تابع xrGetTrackablePlaneANDROID جزئیات مربوط به صفحه قابل ردیابی، مانند هندسه، جهت و وضعیت ردیابی آن را برمی گرداند.

اطلاعات صفحه در زمان تماس با xrGetTrackablePlaneANDROID با استفاده از XrTrackableGetInfoANDROID::time، XrTrackableGetInfoANDROID::baseSpace، نسبت به فضای پایه حل می شود.

استفاده معتبر (ضمنی)

کدهای بازگشت

موفقیت

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

شکست

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_VALIDATION_FAILURE
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_TIME_INVALID

ساختار XrTrackableGetInfoANDROID به صورت زیر تعریف می شود:

typedef struct XrTrackableGetInfoANDROID {
    XrStructureType       type;
    void*                 next;
    XrTrackableANDROID    trackable;
    XrSpace               baseSpace;
    XrTime                time;
} XrTrackableGetInfoANDROID;

توضیحات اعضا

  • type XrStructureType این ساختار است.
  • next NULL یا اشاره گر به ساختار بعدی در زنجیره ساختار است. چنین ساختاری در هسته OpenXR یا این پسوند تعریف نشده است.
  • trackable صفحه XrTrackableANDROID برای پرس و جو است.
  • baseSpace وضعیت هواپیما در time نسبت به این XrSpace خواهد بود.
  • time XrTime است که در آن مختصات نسبت به baseSpace ارزیابی می شود.

ساختار XrTrackableGetInfoANDROID هنگامی که به xrGetTrackablePlaneANDROID ارسال می شود، گزینه های پرس و جو را ارائه می دهد. trackable باید با trackableTracker مورد استفاده در xrGetTrackablePlaneANDROID مطابقت داشته باشد.

اگر نوع قابل ردیابی trackable XR_TRACKABLE_TYPE_PLANE_ANDROID نباشد، XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID برگردانده خواهد شد.

استفاده معتبر (ضمنی)

ساختار XrTrackablePlaneANDROID به صورت زیر تعریف می شود:

typedef struct XrTrackablePlaneANDROID {
    XrStructureType           type;
    void*                     next;
    XrTrackingStateANDROID    trackingState;
    XrPosef                   centerPose;
    XrExtent2Df               extents;
    XrPlaneTypeANDROID        planeType;
    XrPlaneLabelANDROID       planeLabel;
    XrTrackableANDROID        subsumedByPlane;
    XrTime                    lastUpdatedTime;
    uint32_t                  vertexCapacityInput;
    uint32_t*                 vertexCountOutput;
    XrVector2f*               vertices;
} XrTrackablePlaneANDROID;

توضیحات اعضا

  • type XrStructureType این ساختار است.
  • next NULL یا اشاره گر به ساختار بعدی در زنجیره ساختار است. چنین ساختاری در هسته OpenXR یا این پسوند تعریف نشده است.
  • trackingState XrTrackingStateANDROID هواپیما است.
  • centerPose یک XrPosef است که موقعیت و جهت صفحه را در چارچوب مرجع XrTrackableGetInfoANDROID::baseSpace مربوطه تعریف می کند. یک جهت هویت در اینجا نشان دهنده یک محور مختصات با +Y موازی با نرمال صفحه است.
  • extents بعد XrExtent2Df هواپیما است.
  • planeType XrPlaneTypeANDROID است که زمان اجرا برای این هواپیما مشخص شده است.
  • planeLabel XrPlaneLabelANDROID است که زمان اجرا برای این صفحه تعیین شده است.
  • subsumedByPlane XrTrackableANDROID صفحه ای است که زیرمجموعه این صفحه است (در صورت وجود XR_NULL_TRACKABLE_ANDROID ).
  • lastUpdatedTime XrTime آخرین به روز رسانی هواپیما است.
  • vertexCapacityInput ظرفیت آرایه vertices یا 0 برای نشان دادن درخواست برای بازیابی ظرفیت مورد نیاز است.
  • vertexCountOutput یک اشاره گر برای تعداد vertices نوشته شده، یا یک اشاره گر به ظرفیت مورد نیاز در صورتی که vertices کافی نیست.
  • vertices یک اشاره گر به آرایه ای از XrVector2f است. اگر vertexCapacityInput 0 باشد، می تواند NULL باشد. راس ها به ترتیب خلاف جهت عقربه های ساعت هستند. چند ضلعی ممکن است مقعر باشد و نباید خود متقاطع باشد.
  • برای توضیح دقیق بازیابی اندازه vertices مورد نیاز، به بخش پارامترهای اندازه بافر مراجعه کنید.

استفاده معتبر (ضمنی)

فهرست XrTrackingStateANDROID وضعیت ردیابی یک XrTrackableANDROID را توصیف می کند.

typedef enum XrTrackingStateANDROID {
    XR_TRACKING_STATE_PAUSED_ANDROID = 0,
    XR_TRACKING_STATE_STOPPED_ANDROID = 1,
    XR_TRACKING_STATE_TRACKING_ANDROID = 2
} XrTrackingStateANDROID;

XrTrackingStateANDROID

توضیحات

XR_TRACKING_STATE_PAUSED_ANDROID

نشان می دهد که ردیابی قابل ردیابی یا لنگر متوقف شده است اما ممکن است در آینده از سر گرفته شود.

XR_TRACKING_STATE_STOPPED_ANDROID

ردیابی در این Trackable متوقف شده است و هرگز از سر گرفته نخواهد شد.

XR_TRACKING_STATE_TRACKING_ANDROID

شی ردیابی می شود و وضعیت آن جاری است.

شماره XrPlaneTypeANDROID نوع یک هواپیمای XrTrackableANDROID است.

typedef enum XrPlaneTypeANDROID {
    XR_PLANE_TYPE_HORIZONTAL_DOWNWARD_FACING_ANDROID = 0,
    XR_PLANE_TYPE_HORIZONTAL_UPWARD_FACING_ANDROID = 1,
    XR_PLANE_TYPE_VERTICAL_ANDROID = 2,
    XR_PLANE_TYPE_ARBITRARY_ANDROID = 3
} XrPlaneTypeANDROID;

XrPlaneLabelANDROID enum یک برچسب برای هواپیمای XrTrackableANDROID است.

typedef enum XrPlaneLabelANDROID {
    XR_PLANE_LABEL_UNKNOWN_ANDROID = 0,
    XR_PLANE_LABEL_WALL_ANDROID = 1,
    XR_PLANE_LABEL_FLOOR_ANDROID = 2,
    XR_PLANE_LABEL_CEILING_ANDROID = 3,
    XR_PLANE_LABEL_TABLE_ANDROID = 4
} XrPlaneLabelANDROID;

فضای لنگر ایجاد کنید

XrResult xrCreateAnchorSpaceANDROID(
    XrSession                                   session,
    const XrAnchorSpaceCreateInfoANDROID*       createInfo,
    XrSpace*                                    anchorOutput);

توضیحات پارامترها

  • session XrSession است که فضای لنگر را ایجاد می کند.
  • createInfo یک اشاره گر به یک ساختار XrAnchorSpaceCreateInfoANDROID است که حاوی پارامترهایی است که برای ایجاد فضای لنگر استفاده می شود.
  • anchorOutput یک اشاره گر به یک دسته است که در آن XrSpace ایجاد شده برگردانده می شود.

در هر نقطه از زمان هم موقعیت و هم جهت لنگر ردیابی می شود یا ردیابی نمی شود. این بدان معناست که هر دو XR_SPACE_LOCATION_POSITION_TRACKED_BIT و XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT باید تنظیم شوند یا هر دو باید پاک شوند زمانی که برنامه xrLocateSpace یا xrLocateSpaces را برای anchorOutput فرا می خواند.

برنامه در نهایت باید XrSpace برگشتی را با استفاده از xrDestroySpace آزاد کند.

  • اگر سیستم از لنگرها پشتیبانی نمی‌کند، XR_ERROR_FEATURE_UNSUPPORTED باید برگردانده شود.
  • اگر پیوست لنگر خاص پشتیبانی نمی‌شود، XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID باید برگردانده شود.

استفاده معتبر (ضمنی)

کدهای بازگشت

موفقیت

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

شکست

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID
  • XR_ERROR_VALIDATION_FAILURE
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_POSE_INVALID
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_OUT_OF_MEMORY

ساختار XrAnchorSpaceCreateInfoANDROID به صورت زیر تعریف می شود:

typedef struct XrAnchorSpaceCreateInfoANDROID {
    XrStructureType       type;
    void*                 next;
    XrSpace               space;
    XrTime                time;
    XrPosef               pose;
    XrTrackableANDROID    trackable;
} XrAnchorSpaceCreateInfoANDROID;

توضیحات اعضا

  • type XrStructureType این ساختار است.
  • next NULL یا اشاره گر به ساختار بعدی در زنجیره ساختار است. چنین ساختاری در هسته OpenXR یا این پسوند تعریف نشده است.
  • space XrSpace است که لنگر روی آن ایجاد می شود.
  • time XrTime ایجاد لنگر است.
  • pose XrPosef لنگر است.
  • trackable XrTrackableANDROID است که لنگر روی آن وصل خواهد شد. ممکن است XR_NULL_TRACKABLE_ANDROID ایجاد یک لنگر فضایی باشد.

استفاده معتبر (ضمنی)

کد مثال برای دریافت همه موارد قابل پیگیری

کد مثال زیر نشان می دهد که چگونه می توان همه ردیابی ها را از یک نوع مشخص دریافت کرد.

XrSession session; // previously initialized

// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateTrackableTrackerANDROID xrCreateTrackableTrackerANDROID; // previously initialized
PFN_xrGetAllTrackablesANDROID xrGetAllTrackablesANDROID; // previously initialized
PFN_xrDestroyTrackableTrackerANDROID xrDestroyTrackableTrackerANDROID; // previously initialized

XrTrackableTrackerCreateInfoANDROID createInfo{XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID};
createInfo.trackableType = XR_TRACKABLE_TYPE_PLANE_ANDROID;
XrTrackableTrackerANDROID planeTrackableTracker;
XrResult result = xrCreateTrackableTrackerANDROID(
  session,
  &createInfo,
  &planeTrackableTracker);
if (result != XR_SUCCESS) { /* Handle failures. */ }

uint32_t trackableCountOutput = 0;
std::vector<XrTrackableANDROID> allPlaneTrackables;

// Query the number of trackables available.
result = xrGetAllTrackablesANDROID(
  planeTrackableTracker,
  0,
  &trackableCountOutput,
  nullptr
);

if (result == XR_SUCCESS) {
  allPlaneTrackables.resize(trackableCountOutput, XR_NULL_HANDLE);

  // Fetch the actual trackable handles in the appropriately resized array.
  result = xrGetAllTrackablesANDROID(
    planeTrackableTracker,
    trackableCountOutput,
    &trackableCountOutput,
    allPlaneTrackables.data());

  if (result == XR_SUCCESS) {
    for (XrTrackableANDROID trackable : allPlaneTrackables) {
      // You now have all trackables of the specified type.
    }
  }
}

// Release trackable tracker.
result = xrDestroyTrackableTrackerANDROID(planeTrackableTracker);

کد مثال برای گرفتن هواپیمای قابل ردیابی

کد مثال زیر نشان می دهد که چگونه می توان یک هواپیمای قابل ردیابی را از یک XrTrackableANDROID موجود بدست آورد که از یک نتیجه ضربه ای XR_ANDROID_raycast یا xrGetTrackablesANDROID بدست می آید.

XrTrackableTrackerANDROID planeTracker; // previously created

// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrGetTrackablePlaneANDROID xrGetTrackablePlaneANDROID; // previously initialized

XrTime updateTime; // Time used for the current frame's simulation update.
XrSpace appSpace; // Space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrTrackableANDROID planeTrackable; // Acquired from a hit result or getTrackables().

XrTrackableGetInfoANDROID planeGetInfo;
planeGetInfo.type = XR_TYPE_TRACKABLE_GET_INFO_ANDROID;
planeGetInfo.next = nullptr;
planeGetInfo.trackable = planeTrackable;
planeGetInfo.space = appSpace;
planeGetInfo.time = updateTime;

XrTrackablePlaneANDROID plane = { XR_TYPE_TRACKABLE_PLANE_ANDROID };
result = xrGetTrackablePlaneANDROID(
  planeTracker,
  &planeGetInfo,
  &plane
);

if (result == XR_SUCCESS) {
  // Plane tracking state, center pose, extents, type now available in plane.
}

کد مثال برای ایجاد فضای لنگر

کد مثال زیر نحوه ایجاد یک فضای لنگر متصل به یک ردیابی را نشان می دهد.

XrSession session; // Created at app startup.
XrTime updateTime; // Time used for the current frame's simulation update.
XrSpace appSpace; // Space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrTrackableANDROID planeTrackable; // Acquired from a hit result or getTrackables().

// Create an anchor at (2, 2, 2) world-coordinates.
XrAnchorSpaceCreateInfoANDROID spatialAnchorCreateInfo;
spatialAnchorCreateInfo.type = XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID;
spatialAnchorCreateInfo.next = nullptr;
spatialAnchorCreateInfo.space = appSpace;
spatialAnchorCreateInfo.time = updateTime;
spatialAnchorCreateInfo.pose = { { 0, 0, 0, 1 }, { 2, 2, 2 } };

XrSpace spatialAnchor = XR_NULL_HANDLE;
XrResult result = xrCreateAnchorSpaceANDROID(
  session,
  &spatialAnchorCreateInfo,
  &spatialAnchor
);

// Create an anchor attached to a trackable.
XrTrackablePlane plane = ...;
XrAnchorSpaceCreateInfoANDROID trackableAnchorCreateInfo;
trackableAnchorCreateInfo.type = XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID;
trackableAnchorCreateInfo.next = nullptr;
trackableAnchorCreateInfo.space = appState;
trackableAnchorCreateInfo.pose = plane.centerPose;
trackableAnchorCreateInfo.trackable = planeTrackable;

XrSpace trackableAnchor = XR_NULL_HANDLE;
XrResult result = xrCreateAnchorSpaceANDROID(
  session,
  &trackableAnchorCreateInfo,
  &trackableAnchor
);
while (true) {
  // app update loop
  // ...

  // Get the current location of the anchor's space w.r.t the world.
  XrSpaceLocation anchorLocation = { XR_TYPE_SPACE_LOCATION };
  result = xrLocateSpace(trackableAnchor, appSpace, updateTime, &anchorLocation);

  if (anchor.trackingState == XR_TRACKING_STATE_TRACKING_ANDROID) {
    // Update anchor pose.
    doDrawingForAnchor(anchorLocation.pose);
  } else {
    // ...
  }
}

// Cleanup - destroy the space, detatch the anchor so its no longer tracked by the
// runtime and then release all resources held by it.
xrDestroySpace(spatialAnchor);
xrDestroySpace(trackableAnchor);

انواع پایه جدید

انواع اشیاء جدید

ثابت های جدید Enum

شمارش XrStructureType با:

  • XR_TYPE_TRACKABLE_GET_INFO_ANDROID
  • XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID
  • XR_TYPE_TRACKABLE_PLANE_ANDROID
  • XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID

شمارش XrObjectType با:

  • XR_OBJECT_TYPE_TRACKABLE_TRACKER_ANDROID

شمارش XrResult با:

  • XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID
  • XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID

فهرست های جدید

ساختارهای جدید

توابع جدید

مسائل

تاریخچه نسخه

  • بازبینی 1، 27/09/2024 (کنی ورکامر)
    • توضیحات پسوند اولیه