RealSense Cross Platform API
RealSense Cross-platform API
rs_types.h
Go to the documentation of this file.
1 /* License: Apache 2.0. See LICENSE file in root directory.
2  Copyright(c) 2017 RealSense, Inc. All Rights Reserved. */
3 
9 #ifndef LIBREALSENSE_RS2_TYPES_H
10 #define LIBREALSENSE_RS2_TYPES_H
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include <stdint.h>
17 
30 
32 typedef enum rs2_exception_type
33 {
45 
47 typedef enum rs2_distortion
48 {
57 const char* rs2_distortion_to_string(rs2_distortion distortion);
58 
60 typedef struct rs2_intrinsics
61 {
62  int width;
63  int height;
64  float ppx;
65  float ppy;
66  float fx;
67  float fy;
69  float coeffs[5];
71 
74 {
75  /* \internal
76  * Scale X cross axis cross axis Bias X \n
77  * cross axis Scale Y cross axis Bias Y \n
78  * cross axis cross axis Scale Z Bias Z */
79  float data[3][4];
81  float noise_variances[3];
82  float bias_variances[3];
84 
87 typedef struct rs2_vertex
88 {
89  float xyz[3];
90 } rs2_vertex;
91 
93 typedef struct rs2_pixel
94 {
95  int ij[2];
96 } rs2_pixel;
97 
99 typedef struct rs2_vector
100 {
101  float x, y, z;
102 }rs2_vector;
103 
105 typedef struct rs2_quaternion
106 {
107  float x, y, z, w;
109 
110 typedef struct rs2_pose
111 {
118  unsigned int tracker_confidence;
119  unsigned int mapper_confidence;
120 } rs2_pose;
121 
123 typedef struct rs2_object_detection
124 {
125  int class_id;
126  int score;
131  float depth;
133 
135 typedef enum rs2_log_severity {
146 
148 // To add a new extension, append it at the end of this enum to preserve ordering.
149 typedef enum rs2_extension
150 {
222 } rs2_extension;
224 const char* rs2_extension_to_string(rs2_extension type);
225 
227 typedef enum rs2_matchers
228 {
229  RS2_MATCHER_DI, //compare depth and ir based on frame number
230 
231  RS2_MATCHER_DI_C, //compare depth and ir based on frame number,
232  //compare the pair of corresponding depth and ir with color based on closest timestamp,
233 
234  RS2_MATCHER_DLR_C, //compare depth, left and right ir based on frame number,
235  //compare the set of corresponding depth, left and right with color based on closest timestamp,
236  //commonly used by RS415, RS435
237 
238  RS2_MATCHER_DLR, //compare depth, left and right ir based on frame number,
239  //commonly used by RS400, RS405, RS410, RS420, RS430
240 
241  RS2_MATCHER_DIC, //compare depth, ir and confidence based on frame number used by RS500
242 
243  RS2_MATCHER_DIC_C, //compare depth, ir and confidence based on frame number,
244  //compare the set of corresponding depth, ir and confidence with color based on closest timestamp,
245  //commonly used by RS515
246 
247  RS2_MATCHER_DEFAULT, //the default matcher compare all the streams based on closest timestamp
248 
250 } rs2_matchers;
251 const char* rs2_matchers_to_string(rs2_matchers stream);
252 
254 {
255  RS2_POINT_CLOUD_LABEL_UNKNOWN, // No valid classification can be made for this point
257  RS2_POINT_CLOUD_LABEL_INVALID, // This point is discarded, i.e. outside of vertical FOV or too close
258  RS2_POINT_CLOUD_LABEL_GROUND, // This point belongs to ground plane
259  RS2_POINT_CLOUD_LABEL_NEAR_GROUND, // This point is not on ground plane, but yet not part of a true obstacle
260  RS2_POINT_CLOUD_LABEL_OVERHEAD, // This point belongs to something above robot's height, but below the ceiling height,
261  // and not part of a true obstacle
262  RS2_POINT_CLOUD_LABEL_ABOVE_CEILING_HEIGHT, // This point belongs to something above the ceiling height
263  RS2_POINT_CLOUD_LABEL_GAP, // This point belongs to a Gap Region
264  RS2_POINT_CLOUD_LABEL_MASKED, // This point belongs to a Masked Region
265  RS2_POINT_CLOUD_LABEL_CLIFF, // This point is part of a possible cliff
266  RS2_POINT_CLOUD_LABEL_OBSTACLE, // This point is a potential obstacle
267  RS2_POINT_CLOUD_LABEL_OBSTACLE_DANGER, // This point is an actual obstacle inside the danger zone
268  RS2_POINT_CLOUD_LABEL_OBSTACLE_WARNING, // This point is an actual obstacle inside the warning zone
272 
273 typedef enum rs2_calib_location
274 {
281 const char* rs2_calib_location_to_string(rs2_calib_location calib_location);
282 
284 {
292 
294 typedef struct rs2_device rs2_device;
295 typedef struct rs2_error rs2_error;
298 typedef struct rs2_frame rs2_frame;
300 typedef struct rs2_pipeline rs2_pipeline;
302 typedef struct rs2_config rs2_config;
309 typedef struct rs2_syncer rs2_syncer;
311 typedef struct rs2_source rs2_source;
316 typedef struct rs2_context rs2_context;
319 typedef struct rs2_sensor rs2_sensor;
322 typedef struct rs2_options rs2_options;
333 typedef void (*rs2_log_callback_ptr)(rs2_log_severity, rs2_log_message const *, void * arg);
337 typedef void (*rs2_frame_callback_ptr)(rs2_frame*, void*);
339 typedef void (*rs2_update_progress_callback_ptr)(const float, void*);
341 
342 typedef double rs2_time_t;
343 typedef long long rs2_metadata_type;
345 rs2_error * rs2_create_error(const char* what, const char* name, const char* args, rs2_exception_type type);
347 const char* rs2_get_failed_function (const rs2_error* error);
348 const char* rs2_get_failed_args (const rs2_error* error);
349 const char* rs2_get_error_message (const rs2_error* error);
350 void rs2_free_error (rs2_error* error);
351 
352 
353 #ifdef __cplusplus
354 }
355 #endif
356 #endif
struct rs2_processing_block_list rs2_processing_block_list
Definition: rs_types.h:305
Definition: rs_types.h:207
Definition: rs_types.h:139
struct rs2_device_serializer rs2_device_serializer
Definition: rs_types.h:310
Definition: rs_types.hpp:26
struct rs2_vertex rs2_vertex
3D coordinates with origin at topmost left corner of the lense, with positive Z pointing away from th...
Definition: rs_types.h:247
Definition: rs_types.h:278
Definition: rs_types.h:277
Definition: rs_types.hpp:105
struct rs2_raw_data_buffer rs2_raw_data_buffer
Definition: rs_types.h:297
struct rs2_pixel rs2_pixel
Pixel location within 2D image. (0,0) is the topmost, left corner. Positive X is right, positive Y is down.
rs2_exception_type
Exception types are the different categories of errors that RealSense API might return.
Definition: rs_types.h:32
Definition: rs_types.h:216
Definition: rs_types.h:206
float y
Definition: rs_types.h:107
void rs2_free_error(rs2_error *error)
rs2_vector angular_acceleration
Definition: rs_types.h:117
Definition: rs_types.h:180
Definition: rs_types.h:154
const char * rs2_matchers_to_string(rs2_matchers stream)
Definition: rs_types.h:187
Definition: rs_types.h:275
float depth
Definition: rs_types.h:131
Definition: rs_types.h:178
float z
Definition: rs_types.h:101
unsigned int tracker_confidence
Definition: rs_types.h:118
Definition: rs_types.h:179
Definition: rs_types.h:193
Definition: rs_types.hpp:47
Definition: rs_types.h:209
Definition: rs_types.h:50
void(* rs2_frame_processor_callback_ptr)(rs2_frame *, rs2_source *, void *)
Definition: rs_types.h:338
Definition: rs_types.h:181
Definition: rs_types.h:160
struct rs2_frame_queue rs2_frame_queue
Definition: rs_types.h:299
rs2_distortion
Distortion model: defines how pixel coordinates should be mapped to sensor coordinates.
Definition: rs_types.h:47
int bottom_right_y
Definition: rs_types.h:130
Definition: rs_types.h:39
rs2_calib_location
Definition: rs_types.h:273
Definition: rs_types.h:190
const char * rs2_distortion_to_string(rs2_distortion distortion)
struct rs2_pipeline rs2_pipeline
Definition: rs_types.h:300
Definition: rs_types.h:143
struct rs2_context rs2_context
Definition: rs_types.h:316
struct rs2_device_info rs2_device_info
Definition: rs_types.h:293
Definition: rs_types.h:255
rs2_vector translation
Definition: rs_types.h:112
Definition: rs_types.h:138
struct rs2_sensor_list rs2_sensor_list
Definition: rs_types.h:318
Definition: rs_types.h:162
Definition: rs_types.h:243
Definition: rs_types.h:241
int top_left_x
Definition: rs_types.h:127
Definition: rs_types.h:55
float data[3][4]
Definition: rs_types.h:79
Definition: rs_types.h:54
Definition: rs_types.h:210
Definition: rs_types.hpp:89
Definition: rs_types.h:53
float coeffs[5]
Definition: rs_types.h:69
Definition: rs_types.h:266
3D coordinates with origin at topmost left corner of the lense, with positive Z pointing away from th...
Definition: rs_types.h:87
Definition: rs_types.h:34
Definition: rs_types.h:174
const char * rs2_extension_to_string(rs2_extension type)
Definition: rs_types.h:158
Definition: rs_types.h:164
float x
Definition: rs_types.h:107
struct rs2_firmware_log_parser rs2_firmware_log_parser
Definition: rs_types.h:331
rs2_vector angular_velocity
Definition: rs_types.h:116
Definition: rs_types.h:217
void(* rs2_log_callback_ptr)(rs2_log_severity, rs2_log_message const *, void *arg)
Definition: rs_types.h:333
struct rs2_sensor rs2_sensor
Definition: rs_types.h:319
Definition: rs_types.hpp:65
Definition: rs_types.h:136
void(* rs2_update_progress_callback_ptr)(const float, void *)
Definition: rs_types.h:339
Definition: rs_types.h:170
Definition: rs_types.h:289
float ppx
Definition: rs_types.h:64
const char * rs2_exception_type_to_string(rs2_exception_type type)
unsigned int mapper_confidence
Definition: rs_types.h:119
int bottom_right_x
Definition: rs_types.h:129
Quaternion used to represent rotation.
Definition: rs_types.h:105
Definition: rs_types.h:204
Definition: rs_types.h:151
float y
Definition: rs_types.h:101
Definition: rs_types.h:175
struct rs2_pipeline_profile rs2_pipeline_profile
Definition: rs_types.h:301
float noise_variances[3]
Definition: rs_types.h:81
struct rs2_config rs2_config
Definition: rs_types.h:302
struct rs2_embedded_filter rs2_embedded_filter
Definition: rs_types.h:320
struct rs2_notification rs2_notification
Definition: rs_types.h:327
Definition: rs_types.h:199
rs2_vector velocity
Definition: rs_types.h:113
Definition: rs_types.h:49
Definition: rs_types.h:42
void(* rs2_options_changed_callback_ptr)(const rs2_options_list *)
Definition: rs_types.h:340
Definition: rs_types.h:41
struct rs2_device_hub rs2_device_hub
Definition: rs_types.h:317
Definition: rs_types.h:229
Definition: rs_types.h:163
Definition: rs_types.h:157
Definition: rs_types.h:36
Definition: rs_types.h:220
Definition: rs_types.hpp:39
Definition: rs_types.h:168
Definition: rs_types.h:194
Definition: rs_types.h:276
Definition: rs_types.h:219
const char * rs2_get_error_message(const rs2_error *error)
rs2_matchers
Specifies types of different matchers.
Definition: rs_types.h:227
const char * rs2_extension_type_to_string(rs2_extension type)
struct rs2_object_detection rs2_object_detection
Object detection result from algorithm.
Definition: rs_types.h:155
Definition: rs_types.h:52
Definition: rs_types.h:161
Definition: rs_types.h:110
Definition: rs_types.h:195
struct rs2_motion_device_intrinsic rs2_motion_device_intrinsic
Motion device intrinsics: scale, bias, and variances.
Definition: rs_types.h:203
Definition: rs_types.h:218
int ij[2]
Definition: rs_types.h:95
struct rs2_stream_profile_list rs2_stream_profile_list
Definition: rs_types.h:304
Definition: rs_types.h:264
Definition: rs_types.h:169
void(* rs2_devices_changed_callback_ptr)(rs2_device_list *, rs2_device_list *, void *)
Definition: rs_types.h:336
rs2_quaternion rotation
Definition: rs_types.h:115
struct rs2_log_message rs2_log_message
Definition: rs_types.h:296
Definition: rs_types.hpp:34
const char * rs2_embedded_filter_type_to_string(rs2_embedded_filter_type embedded_filter)
Definition: rs_types.h:191
int width
Definition: rs_types.h:62
struct rs2_stream_profile rs2_stream_profile
Definition: rs_types.h:306
Definition: rs_types.h:141
int score
Definition: rs_types.h:126
Definition: rs_types.h:188
Definition: rs_types.h:196
Definition: rs_types.h:165
rs2_exception_type rs2_get_librealsense_exception_type(const rs2_error *error)
const char * rs2_calib_location_to_string(rs2_calib_location calib_location)
struct rs2_options rs2_options
Definition: rs_types.h:322
Definition: rs_types.h:263
struct rs2_syncer rs2_syncer
Definition: rs_types.h:309
int class_id
Definition: rs_types.h:125
struct rs2_vector rs2_vector
3D vector in Euclidean coordinate space
Definition: rs_types.h:51
float x
Definition: rs_types.h:101
Definition: rs_types.h:156
Definition: rs_types.h:211
struct rs2_source rs2_source
Definition: rs_types.h:311
Definition: rs_types.h:249
const char * rs2_point_cloud_label_to_string(rs2_point_cloud_label label)
struct rs2_terminal_parser rs2_terminal_parser
Definition: rs_types.h:332
Definition: rs_types.h:140
rs2_embedded_filter_type
Definition: rs_types.h:283
Definition: rs_types.h:176
Definition: rs_types.h:184
Definition: rs_types.h:208
Definition: rs_types.h:287
Definition: rs_types.h:142
Definition: rs_types.h:221
Definition: rs_types.h:267
Definition: rs_types.h:173
Definition: rs_types.h:159
Definition: rs_types.h:268
Definition: rs_types.h:137
Definition: rs_types.h:27
struct rs2_intrinsics rs2_intrinsics
Video stream intrinsics.
void(* rs2_software_device_destruction_callback_ptr)(void *)
Definition: rs_types.h:335
Definition: rs_types.h:192
3D vector in Euclidean coordinate space
Definition: rs_types.h:99
Definition: rs_types.h:186
rs2_error * rs2_create_error(const char *what, const char *name, const char *args, rs2_exception_type type)
rs2_distortion model
Definition: rs_types.h:68
struct rs2_embedded_filter_list rs2_embedded_filter_list
Definition: rs_types.h:321
float w
Definition: rs_types.h:107
Definition: rs_types.hpp:97
struct rs2_processing_block rs2_processing_block
Definition: rs_types.h:312
Definition: rs_types.h:257
Definition: rs_types.h:152
rs2_extension
Specifies advanced interfaces (capabilities) objects may implement.
Definition: rs_types.h:149
rs2_notification_category
Category of the librealsense notification.
Definition: rs_types.h:19
int top_left_y
Definition: rs_types.h:128
void(* rs2_notification_callback_ptr)(rs2_notification *, void *)
Definition: rs_types.h:334
long long rs2_metadata_type
Definition: rs_types.h:343
Definition: rs_types.h:197
Definition: rs_types.h:166
float fy
Definition: rs_types.h:67
float fx
Definition: rs_types.h:66
Definition: rs_types.h:205
Definition: rs_types.h:153
Definition: rs_types.h:200
struct rs2_device rs2_device
Definition: rs_types.h:294
struct rs2_firmware_log_parsed_message rs2_firmware_log_parsed_message
Definition: rs_types.h:330
Definition: rs_types.h:183
Video stream intrinsics.
Definition: rs_types.h:60
Definition: rs_types.h:189
Definition: rs_types.h:269
Definition: rs_types.h:201
Definition: rs_types.h:259
Definition: rs_types.h:198
Motion device intrinsics: scale, bias, and variances.
Definition: rs_types.h:73
rs2_vector acceleration
Definition: rs_types.h:114
void(* rs2_frame_callback_ptr)(rs2_frame *, void *)
Definition: rs_types.h:337
Definition: rs_types.h:185
int height
Definition: rs_types.h:63
Definition: rs_types.h:231
Definition: rs_types.h:265
struct rs2_device_list rs2_device_list
Definition: rs_types.h:303
struct rs2_pose rs2_pose
const char * rs2_notification_category_to_string(rs2_notification_category category)
Definition: rs_types.h:177
Definition: rs_types.h:285
const char * rs2_log_severity_to_string(rs2_log_severity info)
struct rs2_quaternion rs2_quaternion
Quaternion used to represent rotation.
rs2_point_cloud_label
Definition: rs_types.h:253
struct rs2_firmware_log_message rs2_firmware_log_message
Definition: rs_types.h:329
Definition: rs_types.hpp:81
Definition: rs_types.h:171
Definition: rs_types.h:286
Definition: rs_types.h:172
struct rs2_error rs2_error
Definition: rs_types.h:295
double rs2_time_t
Definition: rs_types.h:342
rs2_log_severity
Severity of the librealsense logger.
Definition: rs_types.h:135
Definition: rs_types.h:238
Definition: rs_types.h:279
Definition: rs_types.h:167
struct rs2_options_list rs2_options_list
Definition: rs_types.h:323
const char * rs2_get_failed_function(const rs2_error *error)
const char * rs2_get_failed_args(const rs2_error *error)
Definition: rs_types.h:234
float bias_variances[3]
Definition: rs_types.h:82
float xyz[3]
Definition: rs_types.h:89
Definition: rs_types.h:37
Definition: rs_types.h:256
float z
Definition: rs_types.h:107
Definition: rs_types.h:260
Definition: rs_types.h:288
struct rs2_frame rs2_frame
Definition: rs_types.h:298
float ppy
Definition: rs_types.h:65
Object detection result from algorithm.
Definition: rs_types.h:123
Definition: rs_types.h:214
Pixel location within 2D image. (0,0) is the topmost, left corner. Positive X is right, positive Y is down.
Definition: rs_types.h:93
Definition: rs_types.h:258
Definition: rs_types.h:202
Definition: rs_types.h:182