1#ifndef CNSDK_LEIA_CORE_CXX_CORE_HPP
2#define CNSDK_LEIA_CORE_CXX_CORE_HPP
64 leia_core_init_configuration_free(_ptr);
70 *
this = std::move(other);
74 std::swap(_ptr, other._ptr);
77 explicit operator bool()
const
79 return _ptr !=
nullptr;
84 leia_core_init_configuration_set_license_key(_ptr, licenseKey);
88 leia_core_init_configuration_set_license_network_proxy(_ptr, networkProxy);
92 leia_core_init_configuration_set_enable_validation(_ptr, enable);
96 leia_core_init_configuration_set_platform_android_handle(_ptr, handleType, handle);
100 leia_core_init_configuration_set_platform_log_level(_ptr, logLevel);
104 leia_core_init_configuration_set_face_tracking_shared_camera_sink(_ptr, sharedCameraSink);
108 leia_core_init_configuration_set_face_tracking_runtime(_ptr, runtime);
112 leia_core_init_configuration_set_face_tracking_enable(_ptr, enable);
116 leia_core_init_configuration_set_face_tracking_start(_ptr, start);
120 leia_core_init_configuration_set_face_tracking_check_permission(_ptr, checkPermission);
124 leia_core_init_configuration_set_face_tracking_permission_dialog_kill_process(_ptr, permissionDialogKillProcess);
128 leia_core_init_configuration_set_face_tracking_server_log_level(_ptr, serverLogLevel);
132 leia_core_init_configuration_set_face_tracking_preferred_fps(_ptr, preferredFps);
161#if !defined(LEIA_WRAPPER_DISABLE_EXCEPTION)
164 throw CoreInitFailed();
172 leia_core_release(_core);
179 *
this = std::move(other);
183 std::swap(_core, other._core);
184 std::swap(_isCoreOwned, other._isCoreOwned);
187 explicit operator bool()
const
189 return _core !=
nullptr;
195 return bool(leia_core_is_initialized(_core));
200 return bool(leia_core_is_validation_enabled(_core));
205 leia_core_on_resume(_core);
209 leia_core_on_pause(_core);
213 leia_core_enable_3d(_core, enable);
218 return bool(leia_core_is_3d_enabled(_core));
227 return bool(leia_core_enable_face_tracking(_core, enable));
232 return bool(leia_core_is_face_tracking_enabled(_core));
236 leia_core_start_face_tracking(_core, start);
240 leia_core_set_face_tracker_configuration(_core, leftEye, rightEye);
245 return bool(leia_core_is_face_tracking_started(_core));
249 leia_core_set_face_tracking_runtime(_core, runtime);
254 return leia_core_get_face_tracking_runtime(_core);
258 leia_core_set_face_tracking_shared_camera_sink(_core, sink);
262 leia_core_set_default_face_position(_core, position);
267 return bool(leia_core_get_primary_face(_core, position));
272 return bool(leia_core_get_non_predicted_primary_face(_core, position));
276 leia_core_set_face_tracking_frame_listener(_core, listener);
280 leia_core_set_face_tracking_capture_lux(_core, enable);
284 leia_core_enable_no_face_mode(_core, enable);
288 leia_core_set_no_face_mode_time_threshold(_core, timeThresholdSeconds);
293 return {leia_core_get_asset_manager(_core)};
333 leia_core_retain(_core);
336 leia_core_set_user_ipd.Load(coreLibPtr);
337 leia_core_set_face_tracking_profiling.Load(coreLibPtr);
338 leia_core_get_face_tracking_profiling.Load(coreLibPtr);
345 leia_core_get_face_detector_version.Load(coreLibPtr);
350 leia_core_release(_core);
356 *
this = std::move(other);
360 std::swap(_core, other._core);
363 explicit operator bool()
const
365 return _core !=
nullptr;
370 if (leia_core_set_user_ipd)
371 leia_core_set_user_ipd(_core, userIpd);
375 if (leia_core_set_face_tracking_profiling)
376 leia_core_set_face_tracking_profiling(_core, enable);
380 if (leia_core_get_face_tracking_profiling)
381 return bool(leia_core_get_face_tracking_profiling(_core, profiling, profilingSizeof));
384 bool BurnDisplayConfig(
float slant,
float pitch,
float phc,
float dOverN,
float n,
float actCoef,
float thetaX,
float thetaY,
float thetaZ)
421 if (!leia_core_get_face_detector_version)
426 leia_core_get_face_detector_version(_core, buffer,
sizeof(buffer), &actual_size);
427 return {buffer, actual_size};
451 return bool(leia_is_face_tracking_runtime_supported(coreLibrary.
GetHandle(), runtime));
457 return bool(leia_core_is_license_required());
477static bool IsDeviceSupported(CoreLibrary
const& coreLibrary)
479 return bool(leia_is_device_supported(coreLibrary.GetHandle()));
Definition assetManager.hpp:50
CoreExperimental(CoreExperimental &&other)
Definition core.hpp:354
~CoreExperimental()
Definition core.hpp:347
CoreExperimental()
Definition core.hpp:328
CoreExperimental(CoreLibrary const &coreLibrary, Core const &core)
Definition core.hpp:331
bool TrackingCameraRotation(FloatSlice rotation)
Definition core.hpp:401
bool BurnCameraExtrinsics(int cameraId, float thetaXFpc, float thetaYFpc, float thetaZFpc)
Definition core.hpp:390
std::string GetFaceDetectorVersion()
Definition core.hpp:419
void SetFaceTrackingProfiling(bool enable)
Definition core.hpp:373
bool GetNonPredictedEyes(FloatSlice &leftEyePosition, FloatSlice &rightEyePosition)
Definition core.hpp:407
bool GetFaceTrackingProfiling(leia_headtracking_frame_profiling *profiling, int32_t profilingSizeof)
Definition core.hpp:378
void TrackingCameraRotation(float thetaX, float thetaY, float thetaZ)
Definition core.hpp:396
CoreExperimental & operator=(CoreExperimental &&other)
Definition core.hpp:358
bool GetLookaroundEyes(FloatSlice &leftPosition, FloatSlice &rightPosition)
Definition core.hpp:413
bool BurnDisplayConfig(float slant, float pitch, float phc, float dOverN, float n, float actCoef, float thetaX, float thetaY, float thetaZ)
Definition core.hpp:384
CoreExperimental & operator=(CoreExperimental const &)=delete
void SetUserIpd(float userIpd)
Definition core.hpp:368
CoreExperimental(CoreExperimental const &)=delete
C++ wrapper for leia_core.
Definition core.hpp:151
void StartFaceTracking(bool start)
Definition core.hpp:234
LEIA_NODISCARD bool GetViewingDistance(float ipdMM, float *viewingDistance)
Definition core.hpp:297
LEIA_NODISCARD bool GetPrimaryFace(FloatSlice position)
Definition core.hpp:265
~Core()
Definition core.hpp:168
Core(Core const &)=delete
void SetFaceTrackingCaptureLux(bool enable)
Definition core.hpp:278
void OnResume()
Definition core.hpp:203
void Enable3D(bool enable)
Definition core.hpp:211
LEIA_NODISCARD FaceTrackingRuntimeType GetFaceTrackingRuntime()
Definition core.hpp:252
LEIA_NODISCARD bool Is3DEnabled()
Definition core.hpp:216
LEIA_NODISCARD leia_core * GetHandle() const
Definition core.hpp:315
LEIA_NODISCARD bool IsFaceTrackingEnabled()
Definition core.hpp:230
LEIA_NODISCARD LEIA_DEPRECATED bool GetBacklight()
Definition core.hpp:309
LEIA_NODISCARD bool IsValidationEnabled() const
Definition core.hpp:198
Core(leia_core *core)
Definition core.hpp:156
Core & operator=(Core &&other)
Definition core.hpp:181
void SetFaceTrackingRuntime(FaceTrackingRuntimeType runtime)
Definition core.hpp:247
void SetNoFaceModeTimeThreshold(double timeThresholdSeconds)
Definition core.hpp:286
void OnPause()
Definition core.hpp:207
LEIA_NODISCARD enum leia_orientation GetOrientation()
Definition core.hpp:221
void SetFaceTrackerConfiguration(bool leftEye, bool rightEye)
Definition core.hpp:238
bool EnableFaceTracking(bool enable)
Definition core.hpp:225
Core(CoreInitConfiguration &config)
Definition core.hpp:159
Core & operator=(Core const &)=delete
LEIA_NODISCARD bool GetNonPredictedPrimaryFace(FloatSlice position)
Definition core.hpp:270
LEIA_NODISCARD AssetManager GetAssetManager()
Definition core.hpp:291
Core(Core &&other)
Definition core.hpp:177
void EnableNoFaceMode(bool enable)
Definition core.hpp:282
LEIA_DEPRECATED void SetBacklight(bool enable)
Definition core.hpp:303
void SetFaceTrackingSharedCameraSink(SharedCameraSink *sink)
Definition core.hpp:256
LEIA_NODISCARD bool IsInitialized() const
Definition core.hpp:193
LEIA_NODISCARD bool IsFaceTrackingStarted()
Definition core.hpp:243
Core()
Definition core.hpp:153
void SetDefaultFacePosition(ConstFloatSlice position)
Definition core.hpp:260
void SetFaceTrackingFrameListener(OWNING(FaceTrackingFrameListener *) listener)
Definition core.hpp:274
C++ wrapper for leia_core_init_configuration.
Definition core.hpp:54
void SetPlatformLogLevel(leia_log_level logLevel)
Definition core.hpp:98
void SetFaceTrackingServerLogLevel(leia_log_level serverLogLevel)
Definition core.hpp:126
CoreInitConfiguration(CoreInitConfiguration const &)=delete
void SetFaceTrackingRuntime(leia_face_tracking_runtime_type runtime)
Definition core.hpp:106
void SetLicenseNetworkProxy(const char *networkProxy)
Definition core.hpp:86
void SetFaceTrackingCheckPermission(bool checkPermission)
Definition core.hpp:118
void SetFaceTrackingEnable(bool enable)
Definition core.hpp:110
CoreInitConfiguration(CoreInitConfiguration &&other)
Definition core.hpp:68
void SetFaceTrackingStart(bool start)
Definition core.hpp:114
void SetFaceTrackingSharedCameraSink(leia_shared_camera_sink *sharedCameraSink)
Definition core.hpp:102
CoreInitConfiguration(CoreLibrary const &coreLib)
Definition core.hpp:59
~CoreInitConfiguration()
Definition core.hpp:62
CoreInitConfiguration & operator=(CoreInitConfiguration &&other)
Definition core.hpp:72
void ResetDisplayConfig()
Definition core.hpp:134
void SetFaceTrackingPermissionDialogKillProcess(bool permissionDialogKillProcess)
Definition core.hpp:122
void SetPlatformAndroidHandle(CoreAndroidHandleType handleType, jobject handle)
Definition core.hpp:94
void SetEnableValidation(bool enable)
Definition core.hpp:90
void SetLicenseKey(const char *licenseKey)
Definition core.hpp:82
CoreInitConfiguration()
Definition core.hpp:56
leia_core_init_configuration * GetHandle()
Definition core.hpp:139
CoreInitConfiguration & operator=(CoreInitConfiguration const &)=delete
void SetFaceTrackingPreferredFps(int preferredFps)
Definition core.hpp:130
LEIA_NODISCARD leia_core_library * GetHandle() const
Definition library.hpp:65
leia_orientation
Definition types.h:108
leia_face_tracking_runtime_type
Definition types.h:82
#define LEIA_DEPRECATED
Definition defines.h:48
#define LEIA_NODISCARD
Definition defines.h:86
#define OWNING(ptr)
Definition defines.h:105
#define LEIA_CXX_DECLARE_EXPERIMENTAL_API_ENTRY(T)
Definition experimental.hpp:42
leia_bool(* leia_core_get_tracking_camera_rotation)(struct leia_core *, LEIA_FLOAT_SLICE(3) position)
Definition core.h:349
leia_bool(* leia_core_get_lookaround_eyes)(struct leia_core *, LEIA_FLOAT_SLICE(3) leftPosition, LEIA_FLOAT_SLICE(3) rightPosition)
Get the lookaround eyes' position.
Definition core.h:448
void(* leia_core_set_tracking_camera_rotation)(struct leia_core *, float thetaX, float thetaY, float thetaZ)
Definition core.h:346
leia_bool(* leia_core_get_non_predicted_eyes)(struct leia_core *, LEIA_FLOAT_SLICE(3) leftEyePosition, LEIA_FLOAT_SLICE(3) rightEyePosition)
Get the non-predicted eyes' position.
Definition core.h:436
LEIA_NODISCARD LEIASDK_API leia_bool leia_core_get_viewing_distance(struct leia_core *, float ipdMM, float *viewingDistance)
LEIASDK_API leia_bool leia_core_get_natural_orientation(struct leia_core_library *, enum leia_orientation *)
LEIASDK_API void leia_core_limit_orientations(struct leia_core_library *, jobject activity, struct leia_legal_orientations const *)
leia_core_android_handle_type
Definition core.h:133
leia_bool(* leia_core_burn_display_config)(struct leia_core *, float slant, float pitch, float phc, float dOverN, float n, float actCoef, float thetaX, float thetaY, float thetaZ)
Definition core.h:339
leia_bool(* leia_core_burn_camera_extrinsics)(struct leia_core *, int cameraId, float thetaXFpc, float thetaYFpc, float thetaZFpc)
Definition core.h:343
#define LEIA_CORE_HINT_RESET_DISPLAY_CONFIG
Definition core.h:191
LEIASDK_API leia_bool leia_core_get_legal_orientations(struct leia_core_library *, struct leia_legal_orientations *)
void * jobject
Definition jniTypes.h:15
int32_t leia_log_level
Definition log.h:22
ConstFloatSlice ToConstSlice(leia_vector3 const *v)
Definition core.hpp:33
LEIA_NODISCARD bool IsFaceTrackingRuntimeSupported(CoreLibrary const &coreLibrary, FaceTrackingRuntimeType runtime)
Definition core.hpp:449
LEIA_NODISCARD bool GetLegalOrientations(CoreLibrary const &coreLibrary, leia_legal_orientations *legalOrientations)
Definition core.hpp:461
void LimitOrientations(CoreLibrary const &coreLibrary, jobject activity, leia_legal_orientations const *legalOrientations)
Definition core.hpp:466
LEIA_NODISCARD bool GetNaturalOrientation(CoreLibrary const &coreLibrary, leia_orientation *orientation)
Definition core.hpp:472
FloatSlice ToSlice(Vector3 *v)
Definition core.hpp:24
LEIA_NODISCARD bool IsLicenseRequired()
Definition core.hpp:455
leia_core's initial configuration.
Definition core.h:70
Core library.
Definition library.h:17
The main entry point into CNSDK C API.
Definition core.h:63
Face tracking frame listener.
Definition faceTracking.h:26
Face tracking frame.
Definition faceTracking.h:32
float m[16]
Definition types.h:104
Definition sharedCameraSink.h:10
float v[3]
Definition types.h:85
#define CNSDK_VERSION
Definition version.h:7