16#ifndef ARCORE_C_API_H_
17#define ARCORE_C_API_H_
383typedef struct ACameraMetadata ACameraMetadata;
411 return reinterpret_cast<ArTrackable *
>(augmented_image);
416 return reinterpret_cast<ArPlane *
>(trackable);
421 return reinterpret_cast<ArPoint *
>(trackable);
433#if __cplusplus >= 201100
434#define AR_DEFINE_ENUM(_type) enum _type : int32_t
436#define AR_DEFINE_ENUM(_type) \
437 typedef int32_t _type; \
441#if defined(__GNUC__) && !defined(AR_DEPRECATED_SUPPRESS)
442#define AR_DEPRECATED(_deprecation_string) \
443 __attribute__((deprecated(_deprecation_string)));
445#define AR_DEPRECATED(_deprecation_string)
454 AR_TRACKABLE_BASE_TRACKABLE = 0x41520100,
457 AR_TRACKABLE_PLANE = 0x41520101,
460 AR_TRACKABLE_POINT = 0x41520102,
463 AR_TRACKABLE_AUGMENTED_IMAGE = 0x41520104,
466 AR_TRACKABLE_NOT_VALID = 0};
476 AR_ERROR_INVALID_ARGUMENT = -1,
484 AR_ERROR_SESSION_PAUSED = -3,
488 AR_ERROR_SESSION_NOT_PAUSED = -4,
492 AR_ERROR_NOT_TRACKING = -5,
496 AR_ERROR_TEXTURE_NOT_SET = -6,
499 AR_ERROR_MISSING_GL_CONTEXT = -7,
503 AR_ERROR_UNSUPPORTED_CONFIGURATION = -8,
507 AR_ERROR_CAMERA_PERMISSION_NOT_GRANTED = -9,
513 AR_ERROR_DEADLINE_EXCEEDED = -10,
518 AR_ERROR_RESOURCE_EXHAUSTED = -11,
523 AR_ERROR_NOT_YET_AVAILABLE = -12,
527 AR_ERROR_CAMERA_NOT_AVAILABLE = -13,
531 AR_ERROR_CLOUD_ANCHORS_NOT_CONFIGURED = -14,
536 AR_ERROR_INTERNET_PERMISSION_NOT_GRANTED = -15,
540 AR_ERROR_ANCHOR_NOT_SUPPORTED_FOR_HOSTING = -16,
544 AR_ERROR_IMAGE_INSUFFICIENT_QUALITY = -17,
547 AR_ERROR_DATA_INVALID_FORMAT = -18,
551 AR_ERROR_DATA_UNSUPPORTED_VERSION = -19,
554 AR_UNAVAILABLE_ARCORE_NOT_INSTALLED = -100,
557 AR_UNAVAILABLE_DEVICE_NOT_COMPATIBLE = -101,
561 AR_UNAVAILABLE_APK_TOO_OLD = -103,
565 AR_UNAVAILABLE_SDK_TOO_OLD = -104,
569 AR_UNAVAILABLE_USER_DECLINED_INSTALLATION = -105};
576 AR_TRACKING_STATE_TRACKING = 0,
583 AR_TRACKING_STATE_PAUSED = 1,
587 AR_TRACKING_STATE_STOPPED = 2};
594 AR_CLOUD_ANCHOR_STATE_NONE = 0,
599 AR_CLOUD_ANCHOR_STATE_TASK_IN_PROGRESS = 1,
602 AR_CLOUD_ANCHOR_STATE_SUCCESS = 2,
606 AR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL = -1,
611 AR_CLOUD_ANCHOR_STATE_ERROR_NOT_AUTHORIZED = -2,
618 AR_CLOUD_ANCHOR_STATE_ERROR_SERVICE_UNAVAILABLE = -3,
623 AR_CLOUD_ANCHOR_STATE_ERROR_RESOURCE_EXHAUSTED = -4,
628 AR_CLOUD_ANCHOR_STATE_ERROR_HOSTING_DATASET_PROCESSING_FAILED = -5,
632 AR_CLOUD_ANCHOR_STATE_ERROR_CLOUD_ID_NOT_FOUND = -6,
638 AR_CLOUD_ANCHOR_STATE_ERROR_RESOLVING_LOCALIZATION_NO_MATCH = -7,
643 AR_CLOUD_ANCHOR_STATE_ERROR_RESOLVING_SDK_VERSION_TOO_OLD = -8,
648 AR_CLOUD_ANCHOR_STATE_ERROR_RESOLVING_SDK_VERSION_TOO_NEW = -9};
654 AR_AVAILABILITY_UNKNOWN_ERROR = 0,
657 AR_AVAILABILITY_UNKNOWN_CHECKING = 1,
660 AR_AVAILABILITY_UNKNOWN_TIMED_OUT = 2,
662 AR_AVAILABILITY_UNSUPPORTED_DEVICE_NOT_CAPABLE = 100,
665 AR_AVAILABILITY_SUPPORTED_NOT_INSTALLED = 201,
668 AR_AVAILABILITY_SUPPORTED_APK_TOO_OLD = 202,
670 AR_AVAILABILITY_SUPPORTED_INSTALLED = 203};
676 AR_INSTALL_STATUS_INSTALLED = 0,
679 AR_INSTALL_STATUS_INSTALL_REQUESTED = 1};
689 AR_INSTALL_BEHAVIOR_REQUIRED = 0,
692 AR_INSTALL_BEHAVIOR_OPTIONAL = 1};
698 AR_INSTALL_USER_MESSAGE_TYPE_APPLICATION = 0,
700 AR_INSTALL_USER_MESSAGE_TYPE_FEATURE = 1,
703 AR_INSTALL_USER_MESSAGE_TYPE_USER_ALREADY_INFORMED = 2};
709 AR_LIGHT_ESTIMATION_MODE_DISABLED = 0,
712 AR_LIGHT_ESTIMATION_MODE_AMBIENT_INTENSITY = 1};
718 AR_PLANE_FINDING_MODE_DISABLED = 0,
720 AR_PLANE_FINDING_MODE_HORIZONTAL = 1,
722 AR_PLANE_FINDING_MODE_VERTICAL = 2,
724 AR_PLANE_FINDING_MODE_HORIZONTAL_AND_VERTICAL = 3};
734 AR_UPDATE_MODE_BLOCKING = 0,
738 AR_UPDATE_MODE_LATEST_CAMERA_IMAGE = 1};
744 AR_PLANE_HORIZONTAL_UPWARD_FACING = 0,
746 AR_PLANE_HORIZONTAL_DOWNWARD_FACING = 1,
748 AR_PLANE_VERTICAL = 2};
755 AR_LIGHT_ESTIMATE_STATE_NOT_VALID = 0,
757 AR_LIGHT_ESTIMATE_STATE_VALID = 1};
764 AR_POINT_ORIENTATION_INITIALIZED_TO_IDENTITY = 0,
767 AR_POINT_ORIENTATION_ESTIMATED_SURFACE_NORMAL = 1};
774 AR_CLOUD_ANCHOR_MODE_DISABLED = 0,
777 AR_CLOUD_ANCHOR_MODE_ENABLED = 1};
815 void *application_context,
816 ArAvailability *out_availability);
870 void *application_activity,
871 bool user_requested_install,
872 ArInstallStatus *out_install_status);
905 void *application_activity,
906 int32_t user_requested_install,
907 ArInstallBehavior install_behavior,
908 ArInstallUserMessageType message_type,
909 ArInstallStatus *out_install_status);
932 void *application_context,
956 ArLightEstimationMode *light_estimation_mode);
963 ArLightEstimationMode light_estimation_mode);
969 ArPlaneFindingMode *plane_finding_mode);
975 ArPlaneFindingMode plane_finding_mode);
981 ArUpdateMode *update_mode);
987 ArUpdateMode update_mode);
992 ArCloudAnchorMode *out_cloud_anchor_mode);
998 ArCloudAnchorMode cloud_anchor_mode);
1050 "deprecated in release 1.2.0. Please see function documentation");
1178 ArTrackableType filter_type,
1223 const char *cloud_anchor_id,
1244 const float *pose_raw,
1257 float *out_pose_raw);
1267 float *out_matrix_col_major_4x4);
1324 float *out_col_major_4x4);
1331 ArTrackingState *out_tracking_state);
1348 float *dest_col_major_4x4);
1377 int32_t *out_geometry_changed);
1385 int64_t *out_timestamp_ns);
1401 int32_t num_elements,
1402 const float *uvs_in,
1512 ArTrackableType filter_type,
1525 int32_t *out_number_of_points);
1542 const float **out_point_cloud_data);
1548 int64_t *out_timestamp_ns);
1573 const ACameraMetadata **out_ndk_metadata);
1621 ArLightEstimateState *out_light_estimate_state);
1635 float *out_pixel_intensity);
1666 float *out_color_correction_4);
1713 ArTrackingState *out_tracking_state);
1738 char **out_cloud_anchor_id);
1748 ArCloudAnchorState *out_state);
1789 ArTrackableType *out_trackable_type);
1795 ArTrackingState *out_tracking_state);
1852 ArPlaneType *out_plane_type);
1871 float *out_extent_x);
1878 float *out_extent_z);
1884 int32_t *out_polygon_size);
1897 float *out_polygon_xz);
1904 int32_t *out_pose_in_extents);
1911 int32_t *out_pose_in_polygon);
1944 ArPointOrientationMode *out_orientation_mode);
1979 float *out_extent_x);
1997 float *out_extent_z);
2005 int32_t *out_index);
2016 char **out_augmented_image_name);
2043 const uint8_t *database_raw_bytes,
2044 int64_t database_raw_bytes_size,
2056 uint8_t **out_image_database_raw_bytes,
2057 int64_t *out_image_database_raw_bytes_size);
2084 const char *image_name,
2085 const uint8_t *image_grayscale_pixels,
2086 int32_t image_width_in_pixels,
2087 int32_t image_height_in_pixels,
2088 int32_t image_stride_in_pixels,
2089 int32_t *out_index);
2119 const char *image_name,
2120 const uint8_t *image_grayscale_pixels,
2121 int32_t image_width_in_pixels,
2122 int32_t image_height_in_pixels,
2123 int32_t image_stride_in_pixels,
2124 float image_width_in_meters,
2125 int32_t *out_index);
2131 int32_t *out_num_images);
2183 float *out_distance);
void ArByteArray_release(uint8_t *byte_array)
Releases a byte array created using an ARCore API function.
#define AR_DEPRECATED(_deprecation_string)
#define AR_DEFINE_ENUM(_type)
void ArString_release(char *str)
void ArAnchorList_create(const ArSession *session, ArAnchorList **out_anchor_list)
Creates an anchor list object.
void ArAnchorList_getSize(const ArSession *session, const ArAnchorList *anchor_list, int32_t *out_size)
Retrieves the number of anchors in this list.
void ArAnchor_getTrackingState(const ArSession *session, const ArAnchor *anchor, ArTrackingState *out_tracking_state)
Retrieves the current state of the pose of this anchor.
struct ArAnchorList_ ArAnchorList
void ArAnchor_getCloudAnchorState(const ArSession *session, const ArAnchor *anchor, ArCloudAnchorState *out_state)
void ArAnchorList_destroy(ArAnchorList *anchor_list)
void ArAnchor_getPose(const ArSession *session, const ArAnchor *anchor, ArPose *out_pose)
void ArAnchor_release(ArAnchor *anchor)
struct ArAnchor_ ArAnchor
void ArAnchor_acquireCloudAnchorId(ArSession *session, ArAnchor *anchor, char **out_cloud_anchor_id)
void ArAnchor_detach(ArSession *session, ArAnchor *anchor)
void ArAnchorList_acquireItem(const ArSession *session, const ArAnchorList *anchor_list, int32_t index, ArAnchor **out_anchor)
void ArCoreApk_checkAvailability(void *env, void *application_context, ArAvailability *out_availability)
ArStatus ArCoreApk_requestInstall(void *env, void *application_activity, bool user_requested_install, ArInstallStatus *out_install_status)
ArStatus ArCoreApk_requestInstallCustom(void *env, void *application_activity, int32_t user_requested_install, ArInstallBehavior install_behavior, ArInstallUserMessageType message_type, ArInstallStatus *out_install_status)
ArStatus ArAugmentedImageDatabase_deserialize(const ArSession *session, const uint8_t *database_raw_bytes, int64_t database_raw_bytes_size, ArAugmentedImageDatabase **out_augmented_image_database)
struct ArAugmentedImageDatabase_ ArAugmentedImageDatabase
ArStatus ArAugmentedImageDatabase_addImageWithPhysicalSize(const ArSession *session, ArAugmentedImageDatabase *augmented_image_database, const char *image_name, const uint8_t *image_grayscale_pixels, int32_t image_width_in_pixels, int32_t image_height_in_pixels, int32_t image_stride_in_pixels, float image_width_in_meters, int32_t *out_index)
void ArAugmentedImageDatabase_create(const ArSession *session, ArAugmentedImageDatabase **out_augmented_image_database)
Creates a new empty image database.
void ArAugmentedImageDatabase_destroy(ArAugmentedImageDatabase *augmented_image_database)
Releases memory used by an image database.
void ArAugmentedImageDatabase_getNumImages(const ArSession *session, const ArAugmentedImageDatabase *augmented_image_database, int32_t *out_num_images)
Returns the number of images in the image database.
ArStatus ArAugmentedImageDatabase_addImage(const ArSession *session, ArAugmentedImageDatabase *augmented_image_database, const char *image_name, const uint8_t *image_grayscale_pixels, int32_t image_width_in_pixels, int32_t image_height_in_pixels, int32_t image_stride_in_pixels, int32_t *out_index)
void ArAugmentedImageDatabase_serialize(const ArSession *session, const ArAugmentedImageDatabase *augmented_image_database, uint8_t **out_image_database_raw_bytes, int64_t *out_image_database_raw_bytes_size)
void ArAugmentedImage_getExtentZ(const ArSession *session, const ArAugmentedImage *augmented_image, float *out_extent_z)
void ArAugmentedImage_getExtentX(const ArSession *session, const ArAugmentedImage *augmented_image, float *out_extent_x)
void ArAugmentedImage_acquireName(const ArSession *session, const ArAugmentedImage *augmented_image, char **out_augmented_image_name)
struct ArAugmentedImage_ ArAugmentedImage
void ArAugmentedImage_getCenterPose(const ArSession *session, const ArAugmentedImage *augmented_image, ArPose *out_pose)
void ArAugmentedImage_getIndex(const ArSession *session, const ArAugmentedImage *augmented_image, int32_t *out_index)
void ArCamera_getPose(const ArSession *session, const ArCamera *camera, ArPose *out_pose)
struct ArCamera_ ArCamera
void ArCamera_getTrackingState(const ArSession *session, const ArCamera *camera, ArTrackingState *out_tracking_state)
void ArCamera_getViewMatrix(const ArSession *session, const ArCamera *camera, float *out_col_major_4x4)
void ArCamera_getProjectionMatrix(const ArSession *session, const ArCamera *camera, float near, float far, float *dest_col_major_4x4)
void ArCamera_release(ArCamera *camera)
void ArCamera_getDisplayOrientedPose(const ArSession *session, const ArCamera *camera, ArPose *out_pose)
void ArConfig_getCloudAnchorMode(const ArSession *session, const ArConfig *config, ArCloudAnchorMode *out_cloud_anchor_mode)
Gets the current cloud anchor mode from the ArConfig.
void ArConfig_setUpdateMode(const ArSession *session, ArConfig *config, ArUpdateMode update_mode)
void ArConfig_destroy(ArConfig *config)
Releases memory used by the provided configuration object.
void ArConfig_getAugmentedImageDatabase(const ArSession *session, const ArConfig *config, ArAugmentedImageDatabase *out_augmented_image_database)
void ArConfig_setAugmentedImageDatabase(const ArSession *session, ArConfig *config, const ArAugmentedImageDatabase *augmented_image_database)
struct ArConfig_ ArConfig
void ArConfig_setCloudAnchorMode(const ArSession *session, ArConfig *config, ArCloudAnchorMode cloud_anchor_mode)
void ArConfig_setPlaneFindingMode(const ArSession *session, ArConfig *config, ArPlaneFindingMode plane_finding_mode)
void ArConfig_setLightEstimationMode(const ArSession *session, ArConfig *config, ArLightEstimationMode light_estimation_mode)
void ArConfig_getPlaneFindingMode(const ArSession *session, const ArConfig *config, ArPlaneFindingMode *plane_finding_mode)
void ArConfig_create(const ArSession *session, ArConfig **out_config)
void ArConfig_getLightEstimationMode(const ArSession *session, const ArConfig *config, ArLightEstimationMode *light_estimation_mode)
void ArConfig_getUpdateMode(const ArSession *session, const ArConfig *config, ArUpdateMode *update_mode)
void ArFrame_transformDisplayUvCoords(const ArSession *session, const ArFrame *frame, int32_t num_elements, const float *uvs_in, float *uvs_out)
void ArFrame_getTimestamp(const ArSession *session, const ArFrame *frame, int64_t *out_timestamp_ns)
void ArFrame_getUpdatedAnchors(const ArSession *session, const ArFrame *frame, ArAnchorList *out_anchor_list)
void ArFrame_getLightEstimate(const ArSession *session, const ArFrame *frame, ArLightEstimate *out_light_estimate)
ArStatus ArFrame_acquireImageMetadata(const ArSession *session, const ArFrame *frame, ArImageMetadata **out_metadata)
void ArFrame_getDisplayGeometryChanged(const ArSession *session, const ArFrame *frame, int32_t *out_geometry_changed)
void ArFrame_acquireCamera(const ArSession *session, const ArFrame *frame, ArCamera **out_camera)
ArStatus ArFrame_acquirePointCloud(const ArSession *session, const ArFrame *frame, ArPointCloud **out_point_cloud)
void ArFrame_hitTest(const ArSession *session, const ArFrame *frame, float pixel_x, float pixel_y, ArHitResultList *hit_result_list)
void ArFrame_create(const ArSession *session, ArFrame **out_frame)
void ArFrame_getUpdatedTrackables(const ArSession *session, const ArFrame *frame, ArTrackableType filter_type, ArTrackableList *out_trackable_list)
void ArFrame_destroy(ArFrame *frame)
Releases an ArFrame and any references it holds.
void ArHitResultList_destroy(ArHitResultList *hit_result_list)
void ArHitResultList_getSize(const ArSession *session, const ArHitResultList *hit_result_list, int32_t *out_size)
Retrieves the number of hit results in this list.
void ArHitResult_destroy(ArHitResult *hit_result)
void ArHitResult_acquireTrackable(const ArSession *session, const ArHitResult *hit_result, ArTrackable **out_trackable)
void ArHitResult_getDistance(const ArSession *session, const ArHitResult *hit_result, float *out_distance)
Returns the distance from the camera to the hit location, in meters.
void ArHitResultList_create(const ArSession *session, ArHitResultList **out_hit_result_list)
Creates a hit result list object.
void ArHitResultList_getItem(const ArSession *session, const ArHitResultList *hit_result_list, int32_t index, ArHitResult *out_hit_result)
struct ArHitResult_ ArHitResult
struct ArHitResultList_ ArHitResultList
void ArHitResult_create(const ArSession *session, ArHitResult **out_hit_result)
Allocates an empty hit result object.
ArStatus ArHitResult_acquireNewAnchor(ArSession *session, ArHitResult *hit_result, ArAnchor **out_anchor)
void ArHitResult_getHitPose(const ArSession *session, const ArHitResult *hit_result, ArPose *out_pose)
void ArImageMetadata_getNdkCameraMetadata(const ArSession *session, const ArImageMetadata *image_metadata, const ACameraMetadata **out_ndk_metadata)
void ArImageMetadata_release(ArImageMetadata *metadata)
void ArImage_getNdkImage(const ArImage *image, const AImage **out_ndk_image)
Converts an ArImage object to an Android NDK AImage object.
struct ArImageMetadata_ ArImageMetadata
ArStatus ArFrame_acquireCameraImage(ArSession *session, ArFrame *frame, ArImage **out_image)
void ArImage_release(ArImage *image)
Releases an instance of ArImage returned by ArFrame_acquireCameraImage().
void ArLightEstimate_create(const ArSession *session, ArLightEstimate **out_light_estimate)
Allocates a light estimate object.
void ArLightEstimate_destroy(ArLightEstimate *light_estimate)
Releases the provided light estimate object.
void ArLightEstimate_getPixelIntensity(const ArSession *session, const ArLightEstimate *light_estimate, float *out_pixel_intensity)
struct ArLightEstimate_ ArLightEstimate
void ArLightEstimate_getColorCorrection(const ArSession *session, const ArLightEstimate *light_estimate, float *out_color_correction_4)
void ArLightEstimate_getState(const ArSession *session, const ArLightEstimate *light_estimate, ArLightEstimateState *out_light_estimate_state)
void ArPlane_getPolygon(const ArSession *session, const ArPlane *plane, float *out_polygon_xz)
void ArPlane_acquireSubsumedBy(const ArSession *session, const ArPlane *plane, ArPlane **out_subsumed_by)
void ArPlane_isPoseInPolygon(const ArSession *session, const ArPlane *plane, const ArPose *pose, int32_t *out_pose_in_polygon)
void ArPlane_getPolygonSize(const ArSession *session, const ArPlane *plane, int32_t *out_polygon_size)
void ArPlane_getExtentX(const ArSession *session, const ArPlane *plane, float *out_extent_x)
void ArPlane_getCenterPose(const ArSession *session, const ArPlane *plane, ArPose *out_pose)
void ArPlane_getExtentZ(const ArSession *session, const ArPlane *plane, float *out_extent_z)
void ArPlane_isPoseInExtents(const ArSession *session, const ArPlane *plane, const ArPose *pose, int32_t *out_pose_in_extents)
void ArPlane_getType(const ArSession *session, const ArPlane *plane, ArPlaneType *out_plane_type)
Retrieves the type (orientation) of the plane. See ::ArPlaneType.
void ArPoint_getPose(const ArSession *session, const ArPoint *point, ArPose *out_pose)
void ArPoint_getOrientationMode(const ArSession *session, const ArPoint *point, ArPointOrientationMode *out_orientation_mode)
void ArPointCloud_getData(const ArSession *session, const ArPointCloud *point_cloud, const float **out_point_cloud_data)
void ArPointCloud_release(ArPointCloud *point_cloud)
void ArPointCloud_getTimestamp(const ArSession *session, const ArPointCloud *point_cloud, int64_t *out_timestamp_ns)
void ArPointCloud_getNumberOfPoints(const ArSession *session, const ArPointCloud *point_cloud, int32_t *out_number_of_points)
struct ArPointCloud_ ArPointCloud
void ArPose_getPoseRaw(const ArSession *session, const ArPose *pose, float *out_pose_raw)
void ArPose_create(const ArSession *session, const float *pose_raw, ArPose **out_pose)
void ArPose_destroy(ArPose *pose)
Releases memory used by a pose object.
void ArPose_getMatrix(const ArSession *session, const ArPose *pose, float *out_matrix_col_major_4x4)
void ArSession_setDisplayGeometry(ArSession *session, int32_t rotation, int32_t width, int32_t height)
ArStatus ArSession_hostAndAcquireNewCloudAnchor(ArSession *session, const ArAnchor *anchor, ArAnchor **out_cloud_anchor)
void ArSession_getAllTrackables(const ArSession *session, ArTrackableType filter_type, ArTrackableList *out_trackable_list)
ArStatus ArSession_create(void *env, void *application_context, ArSession **out_session_pointer)
ArStatus ArSession_configure(ArSession *session, const ArConfig *config)
ArStatus ArSession_acquireNewAnchor(ArSession *session, const ArPose *pose, ArAnchor **out_anchor)
void ArSession_destroy(ArSession *session)
Releases resources used by an ARCore session.
void ArSession_setCameraTextureName(ArSession *session, uint32_t texture_id)
void ArSession_getAllAnchors(const ArSession *session, ArAnchorList *out_anchor_list)
struct ArSession_ ArSession
ArStatus ArSession_checkSupported(const ArSession *session, const ArConfig *config) AR_DEPRECATED("deprecated in release 1.2.0. Please see function documentation")
ArStatus ArSession_update(ArSession *session, ArFrame *out_frame)
ArStatus ArSession_resume(ArSession *session)
ArStatus ArSession_pause(ArSession *session)
ArStatus ArSession_resolveAndAcquireNewCloudAnchor(ArSession *session, const char *cloud_anchor_id, ArAnchor **out_cloud_anchor)
void ArTrackable_getAnchors(const ArSession *session, const ArTrackable *trackable, ArAnchorList *out_anchor_list)
void ArTrackableList_destroy(ArTrackableList *trackable_list)
void ArTrackableList_acquireItem(const ArSession *session, const ArTrackableList *trackable_list, int32_t index, ArTrackable **out_trackable)
struct ArTrackable_ ArTrackable
Trackable base type (reference type, long-lived).
void ArTrackable_getTrackingState(const ArSession *session, const ArTrackable *trackable, ArTrackingState *out_tracking_state)
void ArTrackableList_create(const ArSession *session, ArTrackableList **out_trackable_list)
Creates a trackable list object.
void ArTrackable_getType(const ArSession *session, const ArTrackable *trackable, ArTrackableType *out_trackable_type)
Retrieves the type of the trackable. See ::ArTrackableType for valid types.
struct ArTrackableList_ ArTrackableList
ArStatus ArTrackable_acquireNewAnchor(ArSession *session, ArTrackable *trackable, ArPose *pose, ArAnchor **out_anchor)
void ArTrackableList_getSize(const ArSession *session, const ArTrackableList *trackable_list, int32_t *out_size)
Retrieves the number of trackables in this list.
void ArTrackable_release(ArTrackable *trackable)
sk_sp< const SkImage > image