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 
50  INTERFACE_API bool sl_create_camera(int camera_id);
51 
57  INTERFACE_API bool sl_is_opened(int camera_id);
58 
72  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);
73 
74 
83  INTERFACE_API enum SL_ERROR_CODE sl_start_publishing(int camera_id, struct SL_CommunicationParameters* comm_params);
84 
90  INTERFACE_API enum SL_ERROR_CODE sl_stop_publishing(int camera_id);
91 
98  INTERFACE_API CUcontext sl_get_cuda_context(int camera_id);
99 
107  INTERFACE_API struct SL_InitParameters* sl_get_init_parameters(int camera_id);
108 
116  INTERFACE_API struct SL_RuntimeParameters* sl_get_runtime_parameters(int camera_id);
117 
126 
131  INTERFACE_API void sl_close_camera(int camera_id);
132 
141  INTERFACE_API int sl_set_region_of_interest(int camera_id, void* roi_mask, bool module[SL_MODULE_LAST]);
142 
151  INTERFACE_API int sl_get_region_of_interest(int camera_id, void* roi_mask, int width, int height, enum SL_MODULE module);
167  INTERFACE_API int sl_start_region_of_interest_auto_detection(int camera_id, struct SL_RegionOfInterestParameters* roi_param);
181  INTERFACE_API int sl_grab(int camera_id, struct SL_RuntimeParameters* runtime);
182 
193  INTERFACE_API int sl_read(int camera_id);
194 
202  INTERFACE_API void sl_get_device_list(struct SL_DeviceProperties device_list[MAX_CAMERA_PLUGIN], int* nb_devices);
203 
210  INTERFACE_API void sl_get_streaming_device_list(struct SL_StreamingProperties streaming_device_list[MAX_CAMERA_PLUGIN], int* nb_devices);
211 
222  INTERFACE_API int sl_reboot(int sn, bool full_reboot);
223 
237  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);
238 
243  INTERFACE_API struct SL_RecordingStatus* sl_get_recording_status(int camera_id);
248  INTERFACE_API void sl_disable_recording(int camera_id);
249 
257  INTERFACE_API struct SL_RecordingParameters* sl_get_recording_parameters(int camera_id);
258 
264  INTERFACE_API void sl_pause_recording(int camera_id, bool status);
265 
274  INTERFACE_API enum SL_ERROR_CODE sl_ingest_data_into_svo(int camera_id, struct SL_SVOData* data);
275 
287  INTERFACE_API int sl_get_svo_data_size(int camera_id, char key[128], unsigned long long ts_begin, unsigned long long ts_end);
288 
301  INTERFACE_API enum SL_ERROR_CODE sl_retrieve_svo_data(int camera_id, char* key, int nb_data, struct SL_SVOData** data, unsigned long long ts_begin, unsigned long long ts_end);
302 
309  INTERFACE_API int sl_get_svo_data_keys_size(int camera_id);
310 
320  INTERFACE_API void sl_get_svo_data_keys(int camera_id, int nb_keys, char** keys);
321 
333  INTERFACE_API int sl_enable_positional_tracking(int camera_id, struct SL_PositionalTrackingParameters* tracking_param, const char* area_file_path);
334 
335  // /**
336  // \brief Initializes and starts the positional tracking processes.
337  // This function allows you to enable the position estimation of the SDK. It only has to be called once in the camera's lifetime.
338  //
339  // \param camera_id : id of the camera instance.
340  // \param initial_world_rotation : rotation of the camera in the world frame when the camera is started. By default, it should be identity.
341  // \param initial_world_position : position of the camera in the world frame when the camera is started. By default, it should be identity.
342  // \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.
343  // \param enable_pose_smoothing : this mode enables smooth pose correction for small drift correction.
344  // \param set_floor_as_origin : this mode initializes the tracking to be aligned with the floor plane to better position the camera in space.
345  // \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.
346  // \param enable_imu_fusion : this mode enables or disables IMU fusion. When set to false, only the optical odometry will be used.
347  // \param area_file_path : area localization file that describes the surroundings, saved from a previous tracking session.
348  // \return \ref SL_ERROR_CODE::SUCCESS if everything went fine, ERROR_CODE::FAILURE otherwise.
349  // */
350  // /**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,
351  // bool enable_imu_fusion, const char* area_file_path);*/
352 
358  INTERFACE_API void sl_disable_positional_tracking(int camera_id, const char* area_file_path);
359 
366  INTERFACE_API int sl_save_area_map(int camera_id, const char* area_file_path);
367 
375  INTERFACE_API int sl_get_area_export_state(int camera_id);
376 
385  INTERFACE_API void sl_set_svo_position(int camera_id, int frame_number);
386 
393  INTERFACE_API void sl_pause_svo_reading(int camera_id, bool status);
394 
400  INTERFACE_API float sl_get_camera_fps(int camera_id);
401 
407  INTERFACE_API float sl_get_current_fps(int camera_id);
408 
414  int INTERFACE_API sl_get_width(int camera_id);
415 
421  int INTERFACE_API sl_get_height(int camera_id);
422 
428  INTERFACE_API int sl_get_confidence_threshold(int camera_id);
429 
439  INTERFACE_API struct SL_CameraInformation* sl_get_camera_information(int camera_id, int res_width, int res_height);
440 
447  INTERFACE_API void sl_update_self_calibration(int camera_id);
448 
455  INTERFACE_API struct SL_CalibrationParameters* sl_get_calibration_parameters(int camera_id, bool raw_params);
456 
462  INTERFACE_API struct SL_SensorsConfiguration* sl_get_sensors_configuration(int camera_id);
463 
475  INTERFACE_API void sl_get_camera_imu_transform(int camera_id, struct SL_Vector3* translation, struct SL_Quaternion* rotation);
476 
482  INTERFACE_API int sl_get_input_type(int camera_id);
483 
489  INTERFACE_API int sl_get_zed_serial(int camera_id);
490 
496  INTERFACE_API int sl_get_camera_firmware(int camera_id);
497 
503  INTERFACE_API int sl_get_sensors_firmware(int camera_id);
504 
510  INTERFACE_API int sl_get_camera_model(int camera_id);
511 
519  INTERFACE_API unsigned long long sl_get_image_timestamp(int camera_id);
520 
528  INTERFACE_API unsigned long long sl_get_current_timestamp(int camera_id);
529 
535  INTERFACE_API int sl_get_svo_number_of_frames(int camera_id);
536 
543  INTERFACE_API bool sl_is_camera_setting_supported(int camera_id, enum SL_VIDEO_SETTINGS setting);
544 
553  INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings(int camera_id, enum SL_VIDEO_SETTINGS mode, int value);
554 
569  INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings_min_max(int camera_id, enum SL_VIDEO_SETTINGS mode, int min, int max);
570 
580  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);
581 
591  INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings(int c_id, enum SL_VIDEO_SETTINGS mode, int* value);
592 
602  INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings_min_max(int c_id, enum SL_VIDEO_SETTINGS mode, int* minvalue, int* maxvalue);
603 
613  INTERFACE_API enum SL_ERROR_CODE sl_get_roi_for_aec_agc(int id, enum SL_SIDE side, struct SL_Rect* roi);
614 
620  INTERFACE_API float sl_get_depth_min_range_value(int camera_id);
621 
627  INTERFACE_API float sl_get_depth_max_range_value(int camera_id);
628 
636  INTERFACE_API int sl_get_current_min_max_depth(int camera_id, float* min, float* max);
637 
642  INTERFACE_API int sl_get_number_zed_connected();
643 
648  INTERFACE_API char* sl_get_sdk_version();
649 
657  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);
658 
659  // /**
660  // \brief Returns the version of the currently installed ZED SDK.
661  // \param major : major int of the version filled
662  // \param minor : minor int of the version filled
663  // \param patch : patch int of the version filled
664  // */
665  // INTERFACE_API void sl_get_sdk_version(int *major, int *minor, int *patch);
666 
672  INTERFACE_API int sl_get_svo_position(int camera_id);
673 
681  INTERFACE_API int sl_get_svo_position_at_timestamp(int camera_id, unsigned long long timestamp);
682 
688  INTERFACE_API unsigned int sl_get_frame_dropped_count(int camera_id);
689 
690 
696  INTERFACE_API struct SL_HealthStatus* sl_get_health_status(int camera_id);
697 
698  INTERFACE_API struct SL_Resolution* sl_get_retrieve_image_resolution(int camera_id, struct SL_Resolution* res);
699 
700  INTERFACE_API struct SL_Resolution* sl_get_retrieve_measure_resolution(int camera_id, struct SL_Resolution* res);
704 
709  INTERFACE_API bool sl_is_positional_tracking_enabled(int camera_id);
710 
721  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);
729  INTERFACE_API int sl_get_position_data(int camera_id, struct SL_PoseData* poseData, enum SL_REFERENCE_FRAME reference_frame);
738  INTERFACE_API int sl_get_position(int camera_id, struct SL_Quaternion* rotation, struct SL_Vector3* position, enum SL_REFERENCE_FRAME reference_frame);
746  INTERFACE_API int sl_get_position_array(int camera_id, float* pose, enum SL_REFERENCE_FRAME reference_frame);
747 
756  INTERFACE_API int sl_get_positional_tracking_landmarks(int camera_id, struct SL_Landmark** landmarks, uint32_t* count);
757 
766  INTERFACE_API int sl_get_positional_tracking_landmarks_2d(int camera_id, struct SL_Landmark2D** landmarks2d, uint32_t* count);
772 
780  INTERFACE_API int sl_reset_positional_tracking(int camera_id, struct SL_Quaternion rotation, struct SL_Vector3 translation);
790  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);
803  INTERFACE_API int sl_set_imu_prior_orientation(int camera_id, struct SL_Quaternion rotation);
815  INTERFACE_API int sl_get_imu_orientation(int camera_id, struct SL_Quaternion* quat, enum SL_TIME_REFERENCE time_reference);
827  INTERFACE_API int sl_get_sensors_data(int camera_id, struct SL_SensorsData* data, enum SL_TIME_REFERENCE time_reference);
828 
829 
833 
847  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);
848 
859  INTERFACE_API int sl_enable_spatial_mapping(int camera_id, struct SL_SpatialMappingParameters* mapping_param);
864  INTERFACE_API void sl_disable_spatial_mapping(int camera_id);
865 
879  INTERFACE_API void sl_pause_spatial_mapping(int camera_id, bool status);
884  INTERFACE_API void sl_request_mesh_async(int camera_id);
892  INTERFACE_API int sl_get_mesh_request_status_async(int camera_id);
900  INTERFACE_API enum SL_SPATIAL_MAPPING_STATE sl_get_spatial_mapping_state(int camera_id);
913  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);
928  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);
941  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);
956  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);
957 
964  INTERFACE_API int sl_update_fused_point_cloud(int camera_id, int* nb_vertices_tot);
972  INTERFACE_API int sl_retrieve_fused_point_cloud(int camera_id, float* vertices);
978  INTERFACE_API int sl_extract_whole_spatial_map(int camera_id);
986  INTERFACE_API bool sl_save_mesh(int camera_id, const char* filename, enum SL_MESH_FILE_FORMAT format);
994  INTERFACE_API bool sl_save_point_cloud(int c_id, const char* filename, enum SL_MESH_FILE_FORMAT format);
1009  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);
1023  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);
1037  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);
1045  INTERFACE_API void sl_spatial_mapping_get_gravity_estimation(int camera_id, struct SL_Vector3* gravity);
1046 
1047 
1049 
1057  INTERFACE_API int sl_update_whole_mesh(int camera_id, int* nb_vertices, int* nb_triangles);
1069  INTERFACE_API int sl_retrieve_whole_mesh(int camera_id, float* vertices, int* triangles, unsigned char* colors, float* uvs, unsigned char* texture_ptr);
1080  INTERFACE_API bool sl_load_whole_mesh(int camera_id, const char* filename, int* nb_vertices, int* nb_triangles, int* texture_size);
1089  INTERFACE_API bool sl_apply_whole_texture(int camera_id, int* nb_vertices, int* nb_triangles, int* texture_size);
1097  INTERFACE_API bool sl_filter_whole_mesh(int camera_id, enum SL_MESH_FILTER filter_params, int* nb_vertices, int* nb_triangles);
1098 
1099 
1103 
1113  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);
1122  INTERFACE_API struct SL_PlaneData* sl_find_plane_at_hit(int camera_id, struct SL_Vector2 pixel, struct SL_PlaneDetectionParameters* params, bool thres);
1132  INTERFACE_API int sl_convert_floorplane_to_mesh(int camera_id, float* vertices, int* triangles, int* nb_vertices_tot, int* nb_triangles_tot);
1142  INTERFACE_API int sl_convert_hitplane_to_mesh(int camera_id, float* vertices, int* triangles, int* nb_vertices_tot, int* nb_triangles_tot);
1143 
1144 
1148 
1165  INTERFACE_API int sl_retrieve_measure(int camera_id, void* measure_ptr, enum SL_MEASURE type, enum SL_MEM mem, int width, int height, void* custream);
1179  INTERFACE_API int sl_retrieve_image(int camera_id, void* image_ptr, enum SL_VIEW type, enum SL_MEM mem, int width, int height, void* custream);
1180 
1188  INTERFACE_API int sl_convert_image(void* image_in_ptr, void* image_signed_ptr, void* stream);
1189 
1193 
1215  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);
1216 
1221  INTERFACE_API void sl_disable_streaming(int camera_id);
1227  INTERFACE_API int sl_is_streaming_enabled(int camera_id);
1228 
1235  INTERFACE_API struct SL_StreamingParameters* sl_get_streaming_parameters(int camera_id);
1236 
1240 
1248  INTERFACE_API int sl_save_current_image(int camera_id, enum SL_VIEW view, const char* file_name);
1256  INTERFACE_API int sl_save_current_depth(int camera_id, enum SL_SIDE side, const char* file_name);
1264  INTERFACE_API int sl_save_current_point_cloud(int camera_id, enum SL_SIDE side, const char* file_name);
1265 
1266 
1267 
1268 #if WITH_OBJECT_DETECTION
1269 
1273 
1280  INTERFACE_API struct SL_AI_Model_status* sl_check_AI_model_status(enum SL_AI_MODELS model, int gpu_id);
1281 
1288  INTERFACE_API int sl_optimize_AI_model(enum SL_AI_MODELS model, int gpu_id);
1289 
1312  INTERFACE_API int sl_enable_object_detection(int camera_id, struct SL_ObjectDetectionParameters* object_detection_parameters);
1313 
1322 
1323 
1332  INTERFACE_API void sl_disable_object_detection(int camera_id, unsigned int instance_id, bool force_disable_all_instances);
1333 
1334 
1344  INTERFACE_API int sl_set_object_detection_runtime_parameters(int camera_id, struct SL_ObjectDetectionRuntimeParameters object_detection_parameters, unsigned int instance_id);
1345 
1368  INTERFACE_API int sl_enable_body_tracking(int camera_id, struct SL_BodyTrackingParameters* body_tracking_parameters);
1369 
1377  INTERFACE_API struct SL_BodyTrackingParameters* sl_get_body_tracking_parameters(int camera_id);
1378 
1387  INTERFACE_API void sl_disable_body_tracking(int camera_id, unsigned int instance_id, bool force_disable_all_instances);
1388 
1397  INTERFACE_API int sl_set_body_tracking_runtime_parameters(int camera_id, struct SL_BodyTrackingRuntimeParameters body_tracking_parameters, unsigned int instance_id);
1398 
1404  INTERFACE_API int sl_generate_unique_id(char* uuid);
1405 
1415  INTERFACE_API int sl_ingest_custom_box_objects(int camera_id, int nb_objects, struct SL_CustomBoxObjectData* objects_in, unsigned int instance_id);
1416 
1426  INTERFACE_API int sl_ingest_custom_mask_objects(int camera_id, int nb_objects, struct SL_CustomMaskObjectData* objects_in, unsigned int instance_id);
1427 
1436  INTERFACE_API int sl_retrieve_objects(int camera_id, struct SL_ObjectDetectionRuntimeParameters* object_detection_runtime_parameters, struct SL_Objects* objects, unsigned int instance_id);
1437 
1446  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);
1447 
1457  INTERFACE_API int sl_set_custom_object_detection_runtime_parameters(int camera_id, struct SL_CustomObjectDetectionRuntimeParameters custom_object_detection_parameters, unsigned int instance_id);
1458 
1467  INTERFACE_API int sl_retrieve_bodies(int camera_id, struct SL_BodyTrackingRuntimeParameters* body_tracking_runtime_parameters, struct SL_Bodies* bodies, unsigned int instance_id);
1468 
1475  INTERFACE_API int sl_update_objects_batch(int camera_id, int* nb_batches);
1476 
1485  INTERFACE_API int sl_get_objects_batch(int camera_id, int index, struct SL_ObjectsBatch* objs_batch);
1486 
1487  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,
1488  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],
1489  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],
1490  struct SL_Vector2 head_bounding_boxes_2d[MAX_TRAJECTORY_SIZE][4], struct SL_Vector3 head_bounding_boxes[MAX_TRAJECTORY_SIZE][8],
1491  struct SL_Vector3 head_positions[MAX_TRAJECTORY_SIZE]);
1492 
1493 #if 0
1500  INTERFACE_API int sl_update_bodies_batch(int camera_id, int* nb_batches);
1501 
1502 
1503 
1510  INTERFACE_API int sl_get_bodies_batch(int camera_id, int index, struct SL_BodiesBatch* bodies_batch);
1511 
1512 
1513 #endif
1514 #endif
1515 #ifdef __cplusplus
1516 }
1517 #endif
1518 
1522 
1523 #ifdef __cplusplus
1524 extern "C" {
1525 #endif
1526 
1532 
1537 
1538  /*
1539  * \brief adds a camera to the multi camera handler
1540  * \param [in] uuid : unique ID that is associated with the camera for easy access.
1541  * \param [in] params : communications parameters
1542  * \param [in] pose_translation : position of the camera
1543  * \param [in] pose_rotation : orientation of the camera
1544  * \return SL_FUSION_ERROR_CODE
1545  * */
1546  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);
1547 
1557  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_image(void* mat, struct SL_CameraIdentifier* uuid, int width, int height);
1558 
1570  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, enum SL_FUSION_REFERENCE_FRAME reference_frame);
1571 
1578 
1579  /*
1580  * \brief update the pose of the camera in the fusion coordinate space
1581  * \param [in] uuid : unique ID that is associated with the camera for easy access.
1582  * \param [in] pose_translation : new position of the camera
1583  * \param [in] pose_rotation : new orientation of the camera
1584  * \return SL_FUSION_ERROR_CODE
1585  * */
1586  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);
1587 
1594  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_get_pose(struct SL_CameraIdentifier* uuid, struct SL_Vector3* pose_translation, struct SL_Quaternion* pose_rotation);
1595 
1596  /*
1597  * \brief Returns the state of a connected data sender.
1598  * \param [in] uuid : Identifier of the camera.
1599  * \return SL_SENDER_ERROR_CODE : State of the sender
1600  * */
1601  INTERFACE_API enum SL_SENDER_ERROR_CODE sl_fusion_get_sender_state(struct SL_CameraIdentifier* uuid);
1602 
1612  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);
1613 
1614 
1624  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);
1625 
1629 
1635 
1639  INTERFACE_API void sl_fusion_disable_body_tracking();
1640 
1650 
1658 
1659 
1663 
1671 
1680  INTERFACE_API enum SL_POSITIONAL_TRACKING_STATE sl_fusion_get_position(struct SL_PoseData* pose, enum SL_REFERENCE_FRAME reference_frame,
1681  struct SL_CameraIdentifier* uuid, enum SL_POSITION_TYPE retrieve_type);
1682 
1683 
1689 
1694 
1698 
1705  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_enu_to_geo(struct SL_ENU* in, struct SL_LatLng* out);
1706 
1713  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_geo_to_enu(struct SL_LatLng* in, struct SL_ENU* out);
1714 
1720  INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_ingest_gnss_data(struct SL_GNSSData* gnss_data, bool radian);
1721 
1728  INTERFACE_API enum SL_POSITIONAL_TRACKING_STATE sl_fusion_get_current_gnss_data(struct SL_GNSSData* data, bool radian);
1729 
1736  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_get_geo_pose(struct SL_GeoPose* pose, bool radian);
1737 
1745  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_geo_to_camera(struct SL_LatLng* in, struct SL_PoseData* out, bool radian);
1746 
1753  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_camera_to_geo(struct SL_PoseData* in, struct SL_GeoPose* out, bool radian);
1754 
1759  INTERFACE_API unsigned long long sl_fusion_get_current_timestamp();
1760 
1768  INTERFACE_API enum SL_GNSS_FUSION_STATUS sl_fusion_get_current_gnss_calibration_std(float* yaw_std, struct SL_Vector3* position_std);
1769 
1774  INTERFACE_API void sl_fusion_get_geo_tracking_calibration(struct SL_Vector3* translation, struct SL_Quaternion* rotation);
1775 
1779  INTERFACE_API void sl_fusion_close();
1780 
1781 #ifdef __cplusplus
1782 }
1783 #endif
1784 
1785 
1786 
1787 #ifdef __cplusplus
1788 extern "C" {
1789 #endif
1790 
1794 
1803  INTERFACE_API void* sl_mat_create_new(int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem);
1808  INTERFACE_API void* sl_mat_create_new_empty();
1814  INTERFACE_API bool sl_mat_is_init(void* ptr);
1820  INTERFACE_API void sl_mat_free(void* ptr, enum SL_MEM mem);
1826  INTERFACE_API void sl_mat_get_infos(void* ptr, char* buffer);
1827 
1828  // GET values
1838  INTERFACE_API int sl_mat_get_value_uchar(void* ptr, int col, int row, unsigned char* value, enum SL_MEM mem);
1848  INTERFACE_API int sl_mat_get_value_uchar2(void* ptr, int col, int row, struct SL_Uchar2* value, enum SL_MEM mem);
1858  INTERFACE_API int sl_mat_get_value_uchar3(void* ptr, int col, int row, struct SL_Uchar3* value, enum SL_MEM mem);
1868  INTERFACE_API int sl_mat_get_value_uchar4(void* ptr, int col, int row, struct SL_Uchar4* value, enum SL_MEM mem);
1869 
1879  INTERFACE_API int sl_mat_get_value_float(void* ptr, int col, int row, float* value, enum SL_MEM mem);
1889  INTERFACE_API int sl_mat_get_value_float2(void* ptr, int col, int row, struct SL_Vector2* value, enum SL_MEM mem);
1899  INTERFACE_API int sl_mat_get_value_float3(void* ptr, int col, int row, struct SL_Vector3* value, enum SL_MEM mem);
1909  INTERFACE_API int sl_mat_get_value_float4(void* ptr, int col, int row, struct SL_Vector4* value, enum SL_MEM mem);
1910 
1911  // SET VALUE
1921  INTERFACE_API int sl_mat_set_value_uchar(void* ptr, int col, int row, unsigned char value, enum SL_MEM mem);
1931  INTERFACE_API int sl_mat_set_value_uchar2(void* ptr, int col, int row, struct SL_Uchar2 value, enum SL_MEM mem);
1941  INTERFACE_API int sl_mat_set_value_uchar3(void* ptr, int col, int row, struct SL_Uchar3 value, enum SL_MEM mem);
1951  INTERFACE_API int sl_mat_set_value_uchar4(void* ptr, int col, int row, struct SL_Uchar4 value, enum SL_MEM mem);
1961  INTERFACE_API int sl_mat_set_value_float(void* ptr, int col, int row, float value, enum SL_MEM mem);
1971  INTERFACE_API int sl_mat_set_value_float2(void* ptr, int col, int row, struct SL_Vector2 value, enum SL_MEM mem);
1981  INTERFACE_API int sl_mat_set_value_float3(void* ptr, int col, int row, struct SL_Vector3 value, enum SL_MEM mem);
1991  INTERFACE_API int sl_mat_set_value_float4(void* ptr, int col, int row, struct SL_Vector4 value, enum SL_MEM mem);
1992 
1993  //SET TO
2001  INTERFACE_API int sl_mat_set_to_uchar(void* ptr, unsigned char value, enum SL_MEM mem);
2009  INTERFACE_API int sl_mat_set_to_uchar2(void* ptr, struct SL_Uchar2 value, enum SL_MEM mem);
2017  INTERFACE_API int sl_mat_set_to_uchar3(void* ptr, struct SL_Uchar3 value, enum SL_MEM mem);
2025  INTERFACE_API int sl_mat_set_to_uchar4(void* ptr, struct SL_Uchar4 value, enum SL_MEM mem);
2033  INTERFACE_API int sl_mat_set_to_float(void* ptr, float value, enum SL_MEM mem);
2041  INTERFACE_API int sl_mat_set_to_float2(void* ptr, struct SL_Vector2 value, enum SL_MEM mem);
2049  INTERFACE_API int sl_mat_set_to_float3(void* ptr, struct SL_Vector3 value, enum SL_MEM mem);
2057  INTERFACE_API int sl_mat_set_to_float4(void* ptr, struct SL_Vector4 value, enum SL_MEM mem);
2058 
2064  INTERFACE_API int sl_mat_update_cpu_from_gpu(void* ptr);
2070  INTERFACE_API int sl_mat_update_gpu_from_cpu(void* ptr);
2078  INTERFACE_API int sl_mat_copy_to(void* ptr, void* ptr_dest, enum SL_COPY_TYPE cpy_type);
2079 
2088  INTERFACE_API int sl_mat_read(void* ptr, const char* file_path);
2095  INTERFACE_API int sl_mat_write(void* ptr, const char* file_path);
2101  INTERFACE_API int sl_mat_get_width(void* ptr);
2107  INTERFACE_API int sl_mat_get_height(void* ptr);
2113  INTERFACE_API int sl_mat_get_channels(void* ptr);
2119  INTERFACE_API int sl_mat_get_memory_type(void* ptr);
2120 
2126  INTERFACE_API int sl_mat_get_data_type(void* ptr);
2132  INTERFACE_API int sl_mat_get_pixel_bytes(void* ptr);
2139  INTERFACE_API int sl_mat_get_step(void* ptr, enum SL_MEM mem);
2146  INTERFACE_API int sl_mat_get_step_bytes(void* ptr, enum SL_MEM mem);
2152  INTERFACE_API int sl_mat_get_width_bytes(void* ptr);
2157  INTERFACE_API bool sl_mat_is_memory_owner(void* ptr);
2163  INTERFACE_API struct SL_Resolution sl_mat_get_resolution(void* ptr);
2172  INTERFACE_API void sl_mat_alloc(void* ptr, int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem);
2181  INTERFACE_API int sl_mat_set_from(void* ptr, void* ptr_source, enum SL_COPY_TYPE copy_type);
2188  INTERFACE_API int* sl_mat_get_ptr(void* ptr, enum SL_MEM mem);
2194  INTERFACE_API int sl_mat_clone(void* ptr, void* ptr_source);
2195 
2201  INTERFACE_API void sl_mat_swap(void* ptr_1, void* ptr_2);
2202 
2207  INTERFACE_API int sl_mat_convert_color(void* ptr, enum SL_MEM memory, bool swap_RB_channels, void* stream);
2208 
2214  INTERFACE_API int sl_convert_color(void* mat1, void* mat2, bool swap_RB_channels, bool remove_alpha_channels, enum SL_MEM memory, void* stream);
2215 
2228  INTERFACE_API int sl_blob_from_image(void* image_in, void* tensor_out, struct SL_Resolution resolution_out,
2229  float scalefactor, struct SL_Vector3 mean, struct SL_Vector3 stddev, bool keep_aspect_ratio, bool swap_RB_channels,
2230  void* stream);
2231 
2246  INTERFACE_API int sl_blob_from_images(void** image_in, int nb_images, void* tensor_out, struct SL_Resolution resolution_out,
2247  float scalefactor, struct SL_Vector3 mean, struct SL_Vector3 stddev, bool keep_aspect_ratio, bool swap_RB_channels,
2248  void* stream);
2249 
2254  INTERFACE_API bool sl_is_camera_one(enum SL_MODEL m);
2255 
2261  INTERFACE_API bool sl_is_resolution_available(enum SL_RESOLUTION r, enum SL_MODEL m);
2262 
2269  INTERFACE_API bool sl_is_FPS_available(int fps, enum SL_RESOLUTION r, enum SL_MODEL m);
2270 
2276  INTERFACE_API bool sl_is_HDR_available(enum SL_RESOLUTION r, enum SL_MODEL m);
2277 
2278 
2279 #ifdef __cplusplus
2280 }
2281 #endif
2282 
2283 #endif
Structure containing AI model status.
Definition: types_c.h:2467
Structure containing the results of the body tracking module.
Definition: types_c.h:3478
Holds the options used to initialize the body tracking module of the Fusion.
Definition: types_c.h:4172
Holds the options used to change the behavior of the body tracking module at runtime.
Definition: types_c.h:4193
Structure containing a set of parameters for the body tracking module.
Definition: types_c.h:2819
Structure containing a set of runtime parameters for the body tracking module.
Definition: types_c.h:2906
Structure containing intrinsic and extrinsic parameters of the camera (translation and rotation).
Definition: types_c.h:1788
Used to identify a specific camera in the Fusion API.
Definition: types_c.h:4219
Structure containing information of a single camera (serial number, model, input type,...
Definition: types_c.h:1914
Definition: types_c.h:3991
Structure that store externally detected objects.
Definition: types_c.h:3064
Definition: types_c.h:3169
Structure containing a set of runtime parameters for the object detection module using your own model...
Definition: types_c.h:2794
Structure containing information about the properties of a camera.
Definition: types_c.h:1655
Represents a world position in ENU format.
Definition: types_c.h:4464
Class containing the overall position fusion status.
Definition: types_c.h:3963
Useful struct to store the Fusion configuration, can be read from /write to a JSON file.
Definition: types_c.h:4000
Holds the metrics of the fusion process.
Definition: types_c.h:4271
Structure containing GNSS data to be used for positional tracking as prior.
Definition: types_c.h:4300
Holds Geo reference position.
Definition: types_c.h:4372
Definition: types_c.h:3734
Holds the options used to initialize the Fusion object.
Definition: types_c.h:4090
Structure containing the options used to initialize a camera.
Definition: types_c.h:1325
Represents a 2d landmark.
Definition: types_c.h:2047
Represents a 3d landmark.
Definition: types_c.h:2032
Represents a world position in LatLng format.
Definition: types_c.h:4349
Structure containing a set of parameters for the object detection module.
Definition: types_c.h:2479
Structure containing a set of runtime parameters for the object detection module.
Definition: types_c.h:2614
Structure containing batched data of a detected objects from the object detection module.
Definition: types_c.h:3520
Structure containing the results of the object detection module.
Definition: types_c.h:3287
Structure representing a plane defined by a point and a normal, or a plane equation.
Definition: types_c.h:243
enum UNITY_PLAN_TYPE type
Type of the plane defined by its orientation.
Definition: types_c.h:249
Structure containing a set of parameters for the plane detection functionality.
Definition: types_c.h:2092
Structure containing positional tracking data giving the position and orientation of the camera in 3D...
Definition: types_c.h:194
Holds the options used for initializing the positional tracking fusion module.
Definition: types_c.h:4538
Structure containing a set of parameters for the positional tracking module initialization.
Definition: types_c.h:1945
Lists the different status of positional tracking.
Definition: types_c.h:775
Structure representing a quaternion.
Definition: types_c.h:25
Structure containing the options used to record.
Definition: types_c.h:2148
Structure containing information about the status of the recording.
Definition: types_c.h:2112
Structure defining a 2D rectangle with top-left corner coordinates and width/height in pixels.
Definition: types_c.h:3669
Structure containing a set of parameters for the region of interest.
Definition: types_c.h:2063
Structure containing the width and height of an image.
Definition: types_c.h:1304
int width
Width of the image in pixels.
Definition: types_c.h:1308
int height
Height of the image in pixels.
Definition: types_c.h:1312
Structure containing parameters that defines the behavior of sl_grab().
Definition: types_c.h:1594
Structure containing data that can be stored in and retrieved from SVOs. That information will be ing...
Definition: types_c.h:2197
Structure containing information about all the sensors available in the current device.
Definition: types_c.h:1862
Structure containing all sensors data (except image sensors) to be used for positional tracking or en...
Definition: types_c.h:411
Structure containing a set of parameters for the spatial mapping module.
Definition: types_c.h:2343
Structure containing the options used to stream with the ZED SDK.
Definition: types_c.h:2225
Structure containing information about the properties of a streaming device.
Definition: types_c.h:2302
Structure representing an unsigned char 2-dimensional vector.
Definition: types_c.h:118
Structure representing an unsigned char 3-dimensional vector.
Definition: types_c.h:132
Structure representing an unsigned char 4-dimensional vector.
Definition: types_c.h:150
Structure representing a generic 2-dimensional vector.
Definition: types_c.h:35
Structure representing a generic 3-dimensional vector.
Definition: types_c.h:63
Structure representing a generic 4-dimensional vector.
Definition: types_c.h:81
SL_COORDINATE_SYSTEM
Lists available coordinates systems for positional tracking and 3D measures.
Definition: types_c.h:515
SL_SPATIAL_MAPPING_STATE
Lists the different states of spatial mapping.
Definition: types_c.h:817
SL_MODULE
Definition: types_c.h:1283
SL_MESH_FILE_FORMAT
Lists available mesh file formats.
Definition: types_c.h:845
SL_AI_MODELS
Lists available AI models.
Definition: types_c.h:985
SL_STREAMING_CODEC
Lists the different encoding types for image streaming.
Definition: types_c.h:624
SL_MAT_TYPE
Lists available matrix formats.
Definition: types_c.h:902
SL_RESOLUTION
Lists available resolutions.
Definition: types_c.h:486
SL_VIDEO_SETTINGS
Lists available camera settings for the camera (contrast, hue, saturation, gain, ....
Definition: types_c.h:634
SL_ERROR_CODE
Lists error codes in the ZED SDK.
Definition: types_c.h:438
SL_TIME_REFERENCE
Lists possible time references for timestamps or data.
Definition: types_c.h:616
SL_SIDE
Lists possible sides on which to get data from.
Definition: types_c.h:588
SL_REFERENCE_FRAME
Lists possible types of position matrix used to store camera path and pose.
Definition: types_c.h:608
SL_MESH_FILTER
Lists available mesh filtering intensities.
Definition: types_c.h:836
SL_POSITIONAL_TRACKING_STATE
Lists the different states of positional tracking.
Definition: types_c.h:721
SL_MEM
Lists available memory type.
Definition: types_c.h:555
SL_GNSS_FUSION_STATUS
Class containing the current GNSS fusion status.
Definition: types_c.h:3932
SL_MODEL
Lists ZED camera model.
Definition: types_c.h:535
SL_SVO_COMPRESSION_MODE
Lists available compression modes for SVO recording.
Definition: types_c.h:888
SL_VIEW
Lists available views.
Definition: types_c.h:690
SL_POSITION_TYPE
Lists the types of possible position outputs.
Definition: types_c.h:1296
SL_COPY_TYPE
Lists available copy operation on matrix.
Definition: types_c.h:877
SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE
Lists the different states of region of interest auto detection.
Definition: types_c.h:795
SL_UNIT
Lists available units for measures.
Definition: types_c.h:502
SL_FUSION_REFERENCE_FRAME
Enum to define the reference frame of the fusion SDK.
Definition: types_c.h:3954
SL_FUSION_ERROR_CODE
Lists the types of error that can be raised by the Fusion.
Definition: types_c.h:3784
SL_SENDER_ERROR_CODE
Lists the types of error that can be raised during the Fusion by senders.
Definition: types_c.h:3860
SL_MEASURE
Lists retrievable measures.
Definition: types_c.h:665
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 int sl_get_positional_tracking_landmarks_2d(int camera_id, struct SL_Landmark2D **landmarks2d, uint32_t *count)
Get the current positional tracking 2d landmarks. \Note the landmarks array has to be freed by the us...
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 bool sl_is_FPS_available(int fps, enum SL_RESOLUTION r, enum SL_MODEL m)
Check if a frame rate is available for a given resolution and camera model.
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 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 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_set_body_tracking_runtime_parameters(int camera_id, struct SL_BodyTrackingRuntimeParameters body_tracking_parameters, unsigned int instance_id)
Set the Body tracking module instance runtime parameters By default the Body tracking module will use...
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 int sl_retrieve_image(int camera_id, void *image_ptr, enum SL_VIEW type, enum SL_MEM mem, int width, int height, void *custream)
Retrieves an image texture from the ZED SDK in a human-viewable format.
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 bool sl_is_camera_one(enum SL_MODEL m)
Check if the camera is a ZED One (Monocular) or ZED (Stereo)
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 bool sl_is_resolution_available(enum SL_RESOLUTION r, enum SL_MODEL m)
Check if a resolution is available for a given camera model.
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 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_mat_convert_color(void *ptr, enum SL_MEM memory, bool swap_RB_channels, void *stream)
Convert the color channels of the Mat (RGB<->BGR or RGBA<->BGRA) This methods works only on 8U_C4 or ...
INTERFACE_API int sl_set_custom_object_detection_runtime_parameters(int camera_id, struct SL_CustomObjectDetectionRuntimeParameters custom_object_detection_parameters, unsigned int instance_id)
Set the Object detection module instance runtime parameters when using the Custom model (OBJECT_DETEC...
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_FUSION_ERROR_CODE sl_fusion_retrieve_bodies(struct SL_Bodies *bodies, struct SL_BodyTrackingFusionRuntimeParameters *rt, struct SL_CameraIdentifier uuid, enum SL_FUSION_REFERENCE_FRAME reference_frame)
retrieves a list of bodies (in SL_Bodies class type) seen by all cameras and merged as if it was seen...
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 struct SL_HealthStatus * sl_get_health_status(int camera_id)
Gets the current status of the camera.
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 enum SL_FUSION_ERROR_CODE sl_fusion_geo_to_enu(struct SL_LatLng *in, struct SL_ENU *out)
Convert a global world coordinate to a ENU position expressed inside the Fusion coordinate system.
INTERFACE_API int sl_blob_from_images(void **image_in, int nb_images, void *tensor_out, struct SL_Resolution resolution_out, float scalefactor, struct SL_Vector3 mean, struct SL_Vector3 stddev, bool keep_aspect_ratio, bool swap_RB_channels, void *stream)
Convert a list of images into a GPU Tensor in planar channel configuration (NCHW),...
INTERFACE_API int sl_convert_color(void *mat1, void *mat2, bool swap_RB_channels, bool remove_alpha_channels, enum SL_MEM memory, void *stream)
Convert the color channels of the Mat into another Mat This methods works only on 8U_C4 if remove_alp...
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_convert_image(void *image_in_ptr, void *image_signed_ptr, void *stream)
Convert Image format from Unsigned char to Signed char, designed for Unreal Engine pipeline,...
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 void sl_pause_svo_reading(int camera_id, bool status)
Pauses or resumes SVO reading.
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_blob_from_image(void *image_in, void *tensor_out, struct SL_Resolution resolution_out, float scalefactor, struct SL_Vector3 mean, struct SL_Vector3 stddev, bool keep_aspect_ratio, bool swap_RB_channels, void *stream)
Convert an image into a GPU Tensor in planar channel configuration (NCHW), ready to use for deep lear...
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 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 bool sl_is_HDR_available(enum SL_RESOLUTION r, enum SL_MODEL m)
Check if a resolution for a given camera model is available for HDR.
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_retrieve_measure(int camera_id, void *measure_ptr, enum SL_MEASURE type, enum SL_MEM mem, int width, int height, void *custream)
Retrieves a measure texture from the ZED SDK.
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_FUSION_ERROR_CODE sl_fusion_enu_to_geo(struct SL_ENU *in, struct SL_LatLng *out)
Convert a ENU position expressed inside the Fusion coordinate system to a global world coordinate.
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 enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_measure(void *mat, struct SL_CameraIdentifier *uuid, enum SL_MEASURE measure, int width, int height, enum SL_FUSION_REFERENCE_FRAME reference_frame)
Returns the current measure of the specified camera, the data is synchronized.
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 enum SL_ERROR_CODE sl_retrieve_svo_data(int camera_id, char *key, 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_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 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 enum SL_FUSION_ERROR_CODE sl_fusion_get_pose(struct SL_CameraIdentifier *uuid, struct SL_Vector3 *pose_translation, struct SL_Quaternion *pose_rotation)
Get the specified camera position inside fusion WORLD.
INTERFACE_API void sl_pause_spatial_mapping(int camera_id, bool status)
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_set_object_detection_runtime_parameters(int camera_id, struct SL_ObjectDetectionRuntimeParameters object_detection_parameters, unsigned int instance_id)
Set the Object detection module instance runtime parameters By default the object detection module wi...
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 void sl_get_svo_data_keys(int camera_id, int nb_keys, char **keys)
Gets the external channels that can be retrieved from the SVO file. The user is reponsible for correc...
INTERFACE_API int sl_get_number_zed_connected()
Gets the number of zed connected.
INTERFACE_API int sl_get_positional_tracking_landmarks(int camera_id, struct SL_Landmark **landmarks, uint32_t *count)
Get the current positional tracking landmarks. \Note the landmarks array has to be freed by the user.
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.
INTERFACE_API int sl_read(int camera_id)
Read the latest images and IMU from the camera and rectify the images.