4#if (defined(_WIN32) || defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__))
5# ifdef pstsdk_c_EXPORTS
6# define PST_C_EXPORT __declspec(dllexport)
8# define PST_C_EXPORT __declspec(dllimport)
void pst_image_init(PstImage *image)
EPstErrorStatus pst_tracker_get_target_info(const PstTracker *ctracker, const char *name, PstTarget *target)
Get basic tracking target information.
EPstErrorStatus pst_tracker_remove_target_model(PstTracker *ctracker, const char *model_name)
Remove a tracking target model from the target model database.
void pst_image_destroy(PstImage *image)
EPstErrorStatus pst_tracker_get_exposure_range(const PstTracker *ctracker, double *min, double *max)
Get the allowed exposure range.
void pst_trackerdata_init(PstTrackerData *cdata)
EPstErrorStatus pst_tracker_get_pst_image(const PstTracker *ctracker, PstImage *image)
Retrieve images from the connected PST Tracker.
EPstErrorStatus pst_tracker_get_target_status(const PstTracker *ctracker, const char *name, bool *status)
Get status of a single tracking Target.
EPstErrorStatus pst_tracker_disable_filtering(PstTracker *ctracker)
Disable filtering of the tracking results.
EPstErrorStatus pst_tracker_remove_tracker_mode_callback(PstTracker *ctracker, void(*on_tracker_mode)(EPstTrackerMode))
Remove a callback function for mode changes.
EPstStatusMessage
Tracker status messages enum class.
Definition pstsdk_c.h:69
EPstErrorStatus pst_tracker_get_target_markers(const PstTracker *ctracker, const char *name, PstTargetMarkers *marker_list)
Get 3D marker positions of stored tracking target.
EPstErrorStatus pst_tracker_get_framerate(const PstTracker *ctracker, double *fps)
Get current frame rate.
EPstErrorStatus pst_tracker_set_exposure(PstTracker *ctracker, double time)
Set the exposure time.
EPstErrorStatus pst_tracker_alloc_and_get_target_list(const PstTracker *ctracker, PstTargetStatus **statuses, size_t *number_of_statuses)
Get TargetStatuses object containing all tracking targets and their status.
EPstErrorStatus pst_tracker_init(PstTracker *ctracker)
This function initializes the tracker object.
EPstErrorStatus pst_tracker_get_exposure(const PstTracker *ctracker, double *exposure)
Get the current exposure time.
EPstErrorStatus pst_alloc_and_get_last_error_message(char **cstring)
This function returns the last error message that was recorded by the system.
EPstErrorStatus pst_tracker_get_marker_detection_region(const PstTracker *ctracker, EPstTrackingRegion *detection_region)
Gets the region of the tracking working space where markers are reported.
EPstErrorStatus pst_tracker_init4(PstTracker *ctracker, const char path[], const char config_file[], const char db_file[], const char grabber_name[])
This function initializes the tracker object.
EPstErrorStatus pst_tracker_alloc_and_get_connected_camera_info(const PstTracker *ctracker, bool silent, PstCameraInfo **c_camera_info, size_t *number_of_cameras)
Retrieve camera information for connected PST Trackers.
void pst_tracker_destroy(PstTracker *ctracker)
EPstErrorStatus pst_tracker_set_marker_detection_region(PstTracker *ctracker, EPstTrackingRegion detection_region)
Sets the region of the tracking working space where markers are reported.
void pst_sdk_shutdown()
Shutdown the tracking system, stopping tracking.
EPstErrorStatus pst_tracker_remove_tracker_callbacks(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus), void(*on_tracker_mode)(EPstTrackerMode))
Remove callback functions for tracker data and mode changes.
EPstErrorStatus pst_tracker_set_default_reference(PstTracker *ctracker)
Reset the reference system to the default reference system.
EPstErrorStatus pst_tracker_alloc_and_get_version_info(const PstTracker *ctracker, char **version_string)
Get version information of the SDK.
EPstErrorStatus pst_tracker_import_json_model(PstTracker *ctracker, const char *json_model)
Import a tracking target model into the target model database.
EPstErrorStatus pst_tracker_set_position_filter(PstTracker *ctracker, double value)
Set the strength of the position filter.
void pst_sdk_disable_shared_memory()
Disable shared memory communication layer.
EPstErrorStatus pst_tracker_set_target_status(PstTracker *ctracker, const char *name, bool set_active)
Set status of a single tracking Target.
EPstErrorStatus pst_tracker_enable_tremor_filter(PstTracker *ctracker)
Enable the tremor filter.
void pst_free(void *data)
Free data allocated by the PST SDK.
EPstErrorStatus pst_tracker_pause(PstTracker *ctracker)
Pause tracking.
EPstTrackingRegion
Region of the tracking working space in which markers are reported.
Definition pstsdk_c.h:165
EPstErrorStatus pst_tracker_start(PstTracker *ctracker)
Start tracking.
const char * pst_sdk_get_version()
Retrieve the SDK version string.
void pst_target_markers_init(PstTargetMarkers *marker_list)
void pst_sdk_enable_logging()
Write plug-in status information to the standard C output stream stderr.
void pst_sdk_disable_rest_server()
Disable the REST server communication layer.
EPstTrackerMode
Tracker mode enum class.
Definition pstsdk_c.h:95
EPstErrorStatus pst_tracker_set_framerate(PstTracker *ctracker, double fps)
Set tracker frame rate.
EPstErrorStatus pst_tracker_set_orientation_filter(PstTracker *ctracker, double value)
Set the strength of the orientation filter.
EPstErrorStatus pst_tracker_alloc_and_get_config_path(const PstTracker *ctracker, char **config_path)
Get the path to the current configuration directory.
EPstErrorStatus pst_tracker_supports_detection_region_pruning(const PstTracker *ctracker, bool *supported)
Check if the connected PST tracker supports pruning markers by tracking region.
void pst_trackerdata_destroy(PstTrackerData *cdata)
EPstErrorStatus pst_tracker_disable_image_transfer(PstTracker *ctracker)
Disable image transfer from the PST Tracker.
EPstErrorStatus pst_tracker_remove_tracker_data_callback(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus))
Remove a callback function for tracker data.
EPstErrorStatus pst_tracker_load_calibration_from_local_path(PstTracker *ctracker, const char path[])
Load calibration information from a given path.
EPstErrorStatus pst_tracker_export_json_model(const PstTracker *ctracker, const char *model_name, char **model_string)
Export a tracking target model as a JSON-formatted string.
void pst_target_markers_destroy(PstTargetMarkers *marker_list)
EPstErrorStatus pst_tracker_enable_filtering(PstTracker *ctracker)
Enable filtering of the tracking results.
EPstErrorStatus pst_tracker_get_reference(const PstTracker *ctracker, float creference[16])
Gets the transformation matrix for the current reference system.
EPstErrorStatus pst_tracker_alloc_and_get_supported_framerates(const PstTracker *ctracker, float **framerates, size_t *number_of_framerates)
Get an array of available frame rates.
EPstErrorStatus pst_tracker_get_single_measurement(const PstTracker *ctracker, PstTrackerData *cdata)
Retrieve the latest PstTrackerData available from the connected PstTracker.
EPstErrorStatus pst_tracker_add_tracker_mode_callback(PstTracker *ctracker, void(*on_tracker_mode)(EPstTrackerMode))
Add a callback function for mode changes.
EPstErrorStatus pst_tracker_disable_tremor_filter(PstTracker *ctracker)
Disable the tremor filter.
void pst_camera_urls_init(PstCameraURLs *urls)
EPstErrorStatus pst_tracker_set_target_id(PstTracker *ctracker, const char *name, int id)
Set the id of the tracking target.
EPstErrorStatus pst_tracker_enable_image_transfer(PstTracker *ctracker)
Enable image transfer from the PST Tracker.
EPstErrorStatus pst_sdk_enable_shared_memory()
Enable shared memory communication layer.
void pst_camera_urls_destroy(PstCameraURLs *urls)
EPstErrorStatus pst_tracker_add_tracker_data_callback(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus))
Add a callback function for tracker data.
EPstStatusMessage pst_tracker_system_check(const PstTracker *ctracker)
Check if the tracker is running correctly.
EPstErrorStatus pst_tracker_add_tracker_callbacks(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus), void(*on_tracker_mode)(EPstTrackerMode))
Add callback functions for tracker data and mode changes.
EPstErrorStatus pst_tracker_init1(PstTracker *ctracker, const char path[])
This function initializes the tracker object.
EPstErrorStatus pst_tracker_init3(PstTracker *ctracker, const char path[], const char config_file[], const char db_file[])
This function initializes the tracker object.
EPstErrorStatus
Tracker error messages enum class.
Definition pstsdk_c.h:44
EPstErrorStatus pst_tracker_set_reference(PstTracker *ctracker, const float creference[16], bool relative)
Set the reference system in which tracking results are reported.
EPstErrorStatus pst_tracker_get_connected_camera_urls(const PstTracker *ctracker, bool silent, PstCameraURLs *urls)
Get URLs of the calibration information for the connected PST Tracker.
EPstErrorStatus pst_tracker_init2(PstTracker *ctracker, const char path[], const char config_file[])
This function initializes the tracker object.
EPstErrorStatus pst_sdk_enable_rest_server(const char *server_address, const char *server_port, int event_stream_retry_timeout)
Enable a REST Server using the HTTP protocol on a local area network.
EPstErrorStatus pst_tracker_get_uncalibrated_camera_urls(const PstTracker *ctracker, bool silent, PstCameraURLs *urls)
Check if cameras of the connected PST Tracker are calibrated.
@ PST_STATUSMESSAGE_DISCONNECTED
Definition pstsdk_c.h:72
@ PST_STATUSMESSAGE_OK
Definition pstsdk_c.h:70
@ PST_STATUSMESSAGE_ERR_INITERROR
Definition pstsdk_c.h:77
@ PST_STATUSMESSAGE_ERR_NOTENOUGHTCAMS_FOUND
Definition pstsdk_c.h:76
@ PST_STATUSMESSAGE_ERR_UNKNOWN_STATUS
Definition pstsdk_c.h:81
@ PST_STATUSMESSAGE_ERR_NOCAMS_FOUND
Definition pstsdk_c.h:75
@ PST_STATUSMESSAGE_NOT_INITIALIZED
Definition pstsdk_c.h:71
@ PST_STATUSMESSAGE_ERR_GENERAL
Definition pstsdk_c.h:73
@ PST_STATUSMESSAGE_ERR_CANNOT_START_CAMS
Definition pstsdk_c.h:78
@ PST_STATUSMESSAGE_ERR_TIMEOUT
Definition pstsdk_c.h:74
@ PST_STATUSMESSAGE_ERR_NULL_TRACKER_HANDLE
Definition pstsdk_c.h:80
@ PST_STATUSMESSAGE_ERR_CANNOT_SETUP_CAMS
Definition pstsdk_c.h:79
@ OPTIMAL
Definition pstsdk_c.h:166
@ FULL
Definition pstsdk_c.h:167
@ PST_MODE_ERROR
Definition pstsdk_c.h:102
@ PST_MODE_TRAINING
Definition pstsdk_c.h:99
@ PST_MODE_LOWPOWER
Definition pstsdk_c.h:96
@ PST_MODE_DISCONNECT
Definition pstsdk_c.h:100
@ PST_MODE_TRACKING
Definition pstsdk_c.h:98
@ PST_MODE_UNKNOWN
Definition pstsdk_c.h:103
@ PST_MODE_RECONNECT
Definition pstsdk_c.h:101
@ PST_MODE_SETUP
Definition pstsdk_c.h:97
@ PST_ERROR_STATUS_NOT_INITIALIZED_ERROR
Definition pstsdk_c.h:47
@ PST_ERROR_STATUS_NOT_FOUND_ERROR
Definition pstsdk_c.h:50
@ PST_ERROR_STATUS_IMAGE_RETRIEVAL_FAILED_ERROR
Definition pstsdk_c.h:54
@ PST_ERROR_STATUS_OK
Definition pstsdk_c.h:45
@ PST_ERROR_STATUS_TRACKER_ERROR
Definition pstsdk_c.h:46
@ PST_ERROR_STATUS_OUT_OF_RANGE_ERROR
Definition pstsdk_c.h:49
@ PST_ERROR_STATUS_HTTP_ERROR
Definition pstsdk_c.h:51
@ PST_ERROR_STATUS_INVALID_DATA_ERROR
Definition pstsdk_c.h:55
@ PST_ERROR_STATUS_NULLPTR_ERROR
Definition pstsdk_c.h:53
@ PST_ERROR_STATUS_JSON_PARSING_ERROR
Definition pstsdk_c.h:57
@ PST_ERROR_STATUS_ALREADY_EXISTS_ERROR
Definition pstsdk_c.h:56
@ PST_ERROR_STATUS_NOT_SUPPORTED_ERROR
Definition pstsdk_c.h:48
@ PST_ERROR_STATUS_FAILED_TO_ALLOCATE_MEMORY_ERROR
Definition pstsdk_c.h:52
#define PST_C_EXPORT
Definition pstsdk_c.h:11
Information for a single camera of the connected PST Tracker.
Definition pstsdk_c.h:317
char camera_id[32]
Definition pstsdk_c.h:318
char local_sha1[64]
Definition pstsdk_c.h:319
char server_sha1_url[128]
Definition pstsdk_c.h:320
char calibration_url[128]
Definition pstsdk_c.h:321
Struct to request urls for calibration information.
Definition pstsdk_c.h:277
size_t number_of_urls
Definition pstsdk_c.h:279
char ** url_data
Definition pstsdk_c.h:278
Images retrieved from the tracker.
Definition pstsdk_c.h:118
size_t width
Definition pstsdk_c.h:119
size_t height
Definition pstsdk_c.h:120
unsigned char ** images
Definition pstsdk_c.h:122
size_t number_of_images
Definition pstsdk_c.h:121
Estimated 3D marker location.
Definition pstsdk_c.h:181
int id
Definition pstsdk_c.h:182
float position[3]
Definition pstsdk_c.h:183
EPstTrackingRegion detection_region
Definition pstsdk_c.h:184
Tracking target information.
Definition pstsdk_c.h:133
char uuid[37]
Definition pstsdk_c.h:135
char name[128]
Definition pstsdk_c.h:134
int id
Definition pstsdk_c.h:136
3D marker positions of a single marker of a tracking Target.
Definition pstsdk_c.h:216
float coordinates[3]
Definition pstsdk_c.h:217
Collection struct for PstTargetMarker.
Definition pstsdk_c.h:229
size_t number_of_markers
Definition pstsdk_c.h:231
PstTargetMarker * markers
Definition pstsdk_c.h:230
Estimated tracking target pose.
Definition pstsdk_c.h:199
float pose_matrix[16]
Definition pstsdk_c.h:201
float matching_error
Definition pstsdk_c.h:204
PstTarget target
Definition pstsdk_c.h:200
PstPoint * matched_points
Definition pstsdk_c.h:203
size_t number_of_matched_points
Definition pstsdk_c.h:202
Tracking target status.
Definition pstsdk_c.h:152
bool status
Definition pstsdk_c.h:154
PstTarget target
Definition pstsdk_c.h:153
Tracking information retrieved from tracker.
Definition pstsdk_c.h:248
size_t number_of_targets
Definition pstsdk_c.h:251
int seqnumber
Definition pstsdk_c.h:250
size_t number_of_points
Definition pstsdk_c.h:252
PstTargetPose * targetlist
Definition pstsdk_c.h:253
double timestamp
Definition pstsdk_c.h:249
PstPoint * datapoints
Definition pstsdk_c.h:254
Main PST SDK struct for tracker communication.
Definition pstsdk_c.h:264
void * tracker
Definition pstsdk_c.h:265