zed_interface.h
Go to the documentation of this file.
1 #ifndef __INTERFACE_ZED_H
2 #define __INTERFACE_ZED_H
3 
4 #include "types_c.h"
5 #include <stdbool.h>
6 #include <cuda.h>
7 #include <cuda_runtime.h>
8 
13  //#define DEBUG
14 #ifdef _WIN32
15 #ifdef INTERFACE_NOEXPORT
16 #define INTERFACE_API
17 #else
18 #ifdef INTERFACE_EXPORT
19 #define INTERFACE_API __declspec(dllexport)
20 #else
21 #define INTERFACE_API __declspec(dllimport)
22 #endif
23 #endif
24 #else
25 #define INTERFACE_API
26 #endif
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 
36  INTERFACE_API void sl_unload_all_instances();
37 
42  INTERFACE_API void sl_unload_instance(int camera_id);
43 
49  INTERFACE_API bool sl_find_usb_device(enum USB_DEVICE device);
50 
57  INTERFACE_API bool sl_create_camera(int camera_id);
58 
64  INTERFACE_API bool sl_is_opened(int camera_id);
65 
79  INTERFACE_API int sl_open_camera(int camera_id, struct SL_InitParameters* init_parameters, const unsigned int serial_number, const char* path_svo, const char* ip, int stream_port, const char* output_file, const char* opt_settings_path, const char* opencv_calib_path);
80 
81 
90  INTERFACE_API enum SL_ERROR_CODE sl_start_publishing(int camera_id, struct SL_CommunicationParameters* comm_params);
91 
97  INTERFACE_API enum SL_ERROR_CODE sl_stop_publishing(int camera_id);
98 
105  INTERFACE_API CUcontext sl_get_cuda_context(int camera_id);
106 
114  INTERFACE_API struct SL_InitParameters* sl_get_init_parameters(int camera_id);
115 
123  INTERFACE_API struct SL_RuntimeParameters* sl_get_runtime_parameters(int camera_id);
124 
133 
138  INTERFACE_API void sl_close_camera(int camera_id);
139 
148  INTERFACE_API int sl_set_region_of_interest(int camera_id, void* roi_mask, bool module[SL_MODULE_LAST]);
149 
158  INTERFACE_API int sl_get_region_of_interest(int camera_id, void* roi_mask, int width, int height, enum SL_MODULE module);
174  INTERFACE_API int sl_start_region_of_interest_auto_detection(int camera_id, struct SL_RegionOfInterestParameters* roi_param);
188  INTERFACE_API int sl_grab(int camera_id, struct SL_RuntimeParameters* runtime);
189 
197  INTERFACE_API void sl_get_device_list(struct SL_DeviceProperties device_list[MAX_CAMERA_PLUGIN], int* nb_devices);
198 
205  INTERFACE_API void sl_get_streaming_device_list(struct SL_StreamingProperties streaming_device_list[MAX_CAMERA_PLUGIN], int* nb_devices);
206 
217  INTERFACE_API int sl_reboot(int sn, bool full_reboot);
218 
232  INTERFACE_API int sl_enable_recording(int camera_id, const char* filename, enum SL_SVO_COMPRESSION_MODE compression_mode, unsigned int bitrate, int target_fps, bool transcode);
233 
238  INTERFACE_API struct SL_RecordingStatus* sl_get_recording_status(int camera_id);
243  INTERFACE_API void sl_disable_recording(int camera_id);
244 
252  INTERFACE_API struct SL_RecordingParameters* sl_get_recording_parameters(int camera_id);
253 
259  INTERFACE_API void sl_pause_recording(int camera_id, bool status);
260 
269  INTERFACE_API enum SL_ERROR_CODE sl_ingest_data_into_svo(int camera_id, struct SL_SVOData* data);
270 
282  INTERFACE_API int sl_get_svo_data_size(int camera_id, char key[128], unsigned long long ts_begin, unsigned long long ts_end);
283 
296  INTERFACE_API enum SL_ERROR_CODE sl_retrieve_svo_data(int camera_id, char key[128], int nb_data, struct SL_SVOData* data, unsigned long long ts_begin, unsigned long long ts_end);
297 
304  INTERFACE_API int sl_get_svo_data_keys_size(int camera_id);
305 
315  INTERFACE_API void sl_get_svo_data_keys(int camera_id, int nb_keys, char* keys[128]);
316 
328  INTERFACE_API int sl_enable_positional_tracking(int camera_id, struct SL_PositionalTrackingParameters* tracking_param, const char* area_file_path);
329 
330  // /**
331  // \brief Initializes and starts the positional tracking processes.
332  // This function allows you to enable the position estimation of the SDK. It only has to be called once in the camera's lifetime.
333  //
334  // \param camera_id : id of the camera instance.
335  // \param initial_world_rotation : rotation of the camera in the world frame when the camera is started. By default, it should be identity.
336  // \param initial_world_position : position of the camera in the world frame when the camera is started. By default, it should be identity.
337  // \param enable_area_memory : this mode enables the camera to remember its surroundings. This helps correct positional tracking drift, and can be helpful for positioning different cameras relative to one other in space.
338  // \param enable_pose_smoothing : this mode enables smooth pose correction for small drift correction.
339  // \param set_floor_as_origin : this mode initializes the tracking to be aligned with the floor plane to better position the camera in space.
340  // \param set_as_static : this mode defines the camera as static. If true, it will not move in the environment. This allows you to set its position using initial_world_transform.
341  // \param enable_imu_fusion : this mode enables or disables IMU fusion. When set to false, only the optical odometry will be used.
342  // \param area_file_path : area localization file that describes the surroundings, saved from a previous tracking session.
343  // \return \ref SL_ERROR_CODE::SUCCESS if everything went fine, ERROR_CODE::FAILURE otherwise.
344  // */
345  // /**INTERFACE_API int enable_positional_tracking(int camera_id, struct SL_Quaternion *initial_world_rotation, struct SL_Vector3 *initial_world_position, bool enable_area_memory, bool enable_pose_smoothing, bool set_floor_as_origin, bool set_as_static,
346  // bool enable_imu_fusion, const char* area_file_path);*/
347 
353  INTERFACE_API void sl_disable_positional_tracking(int camera_id, const char* area_file_path);
354 
361  INTERFACE_API int sl_save_area_map(int camera_id, const char* area_file_path);
362 
370  INTERFACE_API int sl_get_area_export_state(int camera_id);
371 
380  INTERFACE_API void sl_set_svo_position(int camera_id, int frame_number);
381 
387  INTERFACE_API float sl_get_camera_fps(int camera_id);
388 
394  INTERFACE_API float sl_get_current_fps(int camera_id);
395 
401  int INTERFACE_API sl_get_width(int camera_id);
402 
408  int INTERFACE_API sl_get_height(int camera_id);
409 
415  INTERFACE_API int sl_get_confidence_threshold(int camera_id);
416 
426  INTERFACE_API struct SL_CameraInformation* sl_get_camera_information(int camera_id, int res_width, int res_height);
427 
434  INTERFACE_API void sl_update_self_calibration(int camera_id);
435 
442  INTERFACE_API struct SL_CalibrationParameters* sl_get_calibration_parameters(int camera_id, bool raw_params);
443 
449  INTERFACE_API struct SL_SensorsConfiguration* sl_get_sensors_configuration(int camera_id);
450 
462  INTERFACE_API void sl_get_camera_imu_transform(int camera_id, struct SL_Vector3* translation, struct SL_Quaternion* rotation);
463 
469  INTERFACE_API int sl_get_input_type(int camera_id);
470 
476  INTERFACE_API int sl_get_zed_serial(int camera_id);
477 
483  INTERFACE_API int sl_get_camera_firmware(int camera_id);
484 
490  INTERFACE_API int sl_get_sensors_firmware(int camera_id);
491 
497  INTERFACE_API int sl_get_camera_model(int camera_id);
498 
506  INTERFACE_API unsigned long long sl_get_image_timestamp(int camera_id);
507 
515  INTERFACE_API unsigned long long sl_get_current_timestamp(int camera_id);
516 
522  INTERFACE_API int sl_get_svo_number_of_frames(int camera_id);
523 
530  INTERFACE_API bool sl_is_camera_setting_supported(int camera_id, enum SL_VIDEO_SETTINGS setting);
531 
540  INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings(int camera_id, enum SL_VIDEO_SETTINGS mode, int value);
541 
556  INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings_min_max(int camera_id, enum SL_VIDEO_SETTINGS mode, int min, int max);
557 
567  INTERFACE_API enum SL_ERROR_CODE sl_set_roi_for_aec_agc(int camera_id, enum SL_SIDE side, struct SL_Rect* roi, bool reset);
568 
578  INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings(int c_id, enum SL_VIDEO_SETTINGS mode, int* value);
579 
589  INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings_min_max(int c_id, enum SL_VIDEO_SETTINGS mode, int* minvalue, int* maxvalue);
590 
600  INTERFACE_API enum SL_ERROR_CODE sl_get_roi_for_aec_agc(int id, enum SL_SIDE side, struct SL_Rect* roi);
601 
607  INTERFACE_API float sl_get_depth_min_range_value(int camera_id);
608 
614  INTERFACE_API float sl_get_depth_max_range_value(int camera_id);
615 
623  INTERFACE_API int sl_get_current_min_max_depth(int camera_id, float* min, float* max);
624 
629  INTERFACE_API int sl_get_number_zed_connected();
630 
635  INTERFACE_API char* sl_get_sdk_version();
636 
644  INTERFACE_API int sl_convert_coordinate_system(struct SL_Quaternion* rotation, struct SL_Vector3* translation, enum SL_COORDINATE_SYSTEM coord_system_src, enum SL_COORDINATE_SYSTEM coord_system_dest);
645 
646  // /**
647  // \brief Returns the version of the currently installed ZED SDK.
648  // \param major : major int of the version filled
649  // \param minor : minor int of the version filled
650  // \param patch : patch int of the version filled
651  // */
652  // INTERFACE_API void sl_get_sdk_version(int *major, int *minor, int *patch);
653 
659  INTERFACE_API int sl_get_svo_position(int camera_id);
660 
668  INTERFACE_API int sl_get_svo_position_at_timestamp(int camera_id, unsigned long long timestamp);
669 
675  INTERFACE_API unsigned int sl_get_frame_dropped_count(int camera_id);
676 
677 
681 
686  INTERFACE_API bool sl_is_positional_tracking_enabled(int camera_id);
687 
698  INTERFACE_API int sl_get_position_at_target_frame(int camera_id, struct SL_Quaternion* rotation, struct SL_Vector3* position, struct SL_Quaternion* target_quaternion, struct SL_Vector3* target_translation, enum SL_REFERENCE_FRAME reference_frame);
706  INTERFACE_API int sl_get_position_data(int camera_id, struct SL_PoseData* poseData, enum SL_REFERENCE_FRAME reference_frame);
715  INTERFACE_API int sl_get_position(int camera_id, struct SL_Quaternion* rotation, struct SL_Vector3* position, enum SL_REFERENCE_FRAME reference_frame);
723  INTERFACE_API int sl_get_position_array(int camera_id, float* pose, enum SL_REFERENCE_FRAME reference_frame);
724 
730 
738  INTERFACE_API int sl_reset_positional_tracking(int camera_id, struct SL_Quaternion rotation, struct SL_Vector3 translation);
748  INTERFACE_API int sl_reset_positional_tracking_with_offset(int camera_id, struct SL_Quaternion rotation, struct SL_Vector3 translation, struct SL_Quaternion target_quaternion, struct SL_Vector3 target_translation);
761  INTERFACE_API int sl_set_imu_prior_orientation(int camera_id, struct SL_Quaternion rotation);
773  INTERFACE_API int sl_get_imu_orientation(int camera_id, struct SL_Quaternion* quat, enum SL_TIME_REFERENCE time_reference);
785  INTERFACE_API int sl_get_sensors_data(int camera_id, struct SL_SensorsData* data, enum SL_TIME_REFERENCE time_reference);
786 
787 
791 
805  INTERFACE_API void sl_spatial_mapping_merge_chunks(int camera_id, int nb_faces, int* nb_vertices, int* nb_triangles, int* nb_updated_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh);
806 
817  INTERFACE_API int sl_enable_spatial_mapping(int camera_id, struct SL_SpatialMappingParameters* mapping_param);
822  INTERFACE_API void sl_disable_spatial_mapping(int camera_id);
823 
837  INTERFACE_API void sl_pause_spatial_mapping(int camera_id, bool status);
842  INTERFACE_API void sl_request_mesh_async(int camera_id);
850  INTERFACE_API int sl_get_mesh_request_status_async(int camera_id);
858  INTERFACE_API enum SL_SPATIAL_MAPPING_STATE sl_get_spatial_mapping_state(int camera_id);
871  INTERFACE_API int sl_update_mesh(int camera_id, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh);
886  INTERFACE_API int sl_retrieve_mesh(int camera_id, float* vertices, int* triangles, unsigned char* colors, float* uvs, unsigned char* texture_ptr, const int max_submeshes);
899  INTERFACE_API int sl_update_chunks(int camera_id, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh);
914  INTERFACE_API int sl_retrieve_chunks(int camera_id, float* vertices, int* triangles, unsigned char* colors, float* uvs, unsigned char* texture_ptr, const int max_submesh);
915 
922  INTERFACE_API int sl_update_fused_point_cloud(int camera_id, int* nb_vertices_tot);
930  INTERFACE_API int sl_retrieve_fused_point_cloud(int camera_id, float* vertices);
936  INTERFACE_API int sl_extract_whole_spatial_map(int camera_id);
944  INTERFACE_API bool sl_save_mesh(int camera_id, const char* filename, enum SL_MESH_FILE_FORMAT format);
952  INTERFACE_API bool sl_save_point_cloud(int c_id, const char* filename, enum SL_MESH_FILE_FORMAT format);
967  INTERFACE_API bool sl_load_mesh(int camera_id, const char* filename, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* num_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, int* textures_size, const int max_submesh);
981  INTERFACE_API bool sl_apply_texture(int camera_id, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_updated_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, int* textures_size, const int max_submesh);
995  INTERFACE_API bool sl_filter_mesh(int camera_id, enum SL_MESH_FILTER filter_params, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_updated_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh);
1003  INTERFACE_API void sl_spatial_mapping_get_gravity_estimation(int camera_id, struct SL_Vector3* gravity);
1004 
1005 
1007 
1015  INTERFACE_API int sl_update_whole_mesh(int camera_id, int* nb_vertices, int* nb_triangles);
1027  INTERFACE_API int sl_retrieve_whole_mesh(int camera_id, float* vertices, int* triangles, unsigned char* colors, float* uvs, unsigned char* texture_ptr);
1038  INTERFACE_API bool sl_load_whole_mesh(int camera_id, const char* filename, int* nb_vertices, int* nb_triangles, int* texture_size);
1047  INTERFACE_API bool sl_apply_whole_texture(int camera_id, int* nb_vertices, int* nb_triangles, int* texture_size);
1055  INTERFACE_API bool sl_filter_whole_mesh(int camera_id, enum SL_MESH_FILTER filter_params, int* nb_vertices, int* nb_triangles);
1056 
1057 
1061 
1071  INTERFACE_API struct SL_PlaneData* sl_find_floor_plane(int camera_id, struct SL_Quaternion* reset_quaternion, struct SL_Vector3* reset_translation, struct SL_Quaternion prior_rotation, struct SL_Vector3 prior_translation);
1080  INTERFACE_API struct SL_PlaneData* sl_find_plane_at_hit(int camera_id, struct SL_Vector2 pixel, struct SL_PlaneDetectionParameters* params, bool thres);
1090  INTERFACE_API int sl_convert_floorplane_to_mesh(int camera_id, float* vertices, int* triangles, int* nb_vertices_tot, int* nb_triangles_tot);
1100  INTERFACE_API int sl_convert_hitplane_to_mesh(int camera_id, float* vertices, int* triangles, int* nb_vertices_tot, int* nb_triangles_tot);
1101 
1102 
1106 
1123  INTERFACE_API int sl_retrieve_measure(int camera_id, void* measure_ptr, enum SL_MEASURE type, enum SL_MEM mem, int width, int height);
1137  INTERFACE_API int sl_retrieve_image(int camera_id, void* image_ptr, enum SL_VIEW type, enum SL_MEM mem, int width, int height);
1138 
1146  INTERFACE_API int sl_convert_image(void* image_in_ptr, void* image_signed_ptr, cudaStream_t stream);
1147 
1151 
1173  INTERFACE_API int sl_enable_streaming(int camera_id, enum SL_STREAMING_CODEC codec, unsigned int bitrate, unsigned short port, int gop_size, int adaptative_bitrate, int chunk_size, int target_framerate);
1174 
1179  INTERFACE_API void sl_disable_streaming(int camera_id);
1185  INTERFACE_API int sl_is_streaming_enabled(int camera_id);
1186 
1193  INTERFACE_API struct SL_StreamingParameters* sl_get_streaming_parameters(int camera_id);
1194 
1198 
1206  INTERFACE_API int sl_save_current_image(int camera_id, enum SL_VIEW view, const char* file_name);
1214  INTERFACE_API int sl_save_current_depth(int camera_id, enum SL_SIDE side, const char* file_name);
1222  INTERFACE_API int sl_save_current_point_cloud(int camera_id, enum SL_SIDE side, const char* file_name);
1223 
1224 
1225 
1226 #if WITH_OBJECT_DETECTION
1227 
1231 
1238  INTERFACE_API struct SL_AI_Model_status* sl_check_AI_model_status(enum SL_AI_MODELS model, int gpu_id);
1239 
1246  INTERFACE_API int sl_optimize_AI_model(enum SL_AI_MODELS model, int gpu_id);
1247 
1270  INTERFACE_API int sl_enable_object_detection(int camera_id, struct SL_ObjectDetectionParameters* object_detection_parameters);
1271 
1280 
1281 
1290  INTERFACE_API void sl_disable_object_detection(int camera_id, unsigned int instance_id, bool force_disable_all_instances);
1291 
1314  INTERFACE_API int sl_enable_body_tracking(int camera_id, struct SL_BodyTrackingParameters* body_tracking_parameters);
1315 
1323  INTERFACE_API struct SL_BodyTrackingParameters* sl_get_body_tracking_parameters(int camera_id);
1324 
1333  INTERFACE_API void sl_disable_body_tracking(int camera_id, unsigned int instance_id, bool force_disable_all_instances);
1334 
1340  INTERFACE_API int sl_generate_unique_id(char* uuid);
1341 
1351  INTERFACE_API int sl_ingest_custom_box_objects(int camera_id, int nb_objects, struct SL_CustomBoxObjectData* objects_in, unsigned int instance_id);
1352 
1362  INTERFACE_API int sl_ingest_custom_mask_objects(int camera_id, int nb_objects, struct SL_CustomMaskObjectData* objects_in, unsigned int instance_id);
1363 
1372  INTERFACE_API int sl_retrieve_objects(int camera_id, struct SL_ObjectDetectionRuntimeParameters* object_detection_runtime_parameters, struct SL_Objects* objects, unsigned int instance_id);
1373 
1382  INTERFACE_API int sl_retrieve_custom_objects(int camera_id, struct SL_CustomObjectDetectionRuntimeParameters* object_detection_runtime_parameters, struct SL_Objects* objects, unsigned int instance_id);
1383 
1392  INTERFACE_API int sl_retrieve_bodies(int camera_id, struct SL_BodyTrackingRuntimeParameters* body_tracking_runtime_parameters, struct SL_Bodies* bodies, unsigned int instance_id);
1393 
1400  INTERFACE_API int sl_update_objects_batch(int camera_id, int* nb_batches);
1401 
1410  INTERFACE_API int sl_get_objects_batch(int camera_id, int index, struct SL_ObjectsBatch* objs_batch);
1411 
1412  INTERFACE_API int sl_get_objects_batch_csharp(int camera_id, int index, int* nb_data, int* id, int* label, int* sublabel, int* tracking_state,
1413  struct SL_Vector3 positions[MAX_TRAJECTORY_SIZE], float position_covariances[MAX_TRAJECTORY_SIZE][6], struct SL_Vector3 velocities[MAX_TRAJECTORY_SIZE], unsigned long long timestamps[MAX_TRAJECTORY_SIZE],
1414  struct SL_Vector2 bounding_boxes_2d[MAX_TRAJECTORY_SIZE][4], struct SL_Vector3 bounding_boxes[MAX_TRAJECTORY_SIZE][8], float confidences[MAX_TRAJECTORY_SIZE], int action_states[MAX_TRAJECTORY_SIZE],
1415  struct SL_Vector2 head_bounding_boxes_2d[MAX_TRAJECTORY_SIZE][4], struct SL_Vector3 head_bounding_boxes[MAX_TRAJECTORY_SIZE][8],
1416  struct SL_Vector3 head_positions[MAX_TRAJECTORY_SIZE]);
1417 
1418 #if 0
1425  INTERFACE_API int sl_update_bodies_batch(int camera_id, int* nb_batches);
1426 
1427 
1428 
1435  INTERFACE_API int sl_get_bodies_batch(int camera_id, int index, struct SL_BodiesBatch* bodies_batch);
1436 
1437 
1438 #endif
1439 #endif
1440 #ifdef __cplusplus
1441 }
1442 #endif
1443 
1447 
1448 #ifdef __cplusplus
1449 extern "C" {
1450 #endif
1451 
1457 
1462 
1463  /*
1464  * \brief adds a camera to the multi camera handler
1465  * \param [in] uuid : unique ID that is associated with the camera for easy access.
1466  * \param [in] params : communications parameters
1467  * \param [in] pose_translation : position of the camera
1468  * \param [in] pose_rotation : orientation of the camera
1469  * \return SL_FUSION_ERROR_CODE
1470  * */
1471  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_subscribe(struct SL_CameraIdentifier* uuid, struct SL_CommunicationParameters* params, struct SL_Vector3* pose_translation, struct SL_Quaternion* pose_rotation);
1472 
1482  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_image(void* mat, struct SL_CameraIdentifier* uuid, int width, int height);
1483 
1494  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_measure(void* mat, struct SL_CameraIdentifier* uuid, enum SL_MEASURE measure, int width, int height);
1495 
1502 
1503  /*
1504  * \brief update the pose of the camera in the fusion coordinate space
1505  * \param [in] uuid : unique ID that is associated with the camera for easy access.
1506  * \param [in] pose_translation : new position of the camera
1507  * \param [in] pose_rotation : new orientation of the camera
1508  * \return SL_FUSION_ERROR_CODE
1509  * */
1510  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_update_pose(struct SL_CameraIdentifier* uuid, struct SL_Vector3* pose_translation, struct SL_Quaternion* pose_rotation);
1511 
1512  /*
1513  * \brief Returns the state of a connected data sender.
1514  * \param [in] uuid : Identifier of the camera.
1515  * \return SL_SENDER_ERROR_CODE : State of the sender
1516  * */
1517  INTERFACE_API enum SL_SENDER_ERROR_CODE sl_fusion_get_sender_state(struct SL_CameraIdentifier* uuid);
1518 
1528  INTERFACE_API void sl_fusion_read_configuration_file(const char* json_config_filename, enum SL_COORDINATE_SYSTEM coord_system, enum SL_UNIT unit, struct SL_FusionConfiguration configs[MAX_FUSED_CAMERAS], int* nb_cameras);
1529 
1530 
1540  INTERFACE_API void sl_fusion_read_configuration(const char* fusion_configuration, enum SL_COORDINATE_SYSTEM coord_system, enum SL_UNIT unit, struct SL_FusionConfiguration configs[MAX_FUSED_CAMERAS], int* nb_cameras);
1541 
1545 
1551 
1555  INTERFACE_API void sl_fusion_disable_body_tracking();
1556 
1565 
1573 
1574 
1578 
1586 
1595  INTERFACE_API enum SL_POSITIONAL_TRACKING_STATE sl_fusion_get_position(struct SL_PoseData* pose, enum SL_REFERENCE_FRAME reference_frame,
1596  struct SL_CameraIdentifier* uuid, enum SL_POSITION_TYPE retrieve_type);
1597 
1598 
1604 
1609 
1613 
1619  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_ingest_gnss_data(struct SL_GNSSData* gnss_data, bool radian);
1620 
1627  INTERFACE_API enum SL_POSITIONAL_TRACKING_STATE sl_fusion_get_current_gnss_data(struct SL_GNSSData* data, bool radian);
1628 
1635  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_get_geo_pose(struct SL_GeoPose* pose, bool radian);
1636 
1644  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_geo_to_camera(struct SL_LatLng* in, struct SL_PoseData* out, bool radian);
1645 
1652  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_camera_to_geo(struct SL_PoseData* in, struct SL_GeoPose* out, bool radian);
1653 
1658  INTERFACE_API unsigned long long sl_fusion_get_current_timestamp();
1659 
1667  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_get_current_gnss_calibration_std(float* yaw_std, struct SL_Vector3* position_std);
1668 
1673  INTERFACE_API void sl_fusion_get_geo_tracking_calibration(struct SL_Vector3* translation, struct SL_Quaternion* rotation);
1674 
1678  INTERFACE_API void sl_fusion_close();
1679 
1680 #ifdef __cplusplus
1681 }
1682 #endif
1683 
1684 
1685 
1686 #ifdef __cplusplus
1687 extern "C" {
1688 #endif
1689 
1693 
1702  INTERFACE_API void* sl_mat_create_new(int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem);
1707  INTERFACE_API void* sl_mat_create_new_empty();
1713  INTERFACE_API bool sl_mat_is_init(void* ptr);
1719  INTERFACE_API void sl_mat_free(void* ptr, enum SL_MEM mem);
1725  INTERFACE_API void sl_mat_get_infos(void* ptr, char* buffer);
1726 
1727  // GET values
1737  INTERFACE_API int sl_mat_get_value_uchar(void* ptr, int col, int row, unsigned char* value, enum SL_MEM mem);
1747  INTERFACE_API int sl_mat_get_value_uchar2(void* ptr, int col, int row, struct SL_Uchar2* value, enum SL_MEM mem);
1757  INTERFACE_API int sl_mat_get_value_uchar3(void* ptr, int col, int row, struct SL_Uchar3* value, enum SL_MEM mem);
1767  INTERFACE_API int sl_mat_get_value_uchar4(void* ptr, int col, int row, struct SL_Uchar4* value, enum SL_MEM mem);
1768 
1778  INTERFACE_API int sl_mat_get_value_float(void* ptr, int col, int row, float* value, enum SL_MEM mem);
1788  INTERFACE_API int sl_mat_get_value_float2(void* ptr, int col, int row, struct SL_Vector2* value, enum SL_MEM mem);
1798  INTERFACE_API int sl_mat_get_value_float3(void* ptr, int col, int row, struct SL_Vector3* value, enum SL_MEM mem);
1808  INTERFACE_API int sl_mat_get_value_float4(void* ptr, int col, int row, struct SL_Vector4* value, enum SL_MEM mem);
1809 
1810  // SET VALUE
1820  INTERFACE_API int sl_mat_set_value_uchar(void* ptr, int col, int row, unsigned char value, enum SL_MEM mem);
1830  INTERFACE_API int sl_mat_set_value_uchar2(void* ptr, int col, int row, struct SL_Uchar2 value, enum SL_MEM mem);
1840  INTERFACE_API int sl_mat_set_value_uchar3(void* ptr, int col, int row, struct SL_Uchar3 value, enum SL_MEM mem);
1850  INTERFACE_API int sl_mat_set_value_uchar4(void* ptr, int col, int row, struct SL_Uchar4 value, enum SL_MEM mem);
1860  INTERFACE_API int sl_mat_set_value_float(void* ptr, int col, int row, float value, enum SL_MEM mem);
1870  INTERFACE_API int sl_mat_set_value_float2(void* ptr, int col, int row, struct SL_Vector2 value, enum SL_MEM mem);
1880  INTERFACE_API int sl_mat_set_value_float3(void* ptr, int col, int row, struct SL_Vector3 value, enum SL_MEM mem);
1890  INTERFACE_API int sl_mat_set_value_float4(void* ptr, int col, int row, struct SL_Vector4 value, enum SL_MEM mem);
1891 
1892  //SET TO
1900  INTERFACE_API int sl_mat_set_to_uchar(void* ptr, unsigned char value, enum SL_MEM mem);
1908  INTERFACE_API int sl_mat_set_to_uchar2(void* ptr, struct SL_Uchar2 value, enum SL_MEM mem);
1916  INTERFACE_API int sl_mat_set_to_uchar3(void* ptr, struct SL_Uchar3 value, enum SL_MEM mem);
1924  INTERFACE_API int sl_mat_set_to_uchar4(void* ptr, struct SL_Uchar4 value, enum SL_MEM mem);
1932  INTERFACE_API int sl_mat_set_to_float(void* ptr, float value, enum SL_MEM mem);
1940  INTERFACE_API int sl_mat_set_to_float2(void* ptr, struct SL_Vector2 value, enum SL_MEM mem);
1948  INTERFACE_API int sl_mat_set_to_float3(void* ptr, struct SL_Vector3 value, enum SL_MEM mem);
1956  INTERFACE_API int sl_mat_set_to_float4(void* ptr, struct SL_Vector4 value, enum SL_MEM mem);
1957 
1963  INTERFACE_API int sl_mat_update_cpu_from_gpu(void* ptr);
1969  INTERFACE_API int sl_mat_update_gpu_from_cpu(void* ptr);
1977  INTERFACE_API int sl_mat_copy_to(void* ptr, void* ptr_dest, enum SL_COPY_TYPE cpy_type);
1978 
1987  INTERFACE_API int sl_mat_read(void* ptr, const char* file_path);
1994  INTERFACE_API int sl_mat_write(void* ptr, const char* file_path);
2000  INTERFACE_API int sl_mat_get_width(void* ptr);
2006  INTERFACE_API int sl_mat_get_height(void* ptr);
2012  INTERFACE_API int sl_mat_get_channels(void* ptr);
2018  INTERFACE_API int sl_mat_get_memory_type(void* ptr);
2019 
2025  INTERFACE_API int sl_mat_get_data_type(void* ptr);
2031  INTERFACE_API int sl_mat_get_pixel_bytes(void* ptr);
2038  INTERFACE_API int sl_mat_get_step(void* ptr, enum SL_MEM mem);
2045  INTERFACE_API int sl_mat_get_step_bytes(void* ptr, enum SL_MEM mem);
2051  INTERFACE_API int sl_mat_get_width_bytes(void* ptr);
2056  INTERFACE_API bool sl_mat_is_memory_owner(void* ptr);
2062  INTERFACE_API struct SL_Resolution sl_mat_get_resolution(void* ptr);
2071  INTERFACE_API void sl_mat_alloc(void* ptr, int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem);
2080  INTERFACE_API int sl_mat_set_from(void* ptr, void* ptr_source, enum SL_COPY_TYPE copy_type);
2087  INTERFACE_API int* sl_mat_get_ptr(void* ptr, enum SL_MEM mem);
2093  INTERFACE_API int sl_mat_clone(void* ptr, void* ptr_source);
2094 
2100  INTERFACE_API void sl_mat_swap(void* ptr_1, void* ptr_2);
2101 
2102 #ifdef __cplusplus
2103 }
2104 #endif
2105 
2106 #endif
Structure containing AI model status.
Definition: types_c.h:2360
Structure containing the results of the body tracking module.
Definition: types_c.h:3242
Holds the options used to initialize the body tracking module of the Fusion.
Definition: types_c.h:3785
Holds the options used to change the behavior of the body tracking module at runtime.
Definition: types_c.h:3806
Structure containing a set of parameters for the body tracking module.
Definition: types_c.h:2654
Structure containing a set of runtime parameters for the body tracking module.
Definition: types_c.h:2750
Structure containing intrinsic and extrinsic parameters of the camera (translation and rotation).
Definition: types_c.h:1732
Used to identify a specific camera in the Fusion API.
Definition: types_c.h:3832
Structure containing information of a single camera (serial number, model, input type,...
Definition: types_c.h:1858
Definition: types_c.h:3645
Structure that store externally detected objects.
Definition: types_c.h:2908
Definition: types_c.h:2973
Structure containing a set of runtime parameters for the object detection module using your own model...
Definition: types_c.h:2629
Structure containing information about the properties of a camera.
Definition: types_c.h:1625
Class containing the overall position fusion status.
Definition: types_c.h:3617
Useful struct to store the Fusion configuration, can be read from /write to a JSON file.
Definition: types_c.h:3654
Holds the metrics of the fusion process.
Definition: types_c.h:3884
Structure containing GNSS data to be used for positional tracking as prior.
Definition: types_c.h:3913
Holds Geo reference position.
Definition: types_c.h:3985
Holds the options used to initialize the Fusion object.
Definition: types_c.h:3738
Structure containing the options used to initialize a camera.
Definition: types_c.h:1309
Represents a world position in LatLng format.
Definition: types_c.h:3962
Structure containing a set of parameters for the object detection module.
Definition: types_c.h:2372
Structure containing a set of runtime parameters for the object detection module.
Definition: types_c.h:2506
Structure containing batched data of a detected objects from the object detection module.
Definition: types_c.h:3284
Structure containing the results of the object detection module.
Definition: types_c.h:3051
Structure representing a plane defined by a point and a normal, or a plane equation.
Definition: types_c.h:229
enum UNITY_PLAN_TYPE type
Type of the plane defined by its orientation.
Definition: types_c.h:235
Structure containing a set of parameters for the plane detection functionality.
Definition: types_c.h:2007
Structure containing positional tracking data giving the position and orientation of the camera in 3D...
Definition: types_c.h:180
Holds the options used for initializing the positional tracking fusion module.
Definition: types_c.h:4128
Structure containing a set of parameters for the positional tracking module initialization.
Definition: types_c.h:1889
Lists the different status of positional tracking.
Definition: types_c.h:765
Structure representing a quaternion.
Definition: types_c.h:25
Structure containing the options used to record.
Definition: types_c.h:2063
Structure containing information about the status of the recording.
Definition: types_c.h:2027
Structure defining a 2D rectangle with top-left corner coordinates and width/height in pixels.
Definition: types_c.h:3433
Structure containing a set of parameters for the region of interest.
Definition: types_c.h:1978
Structure containing the width and height of an image.
Definition: types_c.h:1288
long long height
Height of the image in pixels.
Definition: types_c.h:1296
long long width
Width of the image in pixels.
Definition: types_c.h:1292
Structure containing parameters that defines the behavior of sl_grab().
Definition: types_c.h:1564
Structure containing data that can be stored in and retrieved from SVOs. That information will be ing...
Definition: types_c.h:2112
Structure containing information about all the sensors available in the current device.
Definition: types_c.h:1806
Structure containing all sensors data (except image sensors) to be used for positional tracking or en...
Definition: types_c.h:397
Structure containing a set of parameters for the spatial mapping module.
Definition: types_c.h:2254
Structure containing the options used to stream with the ZED SDK.
Definition: types_c.h:2136
Structure containing information about the properties of a streaming device.
Definition: types_c.h:2213
Structure representing an unsigned char 2-dimensional vector.
Definition: types_c.h:104
Structure representing an unsigned char 3-dimensional vector.
Definition: types_c.h:118
Structure representing an unsigned char 4-dimensional vector.
Definition: types_c.h:136
Structure representing a generic 2-dimensional vector.
Definition: types_c.h:35
Structure representing a generic 3-dimensional vector.
Definition: types_c.h:49
Structure representing a generic 4-dimensional vector.
Definition: types_c.h:67
SL_COORDINATE_SYSTEM
Lists available coordinates systems for positional tracking and 3D measures.
Definition: types_c.h:511
SL_SPATIAL_MAPPING_STATE
Lists the different states of spatial mapping.
Definition: types_c.h:807
SL_MODULE
Definition: types_c.h:1264
SL_MESH_FILE_FORMAT
Lists available mesh file formats.
Definition: types_c.h:835
SL_AI_MODELS
Lists available AI models.
Definition: types_c.h:974
SL_STREAMING_CODEC
Lists the different encoding types for image streaming.
Definition: types_c.h:615
SL_MAT_TYPE
Lists available matrix formats.
Definition: types_c.h:891
SL_VIDEO_SETTINGS
Lists available camera settings for the camera (contrast, hue, saturation, gain, ....
Definition: types_c.h:625
SL_ERROR_CODE
Lists error codes in the ZED SDK.
Definition: types_c.h:435
SL_TIME_REFERENCE
Lists possible time references for timestamps or data.
Definition: types_c.h:607
SL_SIDE
Lists possible sides on which to get data from.
Definition: types_c.h:579
SL_REFERENCE_FRAME
Lists possible types of position matrix used to store camera path and pose.
Definition: types_c.h:599
SL_MESH_FILTER
Lists available mesh filtering intensities.
Definition: types_c.h:826
SL_POSITIONAL_TRACKING_STATE
Lists the different states of positional tracking.
Definition: types_c.h:711
SL_MEM
Lists available memory type.
Definition: types_c.h:547
SL_GNSS_FUSION_STATUS
Class containing the current GNSS fusion status.
Definition: types_c.h:3594
SL_SVO_COMPRESSION_MODE
Lists available compression modes for SVO recording.
Definition: types_c.h:877
SL_VIEW
Lists available views.
Definition: types_c.h:680
SL_POSITION_TYPE
Lists the types of possible position outputs.
Definition: types_c.h:1277
SL_COPY_TYPE
Lists available copy operation on matrix.
Definition: types_c.h:866
SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE
Lists the different states of region of interest auto detection.
Definition: types_c.h:785
SL_UNIT
Lists available units for measures.
Definition: types_c.h:498
SL_FUSION_ERROR_CODE
Lists the types of error that can be raised by the Fusion.
Definition: types_c.h:3501
SL_SENDER_ERROR_CODE
Lists the types of error that can be raised during the Fusion by senders.
Definition: types_c.h:3522
SL_MEASURE
Lists retrievable measures.
Definition: types_c.h:655
INTERFACE_API struct SL_CameraInformation * sl_get_camera_information(int camera_id, int res_width, int res_height)
Returns the SL_CameraInformation associated the camera.
INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_get_current_gnss_calibration_std(float *yaw_std, struct SL_Vector3 *position_std)
Get the current calibration uncertainty defined during calibration process.
INTERFACE_API int sl_retrieve_bodies(int camera_id, struct SL_BodyTrackingRuntimeParameters *body_tracking_runtime_parameters, struct SL_Bodies *bodies, unsigned int instance_id)
Retrieve bodies detected by the body tracking module.
INTERFACE_API int sl_mat_get_value_uchar3(void *ptr, int col, int row, struct SL_Uchar3 *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_U8_C3.
INTERFACE_API int sl_mat_get_value_uchar(void *ptr, int col, int row, unsigned char *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_U8_C1.
INTERFACE_API void * sl_mat_create_new(int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem)
Creates a matrix with the given resolution.
INTERFACE_API enum SL_ERROR_CODE sl_start_publishing(int camera_id, struct SL_CommunicationParameters *comm_params)
Set this camera as a data provider for the Fusion module.
INTERFACE_API struct SL_SpatialMappingParameters * sl_get_spatial_mapping_parameters(int camera_id)
Returns the SL_SpatialMappingParameters used.
INTERFACE_API int sl_mat_get_value_float3(void *ptr, int col, int row, struct SL_Vector3 *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_F32_C3.
INTERFACE_API void sl_disable_object_detection(int camera_id, unsigned int instance_id, bool force_disable_all_instances)
Disables the Object Detection process.
INTERFACE_API void sl_mat_free(void *ptr, enum SL_MEM mem)
Frees the memory of the matrix.
INTERFACE_API int * sl_mat_get_ptr(void *ptr, enum SL_MEM mem)
Gets a pointer to the matrix.
INTERFACE_API int sl_convert_coordinate_system(struct SL_Quaternion *rotation, struct SL_Vector3 *translation, enum SL_COORDINATE_SYSTEM coord_system_src, enum SL_COORDINATE_SYSTEM coord_system_dest)
Change the coordinate system of a transform matrix.
INTERFACE_API bool sl_create_camera(int camera_id)
Creates a camera with resolution mode, fps and id for linux.
INTERFACE_API int sl_mat_set_value_float(void *ptr, int col, int row, float value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_F32_C1.
INTERFACE_API float sl_get_current_fps(int camera_id)
Returns the current FPS.
INTERFACE_API bool sl_is_camera_setting_supported(int camera_id, enum SL_VIDEO_SETTINGS setting)
Test if the video setting is supported by the camera.
INTERFACE_API int sl_mat_set_value_float4(void *ptr, int col, int row, struct SL_Vector4 value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_F32_C4.
INTERFACE_API int sl_ingest_custom_box_objects(int camera_id, int nb_objects, struct SL_CustomBoxObjectData *objects_in, unsigned int instance_id)
Feed the 3D Object tracking function with your own 2D bounding boxes from your own detection algorith...
INTERFACE_API struct SL_ObjectDetectionParameters * sl_get_object_detection_parameters(int camera_id)
Returns the SL_ObjectDetectionParameters used.
INTERFACE_API int sl_set_region_of_interest(int camera_id, void *roi_mask, bool module[SL_MODULE_LAST])
Defines a region of interest to focus on for all the SDK, discarding other parts.
INTERFACE_API void sl_fusion_read_configuration(const char *fusion_configuration, enum SL_COORDINATE_SYSTEM coord_system, enum SL_UNIT unit, struct SL_FusionConfiguration configs[MAX_FUSED_CAMERAS], int *nb_cameras)
Read a Configuration JSON string to configure a fusion process.
INTERFACE_API int sl_retrieve_custom_objects(int camera_id, struct SL_CustomObjectDetectionRuntimeParameters *object_detection_runtime_parameters, struct SL_Objects *objects, unsigned int instance_id)
Retrieve objects detected by the custom object detection module.
INTERFACE_API bool sl_filter_mesh(int camera_id, enum SL_MESH_FILTER filter_params, int *nb_vertices_per_submesh, int *nb_triangles_per_submesh, int *nb_updated_submeshes, int *updated_indices, int *nb_vertices_tot, int *nb_triangles_tot, const int max_submesh)
Filters a mesh to removes triangles while still preserving its overall shaper (though less accurate).
INTERFACE_API struct SL_PositionalTrackingStatus * sl_get_positional_tracking_status(int camera_id)
Return the current status of positional tracking module.
INTERFACE_API int sl_get_camera_firmware(int camera_id)
Gets the ZED camera current firmware version.
INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings(int camera_id, enum SL_VIDEO_SETTINGS mode, int value)
Sets the value of the requested camera setting (gain, brightness, hue, exposure, etc....
INTERFACE_API int sl_mat_copy_to(void *ptr, void *ptr_dest, enum SL_COPY_TYPE cpy_type)
Copies data from this matrix to another matrix (deep copy).
INTERFACE_API int sl_mat_read(void *ptr, const char *file_path)
Reads an image from a file.
INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings_min_max(int c_id, enum SL_VIDEO_SETTINGS mode, int *minvalue, int *maxvalue)
Returns the current range of the requested camera setting (setting with range value).
INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_camera_to_geo(struct SL_PoseData *in, struct SL_GeoPose *out, bool radian)
returns the current GeoPose
INTERFACE_API int sl_enable_body_tracking(int camera_id, struct SL_BodyTrackingParameters *body_tracking_parameters)
Initializes and starts the Deep Learning Body Tracking module.
INTERFACE_API int sl_mat_set_to_uchar(void *ptr, unsigned char value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_U8_C1 with the given value.
INTERFACE_API int sl_get_svo_data_size(int camera_id, char key[128], unsigned long long ts_begin, unsigned long long ts_end)
Gets the size of data available for a given key. Must be called before sl_retrieve_svo_data to initia...
INTERFACE_API int sl_mat_set_value_float3(void *ptr, int col, int row, struct SL_Vector3 value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_F32_C3.
INTERFACE_API unsigned int sl_get_frame_dropped_count(int camera_id)
Gets the number of frames dropped since sl_grab() was called for the first time. Based on camera time...
INTERFACE_API int sl_ingest_custom_mask_objects(int camera_id, int nb_objects, struct SL_CustomMaskObjectData *objects_in, unsigned int instance_id)
Feed the 3D Object tracking function with your own 2D bounding boxes with masks from your own detecti...
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_measure(void *mat, struct SL_CameraIdentifier *uuid, enum SL_MEASURE measure, int width, int height)
Returns the current measure of the specified camera, the data is synchronized.
INTERFACE_API int sl_mat_get_value_float4(void *ptr, int col, int row, struct SL_Vector4 *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_F32_C4.
INTERFACE_API struct SL_RecordingParameters * sl_get_recording_parameters(int camera_id)
Returns the SL_RecordingParameters used.
INTERFACE_API enum SL_ERROR_CODE sl_retrieve_svo_data(int camera_id, char key[128], int nb_data, struct SL_SVOData *data, unsigned long long ts_begin, unsigned long long ts_end)
Retrieves SVOData from an SVO file. The user is reponsible for correctly allocating the size of the d...
INTERFACE_API int sl_get_position_at_target_frame(int camera_id, struct SL_Quaternion *rotation, struct SL_Vector3 *position, struct SL_Quaternion *target_quaternion, struct SL_Vector3 *target_translation, enum SL_REFERENCE_FRAME reference_frame)
Gets the current position of the camera and state of the tracking, with an optional offset to the tra...
INTERFACE_API int sl_get_confidence_threshold(int camera_id)
Gets the current confidence threshold value for the disparity map (and by extension the depth map).
INTERFACE_API struct SL_FusedPositionalTrackingStatus * sl_fusion_get_fused_positional_tracking_status()
Get the current status of fused position.
INTERFACE_API int sl_get_objects_batch(int camera_id, int index, struct SL_ObjectsBatch *objs_batch)
Gets a batch of detected objects.
INTERFACE_API void sl_mat_get_infos(void *ptr, char *buffer)
Returns the information about the matrix into a string.
INTERFACE_API struct SL_AI_Model_status * sl_check_AI_model_status(enum SL_AI_MODELS model, int gpu_id)
Check if a corresponding optimized engine is found for the requested Model based on your rig configur...
INTERFACE_API unsigned long long sl_fusion_get_current_timestamp()
returns the current timestamp
INTERFACE_API void sl_spatial_mapping_get_gravity_estimation(int camera_id, struct SL_Vector3 *gravity)
Gets a vector pointing toward the direction of gravity. This is estimated from a 3D scan of the envir...
INTERFACE_API int sl_save_area_map(int camera_id, const char *area_file_path)
Saves the current area learning file. The file will contain spatial memory data generated by the trac...
INTERFACE_API int sl_update_fused_point_cloud(int camera_id, int *nb_vertices_tot)
Updates the fused point cloud (if spatial map type was SL_SPATIAL_MAP_TYPE_FUSED_POINT_CLOUD).
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_process()
process the fusion.
INTERFACE_API int sl_get_camera_model(int camera_id)
Gets the ZED Camera model (see SL_MODEL).
INTERFACE_API void sl_disable_streaming(int camera_id)
Disables the streaming initiated by sl_enable_streaming().
INTERFACE_API void sl_pause_recording(int camera_id, bool status)
Pauses or resumes the recording.
INTERFACE_API void sl_get_device_list(struct SL_DeviceProperties device_list[MAX_CAMERA_PLUGIN], int *nb_devices)
Lists all the connected devices with their associated information.
INTERFACE_API int sl_retrieve_objects(int camera_id, struct SL_ObjectDetectionRuntimeParameters *object_detection_runtime_parameters, struct SL_Objects *objects, unsigned int instance_id)
Retrieve objects detected by the object detection module.
INTERFACE_API int sl_mat_get_value_uchar4(void *ptr, int col, int row, struct SL_Uchar4 *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_U8_C4.
INTERFACE_API char * sl_get_sdk_version()
Returns the version of the currently installed ZED SDK.
INTERFACE_API void sl_disable_positional_tracking(int camera_id, const char *area_file_path)
Disables the positional tracking.
INTERFACE_API int sl_update_chunks(int camera_id, int *nb_vertices_per_submesh, int *nb_triangles_per_submesh, int *nb_submeshes, int *updated_indices, int *nb_vertices_tot, int *nb_triangles_tot, const int max_submesh)
Updates the Internal version of the mesh and returns the sizes of the meshes.
INTERFACE_API bool sl_load_whole_mesh(int camera_id, const char *filename, int *nb_vertices, int *nb_triangles, int *texture_size)
Loads a saved mesh file.
INTERFACE_API bool sl_load_mesh(int camera_id, const char *filename, int *nb_vertices_per_submesh, int *nb_triangles_per_submesh, int *num_submeshes, int *updated_indices, int *nb_vertices_tot, int *nb_triangles_tot, int *textures_size, const int max_submesh)
Loads a saved mesh file.
INTERFACE_API bool sl_mat_is_memory_owner(void *ptr)
Returns whether the matrix is the owner of the memory it accesses.
INTERFACE_API int sl_get_imu_orientation(int camera_id, struct SL_Quaternion *quat, enum SL_TIME_REFERENCE time_reference)
Gets the rotation given by the IMU.
INTERFACE_API int sl_get_svo_position(int camera_id)
Returns the current playback position in the SVO file.
INTERFACE_API int sl_get_svo_data_keys_size(int camera_id)
Gets the number of external channels that can be retrieved from the SVO file.
INTERFACE_API int sl_save_current_point_cloud(int camera_id, enum SL_SIDE side, const char *file_name)
Writes the point cloud into a file defined by its extension.
INTERFACE_API int sl_mat_get_width_bytes(void *ptr)
Returns the size of a row in bytes.
INTERFACE_API int sl_mat_set_to_uchar4(void *ptr, struct SL_Uchar4 value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_U8_C4 with the given value.
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_init(struct SL_InitFusionParameters *params)
FusionHandler initialisation. Initializes memory/generic datas.
INTERFACE_API struct SL_CalibrationParameters * sl_get_calibration_parameters(int camera_id, bool raw_params)
Gets the Calibration Parameters.
INTERFACE_API void sl_mat_alloc(void *ptr, int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem)
Allocates memory for the matrix.
INTERFACE_API void sl_unload_all_instances()
Forces unload of all instances.
INTERFACE_API int sl_start_region_of_interest_auto_detection(int camera_id, struct SL_RegionOfInterestParameters *roi_param)
Start the auto detection of a region of interest to focus on for all the SDK, discarding other parts....
INTERFACE_API void sl_spatial_mapping_merge_chunks(int camera_id, int nb_faces, int *nb_vertices, int *nb_triangles, int *nb_updated_submeshes, int *updated_indices, int *nb_vertices_tot, int *nb_triangles_tot, const int max_submesh)
Consolidates the chucks from a scan. This is used to turn a lots of small meshes (which are efficient...
INTERFACE_API int sl_mat_get_value_float(void *ptr, int col, int row, float *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_F32_C1.
INTERFACE_API enum SL_ERROR_CODE sl_stop_publishing(int camera_id)
Set this camera as normal camera(without data providing). Stop to send camera data to fusion.
INTERFACE_API void sl_request_mesh_async(int camera_id)
Starts the spatial map generation process in a non-blocking thread from the spatial mapping process.
INTERFACE_API int sl_is_streaming_enabled(int camera_id)
Tells if the streaming is running.
INTERFACE_API void sl_disable_body_tracking(int camera_id, unsigned int instance_id, bool force_disable_all_instances)
Disables the body tracking process.
INTERFACE_API int sl_get_position(int camera_id, struct SL_Quaternion *rotation, struct SL_Vector3 *position, enum SL_REFERENCE_FRAME reference_frame)
Retrieves the estimated position and orientation of the camera in the specified reference frame.
INTERFACE_API int sl_get_svo_number_of_frames(int camera_id)
Returns the number of frames in the SVO file.
INTERFACE_API bool sl_save_mesh(int camera_id, const char *filename, enum SL_MESH_FILE_FORMAT format)
Saves the scanned mesh in a specific file format.
INTERFACE_API void sl_disable_spatial_mapping(int camera_id)
Disables the spatial mapping process.
INTERFACE_API int sl_enable_recording(int camera_id, const char *filename, enum SL_SVO_COMPRESSION_MODE compression_mode, unsigned int bitrate, int target_fps, bool transcode)
Creates a file for recording the ZED's output into a .SVO or .AVI video.
INTERFACE_API void sl_disable_recording(int camera_id)
Disables the recording initiated by sl_enable_recording() and closes the generated file.
INTERFACE_API int sl_save_current_image(int camera_id, enum SL_VIEW view, const char *file_name)
Writes the image into a file defined by its extension.
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_bodies(struct SL_Bodies *bodies, struct SL_BodyTrackingFusionRuntimeParameters *rt, struct SL_CameraIdentifier uuid)
retrieves a list of bodies (in SL_Bodies class type) seen by all cameras and merged as if it was seen...
INTERFACE_API int sl_mat_get_channels(void *ptr)
Returns the number of values stored in one pixel.
INTERFACE_API struct SL_PositionalTrackingParameters * sl_get_positional_tracking_parameters(int camera_id)
Returns the SL_PositionalTrackingParameters used.
INTERFACE_API int sl_save_current_depth(int camera_id, enum SL_SIDE side, const char *file_name)
Writes the depth map into a file defined by its extension.
INTERFACE_API struct SL_PlaneData * sl_find_plane_at_hit(int camera_id, struct SL_Vector2 pixel, struct SL_PlaneDetectionParameters *params, bool thres)
Checks the plane at the given left image coordinates.
INTERFACE_API int sl_get_svo_position_at_timestamp(int camera_id, unsigned long long timestamp)
Retrieves the frame index within the SVO file corresponding to the provided timestamp.
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_image(void *mat, struct SL_CameraIdentifier *uuid, int width, int height)
Returns the current sl_VIEW_LEFT of the specified camera, the data is synchronized.
INTERFACE_API int sl_get_current_min_max_depth(int camera_id, float *min, float *max)
Gets the current range of perceived depth.
INTERFACE_API struct SL_RuntimeParameters * sl_get_runtime_parameters(int camera_id)
Returns the SL_RuntimeParameters used.
INTERFACE_API int sl_mat_get_memory_type(void *ptr)
Gets the type of memory (CPU and/or GPU).
INTERFACE_API int sl_enable_positional_tracking(int camera_id, struct SL_PositionalTrackingParameters *tracking_param, const char *area_file_path)
Initializes and starts the positional tracking processes.
INTERFACE_API bool sl_is_opened(int camera_id)
Reports if the camera has been successfully opened.
INTERFACE_API int sl_retrieve_fused_point_cloud(int camera_id, float *vertices)
Retrieves all points of the fused point cloud.
INTERFACE_API enum SL_ERROR_CODE sl_set_roi_for_aec_agc(int camera_id, enum SL_SIDE side, struct SL_Rect *roi, bool reset)
Sets the region of interest for automatic exposure/gain computation.
INTERFACE_API struct SL_InitParameters * sl_get_init_parameters(int camera_id)
Returns the SL_InitParameters used.
INTERFACE_API int sl_generate_unique_id(char *uuid)
Generate a UUID like unique id to help identify and track AI detections.
INTERFACE_API int sl_mat_write(void *ptr, const char *file_path)
Writes the Mat into a file as an image. Only works if Mat has access to MEM_CPU.
INTERFACE_API int sl_mat_clone(void *ptr, void *ptr_source)
Duplicates a matrix by copying all its data into a new one (deep copy).
INTERFACE_API int sl_update_whole_mesh(int camera_id, int *nb_vertices, int *nb_triangles)
Updates the internal version of the whole mesh and returns the size of its data.
INTERFACE_API int sl_get_sensors_data(int camera_id, struct SL_SensorsData *data, enum SL_TIME_REFERENCE time_reference)
Gets SL_SensorsData (IMU, magnetometer, barometer) at a specific time reference.
INTERFACE_API int sl_retrieve_image(int camera_id, void *image_ptr, enum SL_VIEW type, enum SL_MEM mem, int width, int height)
Retrieves an image texture from the ZED SDK in a human-viewable format.
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_unsubscribe(struct SL_CameraIdentifier *uuid)
Remove the specified camera from data provider.
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_get_process_metrics(struct SL_FusionMetrics *metrics)
get the stats of a given camera in the Fusion API side It can be the received FPS,...
INTERFACE_API int sl_mat_set_to_float(void *ptr, float value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_F32_C1 with the given value.
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_enable_body_tracking(struct SL_BodyTrackingFusionParameters *params)
enables Object detection fusion module
INTERFACE_API int sl_mat_set_to_uchar2(void *ptr, struct SL_Uchar2 value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_U8_C2 with the given value.
INTERFACE_API float sl_get_camera_fps(int camera_id)
Returns the camera FPS.
INTERFACE_API int sl_get_position_array(int camera_id, float *pose, enum SL_REFERENCE_FRAME reference_frame)
Gets the position of the camera and the current state of the ZED Tracking as a float array (4x4).
INTERFACE_API int sl_mat_get_step(void *ptr, enum SL_MEM mem)
Returns the memory step in number of elements (size in one pixel row).
INTERFACE_API int sl_mat_update_cpu_from_gpu(void *ptr)
Copies data from the GPU to the CPU, if possible.
INTERFACE_API void sl_fusion_close()
Close Multi Camera instance.
INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_geo_to_camera(struct SL_LatLng *in, struct SL_PoseData *out, bool radian)
Convert latitude / longitude into position in sl::Fusion coordinate system.
INTERFACE_API void sl_close_camera(int camera_id)
Close an opened camera and disable the textures.
INTERFACE_API struct SL_StreamingParameters * sl_get_streaming_parameters(int camera_id)
Returns the SL_StreamingParameters used.
INTERFACE_API struct SL_BodyTrackingParameters * sl_get_body_tracking_parameters(int camera_id)
Returns the SL_BodyTrackingParameters used.
INTERFACE_API int sl_reset_positional_tracking_with_offset(int camera_id, struct SL_Quaternion rotation, struct SL_Vector3 translation, struct SL_Quaternion target_quaternion, struct SL_Vector3 target_translation)
Resets the tracking with an offset.
INTERFACE_API void sl_mat_swap(void *ptr_1, void *ptr_2)
Swaps the content of the provided matrix (only swaps the pointers, no data copy).
INTERFACE_API int sl_mat_get_width(void *ptr)
Returns the width of the matrix.
INTERFACE_API int sl_mat_get_data_type(void *ptr)
Returns the format of the matrix.
INTERFACE_API int sl_mat_set_value_uchar2(void *ptr, int col, int row, struct SL_Uchar2 value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_U8_C2.
INTERFACE_API enum SL_ERROR_CODE sl_ingest_data_into_svo(int camera_id, struct SL_SVOData *data)
Ingests SL_SVOData in a SVO file.
INTERFACE_API bool sl_apply_texture(int camera_id, int *nb_vertices_per_submesh, int *nb_triangles_per_submesh, int *nb_updated_submeshes, int *updated_indices, int *nb_vertices_tot, int *nb_triangles_tot, int *textures_size, const int max_submesh)
Applies the scanned texture onto the internal scanned mesh.
INTERFACE_API int sl_mat_set_from(void *ptr, void *ptr_source, enum SL_COPY_TYPE copy_type)
Copies data from another matrix into this one (deep copy).
INTERFACE_API bool sl_mat_is_init(void *ptr)
Returns whether the matrix is initialized or not.
INTERFACE_API void sl_fusion_disable_body_tracking()
Disable the object detection module.
INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_get_geo_pose(struct SL_GeoPose *pose, bool radian)
returns the current GeoPose
INTERFACE_API int sl_reboot(int sn, bool full_reboot)
Performs a hardware reset of the ZED 2 and the ZED 2i.
INTERFACE_API struct SL_PlaneData * sl_find_floor_plane(int camera_id, struct SL_Quaternion *reset_quaternion, struct SL_Vector3 *reset_translation, struct SL_Quaternion prior_rotation, struct SL_Vector3 prior_translation)
Detect the floor plane of the scene.
INTERFACE_API int sl_mat_set_to_float3(void *ptr, struct SL_Vector3 value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_F32_C3 with the given value.
INTERFACE_API int sl_update_objects_batch(int camera_id, int *nb_batches)
Updates the internal batch of detected objects.
INTERFACE_API void sl_get_svo_data_keys(int camera_id, int nb_keys, char *keys[128])
Gets the external channels that can be retrieved from the SVO file. The user is reponsible for correc...
INTERFACE_API float sl_get_depth_min_range_value(int camera_id)
Gets the depth min value from InitParameters (see SL_InitParameters::depth_minimum_distance).
INTERFACE_API int sl_get_area_export_state(int camera_id)
Returns the state of the spatial memory export process.
INTERFACE_API int sl_reset_positional_tracking(int camera_id, struct SL_Quaternion rotation, struct SL_Vector3 translation)
Resets the tracking, and re-initializes the position with the given pose.
INTERFACE_API bool sl_is_positional_tracking_enabled(int camera_id)
Tells if the tracking module is enabled.
INTERFACE_API struct SL_RecordingStatus * sl_get_recording_status(int camera_id)
Get the recording information.
int INTERFACE_API sl_get_height(int camera_id)
Returns the height of the current image.
INTERFACE_API int sl_get_sensors_firmware(int camera_id)
Gets the sensor module current firmware version.
INTERFACE_API int sl_retrieve_whole_mesh(int camera_id, float *vertices, int *triangles, unsigned char *colors, float *uvs, unsigned char *texture_ptr)
Retrieves the full mesh. Call update_mesh before calling this. Vertex and triangles arrays must be at...
INTERFACE_API void sl_get_streaming_device_list(struct SL_StreamingProperties streaming_device_list[MAX_CAMERA_PLUGIN], int *nb_devices)
List all the streaming devices with their associated information.
INTERFACE_API int sl_mat_set_value_uchar4(void *ptr, int col, int row, struct SL_Uchar4 value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_U8_C4.
INTERFACE_API int sl_enable_object_detection(int camera_id, struct SL_ObjectDetectionParameters *object_detection_parameters)
Initializes and starts object detection module.
INTERFACE_API int sl_mat_set_to_float2(void *ptr, struct SL_Vector2 value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_F32_C2 with the given value.
INTERFACE_API bool sl_filter_whole_mesh(int camera_id, enum SL_MESH_FILTER filter_params, int *nb_vertices, int *nb_triangles)
Filters a mesh to removes triangles while still preserving its overall shaper (though less accurate).
INTERFACE_API bool sl_apply_whole_texture(int camera_id, int *nb_vertices, int *nb_triangles, int *texture_size)
Applies the scanned texture onto the internal scanned mesh.
INTERFACE_API int sl_mat_set_value_uchar3(void *ptr, int col, int row, struct SL_Uchar3 value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_U8_C3.
INTERFACE_API enum SL_POSITIONAL_TRACKING_STATE sl_fusion_get_current_gnss_data(struct SL_GNSSData *data, bool radian)
returns the current GNSS data
INTERFACE_API int sl_get_position_data(int camera_id, struct SL_PoseData *poseData, enum SL_REFERENCE_FRAME reference_frame)
Gets the current position of the camera and state of the tracking, filling a SL_PoseData struck usefu...
INTERFACE_API void sl_unload_instance(int camera_id)
Forces unload of one instance.
INTERFACE_API struct SL_Resolution sl_mat_get_resolution(void *ptr)
Returns the resolution (width and height) of the matrix.
INTERFACE_API int sl_mat_update_gpu_from_cpu(void *ptr)
Copies data from the CPU to the GPU, if possible.
INTERFACE_API struct SL_SensorsConfiguration * sl_get_sensors_configuration(int camera_id)
Gets the Sensors configuration.
INTERFACE_API int sl_mat_set_to_uchar3(void *ptr, struct SL_Uchar3 value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_U8_C3 with the given value.
INTERFACE_API int sl_extract_whole_spatial_map(int camera_id)
Extracts the current spatial map from the spatial mapping process.
INTERFACE_API void sl_fusion_get_geo_tracking_calibration(struct SL_Vector3 *translation, struct SL_Quaternion *rotation)
Get the calibration found between VIO and GNSS.
INTERFACE_API int sl_open_camera(int camera_id, struct SL_InitParameters *init_parameters, const unsigned int serial_number, const char *path_svo, const char *ip, int stream_port, const char *output_file, const char *opt_settings_path, const char *opencv_calib_path)
Opens the ZED camera from the provided SL_InitParameters.
INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings_min_max(int camera_id, enum SL_VIDEO_SETTINGS mode, int min, int max)
Sets the range values of the requested camera setting (gain, brightness, hue, exposure,...
INTERFACE_API bool sl_save_point_cloud(int c_id, const char *filename, enum SL_MESH_FILE_FORMAT format)
Saves the scanned point cloud in a specific file format.
INTERFACE_API int sl_update_mesh(int camera_id, int *nb_vertices_per_submesh, int *nb_triangles_per_submesh, int *nb_submeshes, int *updated_indices, int *nb_vertices_tot, int *nb_triangles_tot, const int max_submesh)
Updates the internal version of the mesh and returns the sizes of the meshes.
INTERFACE_API int sl_mat_get_pixel_bytes(void *ptr)
Returns the size of one pixel in bytes.
INTERFACE_API int sl_mat_set_value_uchar(void *ptr, int col, int row, unsigned char value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_U8_C1.
INTERFACE_API int sl_mat_get_value_uchar2(void *ptr, int col, int row, struct SL_Uchar2 *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_U8_C2.
INTERFACE_API void sl_fusion_disable_positional_tracking()
disable the positional tracking
INTERFACE_API float sl_get_depth_max_range_value(int camera_id)
Gets the depth max value from InitParameters (see SL_InitParameters::depth_maximum_distance).
INTERFACE_API int sl_get_mesh_request_status_async(int camera_id)
Returns the spatial map generation status.
INTERFACE_API int sl_retrieve_chunks(int camera_id, float *vertices, int *triangles, unsigned char *colors, float *uvs, unsigned char *texture_ptr, const int max_submesh)
Retrieves all chunks of the full mesh.
INTERFACE_API CUcontext sl_get_cuda_context(int camera_id)
Gets the Camera-created CUDA context for sharing it with other CUDA-capable libraries.
INTERFACE_API bool sl_find_usb_device(enum USB_DEVICE device)
Checks usb devices connected. param device : type of device to find.
INTERFACE_API unsigned long long sl_get_image_timestamp(int camera_id)
Get the timestamp at the time the frame has been extracted from USB stream.
INTERFACE_API int sl_convert_hitplane_to_mesh(int camera_id, float *vertices, int *triangles, int *nb_vertices_tot, int *nb_triangles_tot)
Using data from a detected hit plane, updates supplied vertex and triangles arrays with data needed t...
INTERFACE_API int sl_get_region_of_interest(int camera_id, void *roi_mask, int width, int height, enum SL_MODULE module)
Get the previously set or computed region of interest.
INTERFACE_API int sl_mat_set_to_float4(void *ptr, struct SL_Vector4 value, enum SL_MEM mem)
Fills the matrix of type SL_MAT_TYPE_F32_C4 with the given value.
INTERFACE_API int sl_get_zed_serial(int camera_id)
Gets the ZED Serial Number.
INTERFACE_API void sl_pause_spatial_mapping(int camera_id, bool status)
INTERFACE_API int sl_convert_image(void *image_in_ptr, void *image_signed_ptr, cudaStream_t stream)
Convert Image format from Unsigned char to Signed char, designed for Unreal Engine pipeline,...
INTERFACE_API void sl_fusion_read_configuration_file(const char *json_config_filename, enum SL_COORDINATE_SYSTEM coord_system, enum SL_UNIT unit, struct SL_FusionConfiguration configs[MAX_FUSED_CAMERAS], int *nb_cameras)
Read a Configuration JSON file to configure a fusion process.
INTERFACE_API enum SL_POSITIONAL_TRACKING_STATE sl_fusion_get_position(struct SL_PoseData *pose, enum SL_REFERENCE_FRAME reference_frame, struct SL_CameraIdentifier *uuid, enum SL_POSITION_TYPE retrieve_type)
Get the Fused Position of the camera system.
INTERFACE_API int sl_get_input_type(int camera_id)
Gets the input type (see SL_INPUT_TYPE).
INTERFACE_API int sl_mat_get_step_bytes(void *ptr, enum SL_MEM mem)
Returns the memory step in bytes (size of one pixel row).
INTERFACE_API int sl_enable_streaming(int camera_id, enum SL_STREAMING_CODEC codec, unsigned int bitrate, unsigned short port, int gop_size, int adaptative_bitrate, int chunk_size, int target_framerate)
Creates a streaming pipeline.
INTERFACE_API unsigned long long sl_get_current_timestamp(int camera_id)
Get the current timestamp at the time the function is called.
INTERFACE_API int sl_optimize_AI_model(enum SL_AI_MODELS model, int gpu_id)
Optimize the requested model, possible download if the model is not present on the host.
INTERFACE_API enum SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE sl_get_region_of_interest_auto_detection_status(int camera_id)
Return the status of the automatic Region of Interest Detection The automatic Region of Interest Dete...
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_enable_positional_tracking(struct SL_PositionalTrackingFusionParameters *params)
enable positional tracking fusion.
INTERFACE_API int sl_retrieve_mesh(int camera_id, float *vertices, int *triangles, unsigned char *colors, float *uvs, unsigned char *texture_ptr, const int max_submeshes)
Retrieves all chunks of the current mesh.
INTERFACE_API int sl_mat_get_height(void *ptr)
Returns the height of the matrix.
INTERFACE_API int sl_retrieve_measure(int camera_id, void *measure_ptr, enum SL_MEASURE type, enum SL_MEM mem, int width, int height)
Retrieves a measure texture from the ZED SDK.
INTERFACE_API int sl_convert_floorplane_to_mesh(int camera_id, float *vertices, int *triangles, int *nb_vertices_tot, int *nb_triangles_tot)
Using data from a detected floor plane, updates supplied vertex and triangles arrays with data needed...
INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings(int c_id, enum SL_VIDEO_SETTINGS mode, int *value)
Returns the current value of the requested camera setting (gain, brightness, hue, exposure,...
INTERFACE_API int sl_grab(int camera_id, struct SL_RuntimeParameters *runtime)
Grabs the latest images from the camera.
INTERFACE_API int sl_mat_get_value_float2(void *ptr, int col, int row, struct SL_Vector2 *value, enum SL_MEM mem)
Returns the value of a specific point in the matrix of type SL_MAT_TYPE_F32_C2.
INTERFACE_API int sl_enable_spatial_mapping(int camera_id, struct SL_SpatialMappingParameters *mapping_param)
Initializes and starts the spatial mapping processes.
INTERFACE_API enum SL_ERROR_CODE sl_get_roi_for_aec_agc(int id, enum SL_SIDE side, struct SL_Rect *roi)
Gets the region of interest for automatic exposure/gain computation.
INTERFACE_API void sl_get_camera_imu_transform(int camera_id, struct SL_Vector3 *translation, struct SL_Quaternion *rotation)
Gets the IMU to the left camera transform matrix.
INTERFACE_API int sl_set_imu_prior_orientation(int camera_id, struct SL_Quaternion rotation)
Set an optional IMU orientation hint that will be used to assist the tracking during the next sl_grab...
INTERFACE_API int sl_mat_set_value_float2(void *ptr, int col, int row, struct SL_Vector2 value, enum SL_MEM mem)
Sets a value to a specific point in the matrix of type SL_MAT_TYPE_F32_C2.
INTERFACE_API void sl_update_self_calibration(int camera_id)
Performs a new self calibration process.
INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_ingest_gnss_data(struct SL_GNSSData *gnss_data, bool radian)
Add GNSS that will be used by fusion for computing fused pose.
INTERFACE_API int sl_get_number_zed_connected()
Gets the number of zed connected.
int INTERFACE_API sl_get_width(int camera_id)
Returns the width of the current image.
INTERFACE_API void sl_set_svo_position(int camera_id, int frame_number)
Sets the playback cursor to the desired frame number in the SVO file.
INTERFACE_API enum SL_SPATIAL_MAPPING_STATE sl_get_spatial_mapping_state(int camera_id)
Returns the current spatial mapping state.
INTERFACE_API void * sl_mat_create_new_empty()
Creates an empty matrix.