JD2022-TU1/main/extern/SK_iisu/PS4/include/HumanTrackingCAPIOptions.h

208 lines
8 KiB
C

/* COPYRIGHT AND CONFIDENTIALITY NOTICE
* SONY DEPTHSENSING SOLUTIONS CONFIDENTIAL INFORMATION
*
* All rights reserved to Sony Depthsensing Solutions SA/NV, a
* company incorporated and existing under the laws of Belgium, with
* its principal place of business at Boulevard de la Plainelaan 11,
* 1050 Brussels (Belgium), registered with the Crossroads bank for
* enterprises under company number 0811 784 189
*
* This file is part of the HumanTracking SDK, which is proprietary
* and confidential information of Sony Depthsensing Solutions SA/NV.
*
* Copyright (c) 2002-2019 Sony Depthsensing Solutions SA/NV
*/
/**
* \file HumanTrackingCAPI.h
* \brief Declaration of the Human Tracking Library auxiliary options API
*/
#ifndef HUMANTRACKING_CAPI_OPTIONS_H
#define HUMANTRACKING_CAPI_OPTIONS_H
#include "HumanTrackingPlatform.h"
#include "HumanTrackingCTypes.h"
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/**
* \defgroup HTOpApi Human Tracking Library options API functions
* @{
*/
/*************************************************************************
* Calibration *
*************************************************************************/
/**
* \brief Set the calibration mode.
* <p>
* This function allows to override the calibration of the library. The default value
* is <code>AUTOMATIC</code>. If the calibration is set to <code>MANUAL</code> then the
* call to this functions must be followed by a call to <code>humanTracking_option_forceCalibrationMatrix()</code>.
* </p>
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
* \param[in] calibrationMode calibration mode.
*
* \return always returns <code>HT_NO_ERROR</code>.
*
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_setCalibrationMode (HT_Handle handle, HT_CalibrationMode calibrationMode);
/**
* \brief Indicate whether calibration is available or not.
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
* \param[out] isCalibrationAvailable true if the calibration is available or false otherwise.
*
* \return always returns <code>HT_NO_ERROR</code>.
*
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_isCalibrationAvailable (HT_Handle handle, bool* isCalibrationAvailable);
/**
* \brief Get the current calibration matrix.
*
* The matrix represents the transformation from Camera space to the World space (default).
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
* \param[out] matrix calibration matrix corresponding to the current calibration.
* \param[in] calibrationSpace coordinates space (default is Camera space to World space transformation).
*
* \return always returns <code>HT_NO_ERROR</code>.
*
* \remark the matrix object is user allocated and its memory should be managed accordingly
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_getCalibrationMatrix (HT_Handle handle, HT_Matrix4* matrix, HT_CalibrationSpace calibrationSpace = CAMERA_TO_WORLD);
/**
* \brief Force the calibration matrix to a specific value.
*
* The matrix represents the transformation matrix, The default is from Camera space to the World space.
*
* \warning This method applies only when the calibration mode has the value 'MANUAL'.
* see <code>humanTracking_option_setCalibrationMode()</code> function.
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
* \param[out] matrix calibration matrix to force the calibration to.
*
* \return an error status:
* <ul><li> \c HT_NO_ERROR - no errors occurred </li>
* <li> \c HT_CALIBRATION_EDITING_ERROR - if the calibration mode was not set previously to *MANUAL* </li></ul>
*
* \remark the matrix object is user allocated and its memory should be managed accordingly
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_forceCalibrationMatrix (HT_Handle handle, HT_Matrix4* matrix);
/*************************************************************************
* UTILITIES *
*************************************************************************/
/**
* \brief Enable/disable the logger.
*
* \param[in] enable Boolean that enables/disables the logger.
*
* \return always returns <code>HT_NO_ERROR</code>.
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_enableLogging (bool enable);
/**
* \brief Set the listener to listen to logging events.
*
* The user-defined callback is provided with the log messages as a char*.
*
* \param[in] loggingListener callback function which will receive the log info.
*
* \return always returns <code>HT_NO_ERROR</code>.
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_setLoggingListener (HT_LoggingListener loggingListener);
/**
* \brief Lock scene calibration.
*
* The function locks the current scene calibration - no recalibration due to
* changes in the scene and no reset operations will be performed (including the reset
* of all HTLib internal layers upon detection of bad conditions in the scene
* @see <code>humanTracking_option_disableAutomaticSceneReset()</code>).
* <strong>Note:</strong> The only recalibration allowed is when the camera has been
* moved.
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
*
* \return always returns <code>HT_NO_ERROR</code>.
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_lockSceneCalibration (HT_Handle handle);
/**
* \brief Unlock scene calibration.
*
* The function unlocks the calibration and the reset operations for the scene
* (including the reset of all HTLib internal layers upon detection
* of bad conditions in the scene @see <code>humanTracking_option_enableAutomaticSceneReset()</code>).
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
*
* \return always returns <code>HT_NO_ERROR</code>.
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_unlockSceneCalibration (HT_Handle handle);
/*************************************************************************
* PARAMETERS *
*************************************************************************/
/**
* \brief Set the timeout for the reset of the signature of an *inactive* user.
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
* \param[in] userSignatureResetTimeOut the reset timeout in *micorseconds*.
*
* \return always returns <code>HT_NO_ERROR</code>.
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_setUserSignatureResetTimeout (HT_Handle handle, uint64_t userSignatureResetTimeOut);
/**
* \brief Enable automatic scene reset.
*
* The function enables the reset of all HTLib internal layers upon detection
* of bad conditions in the scene - e.g. sudden change in illumination conditions,
* frames too far apart in time from each other.
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
*
* \return always returns <code>HT_NO_ERROR</code>.
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_enableAutomaticSceneReset (HT_Handle handle);
/**
* \brief Disable automatic scene reset.
*
* The function disables the reset of all HTLib internal layers upon detection
* of bad conditions in the scene - e.g. sudden change in illumination conditions,
* frames too far apart in time from each other. Note that the user has to account
* himself for the after mentioned type of conditions and appropriately call
* <code>humanTracking_reset()</code>, otherwise the tracking quality might degrade.
*
* \param[in] handle HTLib handle returned by <code>humanTracking_init()</code>.
*
* \return always returns <code>HT_NO_ERROR</code>.
*/
HT_DLL_API HT_ErrorType HT_SDK_CDECL humanTracking_option_disableAutomaticSceneReset (HT_Handle handle);
/** @} */ // end group HTOpApi
#ifdef __cplusplus
} // extern C
#endif // __cplusplus
#endif // HUMANTRACKING_CAPI_OPTIONS_H