diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..34c19f7 Binary files /dev/null and b/.DS_Store differ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/QuickStartGuide.pdf b/QuickStartGuide.pdf new file mode 100644 index 0000000..6496184 Binary files /dev/null and b/QuickStartGuide.pdf differ diff --git a/data/FaceDet_v2_first_arm.plan b/data/FaceDet_v2_first_arm.plan new file mode 100644 index 0000000..c76c25d Binary files /dev/null and b/data/FaceDet_v2_first_arm.plan differ diff --git a/data/FaceDet_v2_first_cpu.plan b/data/FaceDet_v2_first_cpu.plan new file mode 100644 index 0000000..92e7fb1 Binary files /dev/null and b/data/FaceDet_v2_first_cpu.plan differ diff --git a/data/FaceDet_v2_second_arm.plan b/data/FaceDet_v2_second_arm.plan new file mode 100644 index 0000000..15731dd Binary files /dev/null and b/data/FaceDet_v2_second_arm.plan differ diff --git a/data/FaceDet_v2_second_cpu.plan b/data/FaceDet_v2_second_cpu.plan new file mode 100644 index 0000000..e55fe9b Binary files /dev/null and b/data/FaceDet_v2_second_cpu.plan differ diff --git a/data/FaceDet_v2_third_arm.plan b/data/FaceDet_v2_third_arm.plan new file mode 100644 index 0000000..9bc2ce6 Binary files /dev/null and b/data/FaceDet_v2_third_arm.plan differ diff --git a/data/FaceDet_v2_third_cpu.plan b/data/FaceDet_v2_third_cpu.plan new file mode 100644 index 0000000..21bffeb Binary files /dev/null and b/data/FaceDet_v2_third_cpu.plan differ diff --git a/data/ags_angle_estimation_flwr_arm.plan b/data/ags_angle_estimation_flwr_arm.plan new file mode 100644 index 0000000..bcef235 Binary files /dev/null and b/data/ags_angle_estimation_flwr_arm.plan differ diff --git a/data/ags_angle_estimation_flwr_cpu.plan b/data/ags_angle_estimation_flwr_cpu.plan new file mode 100644 index 0000000..92f19dd Binary files /dev/null and b/data/ags_angle_estimation_flwr_cpu.plan differ diff --git a/data/ags_estimation_flwr_arm.plan b/data/ags_estimation_flwr_arm.plan new file mode 100644 index 0000000..6c5ad8f Binary files /dev/null and b/data/ags_estimation_flwr_arm.plan differ diff --git a/data/ags_estimation_flwr_cpu.plan b/data/ags_estimation_flwr_cpu.plan new file mode 100644 index 0000000..e5d921c Binary files /dev/null and b/data/ags_estimation_flwr_cpu.plan differ diff --git a/data/angle_estimation_flwr_arm.plan b/data/angle_estimation_flwr_arm.plan new file mode 100644 index 0000000..82018f6 Binary files /dev/null and b/data/angle_estimation_flwr_arm.plan differ diff --git a/data/angle_estimation_flwr_cpu.plan b/data/angle_estimation_flwr_cpu.plan new file mode 100644 index 0000000..02bb5f6 Binary files /dev/null and b/data/angle_estimation_flwr_cpu.plan differ diff --git a/data/bestshotmobile.conf b/data/bestshotmobile.conf new file mode 100644 index 0000000..ccf89c7 --- /dev/null +++ b/data/bestshotmobile.conf @@ -0,0 +1,40 @@ + + +
+ + +
+ +
+ + + +
+ +
+ + + + + + + + +
+ +
+ + + + +
+ +
+ + + + + +
+
+ diff --git a/data/cnn59m_arm.plan b/data/cnn59m_arm.plan new file mode 100644 index 0000000..d37d454 Binary files /dev/null and b/data/cnn59m_arm.plan differ diff --git a/data/cnn59m_cpu.plan b/data/cnn59m_cpu.plan new file mode 100644 index 0000000..df45263 Binary files /dev/null and b/data/cnn59m_cpu.plan differ diff --git a/data/cnndescriptor_59.conf b/data/cnndescriptor_59.conf new file mode 100644 index 0000000..f709db7 --- /dev/null +++ b/data/cnndescriptor_59.conf @@ -0,0 +1,25 @@ + + +
+ + + + + + + + + + + + + +
+
+ +
+
+ +
+
+ diff --git a/data/eye_status_estimation_flwr_arm.plan b/data/eye_status_estimation_flwr_arm.plan new file mode 100644 index 0000000..85bb0ba Binary files /dev/null and b/data/eye_status_estimation_flwr_arm.plan differ diff --git a/data/eye_status_estimation_flwr_cpu.plan b/data/eye_status_estimation_flwr_cpu.plan new file mode 100644 index 0000000..715a974 Binary files /dev/null and b/data/eye_status_estimation_flwr_cpu.plan differ diff --git a/data/eyes_estimation_flwr8_arm.plan b/data/eyes_estimation_flwr8_arm.plan new file mode 100644 index 0000000..fb35def Binary files /dev/null and b/data/eyes_estimation_flwr8_arm.plan differ diff --git a/data/eyes_estimation_flwr8_cpu.plan b/data/eyes_estimation_flwr8_cpu.plan new file mode 100644 index 0000000..771b212 Binary files /dev/null and b/data/eyes_estimation_flwr8_cpu.plan differ diff --git a/data/faceengine.conf b/data/faceengine.conf new file mode 100644 index 0000000..e174a5d --- /dev/null +++ b/data/faceengine.conf @@ -0,0 +1,77 @@ + + +
+ +
+ +
+ + + + +
+ +
+ + + + + + + + +
+ +
+ + + + +
+ +
+ + +
+ +
+ +
+ +
+ + + + + + + + + +
+ +
+ + + + + + + +
+ +
+ + + + + +
+ +
+ + + +
+ +
diff --git a/data/glasses_estimation_flwr_arm.plan b/data/glasses_estimation_flwr_arm.plan new file mode 100644 index 0000000..1bdf282 Binary files /dev/null and b/data/glasses_estimation_flwr_arm.plan differ diff --git a/data/glasses_estimation_flwr_cpu.plan b/data/glasses_estimation_flwr_cpu.plan new file mode 100644 index 0000000..2b24643 Binary files /dev/null and b/data/glasses_estimation_flwr_cpu.plan differ diff --git a/data/license.conf b/data/license.conf new file mode 100644 index 0000000..3b7da33 --- /dev/null +++ b/data/license.conf @@ -0,0 +1,11 @@ + + +
+ + + + + + +
+
diff --git a/data/mask_clf_v3_arm.plan b/data/mask_clf_v3_arm.plan new file mode 100644 index 0000000..7136f93 Binary files /dev/null and b/data/mask_clf_v3_arm.plan differ diff --git a/data/mask_clf_v3_cpu.plan b/data/mask_clf_v3_cpu.plan new file mode 100644 index 0000000..cf5104a Binary files /dev/null and b/data/mask_clf_v3_cpu.plan differ diff --git a/data/model_subjective_quality_v1_arm.plan b/data/model_subjective_quality_v1_arm.plan new file mode 100644 index 0000000..0af7e2c Binary files /dev/null and b/data/model_subjective_quality_v1_arm.plan differ diff --git a/data/model_subjective_quality_v1_cpu.plan b/data/model_subjective_quality_v1_cpu.plan new file mode 100644 index 0000000..6d1f1cc Binary files /dev/null and b/data/model_subjective_quality_v1_cpu.plan differ diff --git a/data/model_subjective_quality_v2_arm.plan b/data/model_subjective_quality_v2_arm.plan new file mode 100644 index 0000000..b84facb Binary files /dev/null and b/data/model_subjective_quality_v2_arm.plan differ diff --git a/data/model_subjective_quality_v2_cpu.plan b/data/model_subjective_quality_v2_cpu.plan new file mode 100644 index 0000000..8d0121e Binary files /dev/null and b/data/model_subjective_quality_v2_cpu.plan differ diff --git a/data/oslm_v3_model_1_arm.plan b/data/oslm_v3_model_1_arm.plan new file mode 100644 index 0000000..09683fa Binary files /dev/null and b/data/oslm_v3_model_1_arm.plan differ diff --git a/data/oslm_v3_model_1_cpu.plan b/data/oslm_v3_model_1_cpu.plan new file mode 100644 index 0000000..ef83dd8 Binary files /dev/null and b/data/oslm_v3_model_1_cpu.plan differ diff --git a/data/oslm_v3_model_2_arm.plan b/data/oslm_v3_model_2_arm.plan new file mode 100644 index 0000000..42c9651 Binary files /dev/null and b/data/oslm_v3_model_2_arm.plan differ diff --git a/data/oslm_v3_model_2_cpu.plan b/data/oslm_v3_model_2_cpu.plan new file mode 100644 index 0000000..b1f9d6b Binary files /dev/null and b/data/oslm_v3_model_2_cpu.plan differ diff --git a/data/oslm_v3_model_3_arm.plan b/data/oslm_v3_model_3_arm.plan new file mode 100644 index 0000000..eadd439 Binary files /dev/null and b/data/oslm_v3_model_3_arm.plan differ diff --git a/data/oslm_v3_model_3_cpu.plan b/data/oslm_v3_model_3_cpu.plan new file mode 100644 index 0000000..fa9847f Binary files /dev/null and b/data/oslm_v3_model_3_cpu.plan differ diff --git a/data/oslm_v3_model_4_arm.plan b/data/oslm_v3_model_4_arm.plan new file mode 100644 index 0000000..12ee31b Binary files /dev/null and b/data/oslm_v3_model_4_arm.plan differ diff --git a/data/oslm_v3_model_4_cpu.plan b/data/oslm_v3_model_4_cpu.plan new file mode 100644 index 0000000..d31efb8 Binary files /dev/null and b/data/oslm_v3_model_4_cpu.plan differ diff --git a/data/oslm_v3_model_5_arm.plan b/data/oslm_v3_model_5_arm.plan new file mode 100644 index 0000000..7b1a1c0 Binary files /dev/null and b/data/oslm_v3_model_5_arm.plan differ diff --git a/data/oslm_v3_model_5_cpu.plan b/data/oslm_v3_model_5_cpu.plan new file mode 100644 index 0000000..8c21a51 Binary files /dev/null and b/data/oslm_v3_model_5_cpu.plan differ diff --git a/data/oslm_v3_model_6_arm.plan b/data/oslm_v3_model_6_arm.plan new file mode 100644 index 0000000..2ae0558 Binary files /dev/null and b/data/oslm_v3_model_6_arm.plan differ diff --git a/data/oslm_v3_model_6_cpu.plan b/data/oslm_v3_model_6_cpu.plan new file mode 100644 index 0000000..582f83c Binary files /dev/null and b/data/oslm_v3_model_6_cpu.plan differ diff --git a/data/runtime.conf b/data/runtime.conf new file mode 100644 index 0000000..cdfbc07 --- /dev/null +++ b/data/runtime.conf @@ -0,0 +1,10 @@ + + +
+ + + + + +
+
diff --git a/data/trackengine.conf b/data/trackengine.conf new file mode 100644 index 0000000..55c926b --- /dev/null +++ b/data/trackengine.conf @@ -0,0 +1,162 @@ + + + + +
+ + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + +
+ + +
+ + + + + + +
+ +
diff --git a/doc/BestShotMobile_Handbook.pdf b/doc/BestShotMobile_Handbook.pdf new file mode 100644 index 0000000..8f6ac04 Binary files /dev/null and b/doc/BestShotMobile_Handbook.pdf differ diff --git a/doc/ConfigurationGuide.pdf b/doc/ConfigurationGuide.pdf new file mode 100644 index 0000000..4398fcb Binary files /dev/null and b/doc/ConfigurationGuide.pdf differ diff --git a/doc/FaceEngine_Handbook.pdf b/doc/FaceEngine_Handbook.pdf new file mode 100644 index 0000000..7463d25 Binary files /dev/null and b/doc/FaceEngine_Handbook.pdf differ diff --git a/doc/FeatureMapMobile.htm b/doc/FeatureMapMobile.htm new file mode 100644 index 0000000..a6d5b0e --- /dev/null +++ b/doc/FeatureMapMobile.htm @@ -0,0 +1,213 @@ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Luna SDK mobile models and dependencies

Feature name and
description

Required algorithms and used structures

Best Shot
Selection

Face Features
Extraction

Face
Recognition

+ +

The <device> placeholder shows that the model can be used with different devices (e. g., CPU, GPU).
+ Name of the model includes corresponding postfix (e. g., *_cpu.plan, *_gpu.plan).
+ See "Hardware requirements" section in "FaceEngine Handbook" for information about devices supported by NN.

+

Example of table using - if user wants to find best shots in his application, he needs to look at the "Best Shot Selection"
+ column and see what network models are required in order to run such functionality.
The required models and structures are marked with green. +
Algorigthms and structures marked with red are not used for the functionality.

+ + +
Face detection NN version 2
First, second and third NN
should be launched consequently
Structure(s):
IDetector

Plan(s):
FaceDet_2_first_<device>.plan
FaceDet_2_second_<device>.plan
FaceDet_2_third_<device>.plan +
BestShotQuality estimation
Performs head pose and AGS estimations
Structure(s):
IBestShotQualityEstimator

Plan(s):
ags_angle_estimation_flwr_<device>.plan
Image quality estimation
(light, dark, blur, etc.)
Structure(s):
IQualityEstimator

Plan(s):
model_subjective_quality_<version>_<device>.plan
Image glasses estimation
(light, dark, blur, etc.)
Structure(s):
IGlassesEstimator

Plan(s):
glasses_estimation_flwr_<version>_<device>.plan
Head pose estimation (deprecated)Structure(s):
IHeadPoseEstimator

Plan(s):
angle_estimation_flwr_<device>.plan
AGS estimation (deprecated)Structure(s):
IAGSEstimator

Plan(s):
ags_estimation_flwr_<device>.plan
LivenessOneShotRGB estimation
Predicts whether the person's face is real or fake (photo, printed image)
Structure(s):
ILivenessOneShotRGBEstimator

Plan(s):
oslm_v3_model_<version>_<device>.plan
Extraction (NN version 54 mobilenet)
(Available in Complete distribution package only!)
Structure(s):
IDescriptor, IDescriptorBatch, IDescriptorExtractor

Plan(s):
cnn54m_<device>.plan +
Eyes state estimation (eyes status and
keypoints for irises and eyelids)
Structure(s):
IEyeEstimator

Plan(s):
eyes_estimation_flwr8_<device>.plan
Eyes state
(lightened version, returns eyes state only)
Structure(s):
IEyeEstimator

Plan(s):
eye_status_estimation_flwr_<device>. +
+ + + + + + + + + + + + + + + + + + + +
Luna SDK functionality

Functionality

Feature name and
description

Required algorithms and used structures

Face detection NN
versions 1 and 2

Face detection NN
version 3

MedicalMaskDetectionMedical mask estimationStructure(s):
IMedicalMaskEstimator

Plan(s):
mask_clf_<version>_<device>.plan
+
+ +
+
+

The table above includes separately licensed feature.

+

Additional features required for the functionality utilization are shown in the columns to the right.

+ +
+ + + + + + + + + + + + + + diff --git a/doc/Licensing.pdf b/doc/Licensing.pdf new file mode 100644 index 0000000..e78f741 Binary files /dev/null and b/doc/Licensing.pdf differ diff --git a/doc/TrackEngine_Handbook.pdf b/doc/TrackEngine_Handbook.pdf new file mode 100644 index 0000000..a4fb17a Binary files /dev/null and b/doc/TrackEngine_Handbook.pdf differ diff --git a/doc/bsmobile/html/_i_best_shot_mobile_8h_source.html b/doc/bsmobile/html/_i_best_shot_mobile_8h_source.html new file mode 100644 index 0000000..0fabd8c --- /dev/null +++ b/doc/bsmobile/html/_i_best_shot_mobile_8h_source.html @@ -0,0 +1,125 @@ + + + + + + + +BestShotMobile: /home/gitlab-runner/builds/Xgzk4SPK/0/face-recognition/FaceEngine/extern/bestshotmobile/inc/IBestShotMobile.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IBestShotMobile.h
+
+
+
1 #pragma once
2 
3 #include "BestShotMobileDefs.h"
4 
5 #include <fsdk/FaceEngine.h>
6 #include <tsdk/ITrackEngine.h>
7 
8 namespace mobile {
9 
13  enum class LivenessType {
14  None = 0,
15  Online = 1,
16  Offline = 2,
17  Offline_OSL = 3
18  };
20 
23  enum class LivenessState {
24  Alive,
25  Fake,
26  None,
27  NotReady,
28  BadHeadPose,
29  BadQuality,
30  FaceNotFound,
31  FaceTooClose,
32  FaceCloseToBorder,
33  FaceTooSmall,
34  TooManyFaces,
35  Timeout,
36  CriticalError
37  };
38 
41  enum class BestShotState {
42  Ok,
43  BadQuality,
44  BadHeadPose,
45  Error
46  };
47 
48  struct BestShotInfo {
50  BestShotState state;
51 
53  fsdk::Image image;
55  fsdk::Detection detection;
57  fsdk::Landmarks5 landmarks;
58 
61  fsdk::HeadPoseEstimation headPoseEstimation;
65 
67  tsdk::FrameId frameIndex;
69  tsdk::TrackId trackId;
70  };
71 
79  BESTSHOT_MOBILE_API virtual void bestShot(
80  const BestShotInfo& bestShotInfo) = 0;
81 
88  BESTSHOT_MOBILE_API virtual void liveness(
89  const LivenessState livenessState,
90  const BestShotInfo& bestShotInfo) = 0;
91 
96  BESTSHOT_MOBILE_API virtual void trackEnd(
97  const tsdk::TrackId& trackId) = 0;
98  };
99 
104 
105  virtual ~IBestShotMobile() = default;
106 
121  BESTSHOT_MOBILE_API virtual bool pushFrame(
122  const fsdk::Image &frame,
123  uint32_t frameId) = 0;
124 
128  BESTSHOT_MOBILE_API virtual void setBestShotMobileObserver(
129  IBestShotMobileObserver* observer) = 0;
130 
137  BESTSHOT_MOBILE_API virtual void join() = 0;
138 
143  BESTSHOT_MOBILE_API virtual LivenessType getLivenessType() = 0;
144  };
145 
152  IBestShotMobile* createBestShotMobile(
153  fsdk::FaceEngineType* faceEngine,
154  tsdk::ITrackEngine* trackEngine,
155  fsdk::ISettingsProvider* settings
156  );
157 
164  IBestShotMobile* createBestShotMobile(
165  fsdk::FaceEngineType* faceEngine,
166  tsdk::ITrackEngine* trackEngine,
167  const char * configPath
168  );
169 
170 } // namespace mobile
fsdk::Landmarks5 landmarks
Face landmarks.
Definition: IBestShotMobile.h:57
+
virtual BESTSHOT_MOBILE_API void setBestShotMobileObserver(IBestShotMobileObserver *observer)=0
Sets a bestshot observer.
+
fsdk::Detection detection
Detection with face.
Definition: IBestShotMobile.h:55
+
virtual BESTSHOT_MOBILE_API void bestShot(const BestShotInfo &bestShotInfo)=0
Bestshot notification.
+
tsdk::TrackId trackId
Index of the track.
Definition: IBestShotMobile.h:69
+
virtual BESTSHOT_MOBILE_API LivenessType getLivenessType()=0
Returns current liveness type.
+
virtual BESTSHOT_MOBILE_API void trackEnd(const tsdk::TrackId &trackId)=0
End of a track notification.
+
tsdk::FrameId frameIndex
Index of the frame.
Definition: IBestShotMobile.h:67
+
fsdk::HeadPoseEstimation headPoseEstimation
Definition: IBestShotMobile.h:61
+
BestShotState state
State of this frame.
Definition: IBestShotMobile.h:50
+
virtual BESTSHOT_MOBILE_API bool pushFrame(const fsdk::Image &frame, uint32_t frameId)=0
Pushes a single frame to the buffer.
+
Definition: IBestShotMobile.h:8
+
virtual BESTSHOT_MOBILE_API void liveness(const LivenessState livenessState, const BestShotInfo &bestShotInfo)=0
Liveness check notification.
+
IBestShotMobile interface class.
Definition: IBestShotMobile.h:103
+
Definition: IBestShotMobile.h:72
+
float agsEstimation
Definition: IBestShotMobile.h:64
+
Definition: IBestShotMobile.h:48
+
virtual BESTSHOT_MOBILE_API void join()=0
Blocks current thread until all frames in this Stream will be handled and all callbacks will be execu...
+
fsdk::Image image
Source image.
Definition: IBestShotMobile.h:53
+
+
+ + + + diff --git a/doc/bsmobile/html/annotated.html b/doc/bsmobile/html/annotated.html new file mode 100644 index 0000000..96d8208 --- /dev/null +++ b/doc/bsmobile/html/annotated.html @@ -0,0 +1,113 @@ + + + + + + + +BestShotMobile: Class List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + +
 Nmobile
 CBestShotInfo
 CIBestShotMobileIBestShotMobile interface class
 CIBestShotMobileObserver
+
+
+
+ + + + diff --git a/doc/bsmobile/html/annotated_dup.js b/doc/bsmobile/html/annotated_dup.js new file mode 100644 index 0000000..7cf9713 --- /dev/null +++ b/doc/bsmobile/html/annotated_dup.js @@ -0,0 +1,8 @@ +var annotated_dup = +[ + [ "mobile", null, [ + [ "BestShotInfo", "structmobile_1_1_best_shot_info.html", "structmobile_1_1_best_shot_info" ], + [ "IBestShotMobile", "structmobile_1_1_i_best_shot_mobile.html", "structmobile_1_1_i_best_shot_mobile" ], + [ "IBestShotMobileObserver", "structmobile_1_1_i_best_shot_mobile_observer.html", "structmobile_1_1_i_best_shot_mobile_observer" ] + ] ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/bc_s.png b/doc/bsmobile/html/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/doc/bsmobile/html/bc_s.png differ diff --git a/doc/bsmobile/html/bdwn.png b/doc/bsmobile/html/bdwn.png new file mode 100644 index 0000000..940a0b9 Binary files /dev/null and b/doc/bsmobile/html/bdwn.png differ diff --git a/doc/bsmobile/html/classes.html b/doc/bsmobile/html/classes.html new file mode 100644 index 0000000..c9ed1c5 --- /dev/null +++ b/doc/bsmobile/html/classes.html @@ -0,0 +1,115 @@ + + + + + + + +BestShotMobile: Class Index + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
b | i
+ + + + + +
  b  
+
  i  
+
IBestShotMobileObserver (mobile)   
BestShotInfo (mobile)   IBestShotMobile (mobile)   
+
b | i
+
+
+ + + + diff --git a/doc/bsmobile/html/closed.png b/doc/bsmobile/html/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/doc/bsmobile/html/closed.png differ diff --git a/doc/bsmobile/html/dir_547812929d99ffcf13cb6fc4fba64188.html b/doc/bsmobile/html/dir_547812929d99ffcf13cb6fc4fba64188.html new file mode 100644 index 0000000..1611d23 --- /dev/null +++ b/doc/bsmobile/html/dir_547812929d99ffcf13cb6fc4fba64188.html @@ -0,0 +1,106 @@ + + + + + + + +BestShotMobile: /home/gitlab-runner/builds/Xgzk4SPK/0/face-recognition/FaceEngine/extern/bestshotmobile/inc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
inc Directory Reference
+
+
+
+
+ + + + diff --git a/doc/bsmobile/html/dir_547812929d99ffcf13cb6fc4fba64188.js b/doc/bsmobile/html/dir_547812929d99ffcf13cb6fc4fba64188.js new file mode 100644 index 0000000..7a1c3fc --- /dev/null +++ b/doc/bsmobile/html/dir_547812929d99ffcf13cb6fc4fba64188.js @@ -0,0 +1,4 @@ +var dir_547812929d99ffcf13cb6fc4fba64188 = +[ + [ "IBestShotMobile.h", "_i_best_shot_mobile_8h_source.html", null ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/dir_70d4c793eed3787e093b0b468476d203.html b/doc/bsmobile/html/dir_70d4c793eed3787e093b0b468476d203.html new file mode 100644 index 0000000..948d414 --- /dev/null +++ b/doc/bsmobile/html/dir_70d4c793eed3787e093b0b468476d203.html @@ -0,0 +1,110 @@ + + + + + + + +BestShotMobile: /home/gitlab-runner/builds/Xgzk4SPK/0/face-recognition/FaceEngine/extern/bestshotmobile Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bestshotmobile Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/doc/bsmobile/html/dir_70d4c793eed3787e093b0b468476d203.js b/doc/bsmobile/html/dir_70d4c793eed3787e093b0b468476d203.js new file mode 100644 index 0000000..a2e148d --- /dev/null +++ b/doc/bsmobile/html/dir_70d4c793eed3787e093b0b468476d203.js @@ -0,0 +1,4 @@ +var dir_70d4c793eed3787e093b0b468476d203 = +[ + [ "inc", "dir_547812929d99ffcf13cb6fc4fba64188.html", "dir_547812929d99ffcf13cb6fc4fba64188" ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/dir_dc9e1e299a0b26f222fe6c0a872463f0.html b/doc/bsmobile/html/dir_dc9e1e299a0b26f222fe6c0a872463f0.html new file mode 100644 index 0000000..709ff5c --- /dev/null +++ b/doc/bsmobile/html/dir_dc9e1e299a0b26f222fe6c0a872463f0.html @@ -0,0 +1,106 @@ + + + + + + + +BestShotMobile: /home/gitlab-runner/builds/Xgzk4SPK/0/face-recognition/FaceEngine/extern Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
extern Directory Reference
+
+
+
+
+ + + + diff --git a/doc/bsmobile/html/dir_dc9e1e299a0b26f222fe6c0a872463f0.js b/doc/bsmobile/html/dir_dc9e1e299a0b26f222fe6c0a872463f0.js new file mode 100644 index 0000000..2c75211 --- /dev/null +++ b/doc/bsmobile/html/dir_dc9e1e299a0b26f222fe6c0a872463f0.js @@ -0,0 +1,4 @@ +var dir_dc9e1e299a0b26f222fe6c0a872463f0 = +[ + [ "bestshotmobile", "dir_70d4c793eed3787e093b0b468476d203.html", "dir_70d4c793eed3787e093b0b468476d203" ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/doc.png b/doc/bsmobile/html/doc.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/doc/bsmobile/html/doc.png differ diff --git a/doc/bsmobile/html/doxygen.css b/doc/bsmobile/html/doxygen.css new file mode 100644 index 0000000..266c8b3 --- /dev/null +++ b/doc/bsmobile/html/doxygen.css @@ -0,0 +1,1596 @@ +/* The standard CSS for doxygen 1.8.14 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + + +/* @end */ diff --git a/doc/bsmobile/html/doxygen.png b/doc/bsmobile/html/doxygen.png new file mode 100644 index 0000000..3ff17d8 Binary files /dev/null and b/doc/bsmobile/html/doxygen.png differ diff --git a/doc/bsmobile/html/dynsections.js b/doc/bsmobile/html/dynsections.js new file mode 100644 index 0000000..c1ce122 --- /dev/null +++ b/doc/bsmobile/html/dynsections.js @@ -0,0 +1,120 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +BestShotMobile: File List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + +
  extern
  bestshotmobile
  inc
 IBestShotMobile.h
+
+
+
+ + + + diff --git a/doc/bsmobile/html/files_dup.js b/doc/bsmobile/html/files_dup.js new file mode 100644 index 0000000..5cb4f70 --- /dev/null +++ b/doc/bsmobile/html/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "extern", "dir_dc9e1e299a0b26f222fe6c0a872463f0.html", "dir_dc9e1e299a0b26f222fe6c0a872463f0" ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/folderclosed.png b/doc/bsmobile/html/folderclosed.png new file mode 100644 index 0000000..bb8ab35 Binary files /dev/null and b/doc/bsmobile/html/folderclosed.png differ diff --git a/doc/bsmobile/html/folderopen.png b/doc/bsmobile/html/folderopen.png new file mode 100644 index 0000000..d6c7f67 Binary files /dev/null and b/doc/bsmobile/html/folderopen.png differ diff --git a/doc/bsmobile/html/functions.html b/doc/bsmobile/html/functions.html new file mode 100644 index 0000000..69e4fa5 --- /dev/null +++ b/doc/bsmobile/html/functions.html @@ -0,0 +1,148 @@ + + + + + + + +BestShotMobile: Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+
+
+ + + + diff --git a/doc/bsmobile/html/functions_func.html b/doc/bsmobile/html/functions_func.html new file mode 100644 index 0000000..a142d67 --- /dev/null +++ b/doc/bsmobile/html/functions_func.html @@ -0,0 +1,124 @@ + + + + + + + +BestShotMobile: Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/doc/bsmobile/html/functions_vars.html b/doc/bsmobile/html/functions_vars.html new file mode 100644 index 0000000..49ec902 --- /dev/null +++ b/doc/bsmobile/html/functions_vars.html @@ -0,0 +1,127 @@ + + + + + + + +BestShotMobile: Class Members - Variables + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/doc/bsmobile/html/index.html b/doc/bsmobile/html/index.html new file mode 100644 index 0000000..b9270e9 --- /dev/null +++ b/doc/bsmobile/html/index.html @@ -0,0 +1,105 @@ + + + + + + + +BestShotMobile: Main Page + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BestShotMobile Documentation
+
+
+
+
+ + + + diff --git a/doc/bsmobile/html/jquery.js b/doc/bsmobile/html/jquery.js new file mode 100644 index 0000000..2771c74 --- /dev/null +++ b/doc/bsmobile/html/jquery.js @@ -0,0 +1,115 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+
+
mobile::BestShotInfo Member List
+
+
+ +

This is the complete list of members for mobile::BestShotInfo, including all inherited members.

+
+ + + + + + + + +
agsEstimationmobile::BestShotInfo
detectionmobile::BestShotInfo
frameIndexmobile::BestShotInfo
headPoseEstimationmobile::BestShotInfo
imagemobile::BestShotInfo
landmarksmobile::BestShotInfo
statemobile::BestShotInfo
trackIdmobile::BestShotInfo
+ + + + + diff --git a/doc/bsmobile/html/structmobile_1_1_best_shot_info.html b/doc/bsmobile/html/structmobile_1_1_best_shot_info.html new file mode 100644 index 0000000..e7583b8 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_best_shot_info.html @@ -0,0 +1,175 @@ + + + + + + + +BestShotMobile: mobile::BestShotInfo Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mobile::BestShotInfo Struct Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+BestShotState state
 State of this frame.
 
+fsdk::Image image
 Source image.
 
+fsdk::Detection detection
 Detection with face.
 
+fsdk::Landmarks5 landmarks
 Face landmarks.
 
fsdk::HeadPoseEstimation headPoseEstimation
 
float agsEstimation
 
+tsdk::FrameId frameIndex
 Index of the frame.
 
+tsdk::TrackId trackId
 Index of the track.
 
+

Member Data Documentation

+ +

◆ agsEstimation

+ +
+
+ + + + +
float mobile::BestShotInfo::agsEstimation
+
+

AGS estimation result. This parameter could help to show notification to the user in case of bad quality.

+ +
+
+ +

◆ headPoseEstimation

+ +
+
+ + + + +
fsdk::HeadPoseEstimation mobile::BestShotInfo::headPoseEstimation
+
+

Estimation of the head position. This parameter could help to show notification to the user in case of bad angles.

+ +
+
+
The documentation for this struct was generated from the following file:
    +
  • /home/gitlab-runner/builds/Xgzk4SPK/0/face-recognition/FaceEngine/extern/bestshotmobile/inc/IBestShotMobile.h
  • +
+
+
+ + + + diff --git a/doc/bsmobile/html/structmobile_1_1_best_shot_info.js b/doc/bsmobile/html/structmobile_1_1_best_shot_info.js new file mode 100644 index 0000000..e05a796 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_best_shot_info.js @@ -0,0 +1,11 @@ +var structmobile_1_1_best_shot_info = +[ + [ "agsEstimation", "structmobile_1_1_best_shot_info.html#a7c314a7e4947e4500e9f1c75d7c95b71", null ], + [ "detection", "structmobile_1_1_best_shot_info.html#a65923bd10c65b573f29fbe9bb2076274", null ], + [ "frameIndex", "structmobile_1_1_best_shot_info.html#ae12b311c16d2ff9736fb96fc30487c95", null ], + [ "headPoseEstimation", "structmobile_1_1_best_shot_info.html#aab34a1c4dce8b070c9e4be4edc218282", null ], + [ "image", "structmobile_1_1_best_shot_info.html#a8fbdbfc60f968d3bffd617504b732161", null ], + [ "landmarks", "structmobile_1_1_best_shot_info.html#a7aabbb84ce5a20dc5a5aa749565ddc7e", null ], + [ "state", "structmobile_1_1_best_shot_info.html#a537db42c3b6cb208c5559a946527fd37", null ], + [ "trackId", "structmobile_1_1_best_shot_info.html#aab4d8b346311ad238078c5512bd82e8b", null ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile-members.html b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile-members.html new file mode 100644 index 0000000..71b38b6 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile-members.html @@ -0,0 +1,113 @@ + + + + + + + +BestShotMobile: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mobile::IBestShotMobile Member List
+
+
+ +

This is the complete list of members for mobile::IBestShotMobile, including all inherited members.

+ + + + + + +
getLivenessType()=0mobile::IBestShotMobilepure virtual
join()=0mobile::IBestShotMobilepure virtual
pushFrame(const fsdk::Image &frame, uint32_t frameId)=0mobile::IBestShotMobilepure virtual
setBestShotMobileObserver(IBestShotMobileObserver *observer)=0mobile::IBestShotMobilepure virtual
~IBestShotMobile()=default (defined in mobile::IBestShotMobile)mobile::IBestShotMobilevirtual
+
+ + + + diff --git a/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile.html b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile.html new file mode 100644 index 0000000..0a91349 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile.html @@ -0,0 +1,277 @@ + + + + + + + +BestShotMobile: mobile::IBestShotMobile Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mobile::IBestShotMobile Struct Referenceabstract
+
+
+ +

IBestShotMobile interface class. + More...

+ +

#include <IBestShotMobile.h>

+ + + + + + + + + + + + + + +

+Public Member Functions

virtual BESTSHOT_MOBILE_API bool pushFrame (const fsdk::Image &frame, uint32_t frameId)=0
 Pushes a single frame to the buffer. More...
 
virtual BESTSHOT_MOBILE_API void setBestShotMobileObserver (IBestShotMobileObserver *observer)=0
 Sets a bestshot observer. More...
 
virtual BESTSHOT_MOBILE_API void join ()=0
 Blocks current thread until all frames in this Stream will be handled and all callbacks will be executed. More...
 
virtual BESTSHOT_MOBILE_API LivenessType getLivenessType ()=0
 Returns current liveness type. More...
 
+

Detailed Description

+

IBestShotMobile interface class.

+
Note
This interface is not thread-safe!
+

Member Function Documentation

+ +

◆ getLivenessType()

+ +
+
+ + + + + +
+ + + + + + + +
virtual BESTSHOT_MOBILE_API LivenessType mobile::IBestShotMobile::getLivenessType ()
+
+pure virtual
+
+ +

Returns current liveness type.

+
See also
LivenessType for details. return current liveness type.
+ +
+
+ +

◆ join()

+ +
+
+ + + + + +
+ + + + + + + +
virtual BESTSHOT_MOBILE_API void mobile::IBestShotMobile::join ()
+
+pure virtual
+
+ +

Blocks current thread until all frames in this Stream will be handled and all callbacks will be executed.

+
Note
Stream could not be used after join.
+
See also
setBestShotObserver, setVisualObserver, setDebugObserver and setBestShotPredicate
+ +
+
+ +

◆ pushFrame()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual BESTSHOT_MOBILE_API bool mobile::IBestShotMobile::pushFrame (const fsdk::Image & frame,
uint32_t frameId 
)
+
+pure virtual
+
+ +

Pushes a single frame to the buffer.

+
Note
You should pass consequent frames for reasonble results (thing video frames). Calls face detector and tracker, then triggers the callback for processed faces.
+
Parameters
+ + + + +
frameinput frame image. Format must be R8G8B8.
frameIdunique identifier for frames sequence.
datais any additional data that a developer wants to receive in callbacks-realization. Do not use the delete-operator. The garbage collector is implemented inside for this param.
+
+
+
Returns
true if frame was appended to the queue for processing, false otherwise - frame was skipped because of full queue.
+ +
+
+ +

◆ setBestShotMobileObserver()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual BESTSHOT_MOBILE_API void mobile::IBestShotMobile::setBestShotMobileObserver (IBestShotMobileObserverobserver)
+
+pure virtual
+
+ +

Sets a bestshot observer.

+
Parameters
+ + +
observerpointer to the observer object,
+
+
+
See also
IBestShotMobileObserver
+ +
+
+
The documentation for this struct was generated from the following file:
    +
  • /home/gitlab-runner/builds/Xgzk4SPK/0/face-recognition/FaceEngine/extern/bestshotmobile/inc/IBestShotMobile.h
  • +
+
+
+ + + + diff --git a/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile.js b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile.js new file mode 100644 index 0000000..295a803 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile.js @@ -0,0 +1,8 @@ +var structmobile_1_1_i_best_shot_mobile = +[ + [ "~IBestShotMobile", "structmobile_1_1_i_best_shot_mobile.html#a7a97896f38ee42ea9a227293428decc9", null ], + [ "getLivenessType", "structmobile_1_1_i_best_shot_mobile.html#aa031075fb1f0bf534f6c0a62333824bf", null ], + [ "join", "structmobile_1_1_i_best_shot_mobile.html#a5b19a15edde0c19ffd6196276d399ad0", null ], + [ "pushFrame", "structmobile_1_1_i_best_shot_mobile.html#a792305caf0df8067f677a644ff7796ef", null ], + [ "setBestShotMobileObserver", "structmobile_1_1_i_best_shot_mobile.html#ade569cc6e630101f1842e4a04ec7490c", null ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer-members.html b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer-members.html new file mode 100644 index 0000000..ef7c911 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer-members.html @@ -0,0 +1,111 @@ + + + + + + + +BestShotMobile: Member List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mobile::IBestShotMobileObserver Member List
+
+
+ +

This is the complete list of members for mobile::IBestShotMobileObserver, including all inherited members.

+ + + + +
bestShot(const BestShotInfo &bestShotInfo)=0mobile::IBestShotMobileObserverpure virtual
liveness(const LivenessState livenessState, const BestShotInfo &bestShotInfo)=0mobile::IBestShotMobileObserverpure virtual
trackEnd(const tsdk::TrackId &trackId)=0mobile::IBestShotMobileObserverpure virtual
+
+ + + + diff --git a/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer.html b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer.html new file mode 100644 index 0000000..22423a4 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer.html @@ -0,0 +1,250 @@ + + + + + + + +BestShotMobile: mobile::IBestShotMobileObserver Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
BestShotMobile +
+
Bestshot making and liveness checking library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mobile::IBestShotMobileObserver Struct Referenceabstract
+
+
+ + + + + + + + + + + +

+Public Member Functions

virtual BESTSHOT_MOBILE_API void bestShot (const BestShotInfo &bestShotInfo)=0
 Bestshot notification. More...
 
virtual BESTSHOT_MOBILE_API void liveness (const LivenessState livenessState, const BestShotInfo &bestShotInfo)=0
 Liveness check notification. More...
 
virtual BESTSHOT_MOBILE_API void trackEnd (const tsdk::TrackId &trackId)=0
 End of a track notification. More...
 
+

Member Function Documentation

+ +

◆ bestShot()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual BESTSHOT_MOBILE_API void mobile::IBestShotMobileObserver::bestShot (const BestShotInfobestShotInfo)
+
+pure virtual
+
+ +

Bestshot notification.

+
Parameters
+ + +
bestShotInfobestshot information,
+
+
+
See also
BestShotInfo.
+
Note
If liveness check is not nedded (LivenessType::None), this callback could be used to take a bestshot.
+ +
+
+ +

◆ liveness()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual BESTSHOT_MOBILE_API void mobile::IBestShotMobileObserver::liveness (const LivenessState livenessState,
const BestShotInfobestShotInfo 
)
+
+pure virtual
+
+ +

Liveness check notification.

+
Parameters
+ + +
stateliveness state for the bestshot.
+
+
+
See also
LivenessState.
+
Parameters
+ + +
bestShotInfobestshot information,
+
+
+
See also
BestShotInfo.
+
Note
For the liveness type LivenessType::None this callback will not be called!
+ +
+
+ +

◆ trackEnd()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual BESTSHOT_MOBILE_API void mobile::IBestShotMobileObserver::trackEnd (const tsdk::TrackId & trackId)
+
+pure virtual
+
+ +

End of a track notification.

+
Parameters
+ + +
trackIdid of the track.
+
+
+
See also
tsdk::TrackId.
+ +
+
+
The documentation for this struct was generated from the following file:
    +
  • /home/gitlab-runner/builds/Xgzk4SPK/0/face-recognition/FaceEngine/extern/bestshotmobile/inc/IBestShotMobile.h
  • +
+
+
+ + + + diff --git a/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer.js b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer.js new file mode 100644 index 0000000..b60d7f9 --- /dev/null +++ b/doc/bsmobile/html/structmobile_1_1_i_best_shot_mobile_observer.js @@ -0,0 +1,6 @@ +var structmobile_1_1_i_best_shot_mobile_observer = +[ + [ "bestShot", "structmobile_1_1_i_best_shot_mobile_observer.html#a4b8263ebb3298fd4196ba5d37e000087", null ], + [ "liveness", "structmobile_1_1_i_best_shot_mobile_observer.html#a0448fc8d330b6d2d07eb20626f74ae54", null ], + [ "trackEnd", "structmobile_1_1_i_best_shot_mobile_observer.html#ad5f6356331d2d517ccc45e084a5c24e4", null ] +]; \ No newline at end of file diff --git a/doc/bsmobile/html/sync_off.png b/doc/bsmobile/html/sync_off.png new file mode 100644 index 0000000..3b443fc Binary files /dev/null and b/doc/bsmobile/html/sync_off.png differ diff --git a/doc/bsmobile/html/sync_on.png b/doc/bsmobile/html/sync_on.png new file mode 100644 index 0000000..e08320f Binary files /dev/null and b/doc/bsmobile/html/sync_on.png differ diff --git a/doc/bsmobile/html/tab_a.png b/doc/bsmobile/html/tab_a.png new file mode 100644 index 0000000..3b725c4 Binary files /dev/null and b/doc/bsmobile/html/tab_a.png differ diff --git a/doc/bsmobile/html/tab_b.png b/doc/bsmobile/html/tab_b.png new file mode 100644 index 0000000..e2b4a86 Binary files /dev/null and b/doc/bsmobile/html/tab_b.png differ diff --git a/doc/bsmobile/html/tab_h.png b/doc/bsmobile/html/tab_h.png new file mode 100644 index 0000000..fd5cb70 Binary files /dev/null and b/doc/bsmobile/html/tab_h.png differ diff --git a/doc/bsmobile/html/tab_s.png b/doc/bsmobile/html/tab_s.png new file mode 100644 index 0000000..ab478c9 Binary files /dev/null and b/doc/bsmobile/html/tab_s.png differ diff --git a/doc/bsmobile/html/tabs.css b/doc/bsmobile/html/tabs.css new file mode 100644 index 0000000..a28614b --- /dev/null +++ b/doc/bsmobile/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/doc/external/LICENSE_freeimage b/doc/external/LICENSE_freeimage new file mode 100644 index 0000000..479fb4d --- /dev/null +++ b/doc/external/LICENSE_freeimage @@ -0,0 +1,142 @@ +FreeImage Public License - Version 1.0 +--------------------------------------------- + +1. Definitions. + +1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + +1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + +1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. + +1.5. "Executable" means Covered Code in any form other than Source Code. + +1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + +1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + +1.8. "License" means this document. + +1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a +Modification is: + +A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + +B. Any new file that contains any part of the Original Code or previous Modifications. + +1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + +1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control +compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + +1.12. "You" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity. + +2. Source Code License. + +2.1. The Initial Developer Grant. +The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + +(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and + +(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("Utilize") the Original Code (or portions thereof), but solely to the extent that +any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or +combinations. + +2.2. Contributor Grant. +Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + +(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and + +(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that +may be necessary to Utilize further Modifications or combinations. + +3. Distribution Obligations. + +3.1. Application of License. +The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or +restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + +3.2. Availability of Source Code. +Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + +3.3. Description of Modifications. +You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + +3.4. Intellectual Property Matters + +(a) Third Party Claims. +If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make +available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + +(b) Contributor APIs. +If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file. + +3.5. Required Notices. +You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its +structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or +liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of +warranty, support, indemnity or liability terms You offer. + +3.6. Distribution of Executable Versions. +You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You +describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License, +provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. + +3.7. Larger Works. +You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + +5. Application of this License. + +This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code. + +6. Versions of the License. + +6.1. New Versions. +Floris van den Berg may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + +6.2. Effect of New Versions. +Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Floris van den Berg +No one other than Floris van den Berg has the right to modify the terms applicable to Covered Code created under this License. + +6.3. Derivative Works. +If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases "FreeImage", `FreeImage Public License", "FIPL", or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the FreeImage Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + +7. DISCLAIMER OF WARRANTY. + +COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + +This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + +9. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + +The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + +11. MISCELLANEOUS. + +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Dutch law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the The Netherlands: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Almelo, The Netherlands; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the court of Almelo, The Netherlands with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + +12. RESPONSIBILITY FOR CLAIMS. + +Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based +on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute +responsibility on an equitable basis. + +EXHIBIT A. + +"The contents of this file are subject to the FreeImage Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://home.wxs.nl/~flvdberg/freeimage-license.txt + +Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. \ No newline at end of file diff --git a/doc/external/LICENSE_json b/doc/external/LICENSE_json new file mode 100644 index 0000000..f0622d6 --- /dev/null +++ b/doc/external/LICENSE_json @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013-2021 Niels Lohmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/doc/external/LICENSE_opencv b/doc/external/LICENSE_opencv new file mode 100644 index 0000000..b6c6296 --- /dev/null +++ b/doc/external/LICENSE_opencv @@ -0,0 +1,42 @@ +By downloading, copying, installing or using the software you agree to this license. +If you do not agree to this license, do not download, install, +copy or use the software. + + + License Agreement + For Open Source Computer Vision Library + (3-clause BSD License) + +Copyright (C) 2000-2021, Intel Corporation, all rights reserved. +Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +Copyright (C) 2009-2016, NVIDIA Corporation, all rights reserved. +Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +Copyright (C) 2015-2021, OpenCV Foundation, all rights reserved. +Copyright (C) 2015-2016, Itseez Inc., all rights reserved. +Copyright (C) 2019-2021, Xperience AI, all rights reserved. +Third party copyrights are property of their respective owners. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the names of the copyright holders nor the names of the contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +This software is provided by the copyright holders and contributors "as is" and +any express or implied warranties, including, but not limited to, the implied +warranties of merchantability and fitness for a particular purpose are disclaimed. +In no event shall copyright holders or contributors be liable for any direct, +indirect, incidental, special, exemplary, or consequential damages +(including, but not limited to, procurement of substitute goods or services; +loss of use, data, or profits; or business interruption) however caused +and on any theory of liability, whether in contract, strict liability, +or tort (including negligence or otherwise) arising in any way out of +the use of this software, even if advised of the possibility of such damage. diff --git a/doc/external/LICENSE_opencv_contrib b/doc/external/LICENSE_opencv_contrib new file mode 100644 index 0000000..ebc3926 --- /dev/null +++ b/doc/external/LICENSE_opencv_contrib @@ -0,0 +1,41 @@ +By downloading, copying, installing or using the software you agree to this license. +If you do not agree to this license, do not download, install, +copy or use the software. + + + License Agreement + For Open Source Computer Vision Library + (3-clause BSD License) + +Copyright (C) 2000-2021, Intel Corporation, all rights reserved. +Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +Copyright (C) 2009-2015, NVIDIA Corporation, all rights reserved. +Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +Copyright (C) 2015-2021, OpenCV Foundation, all rights reserved. +Copyright (C) 2015-2016, Itseez Inc., all rights reserved. +Third party copyrights are property of their respective owners. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the names of the copyright holders nor the names of the contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +This software is provided by the copyright holders and contributors "as is" and +any express or implied warranties, including, but not limited to, the implied +warranties of merchantability and fitness for a particular purpose are disclaimed. +In no event shall copyright holders or contributors be liable for any direct, +indirect, incidental, special, exemplary, or consequential damages +(including, but not limited to, procurement of substitute goods or services; +loss of use, data, or profits; or business interruption) however caused +and on any theory of liability, whether in contract, strict liability, +or tort (including negligence or otherwise) arising in any way out of +the use of this software, even if advised of the possibility of such damage. diff --git a/doc/external/LICENSE_protobuf b/doc/external/LICENSE_protobuf new file mode 100644 index 0000000..19b305b --- /dev/null +++ b/doc/external/LICENSE_protobuf @@ -0,0 +1,32 @@ +Copyright 2008 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Code generated by the Protocol Buffer compiler is owned by the owner +of the input file used when generating it. This code is not +standalone and requires a support library to be linked with it. This +support library is itself covered by the above license. diff --git a/doc/external/LICENSE_pugixml b/doc/external/LICENSE_pugixml new file mode 100644 index 0000000..2503b81 --- /dev/null +++ b/doc/external/LICENSE_pugixml @@ -0,0 +1,24 @@ +MIT License + +Copyright (c) 2006-2020 Arseny Kapoulkine + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/doc/fsdk/html/_def_8h.html b/doc/fsdk/html/_def_8h.html new file mode 100644 index 0000000..b9710ed --- /dev/null +++ b/doc/fsdk/html/_def_8h.html @@ -0,0 +1,169 @@ + + + + + + +Face Engine SDK: include/fsdk/Def.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Def.h File Reference
+
+
+ +

Common SDK definitions. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define FSDK_DEPRECATED(msg)
 
+#define FSDK_API
 Dummy.
 
#define ALIGN_UP(value, align)
 
+#define ALIGNED(x)   __attribute__ ((aligned(x)))
 
+#define RESTRICT   __restrict__
 
+#define FORCE_INLINE   inline __attribute__ ((always_inline))
 
+#define DECLARE_SMARTPTR(X)   struct X; using X##Ptr = fsdk::Ref<X>
 Smart ptr declaration helper macro.
 
+#define STRINGIFY2(x)   #x
 Stringification helper macro.
 
+#define STRINGIFY(x)   STRINGIFY2(x)
 Stringifies it's argument.
 
+

Detailed Description

+

Common SDK definitions.

+ +
Date
25.06.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_def_8h.js b/doc/fsdk/html/_def_8h.js new file mode 100644 index 0000000..df70311 --- /dev/null +++ b/doc/fsdk/html/_def_8h.js @@ -0,0 +1,12 @@ +var _def_8h = +[ + [ "ALIGN_UP", "_def_8h.html#ga31543af52440ac9068b6b691617944a6", null ], + [ "ALIGNED", "_def_8h.html#ga8e7a3bf6003d72a62606f343c2db6245", null ], + [ "DECLARE_SMARTPTR", "_def_8h.html#gac4832e274cc0ba20ce33c3e34503a063", null ], + [ "FORCE_INLINE", "_def_8h.html#gac032d233a8ebfcd82fd49d0824eefb18", null ], + [ "FSDK_API", "_def_8h.html#a5dc4c3043f171426dafe6fc800218945", null ], + [ "FSDK_DEPRECATED", "_def_8h.html#ae0004c1093b61db5f8c34e4464997ae9", null ], + [ "RESTRICT", "_def_8h.html#gaae3356b63849abbe8789dd41648ee90a", null ], + [ "STRINGIFY", "_def_8h.html#ga6df1d22fb5f09eccc23b9f399670cfd7", null ], + [ "STRINGIFY2", "_def_8h.html#ga41f0baf2fca639d9cb25be1b9e03e335", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_def_8h_source.html b/doc/fsdk/html/_def_8h_source.html new file mode 100644 index 0000000..2c6c792 --- /dev/null +++ b/doc/fsdk/html/_def_8h_source.html @@ -0,0 +1,178 @@ + + + + + + +Face Engine SDK: include/fsdk/Def.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Def.h
+
+
+Go to the documentation of this file.
1 
+
7 #pragma once
+
8 
+
9 #if defined(__clang__) || defined(__GNUC__)
+
10  #define FSDK_DEPRECATED(msg) __attribute__((__deprecated__(msg)))
+
11 #elif defined(_MSC_VER)
+
12  #define FSDK_DEPRECATED(msg) __declspec(deprecated(msg))
+
13 #else
+
14  #define FSDK_DEPRECATED(msg)
+
15 #endif
+
16 
+
17 #if defined(WIN32) || defined(_WIN32)
+
18  #if defined (SDK_DLL_EXPORTS)
+
19  #define FSDK_API __declspec(dllexport)
+
20  #else
+
21  #define FSDK_API __declspec(dllimport)
+
22  #endif
+
23 #else
+
24  #if __GNUC__ >= 4
+
25  #define FSDK_API __attribute__ ((visibility ("default")))
+
26  #else
+
27  #define FSDK_API
+
28  #endif
+
29 #endif
+
30 
+
31 #if __APPLE__
+
32  #include <TargetConditionals.h>
+
33  #if TARGET_CPU_ARM || TARGET_CPU_ARM64
+
34  #define IOS
+
35  #endif
+
36 #endif // __APPLE__
+
37 
+
42 // Aling value up to align so that value % align == 0.
+
43 #define ALIGN_UP(value, align) \
+
44  (((value) & (align-1)) ? \
+
45  (((value) + (align-1)) & ~(align-1)) : \
+
46  (value))
+
47 
+
48 #if defined(_MSC_VER)
+
49 #define ALIGNED(x) __declspec(align(x))
+
50 #define RESTRICT __restrict
+
51 #define FORCE_INLINE __forceinline
+
52 #else
+
53 #define ALIGNED(x) __attribute__ ((aligned(x)))
+
54 #define RESTRICT __restrict__
+
55 #define FORCE_INLINE inline __attribute__ ((always_inline))
+
56 #endif
+
57 
+
59 #define DECLARE_SMARTPTR(X) struct X; using X##Ptr = fsdk::Ref<X>
+
60 
+
62 #define STRINGIFY2(x) #x
+
63 
+
65 #define STRINGIFY(x) STRINGIFY2(x)
+
66  // end of CoreGroup
+
+
+ + + + diff --git a/doc/fsdk/html/_detection_8h_source.html b/doc/fsdk/html/_detection_8h_source.html new file mode 100644 index 0000000..b26b90d --- /dev/null +++ b/doc/fsdk/html/_detection_8h_source.html @@ -0,0 +1,211 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Detection.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Detection.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/Types/Rect.h>
+
4 
+
5 namespace fsdk {
+
10  struct Detection {
+
14  Detection() noexcept
+
15  : m_rect{}
+
16  , m_w{0}, m_h{0}
+
17  , m_score{0.0f}
+
18  {}
+
19 
+
27  Detection(FloatRect rect, float score = 1.f) noexcept
+
28  : m_rect{rect}
+
29  , m_w{static_cast<int>(rect.x + rect.width)}
+
30  , m_h{static_cast<int>(rect.y + rect.height)}
+
31  , m_score{score}
+
32  {}
+
33 
+
41  Detection(FloatRect rect, int width, int height, float score = 1.f) noexcept
+
42  : m_rect{rect}
+
43  , m_w{width}, m_h{height}
+
44  , m_score{score}
+
45  {}
+
46 
+
52  Detection(FloatRect rect, Rect imageRect, float score = 1.f) noexcept
+
53  : m_rect{rect}
+
54  , m_w{imageRect.x + imageRect.width}, m_h{imageRect.y + imageRect.height}
+
55  , m_score{score}
+
56  {}
+
57 
+
58  Detection(const Detection& rhs) noexcept
+
59  : m_rect{rhs.m_rect}
+
60  , m_w{rhs.m_w}
+
61  , m_h{rhs.m_h}
+
62  , m_score{rhs.m_score}
+
63  {}
+
64 
+
65  Detection& operator=(const Detection& rhs) noexcept {
+
66  m_rect = rhs.m_rect;
+
67  m_w = rhs.m_w;
+
68  m_h = rhs.m_h;
+
69  m_score = rhs.m_score;
+
70  return *this;
+
71  }
+
72 
+
77  Rect getRect() const noexcept {
+
78  return m_rect & fsdk::Rect{0, 0, m_w, m_h};
+
79  }
+
80 
+
85  FloatRect getRawRect() const noexcept {
+
86  return m_rect;
+
87  }
+
88 
+
94  void setRawRect(fsdk::FloatRect rect) noexcept {
+
95  m_rect = rect;
+
96  }
+
97 
+
98  float getScore() const noexcept {
+
99  return m_score;
+
100  }
+
101 
+
107  void setScore(float score) noexcept {
+
108  m_score = score;
+
109  }
+
110 
+
116  bool isValid() const noexcept {
+
117  return m_rect.isValid() && m_score && m_w && m_h;
+
118  }
+
119  private:
+
120  FloatRect m_rect; // Detection rect
+
121  int m_w, m_h; // Bounding width and height of the source image
+
122  float m_score; // Detection score
+
123  };
+
124 }
+
FloatRect getRawRect() const noexcept
Returns a raw detection bounding box.
Definition: Detection.h:85
+
void setScore(float score) noexcept
Sets a detection score.
Definition: Detection.h:107
+
bool isValid() const noexcept
Checks whether a detection is valid.
Definition: Detection.h:116
+
Detection(FloatRect rect, float score=1.f) noexcept
Special constructor based on raw rect and score only.
Definition: Detection.h:27
+
bool isValid() const noexcept
Checks whether a rect is valid.
Definition: Rect.h:366
+
Detection() noexcept
Default constructor. Creates an invalid Detection with zeroed rect and score.
Definition: Detection.h:14
+
Detection(FloatRect rect, int width, int height, float score=1.f) noexcept
Constructor base on the raw rect, bounding width and height.
Definition: Detection.h:41
+
Detection(FloatRect rect, Rect imageRect, float score=1.f) noexcept
Constructor base on the raw rect, bounding width and height.
Definition: Detection.h:52
+ +
void setRawRect(fsdk::FloatRect rect) noexcept
Sets a detection rect.
Definition: Detection.h:94
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Rect getRect() const noexcept
Returns a detection rect.
Definition: Detection.h:77
+
+
+ + + + diff --git a/doc/fsdk/html/_exception_8h_source.html b/doc/fsdk/html/_exception_8h_source.html new file mode 100644 index 0000000..4c09ff9 --- /dev/null +++ b/doc/fsdk/html/_exception_8h_source.html @@ -0,0 +1,149 @@ + + + + + + +Face Engine SDK: include/fsdk/Exception.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Exception.h
+
+
+
1 #pragma once
+
2 
+
3 #include <exception>
+
4 
+
5 #include <fsdk/FSDKError.h>
+
6 #include <fsdk/Def.h>
+
7 
+
8 namespace fsdk {
+
9 
+ +
11  explicit Exception(fsdk::FSDKError err) noexcept;
+
12 
+
13  const char* what() const noexcept;
+
14 
+
15  fsdk::FSDKError getError() const noexcept;
+
16 
+
17  private:
+
18  fsdk::FSDKError m_error;
+
19  };
+
20 }
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
Common SDK error codes.
+
Common SDK definitions.
+
Definition: Exception.h:10
+
FSDKError
Common SDK error codes.
Definition: FSDKError.h:17
+
+
+ + + + diff --git a/doc/fsdk/html/_f_s_d_k_error_8h.html b/doc/fsdk/html/_f_s_d_k_error_8h.html new file mode 100644 index 0000000..8800564 --- /dev/null +++ b/doc/fsdk/html/_f_s_d_k_error_8h.html @@ -0,0 +1,210 @@ + + + + + + +Face Engine SDK: include/fsdk/FSDKError.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
FSDKError.h File Reference
+
+
+ +

Common SDK error codes. +More...

+
#include <fsdk/Types/Result.h>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

struct  fsdk::ErrorTraits< FSDKError >
 Specialized for FSDKError. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+ + + + +

+Enumerations

enum  fsdk::FSDKError : uint32_t {
+  fsdk::FSDKError::Ok, +fsdk::FSDKError::Internal, +fsdk::FSDKError::InvalidInput, +fsdk::FSDKError::InvalidImage, +
+  fsdk::FSDKError::InvalidRect, +fsdk::FSDKError::InvalidImageFormat, +fsdk::FSDKError::InvalidImageSize, +fsdk::FSDKError::InvalidDetection, +
+  fsdk::FSDKError::InvalidLandmarks5, +fsdk::FSDKError::InvalidLandmarks68, +fsdk::FSDKError::InvalidTransformation, +fsdk::FSDKError::InvalidDescriptor, +
+  fsdk::FSDKError::InvalidDescriptorBatch, +fsdk::FSDKError::InvalidSettingsProvider, +fsdk::FSDKError::InvalidDescriptorId, +fsdk::FSDKError::InvalidPath, +
+  fsdk::FSDKError::InvalidSerializedObject, +fsdk::FSDKError::ModuleNotInitialized, +fsdk::FSDKError::ModuleNotReady, +fsdk::FSDKError::LicenseError, +
+  fsdk::FSDKError::BufferIsNull, +fsdk::FSDKError::BufferIsFull, +fsdk::FSDKError::BufferIsEmpty, +fsdk::FSDKError::InvalidBufferSize, +
+  fsdk::FSDKError::InvalidSpanSize, +fsdk::FSDKError::InvalidBatch, +fsdk::FSDKError::IncompatibleDescriptors, +fsdk::FSDKError::EnableJustInBetaMode, +
+  fsdk::FSDKError::FiltredAggregationError, +fsdk::FSDKError::BatchedInternalError, +UnsupportedFunctionality, +HighMemoryUsage, +
+  fsdk::FSDKError::IncompatibleModelVersions, +fsdk::FSDKError::ModelNotLoaded, +fsdk::FSDKError::InvalidConfig, +fsdk::FSDKError::LicenseIsNotActivated, +
+  fsdk::FSDKError::FeatureNotAvailable, +fsdk::FSDKError::FeatureExpired, +fsdk::FSDKError::FingerprintError, +fsdk::FSDKError::ValidationFailed, +
+  fsdk::FSDKError::NotImplemented +
+ }
 Common SDK error codes. More...
 
+

Detailed Description

+

Common SDK error codes.

+ +
Date
25.06.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_f_s_d_k_error_8h.js b/doc/fsdk/html/_f_s_d_k_error_8h.js new file mode 100644 index 0000000..ffeab64 --- /dev/null +++ b/doc/fsdk/html/_f_s_d_k_error_8h.js @@ -0,0 +1,47 @@ +var _f_s_d_k_error_8h = +[ + [ "ErrorTraits< FSDKError >", "structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html", null ], + [ "FSDKError", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6", [ + [ "Ok", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6aa60852f204ed8028c1c58808b746d115", null ], + [ "Internal", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6aafbf0897a5a83fdd873dfb032ec695d3", null ], + [ "InvalidInput", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6ad8f78ca9a692a9411afbc7584b69d043", null ], + [ "InvalidImage", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a107a93f5ad9b48f874341eaa0141e0f9", null ], + [ "InvalidRect", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a48a3a3a046f78d13629f687cc97461a0", null ], + [ "InvalidImageFormat", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a4bb4fd071cf54bae94ece53fa687b8bf", null ], + [ "InvalidImageSize", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5a606ed9e3b82871cb31eb26d467bebf", null ], + [ "InvalidDetection", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a8f36304eeb9e7bd7da166f71d3a5671f", null ], + [ "InvalidLandmarks5", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6ab5c07ccab2c5b9c7577b777263e692aa", null ], + [ "InvalidLandmarks68", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5e323dba014fd8072bb4a29f3e39db8d", null ], + [ "InvalidTransformation", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a21481cb38ecea41b765ab2d86b594053", null ], + [ "InvalidDescriptor", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5b17c8e23099885736ba8f8d05c32f6c", null ], + [ "InvalidDescriptorBatch", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a7b9735f9f1303453ad41cd38fc3b2b77", null ], + [ "InvalidSettingsProvider", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6ab1af2f31ddaa685b9fabe328f28f3a6f", null ], + [ "InvalidDescriptorId", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a1a86be0290d50e138737e4cc52665468", null ], + [ "InvalidPath", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5d0744802b24f44a161d350c25d76c7b", null ], + [ "InvalidSerializedObject", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6af3c0d24a751f6da0fe4f81bb2e10bb19", null ], + [ "ModuleNotInitialized", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a323d77f58f917d629ad48b5ee2d191c1", null ], + [ "ModuleNotReady", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6adf06605dc40df1fb5461ffb5f83b2eab", null ], + [ "LicenseError", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a2b423836b373458d26bdc9da85cfc6a8", null ], + [ "BufferIsNull", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6aec4c088621f5d17412b2d1c55befb5ff", null ], + [ "BufferIsFull", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a3557af19581eb994d3e1b9dbc465226d", null ], + [ "BufferIsEmpty", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a3552409a4c6111770f0d160447285b17", null ], + [ "InvalidBufferSize", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a32d8099d0ff5ab8d8893e6902eeb1ad0", null ], + [ "InvalidSpanSize", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a9a93b3012aa094825f11f65e07763bb3", null ], + [ "InvalidBatch", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a16cd466ba03251484ec4e4b1dba364f5", null ], + [ "IncompatibleDescriptors", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a98530c9f4969e4a2e2d84a7776a2be2a", null ], + [ "EnableJustInBetaMode", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a135fc410a8fc490b3531c355f8c30461", null ], + [ "FiltredAggregationError", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a3e095f1fa338dccd7cc239c47593fd7a", null ], + [ "BatchedInternalError", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a06ac3f10514f6b229599e88b2ee7d2bf", null ], + [ "UnsupportedFunctionality", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6acd355ebab3607a35280f24744616fc24", null ], + [ "HighMemoryUsage", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6af87a8fba63bf85f0b7f09e4678a7d88f", null ], + [ "IncompatibleModelVersions", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6acd90a241053a97f8ff283746c8bed63f", null ], + [ "ModelNotLoaded", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a781454aa7253a3e54e7a7f7fec293e29", null ], + [ "InvalidConfig", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a636bc5ca1e0ceb3e4c67067618d7ae09", null ], + [ "LicenseIsNotActivated", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a22e90664663be51d76eb78ba6e964375", null ], + [ "FeatureNotAvailable", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6afb12ff30441dbc154f6d2591169f012c", null ], + [ "FeatureExpired", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a84decd8ce021a70aef62a2283ea8d559", null ], + [ "FingerprintError", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a455a3a357ebc7221085d184c157c13a5", null ], + [ "ValidationFailed", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a180b13250d9cde4f32c7e611c95789db", null ], + [ "NotImplemented", "_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a997ca4ce119685f40f03a9a8a6c5346e", null ] + ] ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_f_s_d_k_error_8h_source.html b/doc/fsdk/html/_f_s_d_k_error_8h_source.html new file mode 100644 index 0000000..ed5bc6c --- /dev/null +++ b/doc/fsdk/html/_f_s_d_k_error_8h_source.html @@ -0,0 +1,281 @@ + + + + + + +Face Engine SDK: include/fsdk/FSDKError.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
FSDKError.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include <fsdk/Types/Result.h>
+
11 
+
12 namespace fsdk {
+
13 
+
17  enum class FSDKError : uint32_t {
+
18  Ok,
+
19  Internal,
+
20  InvalidInput,
+
21  InvalidImage,
+
22 
+
23  InvalidRect,
+ + + + + + + + + + +
34  InvalidPath,
+ +
36 
+ + +
39  LicenseError,
+
40 
+
41  BufferIsNull,
+
42  BufferIsFull,
+ + + +
46  InvalidBatch,
+
47 
+ + +
50 
+ +
52 
+ +
54  UnsupportedFunctionality, // !< was requested unsupported functionality for this type of descroptor or for this model version
+
55 
+
56  HighMemoryUsage, // !< Operation required a lot of memory. Batch size if too big for example.
+
57 
+ + + + + + + + +
66 
+ +
68  };
+
69 
+
73  template<>
+ +
75 
+
76  static bool isOk(FSDKError error) noexcept {
+
77  return error == FSDKError::Ok;
+
78  }
+
79 
+
80  static const char* toString (FSDKError error) noexcept {
+
81  switch(error) {
+
82  case FSDKError::Ok: return "Ok";
+
83  case FSDKError::Internal: return "Internal error";
+
84  case FSDKError::InvalidInput: return "Invalid input";
+
85  case FSDKError::InvalidImage: return "Invalid image";
+
86  case FSDKError::InvalidRect: return "Invalid rectangle";
+
87  case FSDKError::InvalidImageFormat: return "Invalid image format";
+
88  case FSDKError::InvalidImageSize: return "Invalid image size";
+
89  case FSDKError::InvalidDetection: return "Invalid detection";
+
90  case FSDKError::InvalidLandmarks5: return "Invalid landmarks 5";
+
91  case FSDKError::InvalidLandmarks68: return "Invalid landmarks 68";
+
92  case FSDKError::InvalidTransformation: return "Invalid transformation.";
+
93  case FSDKError::InvalidDescriptor: return "Invalid descriptor";
+
94  case FSDKError::InvalidDescriptorBatch: return "Invalid descriptor batch.";
+
95  case FSDKError::InvalidSettingsProvider: return "Invalid settings provider..";
+
96  case FSDKError::InvalidDescriptorId: return "Invalid descriptor id.";
+
97  case FSDKError::InvalidPath: return "Invalid path.";
+
98  case FSDKError::InvalidSerializedObject: return "Invalid serialized object.";
+
99  case FSDKError::ModuleNotInitialized: return "Module is not initialized";
+
100  case FSDKError::ModuleNotReady: return "Module is not ready";
+
101  case FSDKError::LicenseError: return "Licensing issue";
+
102  case FSDKError::BufferIsNull: return "Buffer is null";
+
103  case FSDKError::BufferIsFull: return "Buffer is full";
+
104  case FSDKError::BufferIsEmpty: return "Buffer is empty";
+
105  case FSDKError::InvalidBufferSize: return "Invalid buffer size";
+
106  case FSDKError::InvalidSpanSize: return "Invalid span size";
+
107  case FSDKError::InvalidBatch: return "Invalid Batch";
+
108  case FSDKError::IncompatibleDescriptors: return "Descriptors are incompatible";
+
109  case FSDKError::EnableJustInBetaMode: return "Attempt to create feature while betaMode is turned off";
+
110  case FSDKError::FiltredAggregationError: return "Cant aggregate descriptors - all images'a GSs are less the threashold";
+
111  case FSDKError::BatchedInternalError: return "Something gone wrong in batched query";
+
112  case FSDKError::UnsupportedFunctionality: return "Was requested unsupported functionality";
+
113  case FSDKError::HighMemoryUsage: return "Operation required a lot of memory";
+
114  case FSDKError::IncompatibleModelVersions: return "Incompatible model versions";
+
115  case FSDKError::ModelNotLoaded: return "Model not loaded";
+
116  case FSDKError::InvalidConfig: return "Invalid config";
+
117  case FSDKError::LicenseIsNotActivated: return "License is not activated!";
+
118  case FSDKError::FeatureNotAvailable: return "Requested Feature not available.";
+
119  case FSDKError::FeatureExpired: return "Feature is expired.";
+
120  case FSDKError::FingerprintError: return "Failed to get device fingerprint.";
+
121  case FSDKError::ValidationFailed: return "Failed validation.";
+
122  case FSDKError::NotImplemented: return "Not implemented.";
+
123  default: return "Unknown error";
+
124  }
+
125  }
+
126  };
+
127 
+
128 }
+
Invalid serialized object.
+ + +
Cant aggregate descriptors - all images&#39;a GSs are less the threashold.
+ +
Matching attempt with incompatible descriptors.
+
Not implemented error.
+ +
Invalid descriptor batch.
+ +
Invalid settings provider.
+ +
Module is not ready.
+ +
Invalid path to object.
+
Definition: Result.h:9
+ + + + +
Requested Feature not available.
+ + + + + +
License is not activated.
+
Licensing issue (expired license or unavailable feature).
+ +
Incompatible model versions.
+
Module is not initialized.
+ + +
FSDKError
Common SDK error codes.
Definition: FSDKError.h:17
+
Invalid rectangle.
+ + +
Attempt to create feature while betaMode is turned off.
+
Failed to get device fingerprint.
+ +
Something gone wrong in batched query. See batch with error codes to each input image for details...
+
+
+ + + + diff --git a/doc/fsdk/html/_f_s_d_k_version_8h_source.html b/doc/fsdk/html/_f_s_d_k_version_8h_source.html new file mode 100644 index 0000000..189efd1 --- /dev/null +++ b/doc/fsdk/html/_f_s_d_k_version_8h_source.html @@ -0,0 +1,131 @@ + + + + + + +Face Engine SDK: include/fsdk/FSDKVersion.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
FSDKVersion.h
+
+
+
1 #pragma once
+
2 
+
3 #define FSDK_VERSION "5.8.0"
+
4 #define FSDK_VERSION_MAJOR 5
+
5 #define FSDK_VERSION_MINOR 8
+
6 #define FSDK_VERSION_PATCH 0
+
7 #define FSDK_VERSION_HASH "481f938b4a7529104b180aad909077967c87463d"
+
+
+ + + + diff --git a/doc/fsdk/html/_face_8h_source.html b/doc/fsdk/html/_face_8h_source.html new file mode 100644 index 0000000..301f2a7 --- /dev/null +++ b/doc/fsdk/html/_face_8h_source.html @@ -0,0 +1,161 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Face.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Face.h
+
+
+
1 #pragma once
+
2 
+
3 #include "fsdk/Optional.h"
+
4 #include <fsdk/Types/Detection.h>
+
5 #include <fsdk/Types/Image.h>
+
6 #include <fsdk/Types/Landmarks.h>
+
7 
+
8 namespace fsdk {
+
9 
+
10  struct Face {
+
11 
+
12  typedef float ElementType;
+
13 
+
14  fsdk::Image img;
+
15  fsdk::Detection detection;
+
16  Optional<fsdk::Landmarks5> landmarks5;
+
17  Optional<fsdk::Landmarks68> landmarks68;
+
18 
+
19  bool isValid() const {
+
20  return img.isValid() && detection.isValid();
+
21  }
+
22 
+
23  explicit Face() = default;
+
24  explicit Face(const fsdk::Image& image) : img(image) {};
+
25  explicit Face(
+
26  const fsdk::Image& image,
+
27  const fsdk::Detection& detection) :
+
28  img(image),
+
29  detection(detection) {};
+
30  };
+
31 
+
32 }
+
bool isValid() const noexcept
Checks whether a detection is valid.
Definition: Detection.h:116
+
Definition: Face.h:10
+
Image.
Definition: Image.h:38
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
bool isValid() const noexcept
Definition: Image.h:757
+
+
+ + + + diff --git a/doc/fsdk/html/_face_engine_8h.html b/doc/fsdk/html/_face_engine_8h.html new file mode 100644 index 0000000..60869c0 --- /dev/null +++ b/doc/fsdk/html/_face_engine_8h.html @@ -0,0 +1,153 @@ + + + + + + +Face Engine SDK: include/fsdk/FaceEngine.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
FaceEngine.h File Reference
+
+
+ +

Face detection, analyzing and recognition SDK interfaces, AIO public header. +More...

+
#include <fsdk/IFaceEngineMobile.h>
+
+

Go to the source code of this file.

+ + + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+ + + + + +

+Typedefs

+using fsdk::FaceEngineType = IFaceEngineMobile
 
+using fsdk::FaceEnginePtrType = IFaceEngineMobilePtr
 
+

Detailed Description

+

Face detection, analyzing and recognition SDK interfaces, AIO public header.

+ +
Date
25.06.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_face_engine_8h.js b/doc/fsdk/html/_face_engine_8h.js new file mode 100644 index 0000000..faff764 --- /dev/null +++ b/doc/fsdk/html/_face_engine_8h.js @@ -0,0 +1,5 @@ +var _face_engine_8h = +[ + [ "FaceEnginePtrType", "_face_engine_8h.html#a26a5c21a07c3da43c68260ea0e386776", null ], + [ "FaceEngineType", "_face_engine_8h.html#ab3ee7565ad11c7584ca7610bcf4e58a4", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_face_engine_8h_source.html b/doc/fsdk/html/_face_engine_8h_source.html new file mode 100644 index 0000000..091b8bf --- /dev/null +++ b/doc/fsdk/html/_face_engine_8h_source.html @@ -0,0 +1,135 @@ + + + + + + +Face Engine SDK: include/fsdk/FaceEngine.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
FaceEngine.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
30 #include <fsdk/IFaceEngineMobile.h>
+
31 
+
32 namespace fsdk {
+
33 
+
34  using FaceEngineType = IFaceEngineMobile;
+
35  using FaceEnginePtrType = IFaceEngineMobilePtr;
+
36 
+
37 }
+
+
+ + + + diff --git a/doc/fsdk/html/_face_engine_edition_8h_source.html b/doc/fsdk/html/_face_engine_edition_8h_source.html new file mode 100644 index 0000000..c1db716 --- /dev/null +++ b/doc/fsdk/html/_face_engine_edition_8h_source.html @@ -0,0 +1,134 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/FaceEngineEdition.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
FaceEngineEdition.h
+
+
+
1 #pragma once
+
2 
+
3 namespace fsdk {
+
4 
+
5  enum class FaceEngineEdition {
+
6  FrontEndEdition,
+
7  CompleteEdition
+
8  };
+
9 
+
10 } // namespace fsdk
+
+
+ + + + diff --git a/doc/fsdk/html/_format_8h_source.html b/doc/fsdk/html/_format_8h_source.html new file mode 100644 index 0000000..e6958a4 --- /dev/null +++ b/doc/fsdk/html/_format_8h_source.html @@ -0,0 +1,298 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Format.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Format.h
+
+
+
1 #pragma once
+
2 
+
3 #include <cassert>
+
4 
+
5 namespace fsdk
+
6 {
+
7 
+
11 struct Format {
+
12 
+
15  enum Type {
+ + + + + +
21  R8,
+
22  R16,
+ + + +
26  };
+
27 
+
34  int getChannelCount() const noexcept {
+
35  switch(m_type) {
+
36  case B8G8R8X8:
+
37  case R8G8B8X8:
+
38  case B8G8R8:
+
39  case R8G8B8:
+
40  case IR_X8X8X8:
+
41  case YUV_NV21:
+
42  case YUV_NV12:
+
43  return 3;
+
44  case R8:
+
45  case R16:
+
46  return 1;
+
47  default:
+
48  return 0;
+
49  }
+
50  }
+
51 
+
56  int getChannelStep() const noexcept {
+
57  switch(m_type) {
+
58  case B8G8R8X8:
+
59  case R8G8B8X8:
+
60  return 4;
+
61  case B8G8R8:
+
62  case R8G8B8:
+
63  case IR_X8X8X8:
+
64  return 3;
+
65  case R8:
+
66  case R16:
+
67  case YUV_NV21:
+
68  case YUV_NV12:
+
69  return 1;
+
70  default:
+
71  return 0;
+
72  }
+
73  }
+
74 
+
78  int getChannelSize() const noexcept {
+
79  switch(m_type) {
+
80  case B8G8R8X8:
+
81  case R8G8B8X8:
+
82  case B8G8R8:
+
83  case R8G8B8:
+
84  case IR_X8X8X8:
+
85  case R8:
+
86  return 8;
+
87  case R16:
+
88  return 16;
+
89  case YUV_NV21:
+
90  case YUV_NV12:
+
91  return 12;
+
92  default:
+
93  return 0;
+
94  }
+
95  }
+
96 
+
100  int getBitDepth() const noexcept {
+
101  return getChannelStep() * getChannelSize();
+
102  }
+
103 
+
107  int getByteDepth() const noexcept {
+
108  if(isBlock()) {
+
109  assert(!"Not implemented");
+
110  return 0;
+
111  }
+
112  else {
+
113  return getBitDepth() >> 3;
+
114  }
+
115  }
+
116 
+
121  int computePitch(int rowWidth) const noexcept {
+
122  return rowWidth * getByteDepth();
+
123  }
+
124 
+
127  bool isPadded() const noexcept {
+
128  switch(m_type) {
+
129  case B8G8R8X8:
+
130  case R8G8B8X8:
+
131  return true;
+
132  default:
+
133  return false;
+
134  }
+
135  }
+
136 
+
141  bool isBGR() const noexcept {
+
142  switch(m_type) {
+
143  case B8G8R8X8:
+
144  case B8G8R8:
+
145  return true;
+
146  default:
+
147  return false;
+
148  }
+
149  }
+
150 
+
153  bool isYUV() const noexcept {
+
154  switch(m_type) {
+
155  case YUV_NV21:
+
156  case YUV_NV12:
+
157  return true;
+
158  default:
+
159  return false;
+
160  }
+
161  }
+
162 
+
167  bool isBlock() const noexcept {
+
168  return false;
+
169  }
+
170 
+
174  bool isValid() const noexcept {
+
175  return m_type != Unknown;
+
176  }
+
177 
+
181  Format() noexcept : m_type(Unknown) {}
+
182 
+
186  Format(Type type) noexcept : m_type(type) {}
+
187 
+
189  operator Type () const noexcept {
+
190  return m_type;
+
191  }
+
192 
+
193 protected:
+ +
195 };
+
196 }
+
197 
+
198 
+
int getBitDepth() const noexcept
Get number of bits per pixel.
Definition: Format.h:100
+
int getChannelSize() const noexcept
Get color channel size in bits.
Definition: Format.h:78
+
3 channel, 8 bit per channel, R-G-B color order format;
Definition: Format.h:20
+
unknown format.
Definition: Format.h:16
+
int getChannelStep() const noexcept
Get channel step.
Definition: Format.h:56
+
bool isBlock() const noexcept
Definition: Format.h:167
+
Format() noexcept
Initializes format structure.
Definition: Format.h:181
+
int computePitch(int rowWidth) const noexcept
Compute row size in bytes.
Definition: Format.h:121
+
bool isValid() const noexcept
Definition: Format.h:174
+
Image format.
Definition: Format.h:11
+
bool isBGR() const noexcept
Definition: Format.h:141
+
int getChannelCount() const noexcept
Get color channel count.
Definition: Format.h:34
+
4:2:0 planar format with a plane of 8-bit Y samples followed by interleaved 2x2 subsampled U/V 8-bit ...
Definition: Format.h:25
+
int getByteDepth() const noexcept
Get number of bytes per pixel.
Definition: Format.h:107
+
3 channel, 8 bit per channel, B-G-R color order format;
Definition: Format.h:19
+
Type
Format type enumeration.
Definition: Format.h:15
+
Type m_type
Format type.
Definition: Format.h:194
+
bool isPadded() const noexcept
Definition: Format.h:127
+
1 channel, 8 bit per channel format;
Definition: Format.h:21
+
3 channel, 8 bit per channel, B-G-R color order format with 8 bit padding before next pixel; ...
Definition: Format.h:17
+
1 channel, 16 bit per channel format;
Definition: Format.h:22
+
3 channel, 8 bit per channel, R-G-B color order format with 8 bit padding before next pixel; ...
Definition: Format.h:18
+
4:2:0 planar format with a plane of 8-bit Y samples followed by interleaved 2x2 subsampled V/U 8-bit ...
Definition: Format.h:24
+
bool isYUV() const noexcept
Definition: Format.h:153
+
Format(Type type) noexcept
Initializes format structure.
Definition: Format.h:186
+
3 channel, 8 bit per channel format with InfraRed semantics;
Definition: Format.h:23
+
+
+ + + + diff --git a/doc/fsdk/html/_future_8h_source.html b/doc/fsdk/html/_future_8h_source.html new file mode 100644 index 0000000..4ebdafd --- /dev/null +++ b/doc/fsdk/html/_future_8h_source.html @@ -0,0 +1,352 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Future.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Future.h
+
+
+
1 #pragma once
+
2 
+
3 //
+
4 // Future.h
+
5 // inc
+
6 //
+
7 // Created by k.delimbetov on 28.05.2018.
+
8 //
+
9 
+
10 #include <cstdint>
+
11 
+
12 namespace fsdk_internal {
+
13 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
14  template<typename T>
+
15  class FutureImpl;
+
16  template<typename T>
+
17  class PromiseImpl;
+
18 #endif
+
19 }
+
20 
+
21 namespace fsdk {
+
23  enum class ExecutionPolicy: uint8_t {
+
24  Sync,
+
25  Async
+
26  };
+
27 
+
29  enum class FuturePromiseState: uint8_t {
+
30  Empty,
+
31  Promised,
+
32  Fulfilled,
+ +
34  Canceled,
+
35  Failed,
+
36  Broken
+
37  };
+
38 
+
40  class Noncopyable {
+
41  protected:
+
42  Noncopyable() = default;
+
43  ~Noncopyable() = default;
+
44 
+
45  private:
+
46  Noncopyable(const Noncopyable&) = delete;
+
47  Noncopyable& operator=(const Noncopyable&) = delete;
+
48  };
+
49 
+
50  template<typename T>
+
51  class Promise;
+
52 
+
54  enum class FutureError: uint8_t {
+
55  Ok,
+
56  InvalidInput,
+
57  NotPromised,
+
58  NotFulfilled,
+
59  NonWaitable,
+
60  Timeout,
+
61  Internal
+
62  };
+
63 
+
68  template<typename T>
+ +
70  : Noncopyable {
+
71  public:
+
73  using USec = int32_t;
+
75  using Error = FutureError;
+
77  using DataType = T;
+
78 
+
79  // MARK: Base
+
81  Future() noexcept;
+
82  Future(Future&& mv) noexcept;
+
83  Future& operator=(Future&&) noexcept;
+
84  ~Future();
+
85 
+
87  static void swap(Future& first, Future& second) noexcept;
+
88 
+
89  // MARK: Interface
+
96  Result<Error> cancel(const ExecutionPolicy policy) noexcept;
+
97 
+
102  FuturePromiseState state() const noexcept;
+
103 
+
110  Result<Error> takeInto(DataType& container) noexcept;
+
111 
+
117  Result<Error> wait() const noexcept;
+
118 
+
125  Result<Error> waitFor(const USec usec) const noexcept;
+
126 
+
127  private:
+
128 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
129  Future(fsdk_internal::FutureImpl<T>* impl) noexcept;
+
130 
+
131  friend class Promise<T>;
+
132 
+
133  // MARK: Internal
+
134  fsdk_internal::FutureImpl<T>* m_pimpl = nullptr;
+
135 #endif
+
136  };
+
137 
+
139  enum class PromiseError: uint8_t {
+
140  Ok,
+
141  Internal,
+ + + + +
146  };
+
147 
+
152  template<typename T>
+
153  class FSDK_API Promise
+
154  : Noncopyable {
+
155  public:
+ +
159  using DataType = T;
+
160 
+
161  // MARK: Base
+
163  Promise() noexcept;
+
164  Promise(Promise&&) noexcept;
+
165  Promise& operator=(Promise&&) noexcept;
+
166  ~Promise();
+
167 
+
169  static void swap(Promise& first, Promise& second) noexcept;
+
170 
+
171  // MARK: Interface
+
177  Result<Error> cancel() noexcept;
+
178 
+
184  Result<Error> fail() noexcept;
+
185 
+
192  Result<Error> fulfill(DataType&& promisedData) noexcept;
+
193 
+
200  Future<DataType> future(Result<Error>& error) noexcept;
+
201 
+
206  FuturePromiseState state() const noexcept;
+
207 
+
208  private:
+
209 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
210  // MARK: Internal
+
211  fsdk_internal::PromiseImpl<T>* m_pimpl = nullptr;
+
212 #endif
+
213  };
+
214 
+
218  template<>
+ +
220  static bool isOk(const FutureError error) noexcept {
+
221  return error == FutureError::Ok;
+
222  }
+
223 
+
224  static const char* toString (const FutureError error) noexcept {
+
225  switch(error) {
+
226  case FutureError::Ok:
+
227  return "Ok";
+ +
229  return "Invalid data is given as input to some method";
+ +
231  return "Error if you call @see Future::cancel on not Promised state";
+ +
233  return "Error if you call @see Future::takeInto on not Fulfilled state";
+ +
235  return "Error if you try to @see Future::wait on non waitable state";
+ +
237  return "Error if your @see Future::waitFor method ran out of time";
+ +
239  return "Some internal error";
+
240  default:
+
241  return "Unknown error";
+
242  }
+
243  }
+
244  };
+
245 
+
249  template<>
+ +
251  static bool isOk(const PromiseError error) noexcept {
+
252  return error == PromiseError::Ok;
+
253  }
+
254 
+
255  static const char* toString (const PromiseError error) noexcept {
+
256  switch(error) {
+
257  case PromiseError::Ok:
+
258  return "Ok";
+ +
260  return "Internal error.";
+ +
262  return "Error if you call @see Promise::cancel on not CancelRequested state.";
+ +
264  return "Error if you call @see Promise::fail on not Promised and not CancelRequested state.";
+ +
266  return "Error if you call @see Promise::fulfill on not Promised state.";
+ +
268  return "Error if you call @see Promise::future on not Empty state.";
+
269  default:
+
270  return "Unknown error";
+
271  }
+
272  }
+
273  };
+
274 }
+
State possible after Promised if promise&#39; method.
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+ +
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+ +
Some internal error.
+
T DataType
Alias for stored data type.
Definition: Future.h:77
+ +
FutureError
Enumeration of possible Future errors.
Definition: Future.h:54
+ +
Helper class to block copy operator&amp;constructor of its descendants.
Definition: Future.h:40
+
Definition: Result.h:9
+
T DataType
Alias for stored data type.
Definition: Future.h:159
+ +
ExecutionPolicy
Enum to tell some method how to behave.
Definition: Future.h:23
+
State indicating some internal error.
+
State right after future is created from promise.
+
Execute asynchronously.
+ + +
Execute synchronously.
+ + +
Lack of internal state: on promise creation and emptying Future.
+
Promise class to support asynchronous data retrieval Look into std::promise semantics to understand i...
Definition: Future.h:51
+
FuturePromiseState
Enumeration of possible future or promise states.
Definition: Future.h:29
+
State possible if during CancelRequested.
+
State possible if during Promised.
+
Invalid data is given as input to some method.
+
PromiseError
Enumeration of possible Promise errors.
Definition: Future.h:139
+
Future class to support asynchronous data retrieval Look into std::future semantics to understand it...
Definition: Future.h:69
+ +
int32_t USec
Alias for micro seconds type.
Definition: Future.h:73
+ +
Error if you try to.
+
+
+ + + + diff --git a/doc/fsdk/html/_human_8h_source.html b/doc/fsdk/html/_human_8h_source.html new file mode 100644 index 0000000..52c3fb9 --- /dev/null +++ b/doc/fsdk/html/_human_8h_source.html @@ -0,0 +1,151 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Human.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Human.h
+
+
+
1 #pragma once
+
2 
+
3 #include "fsdk/Optional.h"
+
4 #include <fsdk/Types/Detection.h>
+
5 #include "fsdk/Types/HumanLandmarks.h"
+
6 
+
7 
+
8 namespace fsdk {
+
9 
+
10  struct Human {
+
11  typedef float ElementType;
+
12 
+
13  fsdk::Image img;
+
14  fsdk::Detection detection;
+
15  Optional<fsdk::HumanLandmarks17> landmarks17;
+
16  bool isValid() const {
+
17  return detection.isValid() && img.isValid();
+
18  }
+
19 
+
20  explicit Human() = default;
+
21  };
+
22 }
+
bool isValid() const noexcept
Checks whether a detection is valid.
Definition: Detection.h:116
+
Definition: Human.h:10
+
Image.
Definition: Image.h:38
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
bool isValid() const noexcept
Definition: Image.h:757
+
+
+ + + + diff --git a/doc/fsdk/html/_human_landmarks_8h_source.html b/doc/fsdk/html/_human_landmarks_8h_source.html new file mode 100644 index 0000000..ec32624 --- /dev/null +++ b/doc/fsdk/html/_human_landmarks_8h_source.html @@ -0,0 +1,168 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/HumanLandmarks.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
HumanLandmarks.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/Types.h>
+
4 #include <fsdk/Optional.h>
+
5 
+
6 namespace fsdk {
+
10  struct HumanLandmark {
+
11  HumanLandmark() = default;
+
12  explicit HumanLandmark(float s, const fsdk::Point2f& p)
+
13  : score{ s }
+
14  , point{ p }
+
15  {}
+
17  float score{ 0.0f };
+
20  fsdk::Point2f point{ 0.0f, 0.0f };
+
22  bool visible = false;
+
23  };
+
24 
+
28  template<size_t numOfLandmarks = 17>
+
29  struct HumanLandmarks {
+
30  // element access
+
31  const HumanLandmark& operator [](int idx) const noexcept {
+
32  assert(idx < numOfLandmarks);
+
33  return landmarks[idx];
+
34  }
+
35 
+
36  HumanLandmark& operator [](int idx) noexcept {
+
37  assert(idx < numOfLandmarks);
+
38  return landmarks[idx];
+
39  }
+
40 
+
41  static constexpr size_t landmarksCount = numOfLandmarks;
+
42  // Detected landmarks.
+
43  HumanLandmark landmarks[landmarksCount];
+
44  };
+
45 
+ +
48 }
+
bool visible
true if the current point is visible and point member contains valid coordinates. ...
Definition: HumanLandmarks.h:22
+
Common data types and structures.
+
fsdk::Point2f point
Definition: HumanLandmarks.h:20
+
Human keypoints landmarks template structure.
Definition: HumanLandmarks.h:29
+
float score
Point score. Do not use it untill you really need it.
Definition: HumanLandmarks.h:17
+
Human keypoints landmark structure.
Definition: HumanLandmarks.h:10
+ +
+
+ + + + diff --git a/doc/fsdk/html/_i_a_g_s_estimator_8h_source.html b/doc/fsdk/html/_i_a_g_s_estimator_8h_source.html new file mode 100644 index 0000000..641f307 --- /dev/null +++ b/doc/fsdk/html/_i_a_g_s_estimator_8h_source.html @@ -0,0 +1,173 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/IAGSEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IAGSEstimator.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IObject.h>
+
4 #include <fsdk/FSDKError.h>
+
5 #include <fsdk/Optional.h>
+
6 #include <fsdk/Types.h>
+
7 
+
8 namespace fsdk {
+
9 
+
10 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+ +
12 #endif
+
13 
+ + +
28  FSDK_DEPRECATED("AGSEstimator is deprecated since v.5.0.1, use BestShotQualityEstimator instead")
+
29  estimate(
+
30  const Image& image,
+
31  const Detection& detection) const noexcept = 0;
+
32 
+
44  virtual Result<FSDKError>
+
45  FSDK_DEPRECATED("AGSEstimator is deprecated since v.5.0.1, use BestShotQualityEstimator instead")
+
46  estimate(
+
47  Span<const Image> images,
+
48  Span<const Detection> detections,
+
49  Span<float> out) const noexcept = 0;
+
50 
+
62  virtual Result<FSDKError>
+
63  FSDK_DEPRECATED("AGSEstimator is deprecated since v.5.0.1, use BestShotQualityEstimator instead")
+
64  validate(
+
65  Span<const Image> images,
+
66  Span<const Detection> detections,
+
67  Span<Result<FSDKError>> errors) const noexcept = 0;
+
68  };
+
69 
+
70 } // namespace fsdk
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
Object system types and interfaces.
+
Common SDK error codes.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
Image.
Definition: Image.h:38
+
Approximate Garbage Score estimator interface.
Definition: IAGSEstimator.h:18
+
virtual ResultValue< FSDKError, float > estimate(const Image &image, const Detection &detection) const noexcept=0
Estimate the ags.
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
+
+ + + + diff --git a/doc/fsdk/html/_i_async_context_8h.html b/doc/fsdk/html/_i_async_context_8h.html new file mode 100644 index 0000000..72929f8 --- /dev/null +++ b/doc/fsdk/html/_i_async_context_8h.html @@ -0,0 +1,153 @@ + + + + + + +Face Engine SDK: include/fsdk/IAsyncContext.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
IAsyncContext.h File Reference
+
+
+ +

Async context interface. +More...

+
#include <cstdint>
+#include "Def.h"
+#include "IRefCounted.h"
+#include "Types.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

struct  fsdk::IAsyncContext
 Interface for running tasks asynchronously. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+

Detailed Description

+

Async context interface.

+ +
Date
30.05.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_i_async_context_8h_source.html b/doc/fsdk/html/_i_async_context_8h_source.html new file mode 100644 index 0000000..d9460b3 --- /dev/null +++ b/doc/fsdk/html/_i_async_context_8h_source.html @@ -0,0 +1,163 @@ + + + + + + +Face Engine SDK: include/fsdk/IAsyncContext.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IAsyncContext.h
+
+
+Go to the documentation of this file.
1 #pragma once
+
2 
+
9 #include <cstdint>
+
10 #include "Def.h"
+
11 #include "IRefCounted.h"
+
12 #include "Types.h"
+
13 
+
14 namespace fsdk {
+
15 
+
16  #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
17  DECLARE_SMARTPTR(IAsyncContext);
+
18  #endif
+
19 
+ +
25  : IRefCounted {
+
30  virtual int8_t threads() const noexcept = 0;
+
31 
+
36  virtual bool valid() const noexcept = 0;
+
37 
+
42  virtual bool clearTaskQueue() noexcept = 0;
+
43 
+
49  virtual bool resize(const int8_t newThreadCount) noexcept = 0;
+
50 
+
56  virtual bool stop() noexcept = 0;
+
57  };
+
58 
+
59 }
+
60 
+
virtual bool stop() noexcept=0
Waits for all already running tasks to complete, then stops every thread. Do not use threadpool after...
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
Common data types and structures.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
Interface for running tasks asynchronously.
Definition: IAsyncContext.h:24
+
virtual int8_t threads() const noexcept=0
Returns size of underlying thread pool.
+
Common SDK definitions.
+
virtual bool resize(const int8_t newThreadCount) noexcept=0
Resizes internal thread pool to some new size param newThreadCount New size of thread pool...
+
virtual bool valid() const noexcept=0
Tells validness of internal state.
+
virtual bool clearTaskQueue() noexcept=0
Clears tasks not yet taken by any thread.
+
Reference counted object interface.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_best_shot_quality_estimator_8h_source.html b/doc/fsdk/html/_i_best_shot_quality_estimator_8h_source.html new file mode 100644 index 0000000..efc0fd9 --- /dev/null +++ b/doc/fsdk/html/_i_best_shot_quality_estimator_8h_source.html @@ -0,0 +1,215 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/IBestShotQualityEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IBestShotQualityEstimator.h
+
+
+
1 #pragma once
+
2 #include "IHeadPoseEstimator.h" // for HeadPoseEstimation
+
3 
+
4 #include <fsdk/IObject.h>
+
5 #include <fsdk/FSDKError.h>
+
6 #include <fsdk/Optional.h>
+
7 #include <fsdk/Types.h>
+
8 #include <fsdk/vlc/future.h>
+
9 #include <vector>
+
10 
+
11 namespace fsdk {
+
12 
+
13 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
14  DECLARE_SMARTPTR(IBestShotQualityEstimator);
+
15 #endif
+
16 
+
17 
+ + +
28  estimateAGS = 1 << 0,
+
29  estimateHeadPose = 1 << 1,
+
30  estimateAll = 0xffff
+
31  };
+
32 
+ +
37  Optional<HeadPoseEstimation> headPose;
+
38  Optional<float> ags;
+
39  };
+
40 
+ +
53  const Image& image,
+
54  const Detection& detection,
+
55  const EstimationRequest request,
+
56  EstimationResult& result) const noexcept = 0;
+
57 
+ +
72  Span<const Image> images,
+
73  Span<const Detection> detections,
+
74  const EstimationRequest request,
+
75  Span<EstimationResult> results) const noexcept = 0;
+
76 
+
80  using EstimationBatch = std::vector<EstimationResult>;
+
81  using EstimationBatchFuture = vlc::future<EstimationBatch>;
+
96  virtual EstimationBatchFuture estimateAsync(
+
97  Span<const Image> images,
+
98  Span<const Detection> detections,
+
99  const EstimationRequest request) const = 0;
+
100 
+
114  virtual Result<FSDKError>
+
115  validate(
+
116  Span<const Image> images,
+
117  Span<const Detection> detections,
+
118  const EstimationRequest request,
+
119  Span<Result<FSDKError>> errors) const noexcept = 0;
+
120  };
+
121 
+
122  /*
+
123  Implementation details.
+
124  */
+ +
126  operator|(
+ + +
129  ) {
+ +
131  static_cast<int>(first) | static_cast<int>(second)
+
132  );
+
133  }
+
134 
+
135 } // namespace fsdk
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
BestShotQuality estimator interface.
Definition: IBestShotQualityEstimator.h:22
+
EstimationRequest
EstimationRequest lists all possible estimation attributes that BestShotQuality estimator is able to ...
Definition: IBestShotQualityEstimator.h:27
+
Object system types and interfaces.
+
BestShotQualityEstimator output structure.
Definition: IBestShotQualityEstimator.h:36
+
virtual EstimationBatchFuture estimateAsync(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request) const =0
Asynchronously estimate unified AGS and HeadPose attributes of multiple frames in a single estimate f...
+
Common SDK error codes.
+
virtual Result< FSDKError > estimate(const Image &image, const Detection &detection, const EstimationRequest request, EstimationResult &result) const noexcept=0
Estimate unified AGS and HeadPose attributes.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
Make full estimation (all attributes)
Definition: IBestShotQualityEstimator.h:30
+
Estimate HeadPose.
Definition: IBestShotQualityEstimator.h:29
+
Image.
Definition: Image.h:38
+
Optional< float > ags
AGS estimation if was requested, empty otherwise.
Definition: IBestShotQualityEstimator.h:38
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
Estimate AGS.
Definition: IBestShotQualityEstimator.h:28
+
std::vector< EstimationResult > EstimationBatch
Common aliases for BestShotQuality asynchronous interface.
Definition: IBestShotQualityEstimator.h:80
+
Optional< HeadPoseEstimation > headPose
HeadPose estimation if was requested, empty otherwise.
Definition: IBestShotQualityEstimator.h:37
+
+
+ + + + diff --git a/doc/fsdk/html/_i_descriptor_8h.html b/doc/fsdk/html/_i_descriptor_8h.html new file mode 100644 index 0000000..69f4858 --- /dev/null +++ b/doc/fsdk/html/_i_descriptor_8h.html @@ -0,0 +1,189 @@ + + + + + + +Face Engine SDK: include/fsdk/IDescriptor.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
IDescriptor.h File Reference
+
+
+ +

Descriptor extractor and matcher interfaces. +More...

+
#include "IObject.h"
+#include "IDetector.h"
+#include "FSDKError.h"
+#include "Types.h"
+#include <limits>
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Classes

struct  fsdk::MatchingResult
 Result of descriptor matching. More...
 
struct  fsdk::IDescriptor
 Descriptor interface. More...
 
struct  fsdk::IDescriptorBatch
 Descriptor batch interface. More...
 
struct  fsdk::ErrorTraits< IDescriptorBatch::Error >
 Specialized for DescriptorBatchError. More...
 
struct  fsdk::IDescriptorExtractor
 Descriptor extractor interface. More...
 
struct  fsdk::IDescriptorMatcher
 Descriptor matcher interface. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+ + + + + + + + + + +

+Enumerations

enum  fsdk::DescriptorType { fsdk::DT_FACE, +fsdk::DT_HUMAN + }
 Descriptor type enum. Determines which type of descriptor to use. More...
 
enum  fsdk::DescriptorVersion : uint32_t { fsdk::DV_MIN_FACE_DESCRIPTOR_VERSION = 46, +fsdk::DV_MIN_HUMAN_DESCRIPTOR_VERSION = 102 + }
 Minimum descriptor model version. Determines which minimum version of descriptor to use. More...
 
enum  fsdk::HumanDescriptorVersion : uint32_t { fsdk::HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION = 102, +fsdk::HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION = 103, +fsdk::HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION = 104 + }
 Human descriptor model versions. Determines which version of human descriptor to use. More...
 
+

Detailed Description

+

Descriptor extractor and matcher interfaces.

+ +
Date
25.06.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_i_descriptor_8h.js b/doc/fsdk/html/_i_descriptor_8h.js new file mode 100644 index 0000000..c71ae9d --- /dev/null +++ b/doc/fsdk/html/_i_descriptor_8h.js @@ -0,0 +1,16 @@ +var _i_descriptor_8h = +[ + [ "DescriptorType", "_i_descriptor_8h.html#ga1cd2e0e27848b58fe8d39becd00d6186", [ + [ "DT_FACE", "_i_descriptor_8h.html#gga1cd2e0e27848b58fe8d39becd00d6186adfd064a1bc06eda4ce5ad8cbb32ceb05", null ], + [ "DT_HUMAN", "_i_descriptor_8h.html#gga1cd2e0e27848b58fe8d39becd00d6186a55aa0ee5f96f43689faa8dc86966340e", null ] + ] ], + [ "DescriptorVersion", "_i_descriptor_8h.html#gaa796beff9fb761301be4e46b1a2412ab", [ + [ "DV_MIN_FACE_DESCRIPTOR_VERSION", "_i_descriptor_8h.html#ggaa796beff9fb761301be4e46b1a2412aba1dfe29faa054d00d13d992fdfcffaef4", null ], + [ "DV_MIN_HUMAN_DESCRIPTOR_VERSION", "_i_descriptor_8h.html#ggaa796beff9fb761301be4e46b1a2412aba663094a3a39d591eca695b631243f71a", null ] + ] ], + [ "HumanDescriptorVersion", "_i_descriptor_8h.html#ga483d7359d800ae83b6fbda4dabdf086a", [ + [ "HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION", "_i_descriptor_8h.html#gga483d7359d800ae83b6fbda4dabdf086aab372ead6c8a3d98140e26c9b05603fbf", null ], + [ "HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION", "_i_descriptor_8h.html#gga483d7359d800ae83b6fbda4dabdf086aaccfd669d40850d6a873556ade7aa880e", null ], + [ "HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION", "_i_descriptor_8h.html#gga483d7359d800ae83b6fbda4dabdf086aa2f2c4b298d09076afaf1ce4b262b88f3", null ] + ] ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_i_descriptor_8h_source.html b/doc/fsdk/html/_i_descriptor_8h_source.html new file mode 100644 index 0000000..d67d3a1 --- /dev/null +++ b/doc/fsdk/html/_i_descriptor_8h_source.html @@ -0,0 +1,363 @@ + + + + + + +Face Engine SDK: include/fsdk/IDescriptor.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IDescriptor.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include "IObject.h"
+
11 #include "IDetector.h"
+
12 #include "FSDKError.h"
+
13 #include "Types.h"
+
14 #include <limits>
+
15 
+
16 namespace fsdk {
+
17 
+
18 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
19  DECLARE_SMARTPTR(IDescriptor);
+
20  DECLARE_SMARTPTR(IDescriptorBatch);
+
21  DECLARE_SMARTPTR(IDescriptorMatcher);
+
22  DECLARE_SMARTPTR(IDescriptorExtractor);
+
23 #endif
+
24 
+
34  struct MatchingResult {
+
35  float distance;
+
36  float similarity;
+
37 
+
41  MatchingResult(void) noexcept
+
42  : distance(std::numeric_limits<float>::infinity())
+
43  , similarity(0.f)
+
44  {}
+
45 
+ +
52  float distance,
+
53  float similarity) noexcept
+ + +
56  {}
+
57  };
+
58 
+ + + +
66  };
+
67 
+
72  enum DescriptorVersion : uint32_t {
+ + +
75  };
+
76 
+
81  enum HumanDescriptorVersion : uint32_t {
+ + + +
85  };
+
86 
+ +
96  virtual uint32_t getModelVersion() const noexcept = 0;
+
97 
+
103  virtual DescriptorType getDescriptorType() const noexcept = 0;
+
104 
+
110  virtual uint32_t getDescriptorLength() const noexcept = 0;
+
111 
+
119  virtual bool getDescriptor(uint8_t* buffer) const noexcept = 0;
+
120 
+
125  virtual void setDescriptor(const uint8_t* buffer) noexcept = 0;
+
126  };
+
127 
+ +
144  enum class Error : uint32_t {
+
145  Ok,
+
146  InvalidInput,
+
147  BatchFull,
+
148  Incompatible,
+
149  Internal,
+
150  IoError,
+
151  OutOfRange,
+
152  };
+
153 
+
161  virtual Result<Error> add(IDescriptor* descriptor) noexcept = 0;
+
162 
+
179  virtual Result<Error> add(IDescriptorBatch* batch, uint32_t offset = 0) noexcept = 0;
+
180 
+
196  virtual Result<Error> add(IDescriptorBatch* batch, uint32_t offset, uint32_t count) noexcept = 0;
+
197 
+
205  virtual Result<Error> removeFast(uint32_t index) noexcept = 0;
+
206 
+
214  virtual Result<Error> removeSlow(uint32_t index) noexcept = 0;
+
215 
+
224  virtual Result<MultiError<ISerializableObject::Error,Error>> loadAndAdd(IArchive* archive) = 0;
+
225 
+
230  virtual uint32_t getMaxCount() const noexcept = 0;
+
231 
+
236  virtual uint32_t getCount() const noexcept = 0;
+
237 
+
244  virtual uint32_t getModelVersion() const noexcept = 0;
+
245 
+
252  virtual DescriptorType getDescriptorType() const noexcept = 0;
+
253 
+
258  virtual uint32_t getDescriptorLength() const noexcept = 0;
+
259 
+
266  virtual ResultValue<FSDKError, IDescriptorPtr> getDescriptorSlow(uint32_t index) const noexcept = 0;
+
267 
+
275  virtual ResultValue<FSDKError, IDescriptorPtr> getDescriptorFast(uint32_t index) noexcept = 0;
+
276  };
+
277 
+
281  template<>
+
282  struct ErrorTraits<IDescriptorBatch::Error> {
+
283  static bool isOk(IDescriptorBatch::Error error) noexcept {
+
284  return error == IDescriptorBatch::Error::Ok;
+
285  }
+
286 
+
287  static const char* toString (IDescriptorBatch::Error error) noexcept {
+
288  switch(error) {
+
289  case IDescriptorBatch::Error::Ok: return "Ok";
+
290  case IDescriptorBatch::Error::IoError: return "Error during reading/writing";
+
291  case IDescriptorBatch::Error::Internal: return "Internal error";
+
292  case IDescriptorBatch::Error::BatchFull: return "Batch is full";
+
293  case IDescriptorBatch::Error::OutOfRange: return "Descriptor out of range";
+
294  case IDescriptorBatch::Error::Incompatible: return "Incompatible descriptor";
+
295  case IDescriptorBatch::Error::InvalidInput: return "Invalid input";
+
296  default: return "Unknown error";
+
297  }
+
298  }
+
299  };
+
300 
+ + +
319  extractFromWarpedImage(
+
320  const Image& warp,
+
321  IDescriptor* descriptor) const noexcept = 0;
+
322 
+ +
341  extractFromWarpedImageBatch(
+
342  Span<const Image> warps,
+
343  IDescriptorBatch* descriptorBatch,
+
344  IDescriptor* aggregation,
+
345  Span<float> garbageScoreBatch) const noexcept = 0;
+
346 
+
362  virtual Result<FSDKError>
+
363  extractFromWarpedImageBatch(
+
364  Span<const Image> warps,
+
365  IDescriptorBatch* descriptorBatch,
+
366  Span<float> garbageScoreBatch) const noexcept = 0;
+
367 
+
378  virtual Result<FSDKError>
+
379  validate(
+
380  Span<const Image> warps,
+
381  Span<Result<FSDKError>> errors) const noexcept = 0;
+
382 
+
387  virtual uint32_t getModelVersion() const noexcept = 0;
+
388 
+
393  virtual DescriptorType getDescriptorType() const noexcept = 0;
+
394 
+
398  using FutureResult = vlc::future<float>;
+
399 
+
418  virtual FutureResult extractFromWarpedImageBatchAsync(
+
419  Span<const Image> warps,
+
420  IDescriptorBatch* descriptorBatch,
+
421  IDescriptor* aggregation,
+
422  Span<float> garbageScoreBatch) const = 0;
+
423  };
+
424 
+ +
446  virtual ResultValue<
+
447  FSDKError,
+ +
449  match(
+
450  const IDescriptor* first,
+
451  const IDescriptor* second) noexcept = 0;
+
452 
+
466  virtual Result<FSDKError>
+
467  match(
+
468  const IDescriptor* reference,
+
469  const IDescriptorBatch* candidates,
+
470  Span<MatchingResult> results) noexcept = 0;
+
471 
+
476  virtual uint32_t getModelVersion() const noexcept = 0;
+
477 
+
487  virtual Result<FSDKError> calcSimilarity(Span<MatchingResult> distances) const noexcept = 0;
+
488 
+
498  virtual Result<FSDKError> calcDistance(Span<MatchingResult> similarities) const noexcept = 0;
+
499  };
+
501 }
+
virtual uint32_t getModelVersion() const noexcept=0
Get algorithm model version this descriptor was created with.
+
DescriptorVersion
Minimum descriptor model version. Determines which minimum version of descriptor to use...
Definition: IDescriptor.h:72
+
virtual bool getDescriptor(uint8_t *buffer) const noexcept=0
Copy descriptor data to user provided buffer.
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
An internal processing error (Ex: memopry allocation or misalignment).
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+ +
An error structure designed for functions which can return errors from different enum classes...
Definition: MultiError.h:17
+
Error
Descriptor batch error enumeration.
Definition: IDescriptor.h:144
+
virtual ResultValue< FSDKError, IDescriptorPtr > getDescriptorFast(uint32_t index) noexcept=0
Get descriptor from batch by index without copying.
+
precise human descriptor, heavy and slow.
Definition: IDescriptor.h:83
+
HumanDescriptorVersion
Human descriptor model versions. Determines which version of human descriptor to use.
Definition: IDescriptor.h:81
+
Descriptor batch interface.
Definition: IDescriptor.h:139
+
Object system types and interfaces.
+
virtual Result< MultiError< ISerializableObject::Error, Error > > loadAndAdd(IArchive *archive)=0
Load a descriptor/descriptors from archive and add it to the batch.
+
virtual uint32_t getDescriptorLength() const noexcept=0
return size of descriptor in bytes.
+
Common SDK error codes.
+
Serializable object interface.
Definition: IObject.h:68
+
virtual Result< Error > add(IDescriptor *descriptor) noexcept=0
Add a descriptor to the batch.
+
Definition: Result.h:9
+
Trying to add an incompatible descriptor.
+
human descriptor for tracking of people, light and fast version.
Definition: IDescriptor.h:82
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual Result< Error > removeFast(uint32_t index) noexcept=0
Remove a descriptor from batch.
+
virtual uint32_t getMaxCount() const noexcept=0
Get maximum number of descriptors in this batch.
+
Descriptor matcher interface.
Definition: IDescriptor.h:438
+
virtual void setDescriptor(const uint8_t *buffer) noexcept=0
Copy descriptor from user providedbuffer.
+
human descriptor.
Definition: IDescriptor.h:65
+
virtual DescriptorType getDescriptorType() const noexcept=0
Get type of descriptor.
+
Error while accessing descriptor out of range.
+
float similarity
similarity (normalized in [0..1] range).
Definition: IDescriptor.h:36
+
virtual ResultValue< FSDKError, IDescriptorPtr > getDescriptorSlow(uint32_t index) const noexcept=0
Get descriptor from batch by index with copying.
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
Face detector interfaces.
+
virtual uint32_t getModelVersion() const noexcept=0
Get algorithm model version the descriptors in this batch were created with.
+
virtual uint32_t getDescriptorLength() const noexcept=0
Get length of one descriptor. Specified by version of descriptors in batch.
+
virtual uint32_t getCount() const noexcept=0
Get actual number of descriptors in this batch.
+
Descriptor extractor interface.
Definition: IDescriptor.h:305
+
MatchingResult(void) noexcept
Initializes result to default values.
Definition: IDescriptor.h:41
+
virtual Result< Error > removeSlow(uint32_t index) noexcept=0
Remove a descriptor from batch.
+
Image.
Definition: Image.h:38
+
Result of descriptor matching.
Definition: IDescriptor.h:34
+
Descriptor interface.
Definition: IDescriptor.h:91
+
Data storage object interface helper.
Definition: IObject.h:157
+
face descriptor.
Definition: IDescriptor.h:73
+
regular human descriptor.
Definition: IDescriptor.h:84
+ +
Error while trying open/read/write file.
+
Archive interface.
Definition: IObject.h:37
+
FSDKError
Common SDK error codes.
Definition: FSDKError.h:17
+
human descriptor.
Definition: IDescriptor.h:74
+
float distance
distance between descriptor vectors.
Definition: IDescriptor.h:35
+
DescriptorType
Descriptor type enum. Determines which type of descriptor to use.
Definition: IDescriptor.h:63
+
Invalid input (Ex: null pointer while a valid object is expected).
+
MatchingResult(float distance, float similarity) noexcept
Initializes result.
Definition: IDescriptor.h:51
+
vlc::future< float > FutureResult
Common aliases for BestShotQuality asynchronous interface.
Definition: IDescriptor.h:398
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
face descriptor.
Definition: IDescriptor.h:64
+
virtual DescriptorType getDescriptorType() const noexcept=0
Get type of descriptor.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_detector_8h.html b/doc/fsdk/html/_i_detector_8h.html new file mode 100644 index 0000000..1dd50ea --- /dev/null +++ b/doc/fsdk/html/_i_detector_8h.html @@ -0,0 +1,207 @@ + + + + + + +Face Engine SDK: include/fsdk/IDetector.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
IDetector.h File Reference
+
+
+ +

Face detector interfaces. +More...

+
#include "FSDKError.h"
+#include "IFaceDetectionBatch.h"
+#include "IObject.h"
+#include "Types.h"
+#include "Types/Face.h"
+#include <fsdk/vlc/future.h>
+#include <functional>
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Classes

class  fsdk::IDetectionComparer
 Interface of BestDetection comparer. Implement it if you want to use own BestDetection strategy. More...
 
class  fsdk::FunctionDetectionComparer
 Syntax sugar, allows you to use lambdas to define a BestDetection comparer. More...
 
struct  fsdk::IDetector
 face detector interface. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+ + + + + + + + + + + + + +

+Enumerations

enum  fsdk::SensorType { fsdk::SensorType::Visible = 0, +fsdk::SensorType::NIR + }
 Sensor type structure. Determines which type of camera sensor is used to perform face recognition. More...
 
enum  fsdk::ObjectDetectorClassType {
+  fsdk::FACE_DET_DEFAULT = 0, +fsdk::FACE_DET_V1 = 4, +fsdk::FACE_DET_V2 = 5, +fsdk::FACE_DET_V3 = 6, +
+  fsdk::FACE_DET_COUNT = 7 +
+ }
 Object detector type enumeration. More...
 
enum  fsdk::DetectionComparerType {
+  fsdk::DCT_CONFIDENCE = 0, +fsdk::DCT_CENTER, +fsdk::DCT_CENTER_AND_CONFIDENCE, +fsdk::DCT_SIZE, +
+  DCT_COUNT +
+ }
 Strategy of BestDetections comparer. More...
 
enum  fsdk::DetectionType { fsdk::DT_BBOX = 0, +fsdk::DT_LANDMARKS5 = 1<<0, +fsdk::DT_LANDMARKS68 = 1<<1, +fsdk::DT_ALL = 0xffff + }
 Detection type enumeration. More...
 
+ + + +

+Functions

+DetectionType fsdk::operator| (DetectionType a, DetectionType b)
 
+

Detailed Description

+

Face detector interfaces.

+ +
Date
16.02.2017
+
+
+ + + + diff --git a/doc/fsdk/html/_i_detector_8h.js b/doc/fsdk/html/_i_detector_8h.js new file mode 100644 index 0000000..9c7c8fb --- /dev/null +++ b/doc/fsdk/html/_i_detector_8h.js @@ -0,0 +1,28 @@ +var _i_detector_8h = +[ + [ "DetectionComparerType", "_i_detector_8h.html#ga7d021e05a5d867ffe947ffb40aa0923d", [ + [ "DCT_CONFIDENCE", "_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923da8767054041a6b3288648b7a403ca7b17", null ], + [ "DCT_CENTER", "_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923da763dab49108298d2d502a9749e2628e9", null ], + [ "DCT_CENTER_AND_CONFIDENCE", "_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923da113aa401fd3bbad089894a3cf8fd06b6", null ], + [ "DCT_SIZE", "_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923dab87d650f70c0d623b1419a50c24ce590", null ], + [ "DCT_COUNT", "_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923dad3309aec6ae701eefdb1dace4b2113f3", null ] + ] ], + [ "DetectionType", "_i_detector_8h.html#ga29cb345293d30553e7af41260cede7ad", [ + [ "DT_BBOX", "_i_detector_8h.html#gga29cb345293d30553e7af41260cede7adafc1e9f167d5d1be9899f6732bc6f2110", null ], + [ "DT_LANDMARKS5", "_i_detector_8h.html#gga29cb345293d30553e7af41260cede7ada3a1cef8a2d392799c66fe948b3cee9f4", null ], + [ "DT_LANDMARKS68", "_i_detector_8h.html#gga29cb345293d30553e7af41260cede7ada508e9b2f679d5758e9bf979610dbb1c5", null ], + [ "DT_ALL", "_i_detector_8h.html#gga29cb345293d30553e7af41260cede7ada1be6a902d3612661d3200257c69323fa", null ] + ] ], + [ "ObjectDetectorClassType", "_i_detector_8h.html#gab83a85f36a0025dac2b8b6d41b88bd8c", [ + [ "FACE_DET_DEFAULT", "_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca908b2d58b338d34863dc56d21474ffc3", null ], + [ "FACE_DET_V1", "_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca76b25822675d9312e8decb221ca609ec", null ], + [ "FACE_DET_V2", "_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8caed0da3a5db3f97c5eb927a1696de2d65", null ], + [ "FACE_DET_V3", "_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8cafd6028fd9b68847f58ab7a089cedd57d", null ], + [ "FACE_DET_COUNT", "_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca53e96ce2b5c1880ce5588a4b099eb24b", null ] + ] ], + [ "SensorType", "_i_detector_8h.html#a2cd10d6257c328c01b7d7296938881f8", [ + [ "Visible", "_i_detector_8h.html#a2cd10d6257c328c01b7d7296938881f8aec24d78ce33048dc73a2b6b1a0690192", null ], + [ "NIR", "_i_detector_8h.html#a2cd10d6257c328c01b7d7296938881f8aac46d1e7cde34e4a9b473eb8a9d8c443", null ] + ] ], + [ "operator|", "_i_detector_8h.html#ga57a8fbc0f75d0b8bf26b2d037c14b5ba", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_i_detector_8h_source.html b/doc/fsdk/html/_i_detector_8h_source.html new file mode 100644 index 0000000..708a19e --- /dev/null +++ b/doc/fsdk/html/_i_detector_8h_source.html @@ -0,0 +1,308 @@ + + + + + + +Face Engine SDK: include/fsdk/IDetector.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IDetector.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include "FSDKError.h"
+
11 #include "IFaceDetectionBatch.h"
+
12 #include "IObject.h"
+
13 #include "Types.h"
+
14 #include "Types/Face.h"
+
15 
+
16 #include <fsdk/vlc/future.h>
+
17 
+
18 #include <functional>
+
19 
+
20 namespace fsdk {
+
21 
+
22 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
23  DECLARE_SMARTPTR(IDetector);
+
24 #endif
+
25 
+
30  enum class SensorType {
+
31  Visible = 0,
+
32  NIR
+
33  };
+
34 
+ + + + + + +
50  };
+
51 
+ + + + + +
60  DCT_COUNT
+
61  };
+
62 
+ +
67  DT_BBOX = 0,
+
68  DT_LANDMARKS5 = 1<<0,
+
69  DT_LANDMARKS68 = 1<<1,
+
70  DT_ALL = 0xffff
+
71  };
+
72 
+
73  inline DetectionType operator | (DetectionType a, DetectionType b)
+
74  { return static_cast<DetectionType>(static_cast<int>(a) | static_cast<int>(b)); }
+
75 
+ +
80  public:
+
81  virtual bool compare(const Image& img, const Detection& a, const Detection& b) const = 0;
+
82  virtual ~IDetectionComparer() = default;
+
83  };
+
84 
+ +
89  public:
+
90  typedef std::function<bool(const Image& img, const Detection&, const Detection&)> Function;
+
91  explicit FunctionDetectionComparer(const Function& function) : func(function)
+
92  {}
+
93  bool compare(const Image& img, const Detection& a, const Detection& b) const
+
94  { return func(img, a, b); }
+
95  private:
+
96  Function func;
+
97  };
+
98 
+ + +
116  detect(
+
117  Span<const Image> images,
+
118  Span<const Rect> ROIs,
+
119  uint32_t perImageNum,
+
120  DetectionType type = DT_BBOX
+
121  ) noexcept = 0;
+
122 
+ +
133  detectOne(
+
134  const Image& image,
+
135  const Rect& rect,
+
136  DetectionType type = DT_BBOX) noexcept = 0;
+
137 
+ +
155  redetect(
+
156  Span<const Image> images,
+
157  Ref<IFaceDetectionBatch> detectionBatch,
+
158  DetectionType type = DT_BBOX
+
159  ) noexcept = 0;
+
160 
+ +
177  redetect(
+
178  Span<const Image> images,
+
179  Span<Span<const Detection>> detections,
+
180  DetectionType type = DT_BBOX
+
181  ) noexcept = 0;
+
182 
+ +
193  redetectOne(
+
194  const Image& image,
+
195  const Detection& detection,
+
196  DetectionType type = DT_BBOX) noexcept = 0;
+
197 
+
203  virtual void setDetectionComparer(DetectionComparerType comparerType) noexcept = 0;
+
204 
+
211  virtual void setCustomDetectionComparer(const IDetectionComparer* comparer) noexcept = 0;
+
212 
+
226  virtual Result<FSDKError>
+
227  validate(
+
228  Span<const Image> images,
+
229  Span<Span<const Detection>> detections,
+
230  Span<Span<Result<FSDKError>>> errors) const noexcept = 0;
+
231 
+
244  virtual Result<FSDKError>
+
245  validate(
+
246  Span<const Image> images,
+
247  Span<const Rect> rects,
+
248  uint32_t detectionPerImageNum,
+
249  Span<Result<FSDKError>> outErrors) const noexcept = 0;
+
250 
+
263  virtual Result<FSDKError>
+
264  validate(
+
265  Span<const Image> images,
+
266  Ref<IFaceDetectionBatch> detectionBatch,
+
267  Span<Result<FSDKError>> outErrors) const noexcept = 0;
+
268 
+ +
273  using FaceBatchFuture = vlc::future<IFaceDetectionBatchPtr>;
+
274 
+
290  virtual FaceBatchFuture detectAsync(
+
291  Span<const Image> images,
+
292  Span<const Rect> rectangles,
+
293  uint32_t perImageNum,
+
294  DetectionType type = DT_BBOX) const = 0;
+
295 
+
315  virtual FaceBatchFuture redetectAsync(
+
316  Span<const Image> images,
+
317  IFaceDetectionBatchPtr detectionBatch,
+
318  DetectionType type = DT_BBOX) const = 0;
+
319  };
+
320 
+
323 }
+
virtual ResultValue< FSDKError, Ref< IFaceDetectionBatch > > redetect(Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, DetectionType type=DT_BBOX) noexcept=0
Batched redetect faces on multiple images. based on the detection results for the previous frames...
+
virtual Result< FSDKError > validate(Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
Syntax sugar, allows you to use lambdas to define a BestDetection comparer.
Definition: IDetector.h:88
+
Detector type 2.
Definition: IDetector.h:47
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
BestDetection - most centered detection.
Definition: IDetector.h:57
+
Default detector cpecified in config file.
Definition: IDetector.h:45
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
virtual void setCustomDetectionComparer(const IDetectionComparer *comparer) noexcept=0
Set custom detection comparer object.
+
Detector type 3.
Definition: IDetector.h:48
+
Smart pointer for reference counted objects.
Definition: Ref.h:26
+
Object system types and interfaces.
+
Get bounding boxes of faces.
Definition: IDetector.h:67
+
Common SDK error codes.
+
DetectionComparerType
Strategy of BestDetections comparer.
Definition: IDetector.h:55
+
NIR sensor type.
+
Detector type count.
Definition: IDetector.h:49
+
virtual ResultValue< FSDKError, Face > detectOne(const Image &image, const Rect &rect, DetectionType type=DT_BBOX) noexcept=0
Light function to get just one best detection from single input image.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
face detector interface.
Definition: IDetector.h:102
+
virtual ResultValue< FSDKError, Ref< IFaceDetectionBatch > > detect(Span< const Image > images, Span< const Rect > ROIs, uint32_t perImageNum, DetectionType type=DT_BBOX) noexcept=0
Detect faces and their parameters on multiple images.
+
Detector type 1.
Definition: IDetector.h:46
+
bestDetection - the largest detection.
Definition: IDetector.h:59
+
SensorType
Sensor type structure. Determines which type of camera sensor is used to perform face recognition...
Definition: IDetector.h:30
+
virtual FaceBatchFuture redetectAsync(Span< const Image > images, IFaceDetectionBatchPtr detectionBatch, DetectionType type=DT_BBOX) const =0
Asynchronously redetect faces on multiple images. based on the detection results for the previous fra...
+
Get all supported parameters.
Definition: IDetector.h:70
+
BestDetection - detections with highest score.
Definition: IDetector.h:56
+
Interface of BestDetection comparer. Implement it if you want to use own BestDetection strategy...
Definition: IDetector.h:79
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
Visible sensor type.
+
Image.
Definition: Image.h:38
+
virtual void setDetectionComparer(DetectionComparerType comparerType) noexcept=0
Set detection comparer from SDK defined list.
+
virtual ResultValue< FSDKError, Face > redetectOne(const Image &image, const Detection &detection, DetectionType type=DT_BBOX) noexcept=0
Redetect face.
+
ObjectDetectorClassType
Object detector type enumeration.
Definition: IDetector.h:44
+
DetectionType
Detection type enumeration.
Definition: IDetector.h:66
+ +
Get bounding boxes and 5 facial landmarks.
Definition: IDetector.h:68
+
Get bounding boxes and 68 facial landmarks.
Definition: IDetector.h:69
+
virtual FaceBatchFuture detectAsync(Span< const Image > images, Span< const Rect > rectangles, uint32_t perImageNum, DetectionType type=DT_BBOX) const =0
Asynchronously detect faces and their parameters on multiple images.
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
bestDetection - most centered with high score.
Definition: IDetector.h:58
+
+
+ + + + diff --git a/doc/fsdk/html/_i_eye_estimator_8h_source.html b/doc/fsdk/html/_i_eye_estimator_8h_source.html new file mode 100644 index 0000000..4c5acd4 --- /dev/null +++ b/doc/fsdk/html/_i_eye_estimator_8h_source.html @@ -0,0 +1,233 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/IEyeEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IEyeEstimator.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IObject.h>
+
4 #include <fsdk/FSDKError.h>
+
5 #include <fsdk/Optional.h>
+
6 #include <fsdk/Types.h>
+
7 
+
8 namespace fsdk {
+
9 
+
10 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
11  DECLARE_SMARTPTR(IEyeEstimator);
+
12 #endif
+
13 
+
18  struct EyesEstimation {
+
22  struct EyeAttributes {
+
26  enum class State : uint8_t {
+
27  Closed,
+
28  Open,
+
29  Occluded
+
30  };
+
31 
+
32  static constexpr uint64_t irisLandmarksCount = 32;
+
33  static constexpr uint64_t eyelidLandmarksCount = 6;
+
34 
+ +
37 
+ +
40 
+ +
42 
+ + +
45  };
+
46 
+ + +
49  };
+
50 
+
51 
+ +
57  struct EyesRects {
+
58  Rect leftEyeRect;
+
59  Rect rightEyeRect;
+
60  };
+
61 
+
62  EyesRects
+
63  cropByLandmarks5(
+
64  const Image& warp,
+
65  const Landmarks5& landmarks5
+
66  );
+
67 
+ +
69  cropByLandmarks68(
+
70  const Image& warp,
+
71  const Landmarks68& landmarks68
+
72  );
+
73  };
+
74 
+
75 
+ +
100  virtual Result<FSDKError>
+
101  estimate(
+
102  const Image& warp,
+
103  const EyeCropper::EyesRects& eyeRects,
+
104  EyesEstimation& eyesEstimation) const noexcept = 0;
+
105 
+
120  virtual Result<FSDKError>
+
121  estimate(
+
122  Span<const Image> warps,
+ +
124  Span<EyesEstimation> eyesEstimations) const noexcept = 0;
+
125 
+
137  virtual Result<FSDKError>
+
138  validate(
+
139  Span<const Image> warps,
+ +
141  Span<Result<FSDKError>> errors) const noexcept = 0;
+
142  };
+
143 
+
144 } // namespace fsdk
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+ + +
Object system types and interfaces.
+
EyeAttributes leftEye
Left eye attributes.
Definition: IEyeEstimator.h:47
+
Common SDK error codes.
+
Eyes estimation output.
Definition: IEyeEstimator.h:18
+
Definition: IEyeEstimator.h:57
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
State
Enumeration of possible eye states.
Definition: IEyeEstimator.h:26
+
Eyes attribute structure.
Definition: IEyeEstimator.h:22
+
static constexpr uint64_t irisLandmarksCount
Iris landmarks amount.
Definition: IEyeEstimator.h:32
+
Eye estimator interface.
Definition: IEyeEstimator.h:85
+
Image.
Definition: Image.h:38
+
EyelidLandmarks eyelid
Eyelid landmarks.
Definition: IEyeEstimator.h:44
+
Eye is blocked by something not transparent, or landmark passed to estimator doesn&#39;t point to an eye...
+ +
EyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input ...
Definition: IEyeEstimator.h:56
+
IrisLandmarks iris
Iris landmarks.
Definition: IEyeEstimator.h:43
+ +
State state
State of an eye.
Definition: IEyeEstimator.h:41
+
virtual Result< FSDKError > validate(Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
EyeAttributes rightEye
Right eye attributes.
Definition: IEyeEstimator.h:48
+
static constexpr uint64_t eyelidLandmarksCount
Eyelid landmarks amount.
Definition: IEyeEstimator.h:33
+
virtual Result< FSDKError > estimate(const Image &warp, const EyeCropper::EyesRects &eyeRects, EyesEstimation &eyesEstimation) const noexcept=0
Estimate the attributes.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_face_detection_batch_8h_source.html b/doc/fsdk/html/_i_face_detection_batch_8h_source.html new file mode 100644 index 0000000..cd44078 --- /dev/null +++ b/doc/fsdk/html/_i_face_detection_batch_8h_source.html @@ -0,0 +1,169 @@ + + + + + + +Face Engine SDK: include/fsdk/IFaceDetectionBatch.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IFaceDetectionBatch.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IRefCounted.h>
+
4 #include <fsdk/Types/Detection.h>
+
5 #include <fsdk/Types/Face.h>
+
6 #include <fsdk/Types/Image.h>
+
7 #include <fsdk/Types/Landmarks.h>
+
8 #include <fsdk/Types/Ref.h>
+
9 #include <fsdk/Types/Span.h>
+
10 
+
11 #include <cstddef>
+
12 
+
13 namespace fsdk {
+
14 
+
15 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
16  DECLARE_SMARTPTR(IFaceDetectionBatch);
+
17 #endif
+
18 
+
22  struct IFaceDetectionBatch : public IRefCounted {
+
27  virtual size_t getSize() const noexcept = 0;
+
28 
+
34  virtual size_t getSize(size_t imageIndex) const noexcept = 0;
+
35 
+
47  virtual Face getFace(const Image& img, size_t imageIndex, size_t detectionIndex) const noexcept = 0;
+
48 
+
59  virtual Span<const Detection> getDetections(size_t index = 0) const noexcept = 0;
+
60 
+
71  virtual Span<const Landmarks5> getLandmarks5(size_t index = 0) const noexcept = 0;
+
72 
+
83  virtual Span<const Landmarks68> getLandmarks68(size_t index = 0) const noexcept = 0;
+
84  };
+
85 
+
86 }
+
virtual size_t getSize() const noexcept=0
Returns size.
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
virtual Span< const Landmarks5 > getLandmarks5(size_t index=0) const noexcept=0
Returns Landmarks5 Span.
+
virtual Span< const Landmarks68 > getLandmarks68(size_t index=0) const noexcept=0
Returns Landmarks68 Span.
+
Definition: Face.h:10
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual Face getFace(const Image &img, size_t imageIndex, size_t detectionIndex) const noexcept=0
Returns detected face.
+
Image.
Definition: Image.h:38
+
virtual Span< const Detection > getDetections(size_t index=0) const noexcept=0
Returns detection Span.
+
Face detection result batch interface.
Definition: IFaceDetectionBatch.h:22
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
Reference counted object interface.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_face_engine_mobile_8h_source.html b/doc/fsdk/html/_i_face_engine_mobile_8h_source.html new file mode 100644 index 0000000..dde2f60 --- /dev/null +++ b/doc/fsdk/html/_i_face_engine_mobile_8h_source.html @@ -0,0 +1,255 @@ + + + + + + +Face Engine SDK: include/fsdk/IFaceEngineMobile.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IFaceEngineMobile.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/Log.h>
+
4 #include <fsdk/Def.h>
+
5 #include <fsdk/IObject.h>
+
6 #include <fsdk/ILicense.h>
+
7 #include <fsdk/IDetector.h>
+
8 #include <fsdk/IDescriptor.h>
+ +
10 #include <fsdk/IWarper.h>
+
11 
+
12 #include <fsdk/Estimators/IAGSEstimator.h>
+
13 #include <fsdk/Estimators/IHeadPoseEstimator.h>
+
14 #include <fsdk/Estimators/IEyeEstimator.h>
+
15 #include <fsdk/Estimators/IGlassesEstimator.h>
+
16 #include <fsdk/Estimators/IBestShotQualityEstimator.h>
+
17 #include <fsdk/Estimators/ILivenessOneShotRGBEstimator.h>
+
18 #include <fsdk/Estimators/IMedicalMaskEstimator.h>
+
19 #include <fsdk/Estimators/IQualityEstimator.h>
+
20 
+
21 #include <fsdk/Types/FaceEngineEdition.h>
+
22 
+
43 namespace fsdk {
+
45 
+
46 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
47  DECLARE_SMARTPTR(IFaceEngineMobile);
+
48 #endif
+
49 
+ +
60 
+ +
66 
+ +
72 
+ +
78 
+ +
84 
+ +
91 
+ +
98 
+ +
105 
+ +
111 
+ +
117 
+
126  virtual ResultValue<FSDKError, IDescriptorPtr> createDescriptor(uint32_t version = 0) noexcept = 0;
+
127 
+
134  virtual ResultValue<FSDKError, IDescriptorPtr> createDescriptor(IArchive* archive, uint32_t flags = 0) noexcept = 0;
+
135 
+
145  virtual ResultValue<FSDKError, IDescriptorBatchPtr> createDescriptorBatch(int32_t size, uint32_t version = 0) noexcept = 0;
+
146 
+
155  virtual ResultValue<FSDKError, IDescriptorExtractorPtr> createExtractor(uint32_t version = 0) noexcept = 0;
+
156 
+
165  virtual ResultValue<FSDKError, IDescriptorMatcherPtr> createMatcher(uint32_t version = 0) noexcept = 0;
+
166 
+
171  virtual ResultValue<FSDKError, IWarperPtr> createWarper() noexcept = 0;
+
172 
+
180  virtual FaceEngineEdition getFaceEngineEdition() const noexcept = 0;
+
181 
+
186  virtual void setDataDirectory(const char* path) noexcept = 0;
+
187 
+
193  virtual const char* getDataDirectory() const noexcept = 0;
+
194 
+
199  virtual void setSettingsProvider(ISettingsProvider* provider) noexcept = 0;
+
200 
+
205  virtual void setRuntimeSettingsProvider(ISettingsProvider* provider) noexcept = 0;
+
206 
+
211  virtual ISettingsProvider* getSettingsProvider() const noexcept = 0;
+
212 
+
217  virtual ISettingsProvider* getRuntimeSettingsProvider() const noexcept = 0;
+
218 
+
223  virtual ILicense* getLicense() const noexcept = 0;
+
224  };
+
225 
+
232  FSDK_API Result<FSDKError> activateLicense(ILicense* license, const char* configPath) noexcept;
+
233 
+ +
241 
+ +
250  const char* dataPath = nullptr,
+
251  const char* configPath = nullptr,
+
252  const char* runtimePath = nullptr) noexcept;
+
253 
+
259  FSDK_API ResultValue<FSDKError, ISettingsProviderPtr> createSettingsProvider(const char* path) noexcept;
+
260 
+
261 } // namespace fsdk
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
Image and landmarks warping.
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
virtual void setRuntimeSettingsProvider(ISettingsProvider *provider) noexcept=0
Sets runtime settings provider.
+
virtual ResultValue< FSDKError, IDescriptorExtractorPtr > createExtractor(uint32_t version=0) noexcept=0
Creates descriptor extractor.
+
virtual ResultValue< FSDKError, ILivenessOneShotRGBEstimatorPtr > createLivenessOneShotRGBEstimator() noexcept=0
Creates Liveness OneShot estimator.
+
FSDK_API Result< FSDKError > activateLicense(ILicense *license, const char *configPath) noexcept
Makes License activation with some platform specific manner. Network connection is required...
+
Object system types and interfaces.
+
License objects interface.
Definition: ILicense.h:38
+
virtual ResultValue< FSDKError, IBestShotQualityEstimatorPtr > createBestShotQualityEstimator() noexcept=0
Creates BestShotQuality estimator.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual ResultValue< FSDKError, IHeadPoseEstimatorPtr > createHeadPoseEstimator() noexcept=0
Creates Head pose estimator.
+
Log interfaces.
+
virtual ResultValue< FSDKError, IAGSEstimatorPtr > createAGSEstimator() noexcept=0
Creates AGS estimator.
+
virtual ISettingsProvider * getRuntimeSettingsProvider() const noexcept=0
Gets runtime settings provider.
+
virtual const char * getDataDirectory() const noexcept=0
Gets data directory.
+
Root LUNA SDK object interface.
Definition: IFaceEngineMobile.h:59
+
Descriptor extractor and matcher interfaces.
+
Common SDK definitions.
+
virtual ResultValue< FSDKError, IQualityEstimatorPtr > createQualityEstimator() noexcept=0
Creates Quality estimator.
+
virtual void setDataDirectory(const char *path) noexcept=0
Sets data directory.
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
Face detector interfaces.
+
virtual ResultValue< FSDKError, IDescriptorBatchPtr > createDescriptorBatch(int32_t size, uint32_t version=0) noexcept=0
Creates Batch of descriptors.
+
virtual ResultValue< FSDKError, IDetectorPtr > createDetector() noexcept=0
Creates a detector of given type.
+
virtual ResultValue< FSDKError, IDescriptorMatcherPtr > createMatcher(uint32_t version=0) noexcept=0
Creates descriptor matcher.
+
virtual void setSettingsProvider(ISettingsProvider *provider) noexcept=0
Sets settings provider.
+
Archive interface.
Definition: IObject.h:37
+
virtual ResultValue< FSDKError, IEyeEstimatorPtr > createEyeEstimator() noexcept=0
Creates Eye estimator.
+
FSDKError
Common SDK error codes.
Definition: FSDKError.h:17
+
virtual ResultValue< FSDKError, IGlassesEstimatorPtr > createGlassesEstimator() noexcept=0
Creates Glasses estimator.
+
virtual ResultValue< FSDKError, IMedicalMaskEstimatorPtr > createMedicalMaskEstimator() noexcept=0
Creates MedicalMask estimator.
+
Settings provider interface.
+
virtual FaceEngineEdition getFaceEngineEdition() const noexcept=0
Get LUNA SDK ditribution edition.
+
virtual ResultValue< FSDKError, IWarperPtr > createWarper() noexcept=0
Creates warper.
+
virtual ResultValue< FSDKError, IDescriptorPtr > createDescriptor(uint32_t version=0) noexcept=0
Creates Descriptor.
+
FSDK_API ResultValue< FSDKError, ISettingsProviderPtr > createSettingsProvider(const char *path) noexcept
Create a settings provider.
+
FSDK_API ResultValue< FSDKError, IFaceEngineMobilePtr > createFaceEngineMobile(const char *dataPath=nullptr, const char *configPath=nullptr, const char *runtimePath=nullptr) noexcept
Create the LUNA SDK root object.
+
virtual ISettingsProvider * getSettingsProvider() const noexcept=0
Gets settings provider.
+
virtual ILicense * getLicense() const noexcept=0
Get current License object, which was set for FaceEngine object.
+
SDK settings provider interface.
Definition: ISettingsProvider.h:32
+
+
+ + + + diff --git a/doc/fsdk/html/_i_glasses_estimator_8h_source.html b/doc/fsdk/html/_i_glasses_estimator_8h_source.html new file mode 100644 index 0000000..f3691d4 --- /dev/null +++ b/doc/fsdk/html/_i_glasses_estimator_8h_source.html @@ -0,0 +1,177 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/IGlassesEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IGlassesEstimator.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IObject.h>
+
4 #include <fsdk/FSDKError.h>
+
5 #include <fsdk/Optional.h>
+
6 #include <fsdk/Types.h>
+
7 
+
8 namespace fsdk {
+
9 
+
10 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
11  DECLARE_SMARTPTR(IGlassesEstimator);
+
12 #endif
+
13 
+
22  enum class GlassesEstimation: uint8_t{
+
23  NoGlasses,
+
24  EyeGlasses,
+
25  SunGlasses,
+ +
27  };
+
28 
+ + +
42  estimate(const Image& warp) const noexcept = 0;
+
43 
+
54  virtual Result<FSDKError>
+
55  estimate(
+
56  Span<const Image> warps,
+
57  Span<GlassesEstimation> glassesEstimations) const noexcept = 0;
+
58 
+
69  virtual Result<FSDKError>
+
70  validate(
+
71  Span<const Image> warps,
+
72  Span<Result<FSDKError>> errors) const noexcept = 0;
+
73  };
+
74 
+
75 } // namespace fsdk
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
Person is wearing eyeglasses.
+
Object system types and interfaces.
+
Common SDK error codes.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
Person is wearing sunglasses.
+
Glasses estimator interface.
Definition: IGlassesEstimator.h:33
+
Person is not wearing glasses.
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
virtual Result< FSDKError > validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+ +
Image.
Definition: Image.h:38
+
GlassesEstimation
Glasses estimation enum.
Definition: IGlassesEstimator.h:22
+
virtual ResultValue< FSDKError, GlassesEstimation > estimate(const Image &warp) const noexcept=0
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
+
+ + + + diff --git a/doc/fsdk/html/_i_head_pose_estimator_8h_source.html b/doc/fsdk/html/_i_head_pose_estimator_8h_source.html new file mode 100644 index 0000000..32fed8d --- /dev/null +++ b/doc/fsdk/html/_i_head_pose_estimator_8h_source.html @@ -0,0 +1,216 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/IHeadPoseEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IHeadPoseEstimator.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IObject.h>
+
4 #include <fsdk/FSDKError.h>
+
5 #include <fsdk/Optional.h>
+
6 #include <fsdk/Types.h>
+
7 
+
8 #include <cmath>
+
9 
+
10 namespace fsdk {
+
11 
+
12 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
13  DECLARE_SMARTPTR(IHeadPoseEstimator);
+
14 #endif
+
15 
+ +
22  float pitch;
+
23  float yaw;
+
24  float roll;
+
25 
+ +
27  Non = 0,
+
28  Good,
+
29  ISO
+
30  };
+
31 
+
35  inline FrontalFaceType getFrontalFaceType() const;
+
36  };
+
37 
+ +
56  virtual Result<FSDKError>
+
57  FSDK_DEPRECATED("HeadPoseEstimator is deprecated since v.5.0.1, use BestShotQualityEstimator instead")
+
58  estimate(
+
59  const Landmarks68 &landmarks,
+
60  HeadPoseEstimation& out) const noexcept = 0;
+
70  virtual Result<FSDKError>
+
71  FSDK_DEPRECATED("HeadPoseEstimator is deprecated since v.5.0.1, use BestShotQualityEstimator instead")
+
72  estimate(
+
73  const Image& image,
+
74  const Detection& detection,
+
75  HeadPoseEstimation& out) const noexcept = 0;
+
76 
+
88  virtual Result<FSDKError>
+
89  FSDK_DEPRECATED("HeadPoseEstimator is deprecated since v.5.0.1, use BestShotQualityEstimator instead")
+
90  estimate(
+
91  Span<const Image> images,
+
92  Span<const Detection> detections,
+
93  Span<HeadPoseEstimation> out) const noexcept = 0;
+
94 
+
106  virtual Result<FSDKError>
+
107  FSDK_DEPRECATED("HeadPoseEstimator is deprecated since v.5.0.1, use BestShotQualityEstimator instead")
+
108  validate(
+
109  Span<const Image> images,
+
110  Span<const Detection> detections,
+
111  Span<Result<FSDKError>> errors) const noexcept = 0;
+
112  };
+
113 
+
114  /*
+
115  Implementation details.
+
116  */
+ + +
119  if(std::abs(roll) <= 8 && std::abs(pitch) <= 5 && std::abs(yaw) <= 5)
+ +
121  if(std::abs(roll) <= 30 && std::abs(pitch) <= 40 && std::abs(yaw) <= 40)
+ + +
124  }
+
125 
+
126 } // namespace fsdk
+
Head pose estimation output.
Definition: IHeadPoseEstimator.h:21
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
Face landmarks template structure.
Definition: Landmarks.h:20
+
float roll
Roll angle estimation.
Definition: IHeadPoseEstimator.h:24
+
virtual Result< FSDKError > estimate(const Landmarks68 &landmarks, HeadPoseEstimation &out) const noexcept=0
Estimate the angles.
+
float yaw
Yaw angle estimation.
Definition: IHeadPoseEstimator.h:23
+
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
Object system types and interfaces.
+
Common SDK error codes.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
Non-frontal face.
Definition: IHeadPoseEstimator.h:27
+
Good for recognition; Doesn&#39;t descrease recall and looks fine.
Definition: IHeadPoseEstimator.h:28
+
Image.
Definition: Image.h:38
+
GOST/ISO angles.
Definition: IHeadPoseEstimator.h:29
+
FrontalFaceType
Definition: IHeadPoseEstimator.h:26
+
float pitch
Pitch angle estimation.
Definition: IHeadPoseEstimator.h:22
+
Head pose angles estimator interface.
Definition: IHeadPoseEstimator.h:48
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
FrontalFaceType getFrontalFaceType() const
Returns type of face frontality.
Definition: IHeadPoseEstimator.h:118
+
+
+ + + + diff --git a/doc/fsdk/html/_i_human_detection_batch_8h_source.html b/doc/fsdk/html/_i_human_detection_batch_8h_source.html new file mode 100644 index 0000000..cab86d9 --- /dev/null +++ b/doc/fsdk/html/_i_human_detection_batch_8h_source.html @@ -0,0 +1,167 @@ + + + + + + +Face Engine SDK: include/fsdk/IHumanDetectionBatch.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IHumanDetectionBatch.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IRefCounted.h>
+
4 #include <fsdk/Types/Detection.h>
+
5 #include <fsdk/Types/Human.h>
+
6 #include <fsdk/Types/HumanLandmarks.h>
+
7 #include <fsdk/Types/Image.h>
+
8 #include <fsdk/Types/Ref.h>
+
9 #include <fsdk/Types/Span.h>
+
10 
+
11 #include <cstddef>
+
12 
+
13 namespace fsdk {
+
14 
+
15 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
16  DECLARE_SMARTPTR(IHumanDetectionBatch);
+
17 #endif
+
18 
+ +
26  virtual size_t getSize() const noexcept = 0;
+
27 
+
32  virtual size_t getSize(size_t imageIndex) const noexcept = 0;
+
33 
+
45  virtual Human getHuman(const Image& image, size_t imageIndex, size_t detectionIndex) const noexcept = 0;
+
46 
+
57  virtual Span<const Detection> getDetections(size_t index = 0) const noexcept = 0;
+
58 
+
69  virtual Span<const HumanLandmarks17> getLandmarks17(size_t index = 0) const noexcept = 0;
+
70 
+
71  };
+
72 
+
73 }
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
Human detection result batch interface.
Definition: IHumanDetectionBatch.h:22
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual Span< const HumanLandmarks17 > getLandmarks17(size_t index=0) const noexcept=0
Returns HumanLandmarks17 Span.
+
virtual Human getHuman(const Image &image, size_t imageIndex, size_t detectionIndex) const noexcept=0
Returns detected Human.
+
virtual Span< const Detection > getDetections(size_t index=0) const noexcept=0
Returns detection Span.
+
Definition: Human.h:10
+
Image.
Definition: Image.h:38
+
virtual size_t getSize() const noexcept=0
Returns size.
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
Reference counted object interface.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_human_detector_8h_source.html b/doc/fsdk/html/_i_human_detector_8h_source.html new file mode 100644 index 0000000..7864254 --- /dev/null +++ b/doc/fsdk/html/_i_human_detector_8h_source.html @@ -0,0 +1,221 @@ + + + + + + +Face Engine SDK: include/fsdk/IHumanDetector.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IHumanDetector.h
+
+
+
1 #pragma once
+
2 
+
3 #include "FSDKError.h"
+
4 #include "IHumanDetectionBatch.h"
+
5 #include "IObject.h"
+
6 #include "Types/Human.h"
+
7 
+
8 namespace fsdk {
+
9 
+
10 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
11  DECLARE_SMARTPTR(IHumanDetector);
+
12 #endif
+
13 
+ +
24  HDT_BOX = 0,
+
25  HDT_POINTS = 1<<0,
+
26  HDT_ALL = 0xffff
+
27  };
+
28 
+
29  inline HumanDetectionType operator | (HumanDetectionType a, HumanDetectionType b) {
+
30  return static_cast<HumanDetectionType>(static_cast<int>(a) | static_cast<int>(b));
+
31  }
+
32 
+ + +
50  detect(
+
51  Span<const Image> images,
+
52  Span<const Rect> rects,
+
53  uint32_t detectionPerImageNum,
+
54  HumanDetectionType type = HDT_BOX) const noexcept = 0;
+
55 
+ +
66  detectOne(
+
67  const Image& image,
+
68  const Rect& rect,
+
69  HumanDetectionType type = HDT_BOX) const noexcept = 0;
+
70 
+ + +
82  const Image& image,
+
83  const Detection& detection,
+
84  HumanDetectionType type = HDT_BOX) const noexcept = 0;
+
85 
+ +
103  redetect(
+
104  Span<const Image> images,
+
105  Ref<IHumanDetectionBatch> detectionBatch,
+
106  HumanDetectionType type = HDT_BOX) const noexcept = 0;
+
107 
+ +
124  redetect(
+
125  Span<const Image> images,
+
126  Span<Span<const Detection>> detections,
+
127  HumanDetectionType type = HDT_BOX) const noexcept = 0;
+
128 
+
141  virtual Result<FSDKError>
+
142  validate(
+
143  Span<const Image> images,
+
144  Span<const Rect> rects,
+
145  uint32_t detectionPerImageNum,
+
146  Span<Result<FSDKError>> errors) const noexcept = 0;
+
147 
+
160  virtual Result<FSDKError> validate(
+
161  Span<const Image> images,
+
162  Ref<IHumanDetectionBatch> detectionBatch,
+
163  Span<Result<FSDKError>> errors) const noexcept = 0;
+
164 
+
178  virtual Result<FSDKError>
+
179  validate(
+
180  Span<const Image> images,
+
181  Span<Span<const Detection>> detections,
+
182  Span<Span<Result<FSDKError>>> errors) const noexcept = 0;
+
183 
+
184  };
+
185 
+
188 }
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
Get all supported parameters.
Definition: IHumanDetector.h:26
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
Smart pointer for reference counted objects.
Definition: Ref.h:26
+
Object system types and interfaces.
+
Common SDK error codes.
+
virtual ResultValue< FSDKError, IHumanDetectionBatchPtr > redetect(Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, HumanDetectionType type=HDT_BOX) const noexcept=0
Batched redetect humans on multiple images based on the detection results for the previous frames...
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
human body detector interface.
Definition: IHumanDetector.h:36
+
Get bounding boxes of human bodies.
Definition: IHumanDetector.h:24
+
Get 17 keypoints of human, with score for each one.
Definition: IHumanDetector.h:25
+
virtual ResultValue< FSDKError, Human > redetectOne(const Image &image, const Detection &detection, HumanDetectionType type=HDT_BOX) const noexcept=0
redetect one person from input image.
+
virtual ResultValue< FSDKError, Ref< IHumanDetectionBatch > > detect(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, HumanDetectionType type=HDT_BOX) const noexcept=0
Batched detect of human bodies.
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
Image.
Definition: Image.h:38
+ +
HumanDetectionType
Human detection type enumeration.
Definition: IHumanDetector.h:23
+
virtual ResultValue< FSDKError, Human > detectOne(const Image &image, const Rect &rect, HumanDetectionType type=HDT_BOX) const noexcept=0
Detect one person on input image.
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
+
+ + + + diff --git a/doc/fsdk/html/_i_human_warper_8h.html b/doc/fsdk/html/_i_human_warper_8h.html new file mode 100644 index 0000000..83473e8 --- /dev/null +++ b/doc/fsdk/html/_i_human_warper_8h.html @@ -0,0 +1,154 @@ + + + + + + +Face Engine SDK: include/fsdk/IHumanWarper.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
IHumanWarper.h File Reference
+
+
+ +

Image warping base on Human detection. +More...

+
#include <fsdk/FSDKError.h>
+#include <fsdk/IRefCounted.h>
+#include <fsdk/Types/Detection.h>
+#include <fsdk/Types/Image.h>
+#include <fsdk/Types/Span.h>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

struct  fsdk::IHumanWarper
 Human detection area warper interface. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+

Detailed Description

+

Image warping base on Human detection.

+ +
Date
17.11.2019
+
+
+ + + + diff --git a/doc/fsdk/html/_i_human_warper_8h_source.html b/doc/fsdk/html/_i_human_warper_8h_source.html new file mode 100644 index 0000000..63956c6 --- /dev/null +++ b/doc/fsdk/html/_i_human_warper_8h_source.html @@ -0,0 +1,164 @@ + + + + + + +Face Engine SDK: include/fsdk/IHumanWarper.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IHumanWarper.h
+
+
+Go to the documentation of this file.
1 #pragma once
+
2 
+
10 #include <fsdk/FSDKError.h>
+
11 #include <fsdk/IRefCounted.h>
+
12 #include <fsdk/Types/Detection.h>
+
13 #include <fsdk/Types/Image.h>
+
14 #include <fsdk/Types/Span.h>
+
15 
+
16 namespace fsdk {
+
17 
+
18 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
19  DECLARE_SMARTPTR(IHumanWarper);
+
20 #endif
+
21 
+ +
40  virtual Result<FSDKError>
+
41  warp(
+
42  const Image image,
+
43  const Detection& detection,
+
44  Image& transformedImage) const noexcept = 0;
+
45 
+
65  virtual Result<FSDKError>
+
66  warp(
+
67  Span<const Image> images,
+
68  Span<const Detection> detections,
+
69  Span<Image> transformedImages) const noexcept = 0;
+
70 
+
71  };
+
72 
+
73 }
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common SDK error codes.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual Result< FSDKError > warp(const Image image, const Detection &detection, Image &transformedImage) const noexcept=0
Warp human detection.
+
Image.
Definition: Image.h:38
+
Human detection area warper interface.
Definition: IHumanWarper.h:26
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
Reference counted object interface.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_index_8h_source.html b/doc/fsdk/html/_i_index_8h_source.html new file mode 100644 index 0000000..1ea80f3 --- /dev/null +++ b/doc/fsdk/html/_i_index_8h_source.html @@ -0,0 +1,261 @@ + + + + + + +Face Engine SDK: include/fsdk/IIndex.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IIndex.h
+
+
+
1 #pragma once
+
2 
+
3 #include "IAsyncContext.h"
+
4 #include "IDescriptor.h"
+
5 
+
6 namespace fsdk {
+
7 
+
8  #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
9  DECLARE_SMARTPTR(IStaticDescriptorStorage);
+
10  DECLARE_SMARTPTR(IDynamicDescriptorStorage);
+
11  DECLARE_SMARTPTR(IIndex);
+
12  DECLARE_SMARTPTR(IDenseIndex);
+
13  DECLARE_SMARTPTR(IDynamicIndex);
+
14  DECLARE_SMARTPTR(IIndexBuilder);
+
15  #endif
+
16 
+
18  using DescriptorId = size_t;
+
19 
+ + +
26 
+
28  SearchResult() noexcept
+
29  : MatchingResult()
+
30  , index(std::numeric_limits<DescriptorId>::max())
+
31  {}
+
32 
+ +
40  float distance,
+
41  float similarity,
+
42  DescriptorId index) noexcept
+ +
44  , index(index)
+
45  {}
+
46  };
+
47 
+ + +
64  const DescriptorId index,
+
65  IDescriptor* descriptor) const noexcept = 0;
+
66 
+
71  virtual uint32_t getDescriptorVersion() const noexcept = 0;
+
72 
+
77  virtual uint64_t size() const noexcept = 0;
+
78  };
+
79 
+ + + +
98  const IDescriptor* descriptor) noexcept = 0;
+
99 
+ +
113  const IDescriptorBatch* batch) noexcept = 0;
+
114 
+
130  virtual Result<FSDKError> removeDescriptor(const DescriptorId index) noexcept = 0;
+
131  };
+
132 
+
137  struct IIndex
+
138  : IRefCounted {
+ +
150  const IDescriptor* reference,
+
151  int maxResultsCount,
+
152  SearchResult* results) const noexcept = 0;
+
153  };
+
154 
+
158  struct IDenseIndex
+ +
160  , IIndex {
+
161 
+
162  };
+
163 
+ + +
169  , IIndex {
+
179  virtual Result<FSDKError> saveToDenseIndex(const char* path) const noexcept = 0;
+
180 
+
190  virtual Result<FSDKError> saveToDynamicIndex(const char* path) const noexcept = 0;
+
191 
+
205  virtual uint64_t countOfIndexedDescriptors() const noexcept = 0;
+
206  };
+
207 
+ +
217  virtual void progress(const float completion) const noexcept = 0;
+
218  };
+
219 
+ + +
225  , IRefCounted {
+ +
235  const IProgressTracker* const progressTracker = nullptr) noexcept = 0;
+
236 
+ + +
248  IAsyncContext* const asyncContext,
+
249  const IProgressTracker* const progressTracker = nullptr) noexcept = 0;
+
250  };
+
251 
+
252 
+
253 }
+
254 
+
virtual ResultValue< FSDKError, DescriptorId > appendDescriptor(const IDescriptor *descriptor) noexcept=0
Appends descriptor to internal storage. If used on.
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
virtual uint32_t getDescriptorVersion() const noexcept=0
Return version of stored descriptors.
+
virtual Result< FSDKError > removeDescriptor(const DescriptorId index) noexcept=0
Removes descriptor out of internal storage. If used on.
+
virtual Result< FSDKError > saveToDenseIndex(const char *path) const noexcept=0
Saves index as dense.
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Base index interface.
Definition: IIndex.h:137
+
Progress tracker interface.
Definition: IIndex.h:212
+
Result of index search.
Definition: IIndex.h:23
+
Descriptor batch interface.
Definition: IDescriptor.h:139
+
virtual ResultValue< FSDKError, Future< ResultValue< FSDKError, IDynamicIndex * > > > buildIndexAsync(IAsyncContext *const asyncContext, const IProgressTracker *const progressTracker=nullptr) noexcept=0
Builds index with every descriptor appended. Non blocking operation.
+
virtual uint64_t size() const noexcept=0
Return size of internal storage.
+
virtual uint64_t countOfIndexedDescriptors() const noexcept=0
Returns count of indexed descriptors.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
Interface for running tasks asynchronously.
Definition: IAsyncContext.h:24
+
SearchResult() noexcept
Default constructor.
Definition: IIndex.h:28
+
virtual Result< FSDKError > descriptorByIndex(const DescriptorId index, IDescriptor *descriptor) const noexcept=0
Requests descriptor data out of internal storage.
+
Descriptor extractor and matcher interfaces.
+
float similarity
similarity (normalized in [0..1] range).
Definition: IDescriptor.h:36
+
Dynamic index interface.
Definition: IIndex.h:167
+
size_t DescriptorId
Intergral type used as identification of descriptor in internal storage.
Definition: IIndex.h:18
+
virtual Result< FSDKError > saveToDynamicIndex(const char *path) const noexcept=0
Saves index as dynamic.
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
MatchingResult(void) noexcept
Initializes result to default values.
Definition: IDescriptor.h:41
+
Async context interface.
+
SearchResult(float distance, float similarity, DescriptorId index) noexcept
Construct structure with parameters.
Definition: IIndex.h:39
+
Dense (read only) index interface.
Definition: IIndex.h:158
+
Result of descriptor matching.
Definition: IDescriptor.h:34
+
DescriptorId index
Identificator of descriptor in some storage.
Definition: IIndex.h:25
+
virtual ResultValue< FSDKError, int > search(const IDescriptor *reference, int maxResultsCount, SearchResult *results) const noexcept=0
Search for descriptors with the shorter distance to passed descriptor.
+
Descriptor interface.
Definition: IDescriptor.h:91
+
float distance
distance between descriptor vectors.
Definition: IDescriptor.h:35
+
virtual ResultValue< FSDKError, IDynamicIndex * > buildIndex(const IProgressTracker *const progressTracker=nullptr) noexcept=0
Builds index with every descriptor appended. Blocks until completed.
+
Dynamic descriptor storage interface.
Definition: IIndex.h:84
+
Index builder interface.
Definition: IIndex.h:223
+
virtual ResultValue< FSDKError, DescriptorId > appendBatch(const IDescriptorBatch *batch) noexcept=0
Appends batch of descriptors to internal storage. If used on.
+
Static descriptor storage interface.
Definition: IIndex.h:52
+
virtual void progress(const float completion) const noexcept=0
Function is called on some operation progress change.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_license_8h_source.html b/doc/fsdk/html/_i_license_8h_source.html new file mode 100644 index 0000000..cc31320 --- /dev/null +++ b/doc/fsdk/html/_i_license_8h_source.html @@ -0,0 +1,187 @@ + + + + + + +Face Engine SDK: include/fsdk/ILicense.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
ILicense.h
+
+
+
1 #pragma once
+
2 
+
3 #include "IObject.h"
+
4 #include <fsdk/FSDKError.h>
+
5 
+
6 namespace fsdk {
+
7 
+
8  #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
9  DECLARE_SMARTPTR(ILicense);
+
10  #endif
+
11 
+
15  enum class LicenseFeature : uint32_t {
+
16  Detection = 1,
+
17  BestShot = 2,
+
18  Attributes = 3,
+
19  Emotions = 4,
+
20  FaceFeatures = 5,
+
21  Liveness = 6,
+
22  Descriptor = 7,
+
23  DescriptorIndex = 8,
+
24  LivenessEngine = 9,
+
25  TrackEngine = 10,
+
26  HumanDetection = 11,
+
27  PPEDetection = 17,
+
28  MobileLiveness = 18,
+
29  MedicalMaskDetection = 19,
+
30  ReIdDescriptor = 20,
+
31  ISOCheck = 21
+
32  };
+
33 
+
38  struct ILicense : IRefCounted {
+
46  virtual ResultValue<FSDKError, bool> checkFeatureId(LicenseFeature feature) const noexcept = 0;
+
47 
+
54  virtual ResultValue<FSDKError, bool> isActivated() const noexcept = 0;
+
55 
+
62  virtual Result<FSDKError>
+
63  FSDK_DEPRECATED("loadFromFile is deprecated since v.5.5.0,"
+
64  " Use loadFromFile(const char* path, const ISettingsProvider* settings) instead")
+
65  loadFromFile(const char* path) noexcept = 0;
+
66 
+
74  virtual Result<FSDKError> loadFromFile(const char* path, const ISettingsProvider* settings) noexcept = 0;
+
75 
+
82  virtual Result<FSDKError> saveToFile(const char * path) const noexcept = 0;
+
83 
+
92  virtual ResultValue<FSDKError, uint32_t> getExpirationDate(LicenseFeature feature) const noexcept = 0;
+
93  };
+
94 }
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
virtual Result< FSDKError > FSDK_DEPRECATED("loadFromFile is deprecated since v.5.5.0,"" Use loadFromFile(const char* path, const ISettingsProvider* settings) instead") loadFromFile(const char *path) noexcept=0
Loads license from file.
+
virtual Result< FSDKError > saveToFile(const char *path) const noexcept=0
Saves license as raw format to the file. This file could be used in the next run of the application...
+
Object system types and interfaces.
+
License objects interface.
Definition: ILicense.h:38
+
Common SDK error codes.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual ResultValue< FSDKError, uint32_t > getExpirationDate(LicenseFeature feature) const noexcept=0
Gets license expiration date.
+
LicenseFeature
License features.
Definition: ILicense.h:15
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
virtual ResultValue< FSDKError, bool > checkFeatureId(LicenseFeature feature) const noexcept=0
Checks if the feature with featureId is available in this license.
+
virtual ResultValue< FSDKError, bool > isActivated() const noexcept=0
Checks if current license object is activated and could be used by FaceEngine.
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
virtual Result< FSDKError > loadFromFile(const char *path, const ISettingsProvider *settings) noexcept=0
Loads license from file.
+
SDK settings provider interface.
Definition: ISettingsProvider.h:32
+
+
+ + + + diff --git a/doc/fsdk/html/_i_liveness_one_shot_r_g_b_estimator_8h_source.html b/doc/fsdk/html/_i_liveness_one_shot_r_g_b_estimator_8h_source.html new file mode 100644 index 0000000..2b7cf27 --- /dev/null +++ b/doc/fsdk/html/_i_liveness_one_shot_r_g_b_estimator_8h_source.html @@ -0,0 +1,195 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/ILivenessOneShotRGBEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
ILivenessOneShotRGBEstimator.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IObject.h>
+
4 #include <fsdk/FSDKError.h>
+
5 #include <fsdk/Optional.h>
+
6 #include <fsdk/Types.h>
+
7 
+
8 namespace fsdk {
+
9 
+
10 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
11  DECLARE_SMARTPTR(ILivenessOneShotRGBEstimator);
+
12 #endif
+
13 
+ +
20  enum class State {
+
21  Alive = 0,
+
22  Fake,
+
23  Unknown
+
24  };
+
25 
+
26  float score;
+ +
28  float qualityScore;
+
29  };
+
30 
+ + +
48  const Image& image,
+
49  const Detection& detection,
+
50  const Landmarks5& landmarks5,
+
51  LivenessOneShotRGBEstimation& estimation,
+
52  const float qualityThreshold = -1.f) const noexcept = 0;
+
53 
+ +
69  Span<const Image> images,
+
70  Span<const Detection> detections,
+
71  Span<const Landmarks5> landmarks5,
+ +
73  const float qualityThreshold = -1.f,
+
74  LivenessOneShotRGBEstimation* aggregation = nullptr) const noexcept = 0;
+
75 
+
88  virtual Result<FSDKError>
+
89  validate(
+
90  Span<const Image> images,
+
91  Span<const Detection> detections,
+
92  Span<const Landmarks5> landmarks5,
+
93  Span<Result<FSDKError>> errors) const noexcept = 0;
+
94  };
+
95 
+
96 } // namespace fsdk
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
The liveness status of person on image is Unknown.
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
Face landmarks template structure.
Definition: Landmarks.h:20
+
The person on image is fake (photo, printed image)
+ +
Object system types and interfaces.
+
State
Definition: ILivenessOneShotRGBEstimator.h:20
+
Common SDK error codes.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual Result< FSDKError > validate(Span< const Image > images, Span< const Detection > detections, Span< const Landmarks5 > landmarks5, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
virtual Result< FSDKError > estimate(const Image &image, const Detection &detection, const Landmarks5 &landmarks5, LivenessOneShotRGBEstimation &estimation, const float qualityThreshold=-1.f) const noexcept=0
OneShot RGB Liveness estimation.
+
Image.
Definition: Image.h:38
+
Liveness OneShotRGB estimation structure.
Definition: ILivenessOneShotRGBEstimator.h:19
+
OneShot RGB Liveness estimator interface.
Definition: ILivenessOneShotRGBEstimator.h:35
+
State state
Liveness status.
Definition: ILivenessOneShotRGBEstimator.h:27
+
float score
Estimation score.
Definition: ILivenessOneShotRGBEstimator.h:26
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
float qualityScore
Liveness quality score.
Definition: ILivenessOneShotRGBEstimator.h:28
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
+
+ + + + diff --git a/doc/fsdk/html/_i_medical_mask_estimator_8h_source.html b/doc/fsdk/html/_i_medical_mask_estimator_8h_source.html new file mode 100644 index 0000000..4f3842d --- /dev/null +++ b/doc/fsdk/html/_i_medical_mask_estimator_8h_source.html @@ -0,0 +1,293 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/IMedicalMaskEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IMedicalMaskEstimator.h
+
+
+
1 #pragma once
+
2 
+
3 #pragma once
+
4 
+
5 #include <fsdk/IObject.h>
+
6 #include <fsdk/FSDKError.h>
+
7 #include <fsdk/Optional.h>
+
8 #include <fsdk/Types.h>
+
9 
+
10 namespace fsdk {
+
11 
+
12 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
13  DECLARE_SMARTPTR(IMedicalMaskEstimator);
+
14 #endif
+
15 
+
20  enum class MedicalMask {
+
21  Mask = 0,
+
22  NoMask,
+ +
24  };
+
25 
+
30  enum class MedicalMaskExtended {
+
31  Mask = 0,
+
32  NoMask,
+ + +
35  };
+
36 
+
41  enum class DetailedMaskType {
+
42  CorrectMask = 0,
+ +
44  ClearFace,
+ + +
47  FullMask,
+
48  Count
+
49  };
+
50 
+ + + +
60 
+
61  // scores
+
62  float maskScore;
+
63  float noMaskScore;
+ +
65 
+
66  float scores[static_cast<int>(DetailedMaskType::Count)];
+
67 
+
73  inline float getScore(DetailedMaskType type) const;
+
74  };
+ + +
83  // scores
+
84  float maskScore;
+
85  float noMaskScore;
+ + +
88  };
+
89 
+ +
103  virtual Result<FSDKError>
+
104  estimate(
+
105  const Image& warp,
+
106  MedicalMaskEstimation& estimation) const noexcept = 0;
+
107 
+
116  virtual Result<FSDKError>
+
117  estimate(
+
118  const Image& warp,
+
119  MedicalMaskEstimationExtended& estimation) const noexcept = 0;
+
120 
+
130  virtual Result<FSDKError>
+
131  estimate(
+
132  const Image& image,
+
133  const Detection& detection,
+
134  MedicalMaskEstimation& estimation) const noexcept = 0;
+
135 
+
145  virtual Result<FSDKError>
+
146  estimate(
+
147  const Image& image,
+
148  const Detection& detection,
+
149  MedicalMaskEstimationExtended& estimation) const noexcept = 0;
+
150 
+
161  virtual Result<FSDKError> estimate(
+
162  Span<const Image> warps,
+
163  Span<MedicalMaskEstimation> estimations) const noexcept = 0;
+
164 
+
175  virtual Result<FSDKError> estimate(
+
176  Span<const Image> warps,
+
177  Span<MedicalMaskEstimationExtended> estimations) const noexcept = 0;
+
178 
+
190  virtual Result<FSDKError> estimate(
+
191  Span<const Image> images,
+
192  Span<const Detection> detections,
+
193  Span<MedicalMaskEstimation> estimations) const noexcept = 0;
+
194 
+
206  virtual Result<FSDKError> estimate(
+
207  Span<const Image> images,
+
208  Span<const Detection> detections,
+
209  Span<MedicalMaskEstimationExtended> estimations) const noexcept = 0;
+
220  virtual Result<FSDKError>
+
221  validate(
+
222  Span<const Image> warps,
+
223  Span<Result<FSDKError>> errors) const noexcept = 0;
+
224 
+
236  virtual Result<FSDKError>
+
237  validate(
+
238  Span<const Image> images,
+
239  Span<const Detection> detections,
+
240  Span<Result<FSDKError>> errors) const noexcept = 0;
+
241  };
+
242 
+
243  /*
+
244  Implementation details.
+
245  */
+ +
247  switch (type) {
+ + + + + + +
254  return scores[static_cast<int>(type)];
+
255  default:
+
256  return 0.f;
+
257  }
+
258  }
+
259 
+
260 } // namespace fsdk
+
clear face - no mask on the face
+
virtual Result< FSDKError > validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
no medical mask on the face
+
mask is not on the right place
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
correct mask on the face (mouth and nose are covered correctly)
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
medical mask is on the face
+
face is covered with not a medical mask or a full mask
+
MedicalMaskExtended
MedicalMask estimator output enum. This enum contains all possible extended estimation results...
Definition: IMedicalMaskEstimator.h:30
+
Object system types and interfaces.
+
float occludedFaceScore
face is occluded by something score
Definition: IMedicalMaskEstimator.h:87
+ +
Common SDK error codes.
+
float noMaskScore
no medical mask on the face score
Definition: IMedicalMaskEstimator.h:63
+
MedicalMask result
estimation result (
Definition: IMedicalMaskEstimator.h:58
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
float noMaskScore
no medical mask on the face score
Definition: IMedicalMaskEstimator.h:85
+
DetailedMaskType
MedicalMask estimator output enum. This enum contains all type of DetailedMaskType results...
Definition: IMedicalMaskEstimator.h:41
+
float occludedFaceScore
face is occluded by something score
Definition: IMedicalMaskEstimator.h:64
+
float getScore(DetailedMaskType type) const
Returns score of required detailed mask type.
Definition: IMedicalMaskEstimator.h:246
+
MedicalMask estimator interface.
Definition: IMedicalMaskEstimator.h:94
+
float maskScore
medical mask is on the face score
Definition: IMedicalMaskEstimator.h:84
+
MedicalMask estimator output structure. This structure contains the result of estimation (...
Definition: IMedicalMaskEstimator.h:81
+
float maskNotInPlace
mask is not on the right place
Definition: IMedicalMaskEstimator.h:86
+
clear face with a mask around of a chin, mask does not cover anything in the face region (from mouth ...
+
Image.
Definition: Image.h:38
+
MedicalMask estimator output structure. This structure contains the result of estimation (...
Definition: IMedicalMaskEstimator.h:57
+
virtual Result< FSDKError > estimate(const Image &warp, MedicalMaskEstimation &estimation) const noexcept=0
Estimate MedicalMask probabilities.
+
MedicalMask
MedicalMask estimator output enum. This enum contains all possible estimation results.
Definition: IMedicalMaskEstimator.h:20
+
float maskScore
medical mask is on the face score
Definition: IMedicalMaskEstimator.h:62
+
MedicalMaskExtended result
estimation result (
Definition: IMedicalMaskEstimator.h:82
+
DetailedMaskType maskType
detailed type (
Definition: IMedicalMaskEstimator.h:59
+
face is covered with a full mask (such as balaclava, sky mask, etc.)
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
face is occluded by something
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
float scores[static_cast< int >(DetailedMaskType::Count)]
detailed estimation scores
Definition: IMedicalMaskEstimator.h:66
+
+
+ + + + diff --git a/doc/fsdk/html/_i_object_8h.html b/doc/fsdk/html/_i_object_8h.html new file mode 100644 index 0000000..3dc07c3 --- /dev/null +++ b/doc/fsdk/html/_i_object_8h.html @@ -0,0 +1,160 @@ + + + + + + +Face Engine SDK: include/fsdk/IObject.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
IObject.h File Reference
+
+
+ +

Object system types and interfaces. +More...

+
#include "IRefCounted.h"
+#include "Types.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Classes

struct  fsdk::IArchive
 Archive interface. More...
 
struct  fsdk::ISerializableObject
 Serializable object interface. More...
 
struct  fsdk::ErrorTraits< ISerializableObject::Error >
 Specialized for ISerializableObject::SerializationError. More...
 
struct  fsdk::IDataStorageObject
 Data storage object interface helper. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+

Detailed Description

+

Object system types and interfaces.

+ +
Date
25.06.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_i_object_8h_source.html b/doc/fsdk/html/_i_object_8h_source.html new file mode 100644 index 0000000..7353bc7 --- /dev/null +++ b/doc/fsdk/html/_i_object_8h_source.html @@ -0,0 +1,223 @@ + + + + + + +Face Engine SDK: include/fsdk/IObject.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IObject.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include "IRefCounted.h"
+
11 #include "Types.h"
+
12 
+
13 namespace fsdk {
+
14 
+
21  struct ISettingsProvider;
+
22 
+
37  struct IArchive {
+
38 
+
45  virtual bool write(const void* data, size_t size) = 0;
+
46 
+
53  virtual bool read(void* data, size_t size) = 0;
+
54 
+
59  virtual void setSizeHint(size_t hint) { ((void)hint); }
+
60 
+
61  virtual ~IArchive() = default;
+
62  };
+
63 
+ +
69 
+
73  enum class Error : uint32_t {
+
74  Ok,
+
75  Size,
+
76  Signature,
+
77  ArchiveRead,
+
78  InputArchive,
+
79  ArchiveWrite,
+
80  };
+
81 
+
88  enum Flags {
+
89 
+
91  Default = 0,
+
92 
+ +
101  };
+
102 
+
108  virtual void getSize(Sizer& sizer, uint32_t flags = Default) const noexcept = 0;
+
109 
+
118  virtual Result<Error> load(IArchive* archive, uint32_t flags = Default) = 0;
+
119 
+
128  virtual Result<Error> save(IArchive* archive, uint32_t flags = Default) const = 0;
+
129  };
+
130 
+
134  template<>
+ +
136 
+
137  static bool isOk(ISerializableObject::Error error) noexcept {
+
138  return error == ISerializableObject::Error::Ok;
+
139  }
+
140 
+
141  static const char* toString (ISerializableObject::Error error) noexcept {
+
142  switch(error) {
+
143  case ISerializableObject::Error::Ok : return "Ok";
+
144  case ISerializableObject::Error::Size: return "Size error";
+
145  case ISerializableObject::Error::Signature: return "Signature error";
+
146  case ISerializableObject::Error::ArchiveRead: return "Error during archive reading";
+
147  case ISerializableObject::Error::InputArchive: return "Input archive is nullptr";
+
148  case ISerializableObject::Error::ArchiveWrite: return "Error during archive writing";
+
149  default: return "Unknown error";
+
150  }
+
151  }
+
152  };
+
153 
+ +
158 
+
164  virtual void clear() noexcept = 0;
+
165 
+
173  virtual IRefCounted* getParentObject() const noexcept = 0;
+
174  };
+
175 
+
177 }
+
Error during archive writing,.
+
virtual bool write(const void *data, size_t size)=0
Write bytes to archive.
+
virtual Result< Error > save(IArchive *archive, uint32_t flags=Default) const =0
Save object to archive.
+ +
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+ +
virtual Result< Error > load(IArchive *archive, uint32_t flags=Default)=0
Load object from archive.
+
Error during archive reading,.
+
Serializable object interface.
Definition: IObject.h:68
+
Definition: Result.h:9
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual void getSize(Sizer &sizer, uint32_t flags=Default) const noexcept=0
Estimate size of this object binary data.
+ +
Default serialization mode.
Definition: IObject.h:91
+
virtual void setSizeHint(size_t hint)
Set size hint.
Definition: IObject.h:59
+
Error
Serialization nerror codes.
Definition: IObject.h:73
+
Flags
Serialization flags.
Definition: IObject.h:88
+
Omit object signature.
Definition: IObject.h:100
+
Data storage object interface helper.
Definition: IObject.h:157
+
Archive interface.
Definition: IObject.h:37
+
virtual bool read(void *data, size_t size)=0
Read bytes from archive.
+ +
Helper entity to measure size of dynamic objects in memory.
Definition: Sizer.h:10
+
Reference counted object interface.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_quality_estimator_8h_source.html b/doc/fsdk/html/_i_quality_estimator_8h_source.html new file mode 100644 index 0000000..9cad781 --- /dev/null +++ b/doc/fsdk/html/_i_quality_estimator_8h_source.html @@ -0,0 +1,217 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators/IQualityEstimator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IQualityEstimator.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/IObject.h>
+
4 #include <fsdk/FSDKError.h>
+
5 #include <fsdk/Optional.h>
+
6 #include <fsdk/Types.h>
+
7 
+
8 namespace fsdk {
+
9 
+
10 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
11  DECLARE_SMARTPTR(IQualityEstimator);
+
12 #endif
+
13 
+
22  struct Quality {
+
23  float light;
+
24  float dark;
+
25  float gray;
+
26  float blur;
+
30  inline float getQuality() const noexcept;
+
31  };
+
32 
+ +
48  float blur;
+
49  float light;
+
50  float darkness;
+
51  float illumination;
+
52  float specularity;
+
53  bool isBlurred;
+
54  bool isHighlighted;
+
55  bool isDark;
+
56  bool isIlluminated;
+
57  bool isNotSpecular;
+
61  inline bool isGood() const noexcept;
+
62  };
+
63 
+ +
86  virtual Result<FSDKError>
+
87  estimate(const Image& warp, Quality& quality) const noexcept = 0;
+
88 
+
99  virtual Result<FSDKError>
+
100  estimate(
+
101  Span<const Image> warps,
+
102  Span<Quality> quality) const noexcept = 0;
+
103 
+
112  virtual Result<FSDKError> estimate(
+
113  const Image& warp,
+
114  SubjectiveQuality& quality) const noexcept = 0;
+
115 
+
126  virtual Result<FSDKError>
+
127  estimate(
+
128  Span<const Image> warps,
+
129  Span<SubjectiveQuality> quality) const noexcept = 0;
+
130 
+
141  virtual Result<FSDKError>
+
142  validate(
+
143  Span<const Image> warps,
+
144  Span<Result<FSDKError>> errors) const noexcept = 0;
+
145  };
+
146 
+
147  /*
+
148  Implementation details.
+
149  */
+
150  float Quality::getQuality() const noexcept {
+
151  float min1 = std::min(dark, light);
+
152  float min2 = std::min(gray, blur);
+
153  return std::min(min1, min2);
+
154  }
+
155 
+
156  /*
+
157  Implementation details.
+
158  */
+
159  bool SubjectiveQuality::isGood() const noexcept {
+
160  if (!isBlurred && !isHighlighted && !isDark && !isIlluminated && !isNotSpecular)
+
161  return true;
+
162  return false;
+
163  }
+
164 
+
165 } // namespace fsdk
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:...
Definition: IQualityEstimator.h:22
+
Subjective Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:
Definition: IQualityEstimator.h:47
+
Object system types and interfaces.
+
Common SDK error codes.
+
bool isGood() const noexcept
Definition: IQualityEstimator.h:159
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
float getQuality() const noexcept
Definition: IQualityEstimator.h:150
+
virtual Result< FSDKError > estimate(const Image &warp, Quality &quality) const noexcept=0
Estimate the quality.
+
Image.
Definition: Image.h:38
+
virtual Result< FSDKError > validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
Validate input of multiple frames in a single function call.
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
Image quality estimator interface.
Definition: IQualityEstimator.h:77
+
+
+ + + + diff --git a/doc/fsdk/html/_i_ref_counted_8h.html b/doc/fsdk/html/_i_ref_counted_8h.html new file mode 100644 index 0000000..275ef52 --- /dev/null +++ b/doc/fsdk/html/_i_ref_counted_8h.html @@ -0,0 +1,150 @@ + + + + + + +Face Engine SDK: include/fsdk/IRefCounted.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
IRefCounted.h File Reference
+
+
+ +

Reference counted object interface. +More...

+
#include <cstdint>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

struct  fsdk::IRefCounted
 Base strong reference counted object interface. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+

Detailed Description

+

Reference counted object interface.

+ +
Date
25.06.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_i_ref_counted_8h_source.html b/doc/fsdk/html/_i_ref_counted_8h_source.html new file mode 100644 index 0000000..3767658 --- /dev/null +++ b/doc/fsdk/html/_i_ref_counted_8h_source.html @@ -0,0 +1,156 @@ + + + + + + +Face Engine SDK: include/fsdk/IRefCounted.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IRefCounted.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include <cstdint>
+
11 
+
12 namespace fsdk {
+
13 
+
36  struct IRefCounted {
+
41  virtual int32_t retain() noexcept = 0;
+
42 
+
47  virtual int32_t retainLocked() noexcept = 0;
+
48 
+
53  virtual int32_t release() noexcept = 0;
+
54 
+
59  virtual int32_t getRefCount() const noexcept = 0;
+
60 
+
65  virtual int32_t retainWeak() noexcept = 0;
+
66 
+
71  virtual int32_t releaseWeak() noexcept = 0;
+
72 
+
77  virtual int32_t getWeakRefCount() const noexcept = 0;
+
78  };
+
79  // end of CoreGroup
+
81 }
+
virtual int32_t release() noexcept=0
Decrease strong reference count.
+
virtual int32_t retain() noexcept=0
Increase strong reference count.
+
virtual int32_t releaseWeak() noexcept=0
Decrease weak reference count.
+
virtual int32_t retainWeak() noexcept=0
Increase weak reference count.
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual int32_t getRefCount() const noexcept=0
Get actual strong reference count.
+
virtual int32_t retainLocked() noexcept=0
Increase strong reference count thread safely.
+
virtual int32_t getWeakRefCount() const noexcept=0
Get actual weak reference count.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_result_batch_8h_source.html b/doc/fsdk/html/_i_result_batch_8h_source.html new file mode 100644 index 0000000..0393195 --- /dev/null +++ b/doc/fsdk/html/_i_result_batch_8h_source.html @@ -0,0 +1,144 @@ + + + + + + +Face Engine SDK: include/fsdk/IResultBatch.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IResultBatch.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/Types/Span.h>
+
4 #include <fsdk/IRefCounted.h>
+
5 #include <cstddef>
+
6 
+
7 namespace fsdk {
+
8 
+
9  template <typename T>
+
10  struct IResultBatch : public IRefCounted{
+
11  public:
+
12  virtual Span<T> getResults(size_t index = 0) const = 0;
+
13  virtual size_t getSize() const = 0;
+
14  };
+
15 
+
16 }
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
Definition: IResultBatch.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
Reference counted object interface.
+
+
+ + + + diff --git a/doc/fsdk/html/_i_settings_provider_8h.html b/doc/fsdk/html/_i_settings_provider_8h.html new file mode 100644 index 0000000..4961ebe --- /dev/null +++ b/doc/fsdk/html/_i_settings_provider_8h.html @@ -0,0 +1,199 @@ + + + + + + +Face Engine SDK: include/fsdk/ISettingsProvider.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
ISettingsProvider.h File Reference
+
+
+ +

Settings provider interface. +More...

+
#include <fsdk/IObject.h>
+#include <fsdk/Types.h>
+#include "FSDKError.h"
+#include <cstring>
+#include <string>
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  fsdk::ISettingsProvider
 SDK settings provider interface. More...
 
struct  fsdk::ISettingsProvider::Value
 Configuration parameter value. More...
 
union  fsdk::ISettingsProvider::Value::Data
 Value data. More...
 
struct  fsdk::ISettingsProvider::Value::Data::Int1
 
struct  fsdk::ISettingsProvider::Value::Data::Int2
 
struct  fsdk::ISettingsProvider::Value::Data::Int3
 
struct  fsdk::ISettingsProvider::Value::Data::Int4
 
struct  fsdk::ISettingsProvider::Value::Data::Float1
 
struct  fsdk::ISettingsProvider::Value::Data::Float2
 
struct  fsdk::ISettingsProvider::Value::Data::Float3
 
struct  fsdk::ISettingsProvider::Value::Data::Float4
 
struct  fsdk::ISettingsProvider::Value::Data::String
 
struct  fsdk::ISettingsProvider::Key
 Configuration parameter key. More...
 
struct  fsdk::ISettingsProvider::Desc
 Configuration parameter description. More...
 
struct  fsdk::ISettingsProvider::Entry
 Configuration parameter entry. More...
 
struct  fsdk::ErrorTraits< ISettingsProvider::Error >
 Specialized for ISettingsProvider::ParseError. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+ + + + +

+Functions

FSDK_API ResultValue
+< FSDKError,
+ISettingsProviderPtr > 
fsdk::createSettingsProvider (const char *path) noexcept
 Create a settings provider. More...
 
+

Detailed Description

+

Settings provider interface.

+ +
Date
06.11.2015
+
+
+ + + + diff --git a/doc/fsdk/html/_i_settings_provider_8h.js b/doc/fsdk/html/_i_settings_provider_8h.js new file mode 100644 index 0000000..fe5b05f --- /dev/null +++ b/doc/fsdk/html/_i_settings_provider_8h.js @@ -0,0 +1,18 @@ +var _i_settings_provider_8h = +[ + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html", "structfsdk_1_1_i_settings_provider_1_1_value" ], + [ "Data", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data" ], + [ "Int1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1" ], + [ "Int2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2" ], + [ "Int3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3" ], + [ "Int4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4" ], + [ "Float1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1" ], + [ "Float2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2" ], + [ "Float3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3" ], + [ "Float4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4" ], + [ "String", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string" ], + [ "Key", "structfsdk_1_1_i_settings_provider_1_1_key.html", "structfsdk_1_1_i_settings_provider_1_1_key" ], + [ "Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html", "structfsdk_1_1_i_settings_provider_1_1_desc" ], + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html", "structfsdk_1_1_i_settings_provider_1_1_entry" ], + [ "createSettingsProvider", "_i_settings_provider_8h.html#gabaa648d3852a1059c82f1d8462e18e9d", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_i_settings_provider_8h_source.html b/doc/fsdk/html/_i_settings_provider_8h_source.html new file mode 100644 index 0000000..e3457e0 --- /dev/null +++ b/doc/fsdk/html/_i_settings_provider_8h_source.html @@ -0,0 +1,551 @@ + + + + + + +Face Engine SDK: include/fsdk/ISettingsProvider.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
ISettingsProvider.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include <fsdk/IObject.h>
+
11 #include <fsdk/Types.h>
+
12 #include "FSDKError.h"
+
13 #include <cstring>
+
14 #include <string>
+
15 
+
16 namespace fsdk {
+
17 
+
18 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
19  DECLARE_SMARTPTR(ISettingsProvider);
+
20 #endif
+
21 
+ +
33 
+
37  enum class Error : uint32_t {
+
38  Ok,
+
39  IOError,
+
40  Memory,
+
41  Internal,
+
42  InvalidPi,
+
43  InvalidTag,
+
44  InvalidCdata,
+
45  FileNotFound,
+
46  InvalidPcdata,
+
47  InvalidDocType,
+
48  InvalidSettings,
+
49  InvalidComment,
+
50  InvalidAttribute,
+
51  InvalidEndElement,
+
52  AppendInvalidRoot,
+
53  NoDocumentElement,
+
54  EndElementMismatch,
+
55  InvalidStartElement,
+
56  MemoryAllocationFailed,
+
57  };
+
58 
+
64  virtual const char* getDefaultPath() const noexcept = 0;
+
65 
+
72  virtual Result<Error> load(const char* path) noexcept = 0;
+
73 
+
79  virtual bool save(const char* path) const noexcept = 0;
+
80 
+
85  virtual void clear() noexcept = 0;
+
86 
+
91  virtual bool isEmpty() const noexcept = 0;
+
92 
+
93 
+
97  struct FSDK_API Value {
+
98 
+
102  union Data {
+
103  struct Int1 { int m_value; } m_int1;
+
104  struct Int2 { int m_value[2]; } m_int2;
+
105  struct Int3 { int m_value[3]; } m_int3;
+
106  struct Int4 { int m_value[4]; } m_int4;
+
107  struct Float1 { float m_value; } m_float1;
+
108  struct Float2 { float m_value[2]; } m_float2;
+
109  struct Float3 { float m_value[3]; } m_float3;
+
110  struct Float4 { float m_value[4]; } m_float4;
+
111  struct String { char* m_value; } m_string;
+
112  } m_data;
+
113 
+
117  enum Type {
+ + + + + + + + + +
127  String
+
128  } m_type;
+
129 
+
134  Value() noexcept;
+
135 
+
140  Value(int x) noexcept;
+
141 
+
147  Value(int x, int y) noexcept;
+
148 
+
155  Value(int x, int y, int z) noexcept;
+
156 
+
164  Value(int x, int y, int z, int w) noexcept;
+
165 
+
170  Value(float x) noexcept;
+
171 
+
177  Value(float x, float y) noexcept;
+
184  Value(float x, float y, float z) noexcept;
+
185 
+
193  Value(float x, float y, float z, float w) noexcept;
+
194 
+
200  Value(const char* string) noexcept;
+
201 
+
206  Value(const Rect& rect) noexcept;
+
207 
+
212  Value(const Size& size) noexcept;
+
213 
+
218  Value(const Point2f& point) noexcept;
+
219 
+
224  Value(bool x) noexcept;
+
225 
+
230  operator bool() const noexcept;
+
231 
+
237  bool is(Type type) const noexcept;
+
238 
+
239 
+
244  bool setString(const char* string) noexcept;
+
245 
+
252  bool getString(char* string) const noexcept;
+
253 
+
254 
+
259  void setRect(const Rect& rect) noexcept;
+
260 
+
267  bool getRect(Rect* rect) const noexcept;
+
268 
+
269 
+
274  void setSize(const Size& size) noexcept;
+
275 
+
282  bool getSize(Size* size) const noexcept;
+
283 
+
284 
+
289  void setPoint2i(const Point2i& point) noexcept;
+
290 
+
297  bool getPoint2i(Point2i* point) const noexcept;
+
298 
+
299 
+
304  void setPoint2f(const Point2f& point) noexcept;
+
305 
+
312  bool getPoint2f(Point2f* point) const noexcept;
+
313 
+
318  void setBool(bool x) noexcept;
+
319 
+
326  bool getBool(bool* x) const noexcept;
+
327 
+
328 
+
333  void setInt(int x) noexcept;
+
334 
+
341  bool getInt(int* x) const noexcept;
+
342 
+
343 
+
349  void setInt(int x, int y) noexcept;
+
350 
+
358  bool getInt(int* x, int* y) const noexcept;
+
359 
+
360 
+
367  void setInt(int x, int y, int z) noexcept;
+
368 
+
377  bool getInt(int* x, int* y, int* z) const noexcept;
+
378 
+
379 
+
387  void setInt(int x, int y, int z, int w) noexcept;
+
388 
+
398  bool getInt(int* x, int* y, int* z, int* w) const noexcept;
+
399 
+
400 
+
405  void setFloat(float x) noexcept;
+
406 
+
413  bool getFloat(float* x) const noexcept;
+
414 
+
415 
+
421  void setFloat(float x, float y) noexcept;
+
422 
+
430  bool getFloat(float* x, float* y) const noexcept;
+
431 
+
432 
+
439  void setFloat(float x, float y, float z) noexcept;
+
440 
+
449  bool getFloat(float* x, float* y, float* z) const noexcept;
+
450 
+
451 
+
459  void setFloat(float x, float y, float z, float w) noexcept;
+
460 
+
470  bool getFloat(float* x, float* y, float* z, float* w) const noexcept;
+
471 
+
472 
+
479  float asFloat(float defaultValue = 0.f) const noexcept;
+
480 
+
481 
+
488  Point2f asPoint2f(const Point2f& defaultValue = Point2f()) const noexcept;
+
489 
+
490 
+
497  bool asBool(bool defaultValue = false) const noexcept;
+
498 
+
499 
+
506  int asInt(int defaultValue = 0) const noexcept;
+
507 
+
508 
+
515  Size asSize(const Size& defaultValue = Size()) const noexcept;
+
516 
+
517 
+
524  Point2i asPoint2i(const Point2i& defaultValue = Point2i()) const noexcept;
+
525 
+
526 
+
533  Rect asRect(const Rect& defaultValue = Rect()) const noexcept;
+
534 
+
535 
+
543  const char* asString(const char* defaultValue = "") const noexcept;
+
544 
+
545  inline Value(const Value& other) = delete;
+
546  Value(Value&& other);
+
547 
+
548  inline Value& operator=(const Value& other) = delete;
+
549  Value& operator=(Value&& other);
+
550 
+
551  void swap(Value& first, Value& second);
+
552 
+
553  ~Value();
+
554  };
+
555 
+
556 
+
558  struct FSDK_API Key {
+
559 
+
561  Key() noexcept;
+
562 
+
568  Key(const char* section, const char* parameter) noexcept;
+
569 
+
574  const char* getSection() const noexcept;
+
575 
+
580  const char* getParameter() const noexcept;
+
581 
+
586  void setSection(const char* section) noexcept;
+
587 
+
592  void setParameter(const char* parameter) noexcept;
+
593 
+
599  bool operator < (const ISettingsProvider::Key& other) const noexcept;
+
600 
+
601  protected:
+
602  static const unsigned int m_bufferLength = 128;
+
603  char m_section [m_bufferLength];
+
604  char m_parameter [m_bufferLength];
+
605  };
+
606 
+
607 
+
609  struct FSDK_API Desc {
+
610 
+
612  Desc() noexcept;
+
613 
+
618  Desc(const char* desc) noexcept;
+
619 
+
624  const char* getDesc() const noexcept;
+
625 
+
630  void setDesc(const char* desc) noexcept;
+
631 
+
632  protected:
+
633  static const unsigned int m_bufferLength = 256;
+
634  char m_desc [m_bufferLength];
+
635  };
+
636 
+
637 
+
639  struct FSDK_API Entry {
+
640 
+
641  Value m_value;
+ +
643 
+
645  Entry() noexcept = default;
+
646 
+
647  Entry(Entry&& right);
+
648 
+
649  Entry& operator=(Entry&& right);
+
650 
+
651  void swap(Entry& first, Entry& second);
+
657  Entry(const Desc& desc, Value&& value) noexcept;
+
658 
+
663  void setDesc(const Desc& desc) noexcept;
+
664 
+
669  void setValue(Value&& value) noexcept;
+
670 
+
675  const Desc& getDesc() const noexcept;
+
676 
+
681  const Value& getValue() const noexcept;
+
682  };
+
683 
+
691  virtual void setDesc(const Key& key, const Desc& desc) noexcept = 0;
+
692 
+
701  void setDesc(
+
702  const char* section,
+
703  const char* parameter,
+
704  const Desc& desc) noexcept;
+
705 
+
713  virtual void setValue(const Key& key, Value&& value) noexcept = 0;
+
714 
+
723  void setValue(
+
724  const char* section,
+
725  const char* parameter,
+
726  Value&& value) noexcept;
+
727 
+
735  virtual void setEntry(const Key& key, Entry&& entry) noexcept = 0;
+
736 
+
745  void setEntry(
+
746  const Key& key,
+
747  const Desc& desc,
+
748  Value&& value) noexcept;
+
749 
+
759  void setEntry(
+
760  const char* section,
+
761  const char* parameter,
+
762  const Desc& desc,
+
763  Value&& value) noexcept;
+
764 
+
772  virtual const Entry& getEntry(const Key& key) const noexcept = 0;
+
773 
+
781  Desc getDesc(const Key& key) const noexcept;
+
782 
+
791  Desc getDesc(const char* section, const char* parameter) const noexcept;
+
792 
+
800  const Value& getValue(const Key& key) const noexcept;
+
801 
+
810  const Value& getValue(const char* section, const char* parameter) const noexcept;
+
811  };
+
812 
+
818  FSDK_API fsdk::ResultValue<fsdk::FSDKError, fsdk::ISettingsProviderPtr>
+
819  createSettingsProvider(const char* path) noexcept;
+
823  template<>
+ +
825 
+
826  static bool isOk(ISettingsProvider::Error error) noexcept {
+
827  return error == ISettingsProvider::Error::Ok;
+
828  }
+
829 
+
830  static const char* toString (ISettingsProvider::Error error) noexcept {
+
831  switch(error) {
+ +
833  return "Ok";
+ +
835  return "Could not allocate memory";
+ +
837  return "Error reading from file";
+ +
839  return "Internal error";
+ +
841  return "Error during document declaration/processing instruction parsing";
+ +
843  return "Parser could not determine tag type";
+ +
845  return "Error during CDATA section parsing";
+ +
847  return "File was not found";
+ +
849  return "Error during PCDATA section parsing";
+ +
851  return "Error during comment parsing";
+ +
853  return "Error during document type declaration parsing";
+ +
855  return "Settings sections is invalid or absent";
+ +
857  return "Error during element attribute parsing";
+ +
859  return "Error during end element tag parsing";
+ +
861  return "Root type is not node_element or node_document";
+ +
863  return "Document without element nodes";
+ +
865  return "Mismatch of start-end tags";
+ +
867  return "Error during start element tag parsing";
+
868  default: return "Unknown error";
+
869  }
+
870  }
+
871  };
+
873 }
+
Could not allocate memory.
+
2D floating point.
Definition: ISettingsProvider.h:124
+
floating point.
Definition: ISettingsProvider.h:123
+
Error
Config parsing error codes.
Definition: ISettingsProvider.h:37
+
3D floating point.
Definition: ISettingsProvider.h:125
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
Unable to append nodes since root type is not node_element or node_document (exclusive to xml_node::a...
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Common data types and structures.
+
Configuration parameter key.
Definition: ISettingsProvider.h:558
+
Definition: ISettingsProvider.h:104
+
Object system types and interfaces.
+
Definition: ISettingsProvider.h:106
+
Common SDK error codes.
+ +
Definition: Result.h:9
+
Parser could not determine tag type.
+
4D floating point.
Definition: ISettingsProvider.h:126
+
Type
Value type.
Definition: ISettingsProvider.h:117
+
Desc m_desc
Parameter description.
Definition: ISettingsProvider.h:642
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
Definition: ISettingsProvider.h:110
+
Value data.
Definition: ISettingsProvider.h:102
+
Definition: ISettingsProvider.h:108
+
There was a mismatch of start-end tags (closing tag had incorrect name, some tag was not closed or th...
+
Parsing error occurred while parsing document declaration/processing instruction. ...
+
Parsing error occurred while parsing document type declaration.
+ +
Parsing error occurred while parsing comment.
+
Definition: ISettingsProvider.h:103
+
Configuration parameter description.
Definition: ISettingsProvider.h:609
+
Definition: ISettingsProvider.h:105
+ +
bool operator<(Version lhs, Version rhs) noexcept
Check if one version is less than another.
Definition: Version.h:36
+
Integer.
Definition: ISettingsProvider.h:119
+
File was not found during load_file()
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
Definition: ISettingsProvider.h:109
+
Definition: ISettingsProvider.h:107
+
4D integer.
Definition: ISettingsProvider.h:122
+
Parsing resulted in a document without element nodes.
+
Parsing error occurred while parsing end element tag.
+
Settings section is invalid or absent.
+ +
2D integer.
Definition: ISettingsProvider.h:120
+
Parsing error occurred while parsing PCDATA section.
+ +
Configuration parameter entry.
Definition: ISettingsProvider.h:639
+
FSDKError
Common SDK error codes.
Definition: FSDKError.h:17
+
Configuration parameter value.
Definition: ISettingsProvider.h:97
+
Parsing error occurred while parsing start element tag.
+
Error reading from file/stream.
+
FSDK_API ResultValue< FSDKError, ISettingsProviderPtr > createSettingsProvider(const char *path) noexcept
Create a settings provider.
+
3D integer.
Definition: ISettingsProvider.h:121
+
Value m_value
Parameter value.
Definition: ISettingsProvider.h:641
+
Unkown value type.
Definition: ISettingsProvider.h:118
+ +
Definition: ISettingsProvider.h:111
+
Parsing error occurred while parsing element attribute.
+
Parsing error occurred while parsing CDATA section.
+
SDK settings provider interface.
Definition: ISettingsProvider.h:32
+
+
+ + + + diff --git a/doc/fsdk/html/_i_warper_8h.html b/doc/fsdk/html/_i_warper_8h.html new file mode 100644 index 0000000..c9343e3 --- /dev/null +++ b/doc/fsdk/html/_i_warper_8h.html @@ -0,0 +1,155 @@ + + + + + + +Face Engine SDK: include/fsdk/IWarper.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
IWarper.h File Reference
+
+
+ +

Image and landmarks warping. +More...

+
#include "IDescriptor.h"
+#include <fsdk/Types/Span.h>
+#include <fsdk/vlc/future.h>
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

struct  fsdk::Transformation
 Transformation data structure, used for warping. More...
 
struct  fsdk::IWarper
 Face detection area warper interface. More...
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+

Detailed Description

+

Image and landmarks warping.

+ +
Date
04.10.2017
+
+
+ + + + diff --git a/doc/fsdk/html/_i_warper_8h_source.html b/doc/fsdk/html/_i_warper_8h_source.html new file mode 100644 index 0000000..4baf449 --- /dev/null +++ b/doc/fsdk/html/_i_warper_8h_source.html @@ -0,0 +1,233 @@ + + + + + + +Face Engine SDK: include/fsdk/IWarper.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
IWarper.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include "IDescriptor.h"
+
11 #include <fsdk/Types/Span.h>
+
12 
+
13 #include <fsdk/vlc/future.h>
+
14 
+
15 namespace fsdk {
+
16  struct EyesEstimation;
+
17  struct GazeEstimation;
+
18 }
+
19 
+
20 namespace fsdk {
+
21 
+
22 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
23  DECLARE_SMARTPTR(IWarper);
+
24 #endif
+
25 
+
31  struct Transformation {
+
32  Vector2<float> centerP = {0, 0}; //From 0, scaled
+
33  float angleDeg = 0;
+
34  float scale = 0;
+
35  Vector2<int> detectionTopLeft = {0, 0}; //From 0, original size
+
36 
+
37  bool isValid = false;
+
38  };
+
39 
+
44  struct IWarper : IRefCounted {
+
52  virtual Transformation
+ +
54  const Detection& detection,
+
55  const Landmarks5& landmarks) const noexcept = 0;
+
56 
+
66  virtual Result<FSDKError>
+
67  warp(
+
68  const Image& image,
+
69  const Transformation& transformation,
+
70  Image& transformedImage) const noexcept = 0;
+
71 
+
91  virtual Result<FSDKError>
+
92  warp(
+
93  Span<const Image> images,
+
94  Span<const Transformation> transformations,
+
95  Span<Image> transformedImages) const noexcept = 0;
+
96 
+
107  virtual Result<FSDKError>
+
108  warp(
+
109  const Landmarks5& landmarks,
+
110  const Transformation& transformation,
+
111  Landmarks5& transformedLandmarks) const noexcept = 0;
+
112 
+
123  virtual Result<FSDKError>
+
124  warp(
+
125  const Landmarks68& landmarks68,
+
126  const Transformation& transformation,
+
127  Landmarks68& transformedLandmarks68) const noexcept = 0;
+
128 
+
140  virtual Result<FSDKError>
+
141  unwarp(
+
142  const EyesEstimation& eyesEstimationInWarpCoordinates,
+
143  const Transformation& transformation,
+
144  EyesEstimation& eyesEstimation) const noexcept = 0;
+
145 
+
154  virtual Result<FSDKError>
+
155  unwarp(
+
156  const Landmarks5& warpedLandmarks5,
+
157  const Transformation& transformation,
+
158  Landmarks5& landmarks5) const noexcept = 0;
+
159 
+
168  virtual Result<FSDKError>
+
169  unwarp(
+
170  const Landmarks68& warpedLandmarks68,
+
171  const Transformation& transformation,
+
172  Landmarks68& landmarks68) const noexcept = 0;
+
173 
+
174  virtual Result<FSDKError>
+
175  unwarp(
+
176  const GazeEstimation& warpedAngles,
+
177  const Transformation& transformation,
+
178  GazeEstimation& angles
+
179  ) const noexcept = 0;
+
180 
+
184  using ImageBatch = std::vector<Image>;
+
185  using ImageBatchFuture = vlc::future<ImageBatch>;
+
186 
+
199  virtual ImageBatchFuture warpAsync(
+
200  Span<const Image> images,
+
201  Span<const Transformation> transformations) const = 0;
+
202  };
+
203 
+
204 }
+
Transformation data structure, used for warping.
Definition: IWarper.h:31
+
#define DECLARE_SMARTPTR(X)
Smart ptr declaration helper macro.
Definition: Def.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Face landmarks template structure.
Definition: Landmarks.h:20
+
Face detection area warper interface.
Definition: IWarper.h:44
+
Eyes estimation output.
Definition: IEyeEstimator.h:18
+
Base strong reference counted object interface.
Definition: IRefCounted.h:36
+
virtual Transformation createTransformation(const Detection &detection, const Landmarks5 &landmarks) const noexcept=0
Create transformation data struct.
+
virtual Result< FSDKError > unwarp(const EyesEstimation &eyesEstimationInWarpCoordinates, const Transformation &transformation, EyesEstimation &eyesEstimation) const noexcept=0
Warp irisLandmarks in EyesEstimation struct for both eyes.
+
Descriptor extractor and matcher interfaces.
+
virtual Result< FSDKError > warp(const Image &image, const Transformation &transformation, Image &transformedImage) const noexcept=0
Warp image.
+
Image.
Definition: Image.h:38
+
virtual ImageBatchFuture warpAsync(Span< const Image > images, Span< const Transformation > transformations) const =0
Asynchronously warp faces on multiple images.
+
std::vector< Image > ImageBatch
Common aliases for IWarper asynchronous interface.
Definition: IWarper.h:184
+
Detection structure. Stores a detected bounding box within a source image rect.
Definition: Detection.h:10
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+ +
+
+ + + + diff --git a/doc/fsdk/html/_image_8h_source.html b/doc/fsdk/html/_image_8h_source.html new file mode 100644 index 0000000..92a8b56 --- /dev/null +++ b/doc/fsdk/html/_image_8h_source.html @@ -0,0 +1,682 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Image.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Image.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/Def.h>
+
4 #include <fsdk/Types/Format.h>
+
5 #include <fsdk/Types/Rect.h>
+
6 #include <fsdk/Types/Result.h>
+
7 #include <fsdk/Types/Sizer.h>
+
8 #include <fsdk/Types/SubImage.h>
+
9 
+
10 namespace fsdk
+
11 {
+
12 
+
13  struct IArchive;
+
14 
+
38  struct Image {
+
39 
+
43  enum class Type: uint8_t {
+
44  BMP,
+
45  JPG,
+
46  PNG,
+
47  PPM,
+
48  TIFF,
+
49  Unknown
+
50  };
+
51 
+
55  enum class TargetDevice {
+
56  CPU,
+
57  GPU,
+
58  NPU,
+
59  };
+
60 
+
67  enum class ImageCompression {
+ + + + + +
73  };
+
77  enum class Error: uint32_t {
+
78  Ok,
+
79  InvalidWidth,
+ + + +
83  InvalidImage,
+ +
85  InvalidPath,
+
86  InvalidType,
+ + + + + + +
93  FailedToSave,
+
94  FailedToLoad,
+ + +
97  };
+
98 
+
104  enum class MemoryResidence: uint32_t {
+
105  MemoryCPU,
+
106  MemoryGPU,
+
107  MemoryNPU,
+
108  MemoryNPU_DPP,
+
109  };
+
110 
+
113  FSDK_API Image() noexcept;
+
114 
+
125  FSDK_API Image(
+
126  int width,
+
127  int height,
+
128  Format format,
+
129  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
130  int deviceId = 0) noexcept;
+
131 
+
144  FSDK_API Image(
+
145  int width,
+
146  int height,
+
147  Format format,
+
148  const void* data,
+
149  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
150  int deviceId = 0) noexcept;
+
151 
+
169  FSDK_API Image(
+
170  int width,
+
171  int height,
+
172  Format format,
+
173  void* data,
+
174  bool copy,
+
175  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
176  int deviceId = 0) noexcept;
+
177 
+
182  FSDK_API Image(const Image& other) noexcept;
+
183 
+
188  FSDK_API Image(Image&& other) noexcept;
+
189 
+
195  FSDK_API explicit Image(const SubImage& subImage) noexcept;
+
196 
+
197  FSDK_API ~Image();
+
198 
+ +
214  int width,
+
215  int height,
+
216  Format format,
+
217  bool cleanup = true,
+
218  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
219  int deviceId = 0) noexcept;
+
220 
+ +
237  int width,
+
238  int height,
+
239  Format format,
+
240  const void* data,
+
241  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
242  int deviceId = 0) noexcept;
+
243 
+ +
264  int width,
+
265  int height,
+
266  Format format,
+
267  void* data,
+
268  bool copy,
+
269  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
270  int deviceId = 0) noexcept;
+
271 
+
281  FSDK_API Result<Error> create(const fsdk::Image& source, MemoryResidence residence, int deviceId = 0) noexcept;
+
282 
+ +
301  int width,
+
302  int height,
+
303  Format format,
+
304  const void* data,
+
305  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
306  int deviceId = 0) noexcept;
+
307 
+ +
330  int width,
+
331  int height,
+
332  Format format,
+
333  void* data,
+
334  bool copy,
+
335  MemoryResidence residence = MemoryResidence::MemoryCPU,
+
336  int deviceId = 0) noexcept;
+
337 
+
343  FSDK_API Result<Error> set(const Image& other) noexcept;
+
344 
+
350  FSDK_API Result<Error> set(const SubImage& subImage) noexcept;
+
351 
+
364  FSDK_API SubImage map(int x, int y, int width, int height) const noexcept;
+
365 
+
373  SubImage map(const Rect& rect) const noexcept {
+
374  return map(rect.x, rect.y, rect.width, rect.height);
+
375  }
+
376 
+
386  SubImage map(const Size& size) const noexcept {
+
387  return map(Point2i(0, 0), size);
+
388  }
+
389 
+
398  SubImage map(const Point2i& origin, const Size& size) const noexcept {
+
399  return map(origin.x, origin.y, size.x, size.y);
+
400  }
+
401 
+
415  FSDK_API Image extract(int x, int y, int width, int height) const noexcept;
+
416 
+
425  Image extract(const Rect& rect) const noexcept {
+
426  return extract(rect.x, rect.y, rect.width, rect.height);
+
427  }
+
428 
+
439  Image extract(const Size& size) const noexcept {
+
440  return extract(Point2i(0, 0), size);
+
441  }
+
442 
+
452  Image extract(const Point2i& origin, const Size& size) const noexcept {
+
453  return extract(origin.x, origin.y, size.x, size.y);
+
454  }
+
455 
+
463  FSDK_API static Result<Error> guessTypeFromMemory(const void* data, const uint32_t sizeInBytes, Type& type) noexcept;
+
464 
+
470  Image clone() const noexcept {
+
471  return Image(
+
472  getWidth(),
+
473  getHeight(),
+
474  getFormat(),
+
475  getData());
+
476  }
+
477 
+
496  FSDK_API Result<Image::Error> convert(Image& dest, int x, int y, int width, int height, Format format, TargetDevice device = TargetDevice::CPU) const noexcept;
+
497 
+
512  Result<Image::Error> convert(Image& dest, const Point2i& origin, const Size& size, Format format, TargetDevice device = TargetDevice::CPU) const noexcept {
+
513  return convert(dest, origin.x, origin.y, size.x, size.y, format, device);
+
514  }
+
515 
+
531  Result<Image::Error> convert(Image& dest, const Size& size, Format format, TargetDevice device = TargetDevice::CPU) const noexcept {
+
532  return convert(dest, Point2i(0, 0), size, format, device);
+
533  }
+
534 
+
548  Result<Image::Error> convert(Image& dest, const Rect& rect, Format format, TargetDevice device = TargetDevice::CPU) const noexcept {
+
549  return convert(dest, rect.x, rect.y, rect.width, rect.height, format, device);
+
550  }
+
551 
+
562  Result<Image::Error> convert(Image& dest, Format format, TargetDevice device = TargetDevice::CPU) const noexcept {
+
563  return convert(dest, getRect(), format, device);
+
564  }
+
565 
+
571  FSDK_API Image rescale(float scale) const noexcept;
+
572 
+
583  FSDK_API Result <Image::Error> save(const char* path,
+
584  fsdk::Image::ImageCompression additionalFlag =
+ +
586 
+ +
598  const char* path,
+
599  const Format format) const noexcept;
+
600 
+ +
612  saveToMemory(Image::Type type,
+
613  IArchive* archive,
+
614  fsdk::Image::ImageCompression additionalFlag = fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept;
+
615 
+ +
628  Image::Type type,
+
629  IArchive* archive,
+
630  const Format format) const noexcept;
+
631 
+
644  FSDK_API Result<Error> load(const char* path) noexcept;
+
645 
+ +
656  const char* path,
+
657  const Format format) noexcept;
+
658 
+ +
673  const void* data,
+
674  const uint32_t sizeInBytes) noexcept;
+
675 
+ +
687  const void* data,
+
688  const uint32_t sizeInBytes,
+
689  const Format format) noexcept;
+
690 
+ +
707  const void* data,
+
708  const uint32_t sizeInBytes,
+
709  const Type type) noexcept;
+
710 
+ +
723  const void* data,
+
724  const uint32_t sizeInBytes,
+
725  const Type type,
+
726  const Format format) noexcept;
+
727 
+
731  Image& operator = (const Image& other) noexcept {
+
732  set(other);
+
733 
+
734  return *this;
+
735  }
+
736 
+
740  Image& operator = (Image&& other) noexcept {
+
741  if(this != &other) {
+
742  release();
+
743  swap(other);
+
744  }
+
745 
+
746  return *this;
+
747  }
+
748 
+
750  bool isNull() const noexcept {
+
751  return getData() == nullptr;
+
752  }
+
753 
+
757  bool isValid() const noexcept {
+
758  return !isNull() &&
+
759  getHeight() > 0 &&
+
760  getWidth() > 0 &&
+
761  getFormat().isValid();
+
762  }
+
763 
+
767  operator bool () const noexcept {
+
768  return isValid();
+
769  }
+
770 
+
775  FSDK_API void* getScanLine(int y) noexcept;
+
776 
+
781  FSDK_API const void* getScanLine(int y) const noexcept;
+
782 
+
785  FSDK_API int getDataSize() const noexcept;
+
786 
+
790  FSDK_API void getDataSize(Sizer& sizer) const noexcept;
+
791 
+
796  template<typename T>
+
797  T* getScanLineAs(int y) noexcept {
+
798  return reinterpret_cast<T*>(getScanLine(y));
+
799  }
+
800 
+
805  template<typename T>
+
806  const T* getScanLineAs(int y) const noexcept {
+
807  return reinterpret_cast<const T*>(getScanLine(y));
+
808  }
+
809 
+
812  void* getData() noexcept {
+
813  return m_data;
+
814  }
+
815 
+
818  const void* getData() const noexcept {
+
819  return m_data;
+
820  }
+
821 
+
824  template<typename T>
+
825  T* getDataAs() noexcept {
+
826  return reinterpret_cast<T*>(getData());
+
827  }
+
828 
+
831  template<typename T>
+
832  const T* getDataAs() const noexcept {
+
833  return reinterpret_cast<const T*>(getData());
+
834  }
+
835 
+
837  int getRowSize() const noexcept {
+
838  return getFormat().computePitch(getWidth());
+
839  }
+
840 
+
842  int getWidth() const noexcept {
+
843  return m_width;
+
844  }
+
845 
+
847  int getHeight() const noexcept {
+
848  return m_height;
+
849  }
+
850 
+
852  float getAspectRatio() const noexcept {
+
853  return
+
854  static_cast<float>(getWidth()) /
+
855  static_cast<float>(getHeight());
+
856  }
+
857 
+
859  Format getFormat() const noexcept {
+
860  return m_format;
+
861  }
+
862 
+
863  MemoryResidence getMemoryResidence() const noexcept {
+
864  return m_residence;
+
865  }
+
866 
+
867  int getDeviceId() const noexcept {
+
868  return m_deviceId;
+
869  }
+
870 
+
872  Size getSize() const noexcept {
+
873  return Size(getWidth(), getHeight());
+
874  }
+
875 
+
879  Rect getRect() const noexcept {
+
880  return Rect(0, 0, getWidth(), getHeight());
+
881  }
+
882 
+
887  bool ownsData() const noexcept {
+
888  return !!m_ref;
+
889  }
+
890 
+
895  bool isSharedWith(const Image& other) const noexcept {
+
896  return getData() == other.getData();
+
897  }
+
898 
+
902  void swap(Image& other) noexcept {
+
903  std::swap(m_data, other.m_data);
+
904  std::swap(m_ref, other.m_ref);
+
905  std::swap(m_height, other.m_height);
+
906  std::swap(m_width, other.m_width);
+
907  std::swap(m_format, other.m_format);
+
908  std::swap(m_residence, other.m_residence);
+
909  }
+
910 
+
913  void reset() noexcept {
+
914  Image().swap(*this);
+
915  }
+
916 
+
922  bool equalWeak(const fsdk::Image& other) noexcept {
+
923  return
+
924  m_width == other.getWidth() &&
+
925  m_height == other.getHeight() &&
+
926  m_format == other.getFormat() &&
+
927  m_residence == other.getMemoryResidence();
+
928  }
+
929 
+
935  bool equalStrong(const fsdk::Image& other) noexcept {
+
936  return equalWeak(other) && m_data == other.getData();
+
937  }
+
938 
+
939 
+
940  FSDK_API void putPixel(uint32_t x, uint32_t y) noexcept;
+
941 
+
942  protected:
+
943  void* m_data;
+
944  int* m_ref;
+
945  int m_height;
+
946  int m_width;
+ + +
949  MemoryResidence m_residence;
+
950 
+
955  FSDK_API static void* allocate(int size) noexcept;
+
956 
+
960  FSDK_API static void deallocate(void* memory) noexcept;
+
961 
+
965  FSDK_API int retain() noexcept;
+
966 
+
970  FSDK_API int release() noexcept;
+
971 
+
975  FSDK_API int getRefCount() const noexcept;
+
976  };
+
977 
+
981  template<>
+ +
983 
+
984  static bool isOk(Image::Error error) noexcept {
+
985  return error == Image::Error::Ok;
+
986  }
+
987 
+
988  static const char* toString (Image::Error error) noexcept {
+
989  switch(error) {
+
990  case Image::Error::Ok: return "Ok";
+
991  case Image::Error::InvalidType: return "Unsupported type";
+
992  case Image::Error::InvalidPath: return "Invalid path";
+
993  case Image::Error::FailedToSave: return "Error during image saving";
+
994  case Image::Error::FailedToLoad: return "Error during image loading";
+
995  case Image::Error::InvalidImage: return "Invalid image";
+
996  case Image::Error::InvalidWidth: return "Invalid image width";
+
997  case Image::Error::InvalidHeight: return "Invalid image height";
+
998  case Image::Error::InvalidFormat: return "Unsupported format";
+
999  case Image::Error::InvalidMemory: return "Memory error";
+
1000  case Image::Error::InvalidBitmap: return "Bitmap error";
+
1001  case Image::Error::InvalidArchive: return "Archive error";
+
1002  case Image::Error::InvalidDataPtr: return "Bad input data pointer";
+
1003  case Image::Error::InvalidDataSize: return "Bad input data size";
+
1004  case Image::Error::InvalidConversion: return "Required conversion not implemented";
+
1005  case Image::Error::InvalidDevice: return "Selected Target Device is not supported for this system";
+
1006  case Image::Error::FailedToInitialize: return "Error during initialization";
+
1007  case Image::Error::ReleasedInOtherThread: return "Failed to retain image: it was released in another thread.";
+
1008  default: return "Unknown error";
+
1009  }
+
1010  }
+
1011  };
+
1012 
+ +
1017  using ImageError = Image::Error;
+ + +
1020 
+
1021 }
+
Error at memory opening.
+
medium compression (only for png or jpg)
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
FSDK_API Result< Error > loadFromMemory(const void *data, const uint32_t sizeInBytes) noexcept
Load image from memory.
+
float getAspectRatio() const noexcept
Definition: Image.h:852
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
void reset() noexcept
Reset image contents.
Definition: Image.h:913
+
static FSDK_API void deallocate(void *memory) noexcept
Free memory.
+
Vector2< int > Point2i
Definition: Vector2.h:290
+
bool equalWeak(const fsdk::Image &other) noexcept
Performs weak comparison of this image with other. Weak in this context means only image parameters s...
Definition: Image.h:922
+
Rect getRect() const noexcept
Definition: Image.h:879
+
Image in NPU PreProcessing module memory.
+
Type height
Rectangle height.
Definition: Rect.h:16
+
int m_height
image height.
Definition: Image.h:945
+
FSDK_API Result< Image::Error > convert(Image &dest, int x, int y, int width, int height, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
Convert image format.
+
maximum compression level (only for png or jpg)
+ +
int computePitch(int rowWidth) const noexcept
Compute row size in bytes.
Definition: Format.h:121
+
bool isValid() const noexcept
Definition: Format.h:174
+
Image format.
Definition: Format.h:11
+
bool isNull() const noexcept
Definition: Image.h:750
+
Bad path for saving / loading.
+
FSDK_API Result< Error > load(const char *path) noexcept
Load image from file.
+ +
void * getData() noexcept
Definition: Image.h:812
+
Format getFormat() const noexcept
Definition: Image.h:859
+
const void * getData() const noexcept
Definition: Image.h:818
+
const T * getDataAs() const noexcept
Definition: Image.h:832
+
FSDK_API Result< Image::Error > saveToMemory(Image::Type type, IArchive *archive, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept
Save image to memory buffer.
+
FSDK_API Result< Error > set(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
Initializes an image with provided data. If current image is not empty and it&#39;s size and format match...
+
int getRowSize() const noexcept
Definition: Image.h:837
+
T * getScanLineAs(int y) noexcept
Get image scanline data.
Definition: Image.h:797
+
FSDK_API Image extract(int x, int y, int width, int height) const noexcept
Extract a sub image of this image. The new image will have it&#39;s own reference count.
+
FSDK_API Image rescale(float scale) const noexcept
Rescale image keeping proportions.
+
Definition: Result.h:9
+
Bitmap error occurred.
+
MemoryResidence
Memory residence.
Definition: Image.h:104
+
int getHeight() const noexcept
Definition: Image.h:847
+
Type width
Rectangle width.
Definition: Rect.h:15
+
Conversion not implemented.
+
Format m_format
image format (
Definition: Image.h:948
+
Common SDK definitions.
+
Invalid memory residence.
+ +
SubImage map(const Size &size) const noexcept
Map image contents to a given area.
Definition: Image.h:386
+
bool isSharedWith(const Image &other) const noexcept
Definition: Image.h:895
+
void * m_data
raw image data.
Definition: Image.h:943
+
Result< Image::Error > convert(Image &dest, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
Convert image format.
Definition: Image.h:531
+
FSDK_API Result< Error > create(int width, int height, Format format, bool cleanup=true, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
Initializes an empty image and preallocates storage buffer of given size.
+
int * m_ref
reference counter. nullptr if image does not own data.
Definition: Image.h:944
+
const T * getScanLineAs(int y) const noexcept
Get image scanline data.
Definition: Image.h:806
+
FSDK_API int getRefCount() const noexcept
Obtain reference count.
+
Error during image saving.
+
int m_deviceId
id of the device where image memory is allocated
Definition: Image.h:947
+
FSDK_API SubImage map(int x, int y, int width, int height) const noexcept
Map image contents to a given area.
+
Image extract(const Point2i &origin, const Size &size) const noexcept
Extract a sub image of this image. The new image will have it&#39;s own reference count.
Definition: Image.h:452
+
static FSDK_API void * allocate(int size) noexcept
Allocate memory.
+
Type
Supported image types.
Definition: Image.h:43
+
void swap(Image &other) noexcept
Swap contents with another image.
Definition: Image.h:902
+
Error during image loading.
+
Failed to retain image: it was released in another thread.
+
int m_width
image width.
Definition: Image.h:946
+
Image in Cuda device memory.
+ +
ImageCompression
Supported compression type is used only for jpg and png types.
Definition: Image.h:67
+
Image.
Definition: Image.h:38
+
compression with minimal (or without) quality loss (only for png or jpg image)
+ +
T * getDataAs() noexcept
Definition: Image.h:825
+
FSDK_API int getDataSize() const noexcept
+
Target Device is not supported for this system.
+
Image & operator=(const Image &other) noexcept
Assign other image.
Definition: Image.h:731
+
FSDK_API int release() noexcept
Decrease reference count.
+
Image in Host device memory.
+ +
no compression (only for png or jpg image)
+
Result< Image::Error > convert(Image &dest, const Rect &rect, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
Convert image format.
Definition: Image.h:548
+
Archive interface.
Definition: IObject.h:37
+
SubImage map(const Point2i &origin, const Size &size) const noexcept
Map image contents to a given area.
Definition: Image.h:398
+ +
Image extract(const Size &size) const noexcept
Extract a sub image of this image. The new image will have it&#39;s own reference count.
Definition: Image.h:439
+
Bad input data pointer.
+
FSDK_API Result< Error > loadFromMemoryOfType(const void *data, const uint32_t sizeInBytes, const Type type) noexcept
Load image from memory of specific type.
+
FSDK_API void * getScanLine(int y) noexcept
Get image scanline data.
+
Error
Image error codes.
Definition: Image.h:77
+
bool ownsData() const noexcept
Definition: Image.h:887
+ +
Sub Image.
Definition: SubImage.h:10
+
Result< Image::Error > convert(Image &dest, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
Convert image format.
Definition: Image.h:562
+
FSDK_API Image() noexcept
Initializes an empty image.
+
more than medium compression (only for png or jpg)
+
Error during initialization.
+
Image clone() const noexcept
Create a copy of this image. The new image will have it&#39;s own reference count.
Definition: Image.h:470
+
FSDK_API Result< Image::Error > save(const char *path, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept
Save image.
+ +
TargetDevice
Target device that fsdk::Image algorithms will be running on.
Definition: Image.h:55
+
Image extract(const Rect &rect) const noexcept
Extract a sub image of this image. The new image will have it&#39;s own reference count.
Definition: Image.h:425
+
Helper entity to measure size of dynamic objects in memory.
Definition: Sizer.h:10
+
FSDK_API int retain() noexcept
Increase reference count.
+
Vector2< int > Size
Definition: Vector2.h:299
+
Size getSize() const noexcept
Definition: Image.h:872
+
Type y
Upper left corner y-coordinate.
Definition: Rect.h:14
+ +
int getWidth() const noexcept
Definition: Image.h:842
+
Image in NPU device memory.
+
bool equalStrong(const fsdk::Image &other) noexcept
Performs strong comparison of this image with other. Beside weak comparison strong comparison also ch...
Definition: Image.h:935
+
Type x
Upper left corner x-coordinate.
Definition: Rect.h:13
+
bool isValid() const noexcept
Definition: Image.h:757
+
static FSDK_API Result< Error > guessTypeFromMemory(const void *data, const uint32_t sizeInBytes, Type &type) noexcept
Guess type of image written into memory.
+
+
+ + + + diff --git a/doc/fsdk/html/_landmarks_8h_source.html b/doc/fsdk/html/_landmarks_8h_source.html new file mode 100644 index 0000000..84a5049 --- /dev/null +++ b/doc/fsdk/html/_landmarks_8h_source.html @@ -0,0 +1,204 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Landmarks.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Landmarks.h
+
+
+
1 #pragma once
+
2 
+
3 #include <fsdk/Def.h>
+
4 
+
5 #include "Vector2.h"
+
6 
+
7 #include <iterator>
+
8 #include <cstdint>
+
9 
+
10 namespace fsdk {
+ +
13 
+
19  template<size_t numOfLandmarks>
+
20  struct Landmarks {
+
21  static constexpr uint64_t landmarkCount = numOfLandmarks;
+
22 
+
24  Landmark landmarks[landmarkCount];
+
25 
+
26  Landmarks() = default;
+
27  ~Landmarks() = default;
+
28 
+
29  Landmarks(const Landmarks& cp) {
+
30  *this = cp;
+
31  }
+
32 
+
33  Landmarks(Landmarks&& mv) {
+
34  *this = std::move(mv);
+
35  }
+
36 
+
37  Landmarks& operator=(const Landmarks& cp) {
+
38  std::copy(
+
39  std::begin(cp.landmarks),
+
40  std::end(cp.landmarks),
+
41  std::begin(landmarks));
+
42 
+
43  return *this;
+
44  }
+
45 
+
46  Landmarks& operator=(Landmarks&& mv) {
+
47  std::move(
+
48  std::begin(mv.landmarks),
+
49  std::end(mv.landmarks),
+
50  std::begin(landmarks));
+
51 
+
52  return *this;
+
53  }
+
54  };
+
55 
+ + +
60 
+ +
65  enum {
+ + + + + + +
72  };
+
73  };
+
74 
+
80  Landmarks5 FSDK_API convert(const Landmarks68& landmarks);
+
81 }
+
Enumerates detected landmarks. Only valid for template with 5 landmarks.
Definition: Landmarks.h:64
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
Face landmarks template structure.
Definition: Landmarks.h:20
+
Not a landmark; counts number of detected landmarks.
Definition: Landmarks.h:71
+
Common SDK definitions.
+
Mouth right corner. Same as FL_MOUTH_RIGHT_CORENR.
Definition: Landmarks.h:70
+
Left eye center.
Definition: Landmarks.h:66
+
Landmarks5 FSDK_API convert(const Landmarks68 &landmarks)
convert landmarks68 into landmarks5
+
Right eye center.
Definition: Landmarks.h:67
+
Landmarks< 68 > Landmarks68
alias for structure with 68 landmarks
Definition: Landmarks.h:59
+
Landmarks< 5 > Landmarks5
alias for structure with 5 landmarks
Definition: Landmarks.h:57
+
Nose tip. Same as FL_NOSE_TIP.
Definition: Landmarks.h:68
+
Mouth left corner. Same as FL_MOUTH_LEFT_CORNER.
Definition: Landmarks.h:69
+
Landmark landmarks[landmarkCount]
Detected landmarks.
Definition: Landmarks.h:24
+ +
Vector2< float > Landmark
Landmark floating point coordinates type.
Definition: Landmarks.h:12
+
+
+ + + + diff --git a/doc/fsdk/html/_launch_options_8h_source.html b/doc/fsdk/html/_launch_options_8h_source.html new file mode 100644 index 0000000..01d0d5b --- /dev/null +++ b/doc/fsdk/html/_launch_options_8h_source.html @@ -0,0 +1,162 @@ + + + + + + +Face Engine SDK: include/fsdk/LaunchOptions.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
LaunchOptions.h
+
+
+
1 #pragma once
+
2 
+
3 #include <cstdint>
+
4 
+
5 namespace fsdk {
+
6 
+
11  enum class DeviceClass : int32_t {
+
12  CPU = 0,
+
13 
+
14  GPU = 1,
+
15 
+
16  CPU_ARM = 2,
+
17  CPU_AVX2, // CPU with AVX2/SSE4.2 ISA support
+
18 
+
19  GPU_INT8, // GPU with INT8 inference. Only Pascal+
+
20  CPU_ARM_INT8,
+
21 
+
22  GPU_MOBILE, // GPU for mobiles
+
23 
+
24  NPU_ASCEND,
+
25 
+
26  Invalid = -1
+
27  };
+
28 
+
34  struct LaunchOptions {
+
35  DeviceClass deviceClass = DeviceClass::CPU;
+
36 
+
37  // Cpu options
+
38  bool runConcurrently = true;
+
39 
+
40  //External device options (GPU/NPU etc.)
+
41  //Use defaultGpuDevice from runtime configuration
+
42  static constexpr int32_t defaultDeviceId = -1;
+
43  int32_t deviceId = defaultDeviceId;
+
44  };
+
45 }
+
LaunchOptions struct configures inference options on per-estimator/detector basis, giving user fine grained control over cpu/gpu utilisation.
Definition: LaunchOptions.h:34
+
DeviceClass
DeviceClass specifies which device/instruction set to use for cnn inference.
Definition: LaunchOptions.h:11
+
+
+ + + + diff --git a/doc/fsdk/html/_log_8h.html b/doc/fsdk/html/_log_8h.html new file mode 100644 index 0000000..7abf43d --- /dev/null +++ b/doc/fsdk/html/_log_8h.html @@ -0,0 +1,188 @@ + + + + + + +Face Engine SDK: include/fsdk/Log.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Log.h File Reference
+
+
+ +

Log interfaces. +More...

+
#include <fsdk/Def.h>
+
+

Go to the source code of this file.

+ + + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+ + + + +

+Typedefs

+using fsdk::log::PrintFunction = void(*)(int severity, const char *message)
 Custom print function type.
 
+ + + + +

+Enumerations

enum  Severity {
+  fsdk::log::SV_ERROR =1, +fsdk::log::SV_WARN, +fsdk::log::SV_INFO, +fsdk::log::SV_DEBUG, +
+  fsdk::log::SV_DEFAULT = SV_DEBUG +
+ }
 Log message severity enumeration.
 
+ + + + + + + + + + + + + + + + + + + +

+Functions

FSDK_API void fsdk::log::setPrintFunction (PrintFunction function) noexcept
 Set print function pointer. Default function is made thread-safe with function-local mutex. It means that if you provide your custom print function it's your duty to make it thread safe or not thread safe. More...
 
FSDK_API PrintFunction fsdk::log::getPrintFunction () noexcept
 Get print function pointer. More...
 
FSDK_API PrintFunction fsdk::log::getDefaultPrintFunction () noexcept
 Get default print function pointer. Is thread-safe. More...
 
FSDK_API void fsdk::log::restorePrintFunction () noexcept
 Helper function to restore default print function. This is equivalent to: More...
 
FSDK_API void fsdk::log::setSeverityFilter (int severity) noexcept
 Sets severity logging filter. More...
 
FSDK_API int fsdk::log::getSeverityFilter () noexcept
 Get log severity filter. More...
 
+

Detailed Description

+

Log interfaces.

+ +
Date
20.02.2018
+
+
+ + + + diff --git a/doc/fsdk/html/_log_8h.js b/doc/fsdk/html/_log_8h.js new file mode 100644 index 0000000..faccf39 --- /dev/null +++ b/doc/fsdk/html/_log_8h.js @@ -0,0 +1,17 @@ +var _log_8h = +[ + [ "PrintFunction", "_log_8h.html#ac9865211f90c8279da5c4027af553649", null ], + [ "Severity", "_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ad", [ + [ "SV_ERROR", "_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8adae8c889d368284706aaf4ff25f6ca10a5", null ], + [ "SV_WARN", "_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada7930eb19e00606b675d1134fdfae194e", null ], + [ "SV_INFO", "_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada8cc15ff64a6c56392ce57f74fd21ebd3", null ], + [ "SV_DEBUG", "_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada0c7e2181976713a29d30a446507379cf", null ], + [ "SV_DEFAULT", "_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada5cdd5ba02b03a41e94ddbe516ceac375", null ] + ] ], + [ "getDefaultPrintFunction", "_log_8h.html#a3b95bf4e62d62b8a23c3870158e6cda6", null ], + [ "getPrintFunction", "_log_8h.html#abb8db6df96f6da80a86bc042ac48b849", null ], + [ "getSeverityFilter", "_log_8h.html#ad5bb49e0d3487a9b4ba00f21c9590274", null ], + [ "restorePrintFunction", "_log_8h.html#a7749b5803f17a0b6bf051e9962c90be2", null ], + [ "setPrintFunction", "_log_8h.html#a2513f0c4589afb6021a0a93f03023202", null ], + [ "setSeverityFilter", "_log_8h.html#a4feee1207af3723856efe93af4149a05", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_log_8h_source.html b/doc/fsdk/html/_log_8h_source.html new file mode 100644 index 0000000..f0f9575 --- /dev/null +++ b/doc/fsdk/html/_log_8h_source.html @@ -0,0 +1,162 @@ + + + + + + +Face Engine SDK: include/fsdk/Log.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Log.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 #include <fsdk/Def.h>
+
10 
+
11 namespace fsdk{
+
12  namespace log {
+
13 
+
17  using PrintFunction = void (*)(int severity, const char* message);
+
18 
+
22  enum Severity
+
23  {
+
24  SV_ERROR=1,
+
25  SV_WARN,
+
26  SV_INFO,
+
27  SV_DEBUG,
+
28 
+
29 #ifndef NDEBUG
+
30  SV_DEFAULT = SV_DEBUG
+
31 #else
+
32  SV_DEFAULT = SV_INFO
+
33 #endif
+
34  };
+
35 
+
43  FSDK_API void setPrintFunction(PrintFunction function) noexcept;
+
44 
+
49  FSDK_API PrintFunction getPrintFunction() noexcept;
+
50 
+
55  FSDK_API PrintFunction getDefaultPrintFunction() noexcept;
+
56 
+
64  FSDK_API void restorePrintFunction() noexcept;
+
65 
+
70  FSDK_API void setSeverityFilter(int severity) noexcept;
+
71 
+
75  FSDK_API int getSeverityFilter() noexcept;
+
76  }
+
77 }
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
Common SDK definitions.
+
+
+ + + + diff --git a/doc/fsdk/html/_multi_error_8h_source.html b/doc/fsdk/html/_multi_error_8h_source.html new file mode 100644 index 0000000..bbebbd1 --- /dev/null +++ b/doc/fsdk/html/_multi_error_8h_source.html @@ -0,0 +1,168 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/MultiError.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
MultiError.h
+
+
+
1 #pragma once
+
2 
+
3 #include "Result.h"
+
4 
+
5 namespace fsdk
+
6 {
+
14  template<
+
15  typename E0,
+
16  typename E1>
+
17  struct MultiError {
+
18  using E0Type = E0;
+
19  using E1Type = E1;
+
20  E0 m_first;
+
21  E1 m_second;
+
22  };
+
23 
+
27  template<
+
28  typename E0,
+
29  typename E1>
+
30  struct ErrorTraits<MultiError<E0, E1>> {
+ + + +
34 
+
35  static bool isOk(ErrorType e) {
+
36  return E0Traits::isOk(e.m_first) && E1Traits::isOk(e.m_second);
+
37  }
+
38  static const char* toString(ErrorType e) {
+
39  if(!E0Traits::isOk(e.m_first))
+
40  return E0Traits::toString(e.m_first);
+
41  return E1Traits::toString(e.m_second);
+
42  }
+
43  };
+
44 
+
45  template<
+
46  typename E0,
+
47  typename E1>
+
48  inline Result<MultiError<E0, E1>> makeMultiResult(E0 error0, E1 error1) {
+
49  return Result<MultiError<E0, E1>>({error0, error1});
+
50  }
+
51 }
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
An error structure designed for functions which can return errors from different enum classes...
Definition: MultiError.h:17
+
Definition: Result.h:9
+
+
+ + + + diff --git a/doc/fsdk/html/_optional_8h_source.html b/doc/fsdk/html/_optional_8h_source.html new file mode 100644 index 0000000..845f3da --- /dev/null +++ b/doc/fsdk/html/_optional_8h_source.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: include/fsdk/Optional.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Optional.h
+
+
+
1 #pragma once
+
2 
+
3 #include "vlc/optional.h"
+
4 
+
5 namespace fsdk {
+
6  template<typename T>
+
7  using Optional = optional<T>;
+
8 }
+
+
+ + + + diff --git a/doc/fsdk/html/_orientation_type_8h_source.html b/doc/fsdk/html/_orientation_type_8h_source.html new file mode 100644 index 0000000..eab08d3 --- /dev/null +++ b/doc/fsdk/html/_orientation_type_8h_source.html @@ -0,0 +1,142 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/OrientationType.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
OrientationType.h
+
+
+
1 #pragma once
+
2 
+
3 #include <cstdint>
+
4 
+
5 namespace fsdk {
+
6 
+
10  enum OrientationType : uint32_t {
+
11  OT_NORMAL = 0,
+
12  OT_LEFT = 1,
+ +
14  OT_RIGHT = 3
+
15  };
+
16 }
+
Image is turned left by 90 deg.
Definition: OrientationType.h:12
+
OrientationType
Estimation of image orientation.
Definition: OrientationType.h:10
+
Normal orientation of image.
Definition: OrientationType.h:11
+
Image is turned right by 90 deg.
Definition: OrientationType.h:14
+
Image is flipped upsidedown.
Definition: OrientationType.h:13
+
+
+ + + + diff --git a/doc/fsdk/html/_rect_8h_source.html b/doc/fsdk/html/_rect_8h_source.html new file mode 100644 index 0000000..4d8d904 --- /dev/null +++ b/doc/fsdk/html/_rect_8h_source.html @@ -0,0 +1,420 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Rect.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Rect.h
+
+
+
1 #pragma once
+
2 
+
3 #include "Vector2.h"
+
4 
+
5 namespace fsdk
+
6 {
+
9  template <typename Type>
+
10  struct BaseRect {
+
11  typedef Type ElementType;
+
12 
+
13  Type x;
+
14  Type y;
+
15  Type width;
+
16  Type height;
+
17 
+
20  BaseRect() noexcept
+
21  : x(0)
+
22  , y(0)
+
23  , width(0)
+
24  , height(0)
+
25  {}
+
26 
+ +
34  Type x_,
+
35  Type y_,
+
36  Type w_,
+
37  Type h_) noexcept
+
38  : x(x_)
+
39  , y(y_)
+
40  , width(w_)
+
41  , height(h_)
+
42  {}
+
43 
+ +
49  const Vector2<Type>& topLeft,
+
50  const Vector2<Type>& bottomRight) noexcept
+
51  {
+ +
53  }
+
54 
+
58  BaseRect(const BaseRect& other) noexcept {
+
59  *this = other;
+
60  }
+
61 
+
62  template <typename OtherType>
+
63  BaseRect(const BaseRect<OtherType>& other) noexcept {
+
64  *this = other;
+
65  }
+
66 
+
69  void setLeft(Type l) noexcept {
+
70  const auto r = right();
+
71  x = l;
+
72  setRight(r);
+
73  }
+
74 
+
77  void setTop(Type t) noexcept {
+
78  const auto b = bottom();
+
79  y = t;
+
80  setBottom(b);
+
81  }
+
82 
+
85  void setRight(Type r) noexcept {
+
86  width = r - x;
+
87  }
+
88 
+
91  void setBottom(Type b) noexcept {
+
92  height = b - y;
+
93  }
+
94 
+
101  static BaseRect coords(Type x0, Type y0, Type x1, Type y1) noexcept {
+
102  return BaseRect(x0, y0, x1-x0, y1-y0);
+
103  }
+
104 
+
110  static float intersectionOverFirstRect(const BaseRect &rect1, const BaseRect &rect2) {
+
111  const float inter = (rect1 & rect2).getArea();
+
112  return inter / rect1.getArea();
+
113  }
+
114 
+
120  static float intersectionOverUnion(const BaseRect& rect1, const BaseRect& rect2) {
+
121  const float inter = (rect1 & rect2).getArea();
+
122  return inter / (rect1.getArea() + rect2.getArea() - inter);
+
123  }
+
124 
+
129  template <typename OtherType>
+
130  BaseRect& operator = (const BaseRect<OtherType>& other) noexcept {
+
131  if(reinterpret_cast<const void*>(this) != reinterpret_cast<const void*>(&other)) {
+
132  x = static_cast<Type>(other.x);
+
133  y = static_cast<Type>(other.y);
+
134  width = static_cast<Type>(other.width);
+
135  height = static_cast<Type>(other.height);
+
136  }
+
137  return *this;
+
138  }
+
139 
+
144  template <typename OtherType>
+
145  bool operator == (const BaseRect<OtherType>& other) const noexcept {
+
146  return
+
147  x == other.x &&
+
148  y == other.y &&
+
149  width == other.width &&
+
150  height == other.height;
+
151  }
+
152 
+
157  template <typename OtherType>
+
158  bool operator != (const BaseRect<OtherType>& other) const noexcept {
+
159  return !(*this == other);
+
160  }
+
161 
+
166  BaseRect operator & (const BaseRect& other) const noexcept {
+
167  BaseRect newRect;
+
168  newRect.x = x > other.x ? x : other.x;
+
169  newRect.y = y > other.y ? y : other.y;
+
170  newRect.width = (x + width < other.x + other.width ? x + width : other.x + other.width) - newRect.x;
+
171  newRect.height = (y + height < other.y + other.height ? y + height : other.y + other.height) - newRect.y;
+
172  if (newRect.width <= 0 || newRect.height <= 0)
+
173  newRect = BaseRect();
+
174  return newRect;
+
175  }
+
176 
+
181  BaseRect operator &= (const BaseRect& other) noexcept {
+
182  if(this != &other)
+
183  *this = *this & other;
+
184 
+
185  return *this;
+
186  }
+
187 
+
192  BaseRect operator | (const BaseRect& other) const noexcept {
+
193  BaseRect newRect;
+
194  newRect.x = x < other.x ? x : other.x;
+
195  newRect.y = y < other.y ? y : other.y;
+
196  newRect.width = (x + width > other.x + other.width ? x + width : other.x + other.width) - newRect.x;
+
197  newRect.height = (y + height > other.y + other.height ? y + height : other.y + other.height) - newRect.y;
+
198 
+
199  return newRect;
+
200  }
+
201 
+
206  BaseRect operator |= (const BaseRect& other) noexcept {
+
207  if(this != &other)
+
208  *this = *this & other;
+
209 
+
210  return *this;
+
211  }
+
212 
+
217  BaseRect operator * (float scaleFactor) const noexcept {
+
218  BaseRect newRect;
+
219  newRect.x = static_cast<Type>(x * scaleFactor);
+
220  newRect.y = static_cast<Type>(y * scaleFactor);
+
221  newRect.width = static_cast<Type>(width * scaleFactor);
+
222  newRect.height = static_cast<Type>(height * scaleFactor);
+
223 
+
224  return newRect;
+
225  }
+
226 
+
231  BaseRect operator / (float scaleFactor) const noexcept {
+
232  BaseRect newRect;
+
233  newRect.x = static_cast<Type>(x / scaleFactor);
+
234  newRect.y = static_cast<Type>(y / scaleFactor);
+
235  newRect.width = static_cast<Type>(width / scaleFactor);
+
236  newRect.height = static_cast<Type>(height / scaleFactor);
+
237 
+
238  return newRect;
+
239  }
+
240 
+ +
242  BaseRect newRect = *this;
+
243  newRect.x += vec.x;
+
244  newRect.y += vec.y;
+
245 
+
246  return newRect;
+
247  }
+
248 
+
249  BaseRect operator - (Vector2<typename BaseRect::ElementType> vec) {
+
250  BaseRect newRect = *this;
+
251  newRect.x -= vec.x;
+
252  newRect.y -= vec.y;
+
253 
+
254  return newRect;
+
255  }
+
256 
+
260  Vector2<Type> size() const noexcept {
+
261  return Vector2<Type>(width, height);
+
262  }
+
263 
+
267  Vector2<Type> topLeft() const noexcept {
+
268  return Vector2<Type>(x, y);
+
269  }
+
270 
+
274  Vector2<Type> center() const noexcept {
+
275  return Vector2<Type>(
+
276  x + width / 2,
+
277  y + height / 2);
+
278  }
+
279 
+
283  Vector2<Type> bottomRight() const noexcept {
+
284  return Vector2<Type>(x + width, y + height);
+
285  }
+
286 
+
290  Type top() const noexcept { return y; }
+
291 
+
295  Type bottom() const noexcept { return y + height; }
+
296 
+
300  Type left() const noexcept { return x; }
+
301 
+
305  Type right() const noexcept { return x + width; }
+
306 
+
311  void set(const Vector2<Type>& topLeft,
+
312  const Vector2<Type>& bottomRight) noexcept {
+
313  x = topLeft.x;
+
314  y = topLeft.y;
+
315  width = bottomRight.x - x;
+
316  height = bottomRight.y - y;
+
317  }
+
318 
+
325  void adjust(Type dx, Type dy, Type dw, Type dh) noexcept {
+
326  x += dx;
+
327  y += dy;
+
328  width += dw;
+
329  height += dh;
+
330  }
+
331 
+
339  BaseRect adjusted(Type dx, Type dy, Type dw, Type dh) const noexcept {
+
340  BaseRect rect(*this);
+
341  rect.adjust(dx, dy, dw, dh);
+
342  return rect;
+
343  }
+
344 
+
348  Type getArea() const noexcept { return width * height; }
+
349 
+
354  bool inside(const BaseRect& other) const noexcept {
+
355  return
+
356  topLeft() >= other.topLeft() &&
+
357  bottomRight() <= other.bottomRight();
+
358  }
+
359 
+
360 
+
366  bool isValid() const noexcept {
+
367  return width > 0 && height > 0;
+
368  }
+
369  };
+
370 
+
376  template <typename Type>
+
377  BaseRect<Type> centerScale(const BaseRect<Type>& in, float scaleFactor) noexcept {
+
378  BaseRect<Type> out;
+
379  out.x = in.x - 0.5*(scaleFactor-1)*in.width;
+
380  out.y = in.y - 0.5*(scaleFactor-1)*in.height;
+
381  out.width = in.width * scaleFactor;
+
382  out.height = in.height * scaleFactor;
+
383  return out;
+
384  }
+
385 
+
386  using Rect = BaseRect<int>;
+
387  using FloatRect = BaseRect<float>;
+
388 }
+
void setBottom(Type b) noexcept
Set rect bottom.
Definition: Rect.h:91
+
Type height
Rectangle height.
Definition: Rect.h:16
+
BaseRect() noexcept
Initializes a default invalid rectangle.
Definition: Rect.h:20
+
Vector2< Type > size() const noexcept
Gets rect size (width, height).
Definition: Rect.h:260
+
bool inside(const BaseRect &other) const noexcept
Checks whether this rect is inside of another rect.
Definition: Rect.h:354
+
static BaseRect coords(Type x0, Type y0, Type x1, Type y1) noexcept
Create new Rect by coordinates.
Definition: Rect.h:101
+
Vector2< Type > center() const noexcept
Gets rect center coordinates.
Definition: Rect.h:274
+
Type left() const noexcept
Gets rect left x coordinate.
Definition: Rect.h:300
+
BaseRect & operator=(const BaseRect< OtherType > &other) noexcept
Copies another rect.
Definition: Rect.h:130
+
Type width
Rectangle width.
Definition: Rect.h:15
+
Type getArea() const noexcept
Computes rect area (width x height).
Definition: Rect.h:348
+
void setLeft(Type l) noexcept
Set rect left.
Definition: Rect.h:69
+
T x
x coordinate.
Definition: Vector2.h:12
+
BaseRect(Type x_, Type y_, Type w_, Type h_) noexcept
Initializes a rectangle with given values.
Definition: Rect.h:33
+
bool isValid() const noexcept
Checks whether a rect is valid.
Definition: Rect.h:366
+
void adjust(Type dx, Type dy, Type dw, Type dh) noexcept
Adjusts the rect by given amounts.
Definition: Rect.h:325
+
BaseRect operator|=(const BaseRect &other) noexcept
Returns minimum area rectangle containing both rects.
Definition: Rect.h:206
+
BaseRect(const BaseRect &other) noexcept
Copies another rect.
Definition: Rect.h:58
+
BaseRect operator*(float scaleFactor) const noexcept
Multiplicates Rect scale by specified scale factor.
Definition: Rect.h:217
+
BaseRect(const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexcept
Initializes a rectangle with given values.
Definition: Rect.h:48
+
Vector2< Type > topLeft() const noexcept
Gets rect top-left corner coordinates.
Definition: Rect.h:267
+
bool operator!=(const BaseRect< OtherType > &other) const noexcept
Checks whether two rects are not equal.
Definition: Rect.h:158
+
Type bottom() const noexcept
Gets rect bottom y coordinate.
Definition: Rect.h:295
+
static float intersectionOverFirstRect(const BaseRect &rect1, const BaseRect &rect2)
Calculates rects intersection rate over first rect.
Definition: Rect.h:110
+
BaseRect operator|(const BaseRect &other) const noexcept
Returns minimum area rectangle containing both rects.
Definition: Rect.h:192
+
void setRight(Type r) noexcept
Set rect right.
Definition: Rect.h:85
+
bool operator==(const BaseRect< OtherType > &other) const noexcept
Checks whether two rects are equal.
Definition: Rect.h:145
+
void setTop(Type t) noexcept
Set rect top.
Definition: Rect.h:77
+
static float intersectionOverUnion(const BaseRect &rect1, const BaseRect &rect2)
Calculates rects intersection rate over union.
Definition: Rect.h:120
+
BaseRect< Type > centerScale(const BaseRect< Type > &in, float scaleFactor) noexcept
scale rect out of center
Definition: Rect.h:377
+
BaseRect operator/(float scaleFactor) const noexcept
Divides Rect scale by specified scale factor.
Definition: Rect.h:231
+
BaseRect adjusted(Type dx, Type dy, Type dw, Type dh) const noexcept
Copies and adjusts the rect by given amounts.
Definition: Rect.h:339
+
Vector2< Type > bottomRight() const noexcept
Gets rect bottom-right corner coordinates.
Definition: Rect.h:283
+
BaseRect operator&=(const BaseRect &other) noexcept
Returns rect that is intersection of rects.
Definition: Rect.h:181
+
BaseRect operator&(const BaseRect &other) const noexcept
Returns rect that is intersection of rects.
Definition: Rect.h:166
+
Rectangle.
Definition: Rect.h:10
+
Type top() const noexcept
Gets rect top y coordinate.
Definition: Rect.h:290
+
T y
y coordinate.
Definition: Vector2.h:13
+
void set(const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexcept
Sets rect corner coordinates.
Definition: Rect.h:311
+
Type right() const noexcept
Gets rect right x coordinate.
Definition: Rect.h:305
+
Type y
Upper left corner y-coordinate.
Definition: Rect.h:14
+
Generic 2D vector.
Definition: Vector2.h:11
+
Type x
Upper left corner x-coordinate.
Definition: Rect.h:13
+
+
+ + + + diff --git a/doc/fsdk/html/_ref_8h_source.html b/doc/fsdk/html/_ref_8h_source.html new file mode 100644 index 0000000..fb31362 --- /dev/null +++ b/doc/fsdk/html/_ref_8h_source.html @@ -0,0 +1,317 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Ref.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Ref.h
+
+
+
1 #pragma once
+
2 
+
3 #include <cassert>
+
4 #include <type_traits>
+
5 
+
6 #include "RefBase.h"
+
7 #include <fsdk/Def.h>
+
8 
+
9 namespace fsdk
+
10 {
+
11 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
12 
+
13  /* Forward declarations. */
+
14  template<typename T> struct WeakRef;
+
15 
+
16 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
17 
+
25  template<typename T>
+
26  struct Ref : RefBase<T> {
+
27 
+
31  Ref() noexcept = default;
+
32 
+
35  Ref(std::nullptr_t) noexcept {}
+
36 
+
41  FSDK_DEPRECATED("construction from raw pointer is deprecated, use make_ref function instead")
+
42  explicit Ref(T* ptr) noexcept { *this = ptr; }
+
43 
+
48  Ref(const Ref& other) : RefBase<T>() { *this = other; }
+
49 
+
54  template<class D, typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type>
+
55  explicit Ref(const Ref<D>& other) : RefBase<T>() { *this = other; }
+
56 
+
57  #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
58 
+
62  Ref(const WeakRef<T>& other) noexcept { *this = other; }
+
63 
+
64  #endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
65 
+
68  ~Ref() noexcept {
+
69  reset();
+
70  }
+
71 
+
76  T* operator -> () const noexcept {
+
77  assert(!this->isNull());
+
78  return this->get();
+
79  }
+
80 
+
85  T** getInitReference() noexcept {
+
86  if(this->get())
+
87  this->get()->release();
+
88 
+
89  this->set(nullptr);
+
90 
+
91  return &this->m_ptr;
+
92  }
+
93 
+
98  bool operator == (const Ref& other) const noexcept {
+
99  return this->get() == other.get();
+
100  }
+
101 
+
106  bool operator != (const Ref& other) const noexcept {
+
107  return !(*this == other);
+
108  }
+
109 
+
110  #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
111 
+
116  Ref& operator = (const WeakRef<T>& other) noexcept;
+
117 
+
118  #endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
119 
+
124  Ref& operator = (const Ref& other) noexcept {
+
125  assign(other.get());
+
126  return *this;
+
127  }
+
128 
+
133  template<class D, typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type>
+
134  Ref& operator = (const Ref<D>& other) noexcept {
+
135  assign(other.get());
+
136  return *this;
+
137  }
+
138 
+
144  FSDK_DEPRECATED("Assignment from raw pointer is deprecated, use make_ref function instead")
+
145  Ref& operator = (T* ptr) noexcept {
+
146  assign(ptr);
+
147  return *this;
+
148  }
+
149 
+
154  Ref& operator = (std::nullptr_t) noexcept {
+
155  reset();
+
156  return *this;
+
157  }
+
158 
+
163  Ref& assign(T* ptr) noexcept {
+
164  if(this->get() != ptr)
+
165  {
+
166  if(this->get())
+
167  this->get()->release();
+
168 
+
169  this->set(ptr);
+
170 
+
171  if(this->get())
+
172  this->get()->retain();
+
173  }
+
174 
+
175  return *this;
+
176  }
+
177 
+
181  Ref& acquire(T* ptr) noexcept {
+
182  if(this->get() != ptr)
+
183  {
+
184  if(this->get())
+
185  this->get()->release();
+
186 
+
187  this->set(ptr);
+
188  }
+
189 
+
190  return *this;
+
191  }
+
192 
+
196  Ref& make_ref(T* ptr) noexcept {
+
197  return assign(ptr);
+
198  }
+
199 
+
203  T* reset() noexcept {
+
204  T* ptr = this->get();
+
205  assign(nullptr);
+
206  return ptr;
+
207  }
+
208 
+
212  template<typename S> Ref<S> as() const noexcept {
+
213  Ref<S> ref;
+
214  ref.make_ref(static_cast<S*>(this->get()));
+
215  return ref;
+
216  }
+
217  };
+
218 
+
219 
+
224  template<typename T>
+
225  inline Ref<T> make_ref(T* ptr) noexcept {
+
226  Ref<T> ref;
+
227  ref.make_ref(ptr);
+
228  return ref;
+
229  }
+
230 
+
231 
+
237  template<typename S, typename T>
+
238  inline Ref<S> make_ref_as(T* ptr) noexcept {
+
239  Ref<T> ref;
+
240  ref.make_ref(ptr);
+
241  return ref.template as<S>();
+
242  }
+
243 
+
244 
+
249  template<typename T>
+
250  inline Ref<T> acquire(T* ptr) noexcept {
+
251  Ref<T> ref;
+
252  ref.acquire(ptr);
+
253  return ref;
+
254  }
+
255 
+
256 
+
262  template<typename S, typename T>
+
263  inline Ref<S> acquire_as(T* ptr) noexcept {
+
264  Ref<S> ref;
+
265  ref.acquire(static_cast<S*>(ptr));
+
266  return ref;
+
267  }
+
268 }
+
bool operator==(const Ref &other) const noexcept
Check if two refs are the same.
Definition: Ref.h:98
+
Ref & operator=(const Ref &other) noexcept
Assign a strong reference.
Definition: Ref.h:124
+
Ref & acquire(T *ptr) noexcept
Acquire ownership of the object.
Definition: Ref.h:181
+
Ref< T > make_ref(T *ptr) noexcept
Make smart reference to a IRefCounted based object without acquiring ownership.
Definition: Ref.h:225
+
Ref< S > as() const noexcept
Make smart reference with relative type.
Definition: Ref.h:212
+
Smart pointer for reference counted objects.
Definition: Ref.h:26
+
~Ref() noexcept
Releases reference being held (if any).
Definition: Ref.h:68
+
T * reset() noexcept
Reset reference counted object and assign nullptr to the pointer.
Definition: Ref.h:203
+
bool operator!=(const Ref &other) const noexcept
Check if two refs are not the same.
Definition: Ref.h:106
+
Ref() noexcept=default
Constructor. Initializes object pointer to nullptr.
+
Generic base class of a pointer for reference counted objects.
Definition: RefBase.h:17
+
T * m_ptr
Raw pointer.
Definition: RefBase.h:106
+
Common SDK definitions.
+
void set(T *ptr) noexcept
Replace object pointer without any checks or reference management.
Definition: RefBase.h:101
+
Ref(std::nullptr_t) noexcept
Initializes object pointer to nullptr.
Definition: Ref.h:35
+
bool isNull() const noexcept
Check for nullptr.
Definition: RefBase.h:70
+
Ref & make_ref(T *ptr) noexcept
Create ref without acquiring ownership.
Definition: Ref.h:196
+
Ref(const Ref< D > &other)
Initializes object pointer with other and retains a reference.
Definition: Ref.h:55
+
Ref(const Ref &other)
Initializes object pointer with other and retains a reference.
Definition: Ref.h:48
+
Ref< S > acquire_as(T *ptr) noexcept
Acquire ownership of IRefCounted based object with a cast to a given type.
Definition: Ref.h:263
+
Ref & assign(T *ptr) noexcept
Assign an object. Presumes shared ownership, increases reference count.
Definition: Ref.h:163
+
T ** getInitReference() noexcept
Access pointer for initialization.
Definition: Ref.h:85
+
T * operator->() const noexcept
Access pointer.
Definition: Ref.h:76
+
Ref< S > make_ref_as(T *ptr) noexcept
Make smart reference to a IRefCounted based object without acquiring ownership.
Definition: Ref.h:238
+
Ref< T > acquire(T *ptr) noexcept
Acquire ownership of IRefCounted based object.
Definition: Ref.h:250
+
+
+ + + + diff --git a/doc/fsdk/html/_ref_base_8h_source.html b/doc/fsdk/html/_ref_base_8h_source.html new file mode 100644 index 0000000..3daa79f --- /dev/null +++ b/doc/fsdk/html/_ref_base_8h_source.html @@ -0,0 +1,195 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/RefBase.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
RefBase.h
+
+
+
1 #pragma once
+
2 
+
3 #include <cstddef>
+
4 
+
5 namespace fsdk
+
6 {
+
16  template<typename T>
+
17  struct RefBase {
+
18 
+
21  RefBase() noexcept = default;
+
22 
+
26  explicit RefBase(T* ptr) noexcept : m_ptr(ptr) {}
+
27 
+
32  operator T* () const noexcept {
+
33  return get();
+
34  }
+
35 
+
39  T& operator * () const noexcept {
+
40  assert(!isNull());
+
41  return *get();
+
42  }
+
43 
+
47  operator bool () const noexcept {
+
48  return !isNull();
+
49  }
+
50 
+
55  bool operator == (const RefBase& other) const noexcept {
+
56  return get() == other.get();
+
57  }
+
58 
+
63  bool operator != (const RefBase& other) const noexcept {
+
64  return !(*this == other);
+
65  }
+
66 
+
70  bool isNull() const noexcept {
+
71  return get() == nullptr;
+
72  }
+
73 
+
77  bool isExpired() const noexcept {
+
78  assert(!isNull());
+
79  return get()->getRefCount() == 0;
+
80  }
+
81 
+
85  bool isUnique() const noexcept {
+
86  assert(!isNull());
+
87  return get()->getRefCount() == 1;
+
88  }
+
89 
+
93  T* get() const noexcept {
+
94  return m_ptr;
+
95  }
+
96 
+
101  void set(T* ptr) noexcept {
+
102  m_ptr = ptr;
+
103  }
+
104 
+
105  protected:
+
106  T* m_ptr {nullptr};
+
107  };
+
108 }
+
bool operator!=(const RefBase &other) const noexcept
Check if two refs are not the same.
Definition: RefBase.h:63
+
RefBase() noexcept=default
Initializes object pointer to nullptr.
+
bool isUnique() const noexcept
Check if object has only one strong reference.
Definition: RefBase.h:85
+
RefBase(T *ptr) noexcept
Initializes object pointer with ptr.
Definition: RefBase.h:26
+
Generic base class of a pointer for reference counted objects.
Definition: RefBase.h:17
+
T & operator*() const noexcept
Dereference operator.
Definition: RefBase.h:39
+
T * m_ptr
Raw pointer.
Definition: RefBase.h:106
+
bool isExpired() const noexcept
Check is object is dead.
Definition: RefBase.h:77
+
void set(T *ptr) noexcept
Replace object pointer without any checks or reference management.
Definition: RefBase.h:101
+
bool isNull() const noexcept
Check for nullptr.
Definition: RefBase.h:70
+
bool operator==(const RefBase &other) const noexcept
Check if two refs are the same.
Definition: RefBase.h:55
+
+
+ + + + diff --git a/doc/fsdk/html/_result_8h_source.html b/doc/fsdk/html/_result_8h_source.html new file mode 100644 index 0000000..0635aea --- /dev/null +++ b/doc/fsdk/html/_result_8h_source.html @@ -0,0 +1,194 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Result.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Result.h
+
+
+
1 #pragma once
+
2 
+
3 #include <cstdint>
+
4 
+
5 namespace fsdk
+
6 {
+
7 
+
8  template<typename E>
+
9  struct ErrorTraits
+
10  {
+
11  static bool isOk(E) noexcept {
+
12  return false;
+
13  }
+
14 
+
15  static const char* toString (E) noexcept {
+
16  return "NOT AVAILABLE";
+
17  }
+
18  };
+
19 
+
28  template<typename E>
+
29  struct Result
+
30  {
+
32  using ErrorType = E;
+
33  using Traits = ErrorTraits<E>;
+
34 
+
38  explicit Result(E error) noexcept
+
39  : m_error(error) {}
+
40 
+
43  Result() noexcept
+
44  : m_error(E::Ok) {}
+
45 
+
49  E getError() const noexcept {
+
50  return m_error;
+
51  }
+
52 
+
56  bool isError() const noexcept {
+
57  return !isOk();
+
58  }
+
59 
+
63  bool isOk() const noexcept {
+
64  return Traits::isOk(m_error);
+
65  }
+
66 
+
70  operator bool () const noexcept {
+
71  return isOk();
+
72  }
+
73 
+
79  const char* what() const noexcept {
+
80  return Traits::toString(getError());
+
81  }
+
82 
+
83  private:
+
84  E m_error;
+
85  };
+
86 
+
87  template<typename E>
+
88  inline Result<E> makeResult(E error) noexcept {
+
89  return Result<E>(error);
+
90  }
+
91 }
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+
Definition: Result.h:9
+
const char * what() const noexcept
Gets a textual description of the result.
Definition: Result.h:79
+ +
Result(E error) noexcept
Initializes result.
Definition: Result.h:38
+
E getError() const noexcept
Gets actual result value.
Definition: Result.h:49
+
bool isError() const noexcept
Checks for an error.
Definition: Result.h:56
+
Result() noexcept
Initializes result by default.
Definition: Result.h:43
+
R ErrorType
Result value enumeration type.
Definition: Result.h:32
+
bool isOk() const noexcept
Checks for a success.
Definition: Result.h:63
+
+
+ + + + diff --git a/doc/fsdk/html/_result_value_8h_source.html b/doc/fsdk/html/_result_value_8h_source.html new file mode 100644 index 0000000..54386f8 --- /dev/null +++ b/doc/fsdk/html/_result_value_8h_source.html @@ -0,0 +1,248 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/ResultValue.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
ResultValue.h
+
+
+
1 #pragma once
+
2 
+
3 #include "Result.h"
+
4 
+
5 #include <type_traits>
+
6 #include <utility>
+
7 #include <cassert>
+
8 
+
9 namespace fsdk
+
10 {
+
21  template<
+
22  typename R,
+
23  typename V,
+
24  class Enable = void>
+
25  struct ResultValue: Result<R> {};
+
26 
+
27  template<
+
28  typename R,
+
29  typename V>
+
30  struct ResultValue<R, V, typename std::enable_if<std::is_copy_constructible<V>::value>::type>
+
31  : Result<R>
+
32  {
+
34  typedef R EnumType;
+
35 
+
37  typedef V ValueType;
+
38 
+
42  ResultValue(R result) noexcept
+
43  : Result<R>(result)
+
44  {}
+
45 
+
50  ResultValue(R result, const V& value) noexcept
+
51  : Result<R>(result)
+
52  , m_value(value)
+
53  {}
+
54 
+
59  ResultValue(R result, V&& value) noexcept
+
60  : Result<R>(result)
+
61  , m_value(std::move(value))
+
62  {}
+
63 
+
68  const V& getValue() const noexcept {
+
69  assert(this->isOk() && "Acessing value of erroneous result.");
+
70  return m_value;
+
71  }
+
72 
+
79  V&& takeValue() noexcept {
+
80  return std::move(m_value);
+
81  }
+
82 
+
87  const V* operator -> () const noexcept {
+
88  return &getValue();
+
89  }
+
90 
+
91  protected:
+
92  V m_value;
+
93  };
+
94 
+
104  template<
+
105  typename R,
+
106  typename V>
+
107  struct ResultValue<R, V, typename std::enable_if<std::is_copy_constructible<V>::value == false>::type>
+
108  : Result<R>
+
109  {
+
111  typedef R EnumType;
+
112 
+
114  typedef V ValueType;
+
115 
+
119  ResultValue(R result) noexcept
+
120  : Result<R>(result)
+
121  {}
+
122 
+
127  ResultValue(R result, V&& value) noexcept
+
128  : Result<R>(result)
+
129  , m_value(std::move(value))
+
130  {}
+
131 
+
136  const V& getValue() const noexcept {
+
137  assert(this->isOk() && "Acessing value of erroneous result.");
+
138  return m_value;
+
139  }
+
140 
+
147  V&& takeValue() noexcept {
+
148  return std::move(m_value);
+
149  }
+
150 
+
155  const V* operator -> () const noexcept {
+
156  return &getValue();
+
157  }
+
158 
+
159  protected:
+ +
161  };
+
162 
+
173  template<
+
174  typename R,
+
175  typename V>
+
176  inline ResultValue<R,
+
177  typename std::remove_const<typename std::remove_reference<V>::type>::type>
+
178  makeResultValue(R result, V&& value) noexcept {
+
179  return ResultValue<R,
+
180  typename std::remove_const<typename std::remove_reference<V>::type>::type>(
+
181  result,
+
182  std::forward<V>(value));
+
183  }
+
184 }
+ +
V && takeValue() noexcept
Gets result value as rvalue.
Definition: ResultValue.h:147
+
ResultValue(R result, V &&value) noexcept
Initializes result.
Definition: ResultValue.h:59
+
A structure that encapsulates an action result enumeration.
Definition: Result.h:29
+ + +
ResultValue(R result, const V &value) noexcept
Initializes result.
Definition: ResultValue.h:50
+
const V & getValue() const noexcept
Gets result value.
Definition: ResultValue.h:68
+ +
V && takeValue() noexcept
Gets result value as rvalue.
Definition: ResultValue.h:79
+
const V & getValue() const noexcept
Gets result value.
Definition: ResultValue.h:136
+
ResultValue< R, typename std::remove_const< typename std::remove_reference< V >::type >::type > makeResultValue(R result, V &&value) noexcept
Addon for Result to output some value aside the result.
Definition: ResultValue.h:178
+
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:25
+
ResultValue(R result, V &&value) noexcept
Initializes result.
Definition: ResultValue.h:127
+
ResultValue(R result) noexcept
Initializes result.
Definition: ResultValue.h:42
+ +
ResultValue(R result) noexcept
Initializes result.
Definition: ResultValue.h:119
+ +
bool isOk() const noexcept
Checks for a success.
Definition: Result.h:63
+
+
+ + + + diff --git a/doc/fsdk/html/_sizer_8h_source.html b/doc/fsdk/html/_sizer_8h_source.html new file mode 100644 index 0000000..e7d056b --- /dev/null +++ b/doc/fsdk/html/_sizer_8h_source.html @@ -0,0 +1,230 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Sizer.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Sizer.h
+
+
+
1 #pragma once
+
2 
+
3 #include <utility>
+
4 #include <cstddef>
+
5 
+
6 namespace fsdk
+
7 {
+
10  struct Sizer {
+
11 
+
14  Sizer() noexcept {
+
15  reset();
+
16  }
+
17 
+
21  Sizer(const Sizer& other) noexcept {
+
22  *this = other;
+
23  }
+
24 
+
28  void append(size_t bytes) noexcept {
+
29  m_bytes += bytes;
+
30  }
+
31 
+
35  void append(const Sizer& other) noexcept {
+
36  append(other.m_bytes);
+
37  }
+
38 
+
40  void reset() noexcept {
+
41  m_bytes = 0u;
+
42  }
+
43 
+
47  size_t getBytes() const noexcept {
+
48  return m_bytes;
+
49  }
+
50 
+
54  size_t getKBytes() const noexcept {
+
55  return getBytes() >> 10;
+
56  }
+
57 
+
61  size_t getMBytes() const noexcept {
+
62  return getKBytes() >> 10;
+
63  }
+
64 
+
68  size_t getGBytes() const noexcept {
+
69  return getMBytes() >> 10;
+
70  }
+
71 
+
73  operator size_t () const noexcept {
+
74  return m_bytes;
+
75  }
+
76 
+
80  bool isEmpty() const noexcept {
+
81  return m_bytes == 0u;
+
82  }
+
83 
+
87  operator bool () const noexcept {
+
88  return !isEmpty();
+
89  }
+
90 
+
95  Sizer& operator << (size_t bytes) noexcept {
+
96  append(bytes);
+
97  return *this;
+
98  }
+
99 
+
104  Sizer& operator << (const Sizer& other) noexcept {
+
105  append(other);
+
106  return *this;
+
107  }
+
108 
+
113  Sizer& operator = (const Sizer& other) noexcept {
+
114  m_bytes = other.m_bytes;
+
115  return *this;
+
116  }
+
117 
+
122  bool operator == (const Sizer& other) const noexcept {
+
123  return m_bytes == other.m_bytes;
+
124  }
+
125 
+
130  bool operator != (const Sizer& other) const noexcept {
+
131  return !(*this == other);
+
132  }
+
133 
+
137  void swap(Sizer& other) noexcept {
+
138  std::swap(m_bytes, other.m_bytes);
+
139  }
+
140 
+
141  protected:
+
142  size_t m_bytes;
+
143  };
+
144 }
+
145 
+
bool operator!=(const Sizer &other) const noexcept
Check if two sizers are not equal.
Definition: Sizer.h:130
+
void swap(Sizer &other) noexcept
Definition: Sizer.h:137
+
void append(size_t bytes) noexcept
Append bytes to current byte count.
Definition: Sizer.h:28
+
size_t getMBytes() const noexcept
Get current size.
Definition: Sizer.h:61
+
Sizer(const Sizer &other) noexcept
Initializes sizer with another sizer value.
Definition: Sizer.h:21
+
size_t getBytes() const noexcept
Get current size.
Definition: Sizer.h:47
+
size_t m_bytes
Current measured size in bytes.
Definition: Sizer.h:142
+
Sizer() noexcept
Initializes sizer with zero.
Definition: Sizer.h:14
+
size_t getGBytes() const noexcept
Get current size.
Definition: Sizer.h:68
+
Sizer & operator=(const Sizer &other) noexcept
Assign value of another sizer.
Definition: Sizer.h:113
+
void append(const Sizer &other) noexcept
Append other sizer byte count to current byte count.
Definition: Sizer.h:35
+
size_t getKBytes() const noexcept
Get current size.
Definition: Sizer.h:54
+
bool isEmpty() const noexcept
Check whether size is zero.
Definition: Sizer.h:80
+
Sizer & operator<<(size_t bytes) noexcept
Append bytes to current byte count.
Definition: Sizer.h:95
+
void reset() noexcept
Reset byte count to zero.
Definition: Sizer.h:40
+
Helper entity to measure size of dynamic objects in memory.
Definition: Sizer.h:10
+
bool operator==(const Sizer &other) const noexcept
Check if two sizers are equal.
Definition: Sizer.h:122
+
+
+ + + + diff --git a/doc/fsdk/html/_span_8h_source.html b/doc/fsdk/html/_span_8h_source.html new file mode 100644 index 0000000..afa2ee9 --- /dev/null +++ b/doc/fsdk/html/_span_8h_source.html @@ -0,0 +1,290 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Span.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Span.h
+
+
+
1 #pragma once
+
2 
+
3 #include <type_traits>
+
4 #include <cassert>
+
5 
+
6 namespace fsdk {
+
7 
+
13  template<class T>
+
14  class Span
+
15  {
+
16  T* data_ = nullptr;
+
17  std::size_t size_ = 0;
+
18 
+
19  public:
+
20  /* @brief The type of value, including cv qualifiers
+
21  */
+
22  using element_type = T;
+
23 
+
24  /* @brief The type of value of each span element
+
25  */
+
26  using value_type = typename std::remove_const<T>::type;
+
27 
+
28  /* @brief The type of integer used to index the span
+
29  */
+
30  using index_type = std::ptrdiff_t;
+
31 
+
32  /* @brief A pointer to a span element
+
33  */
+
34  using pointer = T*;
+
35 
+
36  /* @brief A reference to a span element
+
37  */
+
38  using reference = T&;
+
39 
+
40  /* @brief The iterator used by the container
+
41  */
+
42  using iterator = pointer;
+
43 
+
44  /* @brief The const pointer used by the container
+
45  */
+
46  using const_pointer = T const*;
+
47 
+
48  /* @brief The const reference used by the container
+
49  */
+
50  using const_reference = T const&;
+
51 
+
52  /* @brief The const iterator used by the container
+
53  */
+
54  using const_iterator = const_pointer;
+
55 
+
56  /* @brief Initializes the empty Span.
+
57  */
+
58  Span() = default;
+
59 
+
60  /* @brief Default copy constructor
+
61  */
+
62  Span(Span const&) = default;
+
63 
+
64  /* @brief Default assignment
+
65  */
+
66  Span& operator=(Span const&) = default;
+
67 
+
72  Span(T* data, std::size_t size)
+
73  : data_(data), size_(size)
+
74  {
+
75  }
+
76 
+
80  template<class ContiguousContainer>
+
81  Span(ContiguousContainer&& container)
+
82  : data_(container.data())
+
83  , size_(container.size())
+
84  {
+
85  }
+
86 
+
90  template<class ContiguousContainer>
+
91  Span& operator=(ContiguousContainer&& container) {
+
92  data_ = container.data();
+
93  size_ = container.size();
+
94  return *this;
+
95  }
+
96 
+
100  reference
+
101  operator[](std::size_t index) {
+
102  assert(index < size_);
+
103  return data_[index];
+
104  }
+
105 
+
109  const_reference
+
110  operator[](std::size_t index) const {
+
111  assert(index < size_);
+
112  return data_[index];
+
113  }
+
114 
+
117  bool
+
118  empty() const {
+
119  return size_ == 0;
+
120  }
+
121 
+
124  pointer
+
125  data() const {
+
126  return data_;
+
127  }
+
128 
+
131  std::size_t
+
132  size() const {
+
133  return getSize();
+
134  }
+
135 
+
138  std::size_t
+
139  getSize() const {
+
140  return size_;
+
141  }
+
142 
+
147  void
+
148  setSize(std::size_t size) {
+
149  size_ = size;
+
150  }
+
151 
+
154  iterator
+
155  begin() {
+
156  return data_;
+
157  }
+
158 
+
161  const_iterator
+
162  begin() const {
+
163  return data_;
+
164  }
+
165 
+
168  const_iterator
+
169  cbegin() const {
+
170  return data_;
+
171  }
+
172 
+
175  iterator
+
176  end() {
+
177  return data_ + size_;
+
178  }
+
179 
+
182  const_iterator
+
183  end() const {
+
184  return data_ + size_;
+
185  }
+
186 
+
189  const_iterator
+
190  cend() const {
+
191  return data_ + size_;
+
192  }
+
193  };
+
194 }
+
Span(ContiguousContainer &&container)
Constructor by contiguous container.
Definition: Span.h:81
+
bool empty() const
Returns true if the span is empty.
Definition: Span.h:118
+
const_iterator begin() const
Returns an const iterator to the beginning of the span.
Definition: Span.h:162
+
reference operator[](std::size_t index)
Square brackets operator for convenient acces to underlying array; param index Array index...
Definition: Span.h:101
+
pointer data() const
Returns a pointer to the beginning of the span.
Definition: Span.h:125
+
Span & operator=(ContiguousContainer &&container)
Assignment operator with contiguous container.
Definition: Span.h:91
+
std::size_t size() const
Returns the number of elements in the span.
Definition: Span.h:132
+
Span(T *data, std::size_t size)
Constructor by pointer and size.
Definition: Span.h:72
+
const_iterator cend() const
Returns an const iterator to one past the end of the span.
Definition: Span.h:190
+
iterator begin()
Returns an iterator to the beginning of the span.
Definition: Span.h:155
+
std::size_t getSize() const
Returns the number of elements in the span.
Definition: Span.h:139
+
const_iterator cbegin() const
Returns an iterator to the beginning of the span.
Definition: Span.h:169
+
const_iterator end() const
Returns an const iterator to one past the end of the span.
Definition: Span.h:183
+
const_reference operator[](std::size_t index) const
Non-modifying square brackets operator for convenient acces to underlying array; param index Array in...
Definition: Span.h:110
+
iterator end()
Returns an iterator to one past the end of the span.
Definition: Span.h:176
+
void setSize(std::size_t size)
Sets the number of elements in the span. Because the span is not owning, this method will no constru...
Definition: Span.h:148
+
Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objec...
Definition: Span.h:14
+
+
+ + + + diff --git a/doc/fsdk/html/_sub_image_8h_source.html b/doc/fsdk/html/_sub_image_8h_source.html new file mode 100644 index 0000000..7abff7e --- /dev/null +++ b/doc/fsdk/html/_sub_image_8h_source.html @@ -0,0 +1,191 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/SubImage.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
SubImage.h
+
+
+
1 #pragma once
+
2 
+
3 namespace fsdk
+
4 {
+
10  struct SubImage
+
11  {
+
12  void* data;
+
13 
+
14  int pitch;
+
15 
+
16  int x;
+
17  int y;
+
18 
+
19  int width;
+
20  int height;
+
21 
+ +
23 
+
26  SubImage() noexcept
+
27  : data(nullptr)
+
28  , pitch(0)
+
29  , x(0), y(0)
+
30  , width(0)
+
31  , height(0) {}
+
32 
+
35  template<typename T>
+
36  T* getDataAs() noexcept {
+
37  return reinterpret_cast<T*>(data);
+
38  }
+
39 
+
42  template<typename T>
+
43  const T* getDataAs() const noexcept {
+
44  return reinterpret_cast<const T*>(data);
+
45  }
+
46 
+
48  Point2i getOrigin() const noexcept {
+
49  return Point2i(x, y);
+
50  }
+
51 
+
53  Size getSize() const noexcept {
+
54  return Size(width, height);
+
55  }
+
56 
+
59  Rect getRect() const noexcept {
+
60  return Rect(x, y, width, height);
+
61  }
+
62  };
+
63 }
+
Size getSize() const noexcept
Definition: SubImage.h:53
+
Vector2< int > Point2i
Definition: Vector2.h:290
+
Image format.
Definition: Format.h:11
+
int x
Sub image origin x coordinate.
Definition: SubImage.h:16
+
int height
Sub image height.
Definition: SubImage.h:20
+
Format format
Sub image format.
Definition: SubImage.h:22
+
int pitch
Number of bytes to the next scanline of the sub image.
Definition: SubImage.h:14
+
int y
Sub image origin y coordinate.
Definition: SubImage.h:17
+
const T * getDataAs() const noexcept
Definition: SubImage.h:43
+
Point2i getOrigin() const noexcept
Definition: SubImage.h:48
+
void * data
Beginning of data sub image data.
Definition: SubImage.h:12
+
int width
Sub image width.
Definition: SubImage.h:19
+
SubImage() noexcept
intializes empty sub image.
Definition: SubImage.h:26
+
Rect getRect() const noexcept
Definition: SubImage.h:59
+
T * getDataAs() noexcept
Definition: SubImage.h:36
+ +
Sub Image.
Definition: SubImage.h:10
+
Vector2< int > Size
Definition: Vector2.h:299
+ +
+
+ + + + diff --git a/doc/fsdk/html/_types_8h.html b/doc/fsdk/html/_types_8h.html new file mode 100644 index 0000000..ea043a0 --- /dev/null +++ b/doc/fsdk/html/_types_8h.html @@ -0,0 +1,149 @@ + + + + + + +Face Engine SDK: include/fsdk/Types.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Types.h File Reference
+
+
+ +

Common data types and structures. +More...

+
#include "Types/Vector2.h"
+#include "Types/Sizer.h"
+#include "Types/Rect.h"
+#include "Types/Format.h"
+#include "Types/SubImage.h"
+#include "Types/Image.h"
+#include "Types/RefBase.h"
+#include "Types/Ref.h"
+#include "Types/WeakRef.h"
+#include "Types/Result.h"
+#include "Types/ResultValue.h"
+#include "Types/Detection.h"
+#include "Types/Landmarks.h"
+#include "Types/MultiError.h"
+#include "Types/Future.h"
+#include "Types/Span.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

Common data types and structures.

+ +
Date
25.06.2014
+
+
+ + + + diff --git a/doc/fsdk/html/_types_8h_source.html b/doc/fsdk/html/_types_8h_source.html new file mode 100644 index 0000000..f726a69 --- /dev/null +++ b/doc/fsdk/html/_types_8h_source.html @@ -0,0 +1,143 @@ + + + + + + +Face Engine SDK: include/fsdk/Types.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Types.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include "Types/Vector2.h"
+
11 #include "Types/Sizer.h"
+
12 #include "Types/Rect.h"
+
13 #include "Types/Format.h"
+
14 #include "Types/SubImage.h"
+
15 #include "Types/Image.h"
+
16 #include "Types/RefBase.h"
+
17 #include "Types/Ref.h"
+
18 #include "Types/WeakRef.h"
+
19 #include "Types/Result.h"
+
20 #include "Types/ResultValue.h"
+
21 #include "Types/Detection.h"
+
22 #include "Types/Landmarks.h"
+
23 #include "Types/MultiError.h"
+
24 #include "Types/Future.h"
+
25 #include "Types/Span.h"
+
+
+ + + + diff --git a/doc/fsdk/html/_vector2_8h_source.html b/doc/fsdk/html/_vector2_8h_source.html new file mode 100644 index 0000000..ea23348 --- /dev/null +++ b/doc/fsdk/html/_vector2_8h_source.html @@ -0,0 +1,316 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/Vector2.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Vector2.h
+
+
+
1 #pragma once
+
2 
+
3 #include <cassert>
+
4 
+
5 namespace fsdk
+
6 {
+
10  template<typename T>
+
11  struct Vector2 {
+
12  T x;
+
13  T y;
+
14 
+
17  Vector2() noexcept
+
18  : x((T)0), y(T(0)) {}
+
19 
+
23  explicit Vector2(T x_) noexcept
+
24  : x(x_), y(x_) {}
+
25 
+
30  Vector2(T x_, T y_) noexcept
+
31  : x(x_), y(y_) {}
+
32 
+
36  template<typename Other>
+
37  Vector2<T>(const Vector2<Other>& other) noexcept {
+
38  *this = other;
+
39  }
+
40 
+
45  template <typename Other>
+
46  Vector2<T>& operator = (const Vector2<Other>& other) noexcept {
+
47  x = static_cast<T>(other.x);
+
48  y = static_cast<T>(other.y);
+
49  return *this;
+
50  }
+
51 
+
52  //Vector2<T>
+
53 
+
58  bool operator == (const Vector2& other) const noexcept {
+
59  return x == other.x &&
+
60  y == other.y;
+
61  }
+
62 
+
67  bool operator != (const Vector2& other) const noexcept {
+
68  return !(*this == other);
+
69  }
+
70 
+
76  bool operator > (const Vector2& other) const noexcept {
+
77  return x > other.x && y > other.y;
+
78  }
+
79 
+
85  bool operator >= (const Vector2& other) const noexcept {
+
86  return x >= other.x && y >= other.y;
+
87  }
+
88 
+
94  bool operator < (const Vector2& other) const noexcept {
+
95  return x < other.x && y < other.y;
+
96  }
+
97 
+
103  bool operator <= (const Vector2& other) const noexcept {
+
104  return x <= other.x && y <= other.y;
+
105  }
+
106 
+
111  T& operator [] (int n) noexcept {
+
112  assert(n < 2);
+
113  if (n == 0)
+
114  return x;
+
115  else
+
116  return y;
+
117  }
+
118 
+
123  const T& operator [] (int n) const noexcept {
+
124  assert(n < 2);
+
125  if (n == 0)
+
126  return x;
+
127  else
+
128  return y;
+
129  }
+
130 
+
134  Vector2 operator - (void) const noexcept {
+
135  return Vector2(-x, -y);
+
136  }
+
137 
+
142  Vector2 operator + (const Vector2& rhs) const noexcept {
+
143  return Vector2(x + rhs.x, y + rhs.y);
+
144  }
+
145 
+
150  Vector2 operator - (const Vector2& rhs) const noexcept {
+
151  return Vector2(x - rhs.x, y - rhs.y);
+
152  }
+
153 
+
158  Vector2 operator * (const Vector2& rhs) const noexcept {
+
159  return Vector2(x * rhs.x, y * rhs.y);
+
160  }
+
161 
+
166  Vector2 operator / (const Vector2& rhs) const noexcept {
+
167  return Vector2(x / rhs.x, y / rhs.y);
+
168  }
+
169 
+
174  Vector2& operator += (const Vector2& rhs) noexcept {
+
175  *this = *this + rhs;
+
176  return *this;
+
177  }
+
178 
+
183  Vector2& operator -= (const Vector2& rhs) noexcept {
+
184  *this = *this - rhs;
+
185  return *this;
+
186  }
+
187 
+
192  Vector2& operator *= (const Vector2& rhs) noexcept {
+
193  *this = *this * rhs;
+
194  return *this;
+
195  }
+
196 
+
201  Vector2& operator /= (const Vector2& rhs) noexcept {
+
202  *this = *this / rhs;
+
203  return *this;
+
204  }
+
205 
+
211  Vector2 operator + (T rhs) const noexcept {
+
212  return Vector2(x + rhs, y + rhs);
+
213  }
+
214 
+
220  Vector2 operator - (T rhs) const noexcept {
+
221  return Vector2(x - rhs, y - rhs);
+
222  }
+
223 
+
229  Vector2 operator * (T rhs) const noexcept {
+
230  return Vector2(x * rhs, y * rhs);
+
231  }
+
232 
+
238  Vector2 operator / (T rhs) const noexcept {
+
239  return Vector2(x / rhs, y / rhs);
+
240  }
+
241 
+
247  Vector2& operator += (T rhs) noexcept {
+
248  *this = *this + rhs;
+
249  return *this;
+
250  }
+
251 
+
257  Vector2& operator -= (T rhs) noexcept {
+
258  *this = *this - rhs;
+
259  return *this;
+
260  }
+
261 
+
267  Vector2& operator *= (T rhs) noexcept {
+
268  *this = *this * rhs;
+
269  return *this;
+
270  }
+
271 
+
277  Vector2& operator /= (T rhs) noexcept {
+
278  *this = *this / rhs;
+
279  return *this;
+
280  }
+
281  };
+
282 
+ +
285 
+ +
288 
+ +
291 
+ +
294 
+ +
297 
+ +
300 }
+
Vector2 & operator*=(const Vector2 &rhs) noexcept
Multiplies (per-element) two vectors.
Definition: Vector2.h:192
+
Vector2 operator*(const Vector2 &rhs) const noexcept
Multiplies (per-element) two vectors.
Definition: Vector2.h:158
+
T & operator[](int n) noexcept
Indexes the vector.
Definition: Vector2.h:111
+
Vector2< int > Point2i
Definition: Vector2.h:290
+
Vector2< T > & operator=(const Vector2< Other > &other) noexcept
Copies another vector.
Definition: Vector2.h:46
+
bool operator<=(const Vector2 &other) const noexcept
Checks if both coordinates are smaller or equal to respective coordinates of another vector...
Definition: Vector2.h:103
+
Vector2 operator+(const Vector2 &rhs) const noexcept
Adds (per-element) two vectors.
Definition: Vector2.h:142
+
Vector2() noexcept
Initializes a vector with zeroes.
Definition: Vector2.h:17
+
T x
x coordinate.
Definition: Vector2.h:12
+
Vector2(T x_) noexcept
Initializes all elements with the same value.
Definition: Vector2.h:23
+
Vector2< unsigned int > Point2u
Definition: Vector2.h:293
+
bool operator==(const Vector2 &other) const noexcept
Checks if two vectors are equal.
Definition: Vector2.h:58
+
bool operator>(const Vector2 &other) const noexcept
Checks if both coordinates are greater then respective coordinates of another vector.
Definition: Vector2.h:76
+
Vector2 operator/(const Vector2 &rhs) const noexcept
Divides (per-element) two vectors.
Definition: Vector2.h:166
+
bool operator<(const Vector2 &other) const noexcept
Checks if both coordinates are smaller then respective coordinates of another vector.
Definition: Vector2.h:94
+
Vector2 & operator/=(const Vector2 &rhs) noexcept
Divides (per-element) two vectors.
Definition: Vector2.h:201
+
T y
y coordinate.
Definition: Vector2.h:13
+
Vector2< double > Point2d
Definition: Vector2.h:287
+
Vector2< float > Point2f
Definition: Vector2.h:284
+
bool operator!=(const Vector2 &other) const noexcept
Checks if two vectors are not equal.
Definition: Vector2.h:67
+
Vector2 & operator+=(const Vector2 &rhs) noexcept
Adds (per-element) two vectors.
Definition: Vector2.h:174
+
Vector2 operator-(void) const noexcept
Negates all elements.
Definition: Vector2.h:134
+
bool operator>=(const Vector2 &other) const noexcept
Checks if both coordinates are greater or equal to respective coordinates of another vector...
Definition: Vector2.h:85
+
Vector2 & operator-=(const Vector2 &rhs) noexcept
Subtracts (per-element) two vectors.
Definition: Vector2.h:183
+
Vector2< int > Size
Definition: Vector2.h:299
+
Vector2< unsigned short > Point2us
Definition: Vector2.h:296
+
Generic 2D vector.
Definition: Vector2.h:11
+
Vector2(T x_, T y_) noexcept
Initializes elements with given value.
Definition: Vector2.h:30
+
+
+ + + + diff --git a/doc/fsdk/html/_version_8h.html b/doc/fsdk/html/_version_8h.html new file mode 100644 index 0000000..1a0cc93 --- /dev/null +++ b/doc/fsdk/html/_version_8h.html @@ -0,0 +1,175 @@ + + + + + + +Face Engine SDK: include/fsdk/Version.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Version.h File Reference
+
+
+ +

SDK version information routines. +More...

+
#include "Def.h"
+#include <cstdint>
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  fsdk::Version
 
+ + + + +

+Namespaces

 fsdk
 SDK namespace.
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

bool fsdk::operator< (Version lhs, Version rhs) noexcept
 Check if one version is less than another. More...
 
bool fsdk::operator== (Version lhs, Version rhs) noexcept
 Check if versions are equal. More...
 
bool fsdk::operator!= (Version lhs, Version rhs) noexcept
 Check if versions are not equal. More...
 
FSDK_API Version fsdk::getVersion () noexcept
 Get FaceEngine version. More...
 
FSDK_API const char * fsdk::getVersionHash () noexcept
 Get FaceEngine commit hash. More...
 
FSDK_API const char * fsdk::getVersionString () noexcept
 Get FaceEngine version string. More...
 
FSDK_API const char * fsdk::getBuildInfo () noexcept
 Get FaceEngine build description. The descripton contains used flags and compler settings. More...
 
+

Detailed Description

+

SDK version information routines.

+ +
Date
11.10.2016
+
+
+ + + + diff --git a/doc/fsdk/html/_version_8h.js b/doc/fsdk/html/_version_8h.js new file mode 100644 index 0000000..70d77fd --- /dev/null +++ b/doc/fsdk/html/_version_8h.js @@ -0,0 +1,10 @@ +var _version_8h = +[ + [ "getBuildInfo", "_version_8h.html#gac221ff93065b829ca0e059f0dfa248e3", null ], + [ "getVersion", "_version_8h.html#gadf18bd918c6a2390201ce2110ef17717", null ], + [ "getVersionHash", "_version_8h.html#gadc959b5a3e56b4c12f7c19e01c8091c7", null ], + [ "getVersionString", "_version_8h.html#ga34ebbd7511e7bda7ace0f6a65d8cea12", null ], + [ "operator!=", "_version_8h.html#ga525b65b20d219073604d14d7d845bf14", null ], + [ "operator<", "_version_8h.html#gad429c6eae9f032debb9416947550009b", null ], + [ "operator==", "_version_8h.html#gaa1f550339ca96028e8c0115d201e02a0", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/_version_8h_source.html b/doc/fsdk/html/_version_8h_source.html new file mode 100644 index 0000000..c4ce9e1 --- /dev/null +++ b/doc/fsdk/html/_version_8h_source.html @@ -0,0 +1,178 @@ + + + + + + +Face Engine SDK: include/fsdk/Version.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Version.h
+
+
+Go to the documentation of this file.
1 
+
8 #pragma once
+
9 
+
10 #include "Def.h"
+
11 #include <cstdint>
+
12 
+
13 namespace fsdk {
+
14 
+
24  struct Version {
+
25  uint8_t major;
+
26  uint8_t minor;
+
27  uint16_t patch;
+
28  };
+
29 
+
36  inline bool operator < (Version lhs, Version rhs) noexcept {
+
37  if (lhs.major < rhs.major)
+
38  return true;
+
39  if (lhs.minor < rhs.minor)
+
40  return true;
+
41  return lhs.patch < rhs.patch;
+
42  }
+
43 
+
50  inline bool operator == (Version lhs, Version rhs) noexcept {
+
51  return lhs.major == rhs.major &&
+
52  lhs.minor == rhs.minor &&
+
53  lhs.patch == rhs.patch;
+
54  }
+
55 
+
62  inline bool operator != (Version lhs, Version rhs) noexcept {
+
63  return !(lhs == rhs);
+
64  }
+
65 
+
70  FSDK_API Version getVersion() noexcept;
+
71 
+
76  FSDK_API const char* getVersionHash() noexcept;
+
77 
+
82  FSDK_API const char* getVersionString() noexcept;
+
83 
+
89  FSDK_API const char* getBuildInfo() noexcept;
+
90  // end of VersionGroup
+
92 }
+
#define FSDK_API
Dummy.
Definition: Def.h:27
+
uint8_t major
Major version number.
Definition: Version.h:25
+
FSDK_API const char * getVersionString() noexcept
Get FaceEngine version string.
+
Definition: Version.h:24
+
bool operator==(Version lhs, Version rhs) noexcept
Check if versions are equal.
Definition: Version.h:50
+
uint8_t minor
Minor version number.
Definition: Version.h:26
+
Common SDK definitions.
+
bool operator<(Version lhs, Version rhs) noexcept
Check if one version is less than another.
Definition: Version.h:36
+
FSDK_API const char * getVersionHash() noexcept
Get FaceEngine commit hash.
+
bool operator!=(Version lhs, Version rhs) noexcept
Check if versions are not equal.
Definition: Version.h:62
+
uint16_t patch
Revision number.
Definition: Version.h:27
+
FSDK_API const char * getBuildInfo() noexcept
Get FaceEngine build description. The descripton contains used flags and compler settings.
+
FSDK_API Version getVersion() noexcept
Get FaceEngine version.
+
+
+ + + + diff --git a/doc/fsdk/html/_weak_ref_8h_source.html b/doc/fsdk/html/_weak_ref_8h_source.html new file mode 100644 index 0000000..9b62d09 --- /dev/null +++ b/doc/fsdk/html/_weak_ref_8h_source.html @@ -0,0 +1,229 @@ + + + + + + +Face Engine SDK: include/fsdk/Types/WeakRef.h Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
WeakRef.h
+
+
+
1 #pragma once
+
2 
+
3 #include "RefBase.h"
+
4 #include "Ref.h"
+
5 
+
6 namespace fsdk
+
7 {
+
8 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
9 
+
17  template<typename T>
+
18  struct WeakRef : RefBase<T> {
+
19 
+
22  WeakRef() noexcept = default;
+
23 
+
26  WeakRef(std::nullptr_t) noexcept {}
+
27 
+
31  explicit WeakRef(T* ptr) noexcept { *this = ptr; }
+
32 
+
36  WeakRef(const WeakRef& other) noexcept { *this = other; }
+
37 
+
41  WeakRef(const Ref<T>& other) noexcept { *this = other; }
+
42 
+
45  ~WeakRef() {
+
46  reset();
+
47  }
+
48 
+
53  WeakRef& operator = (const Ref<T>& other) noexcept {
+
54  return assign(other.get());
+
55  }
+
56 
+
61  WeakRef& operator = (const WeakRef& other) noexcept {
+
62  return assign(other.get());
+
63  }
+
64 
+
70  WeakRef& operator = (T* ptr) noexcept {
+
71  return assign(ptr);
+
72  }
+
73 
+
78  WeakRef& operator = (std::nullptr_t) noexcept {
+
79  reset();
+
80  return *this;
+
81  }
+
82 
+
87  WeakRef& assign(T* ptr) noexcept {
+
88  if(this->get() != ptr)
+
89  {
+
90  if(this->get())
+
91  this->get()->releaseWeak();
+
92 
+
93  this->set(ptr);
+
94 
+
95  if(this->get())
+
96  this->get()->retainWeak();
+
97  }
+
98 
+
99  return *this;
+
100  }
+
101 
+
105  void reset() noexcept {
+
106  assign(nullptr);
+
107  }
+
108 
+
113  Ref<T> lock() const noexcept {
+
114  return (!this->get() || this->isExpired()) ? Ref<T>() : Ref<T>(*this);
+
115  }
+
116 
+
120  template<typename S> WeakRef<S> as() noexcept {
+
121  return WeakRef<S>(static_cast<S*>(this->get()));
+
122  }
+
123  };
+
124 
+
125 
+
130  template<typename T>
+
131  inline WeakRef<T> make_weak_ref(T* ptr) noexcept {
+
132  return WeakRef<T>(ptr);
+
133  }
+
134 
+
135 
+
141  template<typename S, typename T>
+
142  inline WeakRef<S> make_weak_ref_as(T* ptr) noexcept {
+
143  return WeakRef<S>(static_cast<S*>(ptr));
+
144  }
+
145 
+
146  /* Documented elsewhere. */
+
147  template<typename T>
+
148  inline Ref<T>&
+
149  Ref<T>::operator = (const WeakRef<T>& other) noexcept {
+
150  if(this->get() != other.get())
+
151  {
+
152  if(this->get())
+
153  this->get()->release();
+
154 
+
155  this->set(other.get());
+
156 
+
157  // if retainLocked returns 0 or less it means refcounted object was destroyed in some other thread
+
158  if(this->get() && this->get()->retainLocked() < 1)
+
159  this->set(nullptr);
+
160  }
+
161 
+
162  return *this;
+
163  }
+
164 
+
165 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
166 }
+
Ref & operator=(const Ref &other) noexcept
Assign a strong reference.
Definition: Ref.h:124
+
+
+ + + + diff --git a/doc/fsdk/html/annotated.html b/doc/fsdk/html/annotated.html new file mode 100644 index 0000000..7510be8 --- /dev/null +++ b/doc/fsdk/html/annotated.html @@ -0,0 +1,230 @@ + + + + + + +Face Engine SDK: Class List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\NfsdkSDK namespace
 oCIAGSEstimatorApproximate Garbage Score estimator interface
 oCIBestShotQualityEstimatorBestShotQuality estimator interface
 |\CEstimationResultBestShotQualityEstimator output structure
 oCEyesEstimationEyes estimation output
 |\CEyeAttributesEyes attribute structure
 oCEyeCropperEyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input warped image and returns rectangle coordinates of each eye
 |\CEyesRects
 oCIEyeEstimatorEye estimator interface
 oCIGlassesEstimatorGlasses estimator interface
 oCHeadPoseEstimationHead pose estimation output
 oCIHeadPoseEstimatorHead pose angles estimator interface
 oCLivenessOneShotRGBEstimationLiveness OneShotRGB estimation structure
 oCILivenessOneShotRGBEstimatorOneShot RGB Liveness estimator interface
 oCMedicalMaskEstimationMedicalMask estimator output structure. This structure contains the result of estimation (
 oCMedicalMaskEstimationExtendedMedicalMask estimator output structure. This structure contains the result of estimation (
 oCIMedicalMaskEstimatorMedicalMask estimator interface
 oCQualityQuality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:
 oCSubjectiveQualitySubjective Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:
 oCIQualityEstimatorImage quality estimator interface
 oCException
 oCErrorTraits< FSDKError >Specialized for FSDKError
 oCIAsyncContextInterface for running tasks asynchronously
 oCMatchingResultResult of descriptor matching
 oCIDescriptorDescriptor interface
 oCIDescriptorBatchDescriptor batch interface
 oCErrorTraits< IDescriptorBatch::Error >Specialized for DescriptorBatchError
 oCIDescriptorExtractorDescriptor extractor interface
 oCIDescriptorMatcherDescriptor matcher interface
 oCIDetectionComparerInterface of BestDetection comparer. Implement it if you want to use own BestDetection strategy
 oCFunctionDetectionComparerSyntax sugar, allows you to use lambdas to define a BestDetection comparer
 oCIDetectorFace detector interface
 oCIFaceDetectionBatchFace detection result batch interface
 oCIFaceEngineMobileRoot LUNA SDK object interface
 oCIHumanDetectionBatchHuman detection result batch interface
 oCIHumanDetectorHuman body detector interface
 oCIHumanWarperHuman detection area warper interface
 oCSearchResultResult of index search
 oCIStaticDescriptorStorageStatic descriptor storage interface
 oCIDynamicDescriptorStorageDynamic descriptor storage interface
 oCIIndexBase index interface
 oCIDenseIndexDense (read only) index interface
 oCIDynamicIndexDynamic index interface
 oCIProgressTrackerProgress tracker interface
 oCIIndexBuilderIndex builder interface
 oCILicenseLicense objects interface
 oCIArchiveArchive interface
 oCISerializableObjectSerializable object interface
 oCErrorTraits< ISerializableObject::Error >Specialized for ISerializableObject::SerializationError
 oCIDataStorageObjectData storage object interface helper
 oCIRefCountedBase strong reference counted object interface
 oCIResultBatch
 oCISettingsProviderSDK settings provider interface
 |oCDescConfiguration parameter description
 |oCEntryConfiguration parameter entry
 |oCKeyConfiguration parameter key
 |\CValueConfiguration parameter value
 | \CDataValue data
 oCErrorTraits< ISettingsProvider::Error >Specialized for ISettingsProvider::ParseError
 oCTransformationTransformation data structure, used for warping
 oCIWarperFace detection area warper interface
 oCLaunchOptionsLaunchOptions struct configures inference options on per-estimator/detector basis, giving user fine grained control over cpu/gpu utilisation
 oCDetectionDetection structure. Stores a detected bounding box within a source image rect
 oCFace
 oCFormatImage format
 oCNoncopyableHelper class to block copy operator&constructor of its descendants
 oCPromisePromise class to support asynchronous data retrieval Look into std::promise semantics to understand it
 oCFutureFuture class to support asynchronous data retrieval Look into std::future semantics to understand it
 oCErrorTraits< FutureError >Specialized for Future::Error
 oCErrorTraits< PromiseError >Specialized for Promise::Error
 oCHuman
 oCHumanLandmarkHuman keypoints landmark structure
 oCHumanLandmarksHuman keypoints landmarks template structure
 oCImageImage
 oCErrorTraits< Image::Error >Specialized for Image::Error
 oCLandmarksFace landmarks template structure
 oCLandmarks5IndexesEnumerates detected landmarks. Only valid for template with 5 landmarks
 oCMultiErrorAn error structure designed for functions which can return errors from different enum classes
 oCErrorTraits< MultiError< E0, E1 > >Specialized for MultiError
 oCBaseRectRectangle
 oCRefSmart pointer for reference counted objects
 oCRefBaseGeneric base class of a pointer for reference counted objects
 oCErrorTraits
 oCResultA structure that encapsulates an action result enumeration
 oCResultValueAddon for Result to output some value aside the result. Specialization for copiable types
 oCResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >
 oCResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >Addon for Result to output some value aside the result. Specialization for non copiable types
 oCSizerHelper entity to measure size of dynamic objects in memory
 oCSpanSpan. Not owning data view. It incapsulated pointer to the continuous array with one or more T objects
 oCSubImageSub Image
 oCVector2Generic 2D vector
 \CVersion
+
+
+
+ + + + diff --git a/doc/fsdk/html/annotated.js b/doc/fsdk/html/annotated.js new file mode 100644 index 0000000..84fe745 --- /dev/null +++ b/doc/fsdk/html/annotated.js @@ -0,0 +1,4 @@ +var annotated = +[ + [ "fsdk", "namespacefsdk.html", "namespacefsdk" ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/bc_s.png b/doc/fsdk/html/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/doc/fsdk/html/bc_s.png differ diff --git a/doc/fsdk/html/bdwn.png b/doc/fsdk/html/bdwn.png new file mode 100644 index 0000000..940a0b9 Binary files /dev/null and b/doc/fsdk/html/bdwn.png differ diff --git a/doc/fsdk/html/classes.html b/doc/fsdk/html/classes.html new file mode 100644 index 0000000..168ef84 --- /dev/null +++ b/doc/fsdk/html/classes.html @@ -0,0 +1,175 @@ + + + + + + +Face Engine SDK: Class Index + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Class Index
+
+
+
B | D | E | F | H | I | K | L | M | N | P | Q | R | S | T | V
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  B  
+
ISettingsProvider::Value::Data::Float1 (fsdk)   IDynamicDescriptorStorage (fsdk)   IWarper (fsdk)   RefBase (fsdk)   
ISettingsProvider::Value::Data::Float2 (fsdk)   IDynamicIndex (fsdk)   
  K  
+
Result (fsdk)   
BaseRect (fsdk)   ISettingsProvider::Value::Data::Float3 (fsdk)   IEyeEstimator (fsdk)   ResultValue (fsdk)   
  D  
+
ISettingsProvider::Value::Data::Float4 (fsdk)   IFaceDetectionBatch (fsdk)   ISettingsProvider::Key (fsdk)   ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type > (fsdk)   
Format (fsdk)   IFaceEngineMobile (fsdk)   
  L  
+
ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type > (fsdk)   
ISettingsProvider::Value::Data (fsdk)   FunctionDetectionComparer (fsdk)   IGlassesEstimator (fsdk)   
  S  
+
ISettingsProvider::Desc (fsdk)   Future (fsdk)   IHeadPoseEstimator (fsdk)   Landmarks (fsdk)   
Detection (fsdk)   
  H  
+
IHumanDetectionBatch (fsdk)   Landmarks5Indexes (fsdk)   SearchResult (fsdk)   
  E  
+
IHumanDetector (fsdk)   LaunchOptions (fsdk)   Sizer (fsdk)   
HeadPoseEstimation (fsdk)   IHumanWarper (fsdk)   LivenessOneShotRGBEstimation (fsdk)   Span (fsdk)   
ISettingsProvider::Entry (fsdk)   Human (fsdk)   IIndex (fsdk)   
  M  
+
ISettingsProvider::Value::Data::String (fsdk)   
ErrorTraits (fsdk)   HumanLandmark (fsdk)   IIndexBuilder (fsdk)   SubImage (fsdk)   
ErrorTraits< FSDKError > (fsdk)   HumanLandmarks (fsdk)   ILicense (fsdk)   MatchingResult (fsdk)   SubjectiveQuality (fsdk)   
ErrorTraits< FutureError > (fsdk)   
  I  
+
ILivenessOneShotRGBEstimator (fsdk)   MedicalMaskEstimation (fsdk)   
  T  
+
ErrorTraits< IDescriptorBatch::Error > (fsdk)   Image (fsdk)   MedicalMaskEstimationExtended (fsdk)   
ErrorTraits< Image::Error > (fsdk)   IAGSEstimator (fsdk)   IMedicalMaskEstimator (fsdk)   MultiError (fsdk)   Transformation (fsdk)   
ErrorTraits< ISerializableObject::Error > (fsdk)   IArchive (fsdk)   ISettingsProvider::Value::Data::Int1 (fsdk)   
  N  
+
  V  
+
ErrorTraits< ISettingsProvider::Error > (fsdk)   IAsyncContext (fsdk)   ISettingsProvider::Value::Data::Int2 (fsdk)   
ErrorTraits< MultiError< E0, E1 > > (fsdk)   IBestShotQualityEstimator (fsdk)   ISettingsProvider::Value::Data::Int3 (fsdk)   Noncopyable (fsdk)   ISettingsProvider::Value (fsdk)   
ErrorTraits< PromiseError > (fsdk)   IDataStorageObject (fsdk)   ISettingsProvider::Value::Data::Int4 (fsdk)   
  P  
+
Vector2 (fsdk)   
IBestShotQualityEstimator::EstimationResult (fsdk)   IDenseIndex (fsdk)   IProgressTracker (fsdk)   Version (fsdk)   
Exception (fsdk)   IDescriptor (fsdk)   IQualityEstimator (fsdk)   Promise (fsdk)   
EyesEstimation::EyeAttributes (fsdk)   IDescriptorBatch (fsdk)   IRefCounted (fsdk)   
  Q  
+
EyeCropper (fsdk)   IDescriptorExtractor (fsdk)   IResultBatch (fsdk)   
EyesEstimation (fsdk)   IDescriptorMatcher (fsdk)   ISerializableObject (fsdk)   Quality (fsdk)   
EyeCropper::EyesRects (fsdk)   IDetectionComparer (fsdk)   ISettingsProvider (fsdk)   
  R  
+
  F  
+
IDetector (fsdk)   IStaticDescriptorStorage (fsdk)   
Ref (fsdk)   
Face (fsdk)   
+
B | D | E | F | H | I | K | L | M | N | P | Q | R | S | T | V
+
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_function_detection_comparer-members.html b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer-members.html new file mode 100644 index 0000000..377125d --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer-members.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::FunctionDetectionComparer Member List
+
+
+ +

This is the complete list of members for fsdk::FunctionDetectionComparer, including all inherited members.

+ + + + + +
compare(const Image &img, const Detection &a, const Detection &b) const (defined in fsdk::FunctionDetectionComparer)fsdk::FunctionDetectionComparerinlinevirtual
Function typedef (defined in fsdk::FunctionDetectionComparer)fsdk::FunctionDetectionComparer
FunctionDetectionComparer(const Function &function) (defined in fsdk::FunctionDetectionComparer)fsdk::FunctionDetectionComparerinlineexplicit
~IDetectionComparer()=default (defined in fsdk::IDetectionComparer)fsdk::IDetectionComparervirtual
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.html b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.html new file mode 100644 index 0000000..c014288 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.html @@ -0,0 +1,167 @@ + + + + + + +Face Engine SDK: fsdk::FunctionDetectionComparer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::FunctionDetectionComparer Class Reference
+
+
+ +

Syntax sugar, allows you to use lambdas to define a BestDetection comparer. + More...

+ +

#include <IDetector.h>

+
+Inheritance diagram for fsdk::FunctionDetectionComparer:
+
+
+ + +fsdk::IDetectionComparer + +
+ + + + +

+Public Types

+typedef std::function< bool(const
+Image &img, const Detection
+&, const Detection &)> 
Function
 
+ + + + + +

+Public Member Functions

FunctionDetectionComparer (const Function &function)
 
+bool compare (const Image &img, const Detection &a, const Detection &b) const
 
+

Detailed Description

+

Syntax sugar, allows you to use lambdas to define a BestDetection comparer.

+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.js b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.js new file mode 100644 index 0000000..a50d945 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.js @@ -0,0 +1,6 @@ +var classfsdk_1_1_function_detection_comparer = +[ + [ "Function", "classfsdk_1_1_function_detection_comparer.html#a1c9bf99a56409e8fce5f18ccd401aea0", null ], + [ "FunctionDetectionComparer", "classfsdk_1_1_function_detection_comparer.html#ad62076ff1b12d50971f8f636546d864b", null ], + [ "compare", "classfsdk_1_1_function_detection_comparer.html#a435c6427c6ae2eaf48306d07ccf40d4d", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.png b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.png new file mode 100644 index 0000000..b935737 Binary files /dev/null and b/doc/fsdk/html/classfsdk_1_1_function_detection_comparer.png differ diff --git a/doc/fsdk/html/classfsdk_1_1_future-members.html b/doc/fsdk/html/classfsdk_1_1_future-members.html new file mode 100644 index 0000000..a4c3bae --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_future-members.html @@ -0,0 +1,143 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Future< T > Member List
+
+
+ +

This is the complete list of members for fsdk::Future< T >, including all inherited members.

+ + + + + + + + + + + + + + + + +
cancel(const ExecutionPolicy policy) noexceptfsdk::Future< T >
DataType typedeffsdk::Future< T >
Error typedeffsdk::Future< T >
Future() noexceptfsdk::Future< T >
Future(Future &&mv) noexcept (defined in fsdk::Future< T >)fsdk::Future< T >
Noncopyable()=default (defined in fsdk::Noncopyable)fsdk::Noncopyableprivate
operator=(Future &&) noexcept (defined in fsdk::Future< T >)fsdk::Future< T >
state() const noexceptfsdk::Future< T >
swap(Future &first, Future &second) noexceptfsdk::Future< T >static
takeInto(DataType &container) noexceptfsdk::Future< T >
USec typedeffsdk::Future< T >
wait() const noexceptfsdk::Future< T >
waitFor(const USec usec) const noexceptfsdk::Future< T >
~Future() (defined in fsdk::Future< T >)fsdk::Future< T >
~Noncopyable()=default (defined in fsdk::Noncopyable)fsdk::Noncopyableprivate
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_future.html b/doc/fsdk/html/classfsdk_1_1_future.html new file mode 100644 index 0000000..d9a5f80 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_future.html @@ -0,0 +1,378 @@ + + + + + + +Face Engine SDK: fsdk::Future< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Future< T > Class Template Reference
+
+
+ +

Future class to support asynchronous data retrieval Look into std::future semantics to understand it. + More...

+ +

#include <Future.h>

+
+Inheritance diagram for fsdk::Future< T >:
+
+
+ + +fsdk::Noncopyable + +
+ + + + + + + + + + + +

+Public Types

+using USec = int32_t
 Alias for micro seconds type.
 
+using Error = FutureError
 Alias for associated error type.
 
+using DataType = T
 Alias for stored data type.
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Future () noexcept
 Constructor for empty useless shell of a future.
 
Future (Future &&mv) noexcept
 
+Futureoperator= (Future &&) noexcept
 
Result< Errorcancel (const ExecutionPolicy policy) noexcept
 Cancel method. Might be called on some heavy long running task that is not needed anymore. Only makes sense if underlying state is Promised. More...
 
FuturePromiseState state () const noexcept
 Returns current state of future-promise pair. More...
 
Result< ErrortakeInto (DataType &container) noexcept
 Method to retrieve data out of fulfilled future. Only makes sense if current state is Fulfilled. More...
 
Result< Errorwait () const noexcept
 Blocks called thread until internal state changes to Fulfilled, Canceled or Failed. More...
 
Result< ErrorwaitFor (const USec usec) const noexcept
 Blocks called thread until internal state changes to Fulfilled, Canceled or Failed, OR passed time is over. More...
 
+ + + + +

+Static Public Member Functions

+static void swap (Future &first, Future &second) noexcept
 Static method that swaps internal data between two passed futures.
 
+

Detailed Description

+

template<typename T>
+class fsdk::Future< T >

+ +

Future class to support asynchronous data retrieval Look into std::future semantics to understand it.

+
Note
Is not instantiable using this header only.
+
Template Parameters
+ + +
Tdata type to store.
+
+
+

Member Function Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
Result<Error> fsdk::Future< T >::cancel (const ExecutionPolicy policy)
+
+noexcept
+
+ +

Cancel method. Might be called on some heavy long running task that is not needed anymore. Only makes sense if underlying state is Promised.

+
Parameters
+ + +
policyPolicy on how to behave: block till state becomes Canceled or run async.
+
+
+
Returns
Result type containing
+
See Also
Error code.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
FuturePromiseState fsdk::Future< T >::state () const
+
+noexcept
+
+ +

Returns current state of future-promise pair.

+
Returns
Current state
+
See Also
FuturePromiseState.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
Result<Error> fsdk::Future< T >::takeInto (DataTypecontainer)
+
+noexcept
+
+ +

Method to retrieve data out of fulfilled future. Only makes sense if current state is Fulfilled.

+
Parameters
+ + +
containerReference to DataType object to fill with future' data.
+
+
+
Returns
Result type containing
+
See Also
Error code.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Result<Error> fsdk::Future< T >::wait () const
+
+noexcept
+
+ +

Blocks called thread until internal state changes to Fulfilled, Canceled or Failed.

+
Returns
Result type containing
+
See Also
Error code.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
Result<Error> fsdk::Future< T >::waitFor (const USec usec) const
+
+noexcept
+
+ +

Blocks called thread until internal state changes to Fulfilled, Canceled or Failed, OR passed time is over.

+
Parameters
+ + +
usecUpper bound of microseconds to wait.
+
+
+
Returns
Result type containing
+
See Also
Error code.
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_future.js b/doc/fsdk/html/classfsdk_1_1_future.js new file mode 100644 index 0000000..ae9ae8f --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_future.js @@ -0,0 +1,15 @@ +var classfsdk_1_1_future = +[ + [ "DataType", "classfsdk_1_1_future.html#a38f572195de92595cbc6c847fb7470ec", null ], + [ "Error", "classfsdk_1_1_future.html#a9a5efae2498601862b9514b6d58661c6", null ], + [ "USec", "classfsdk_1_1_future.html#ab792dd0d1b8eac18d3a0d875d215575f", null ], + [ "Future", "classfsdk_1_1_future.html#a88569ef592c8f9793067cb1139123aaf", null ], + [ "Future", "classfsdk_1_1_future.html#aad456b58442c956f349975302ebf9c8e", null ], + [ "~Future", "classfsdk_1_1_future.html#a7af716e65c7061f09357215bb6227893", null ], + [ "cancel", "classfsdk_1_1_future.html#aaaed4d6e1ad65c21ac4ac4e547e93f53", null ], + [ "operator=", "classfsdk_1_1_future.html#a942829f2284cae1feebbdeae05e9041d", null ], + [ "state", "classfsdk_1_1_future.html#a2b52e6264dc9fb54d143712efdb783b8", null ], + [ "takeInto", "classfsdk_1_1_future.html#ac30c21fa31a1d66e732bfffada32e03a", null ], + [ "wait", "classfsdk_1_1_future.html#a7e85628150597362aad032ea8029dcf9", null ], + [ "waitFor", "classfsdk_1_1_future.html#ab1da1098643943411046bbe6a718fe74", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/classfsdk_1_1_future.png b/doc/fsdk/html/classfsdk_1_1_future.png new file mode 100644 index 0000000..41c6bb7 Binary files /dev/null and b/doc/fsdk/html/classfsdk_1_1_future.png differ diff --git a/doc/fsdk/html/classfsdk_1_1_i_detection_comparer-members.html b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer-members.html new file mode 100644 index 0000000..fff066c --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDetectionComparer Member List
+
+
+ +

This is the complete list of members for fsdk::IDetectionComparer, including all inherited members.

+ + + +
compare(const Image &img, const Detection &a, const Detection &b) const =0 (defined in fsdk::IDetectionComparer)fsdk::IDetectionComparerpure virtual
~IDetectionComparer()=default (defined in fsdk::IDetectionComparer)fsdk::IDetectionComparervirtual
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.html b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.html new file mode 100644 index 0000000..d2d4034 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.html @@ -0,0 +1,155 @@ + + + + + + +Face Engine SDK: fsdk::IDetectionComparer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDetectionComparer Class Referenceabstract
+
+
+ +

Interface of BestDetection comparer. Implement it if you want to use own BestDetection strategy. + More...

+ +

#include <IDetector.h>

+
+Inheritance diagram for fsdk::IDetectionComparer:
+
+
+ + +fsdk::FunctionDetectionComparer + +
+ + + + +

+Public Member Functions

+virtual bool compare (const Image &img, const Detection &a, const Detection &b) const =0
 
+

Detailed Description

+

Interface of BestDetection comparer. Implement it if you want to use own BestDetection strategy.

+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.js b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.js new file mode 100644 index 0000000..55c2ce7 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.js @@ -0,0 +1,5 @@ +var classfsdk_1_1_i_detection_comparer = +[ + [ "~IDetectionComparer", "classfsdk_1_1_i_detection_comparer.html#a51f3eb717603448dc4429735ad08b738", null ], + [ "compare", "classfsdk_1_1_i_detection_comparer.html#a4d4a586c4ec2d4d1277c4f80a593fc62", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.png b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.png new file mode 100644 index 0000000..1c53d3d Binary files /dev/null and b/doc/fsdk/html/classfsdk_1_1_i_detection_comparer.png differ diff --git a/doc/fsdk/html/classfsdk_1_1_noncopyable-members.html b/doc/fsdk/html/classfsdk_1_1_noncopyable-members.html new file mode 100644 index 0000000..9bfd043 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_noncopyable-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Noncopyable Member List
+
+
+ +

This is the complete list of members for fsdk::Noncopyable, including all inherited members.

+ + + +
Noncopyable()=default (defined in fsdk::Noncopyable)fsdk::Noncopyableprotected
~Noncopyable()=default (defined in fsdk::Noncopyable)fsdk::Noncopyableprotected
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_noncopyable.html b/doc/fsdk/html/classfsdk_1_1_noncopyable.html new file mode 100644 index 0000000..5bfd730 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_noncopyable.html @@ -0,0 +1,148 @@ + + + + + + +Face Engine SDK: fsdk::Noncopyable Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Noncopyable Class Reference
+
+
+ +

Helper class to block copy operator&constructor of its descendants. + More...

+ +

#include <Future.h>

+
+Inheritance diagram for fsdk::Noncopyable:
+
+
+ + +fsdk::Future< T > +fsdk::Promise< T > + +
+

Detailed Description

+

Helper class to block copy operator&constructor of its descendants.

+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_noncopyable.js b/doc/fsdk/html/classfsdk_1_1_noncopyable.js new file mode 100644 index 0000000..70f75d5 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_noncopyable.js @@ -0,0 +1,5 @@ +var classfsdk_1_1_noncopyable = +[ + [ "Noncopyable", "classfsdk_1_1_noncopyable.html#a68197eb84f8a92fe7501b4b3489b41ba", null ], + [ "~Noncopyable", "classfsdk_1_1_noncopyable.html#a24ef5947c407909c3204afa05a8cb4a3", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/classfsdk_1_1_noncopyable.png b/doc/fsdk/html/classfsdk_1_1_noncopyable.png new file mode 100644 index 0000000..07c8101 Binary files /dev/null and b/doc/fsdk/html/classfsdk_1_1_noncopyable.png differ diff --git a/doc/fsdk/html/classfsdk_1_1_promise-members.html b/doc/fsdk/html/classfsdk_1_1_promise-members.html new file mode 100644 index 0000000..48d31f2 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_promise-members.html @@ -0,0 +1,142 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Promise< T > Member List
+
+
+ +

This is the complete list of members for fsdk::Promise< T >, including all inherited members.

+ + + + + + + + + + + + + + + +
cancel() noexceptfsdk::Promise< T >
DataType typedeffsdk::Promise< T >
Error typedeffsdk::Promise< T >
fail() noexceptfsdk::Promise< T >
fulfill(DataType &&promisedData) noexceptfsdk::Promise< T >
future(Result< Error > &error) noexceptfsdk::Promise< T >
Noncopyable()=default (defined in fsdk::Noncopyable)fsdk::Noncopyableprivate
operator=(Promise &&) noexcept (defined in fsdk::Promise< T >)fsdk::Promise< T >
Promise() noexceptfsdk::Promise< T >
Promise(Promise &&) noexcept (defined in fsdk::Promise< T >)fsdk::Promise< T >
state() const noexceptfsdk::Promise< T >
swap(Promise &first, Promise &second) noexceptfsdk::Promise< T >static
~Noncopyable()=default (defined in fsdk::Noncopyable)fsdk::Noncopyableprivate
~Promise() (defined in fsdk::Promise< T >)fsdk::Promise< T >
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_promise.html b/doc/fsdk/html/classfsdk_1_1_promise.html new file mode 100644 index 0000000..e6ffa78 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_promise.html @@ -0,0 +1,367 @@ + + + + + + +Face Engine SDK: fsdk::Promise< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Promise< T > Class Template Reference
+
+
+ +

Promise class to support asynchronous data retrieval Look into std::promise semantics to understand it. + More...

+ +

#include <Future.h>

+
+Inheritance diagram for fsdk::Promise< T >:
+
+
+ + +fsdk::Noncopyable + +
+ + + + + + + + +

+Public Types

+using Error = PromiseError
 Alias for associated error type.
 
+using DataType = T
 Alias for stored data type.
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Promise () noexcept
 Constructor for empty Promise.
 
Promise (Promise &&) noexcept
 
+Promiseoperator= (Promise &&) noexcept
 
Result< Errorcancel () noexcept
 Cancel method. Think of it as acceptance of cancel requested by. More...
 
Result< Errorfail () noexcept
 Fail method. Think of it as valid failure to run some promised function. Only makes sense if underlying state is Promised. More...
 
Result< Errorfulfill (DataType &&promisedData) noexcept
 Fulfill promise with data. Only makes sense if underlying state is Promised. More...
 
Future< DataTypefuture (Result< Error > &error) noexcept
 Create tethered future object. Only makes sense if underlying state is Empty. More...
 
FuturePromiseState state () const noexcept
 Returns current state of future-promise pair. More...
 
+ + + + +

+Static Public Member Functions

+static void swap (Promise &first, Promise &second) noexcept
 Static method that swaps internal data between two passed promises.
 
+

Detailed Description

+

template<typename T>
+class fsdk::Promise< T >

+ +

Promise class to support asynchronous data retrieval Look into std::promise semantics to understand it.

+
Note
Is not instantiable using this header only.
+
Template Parameters
+ + +
Tdata type to store.
+
+
+

Member Function Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Result<Error> fsdk::Promise< T >::cancel ()
+
+noexcept
+
+ +

Cancel method. Think of it as acceptance of cancel requested by.

+
See Also
Future::cancel. Only makes sense if underlying state is CancelRequested.
+
Returns
Result type containing
+
See Also
Error code.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
Result<Error> fsdk::Promise< T >::fail ()
+
+noexcept
+
+ +

Fail method. Think of it as valid failure to run some promised function. Only makes sense if underlying state is Promised.

+
Returns
Result type containing
+
See Also
Error code.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
Result<Error> fsdk::Promise< T >::fulfill (DataType && promisedData)
+
+noexcept
+
+ +

Fulfill promise with data. Only makes sense if underlying state is Promised.

+
Parameters
+ + +
promisedDataRvalue reference to promised data.
+
+
+
Returns
Result type containing
+
See Also
Error code.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
Future<DataType> fsdk::Promise< T >::future (Result< Error > & error)
+
+noexcept
+
+ +

Create tethered future object. Only makes sense if underlying state is Empty.

+
Parameters
+ + +
errorReference to error object to indicate of failure
+
+
+
Returns
Future object tethered to this promise.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
FuturePromiseState fsdk::Promise< T >::state () const
+
+noexcept
+
+ +

Returns current state of future-promise pair.

+
Returns
Current state
+
See Also
FuturePromiseState.
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_promise.js b/doc/fsdk/html/classfsdk_1_1_promise.js new file mode 100644 index 0000000..3b49c15 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_promise.js @@ -0,0 +1,14 @@ +var classfsdk_1_1_promise = +[ + [ "DataType", "classfsdk_1_1_promise.html#a289da90b035b98d71ff87b366523d970", null ], + [ "Error", "classfsdk_1_1_promise.html#ae3660c93bae2da9120c11546f132a87e", null ], + [ "Promise", "classfsdk_1_1_promise.html#a26f2ff77af845a32921508ac26184217", null ], + [ "Promise", "classfsdk_1_1_promise.html#a11a4723bb75f234e2e281f8d0c6177b1", null ], + [ "~Promise", "classfsdk_1_1_promise.html#a6090be005ea468c04f8e6ccb22b6db17", null ], + [ "cancel", "classfsdk_1_1_promise.html#a7a178efaed788e336ed5305580737e4a", null ], + [ "fail", "classfsdk_1_1_promise.html#a0c73e4d84c3e6487d5a7e1f7b0c13ba0", null ], + [ "fulfill", "classfsdk_1_1_promise.html#a379829f59f04b7694423b3e82d501766", null ], + [ "future", "classfsdk_1_1_promise.html#accb944e8905435482b8604dfb805d690", null ], + [ "operator=", "classfsdk_1_1_promise.html#a22617556e5adc142030df7ef45e829d4", null ], + [ "state", "classfsdk_1_1_promise.html#acb099562ad549c712fcdca295b379f5d", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/classfsdk_1_1_promise.png b/doc/fsdk/html/classfsdk_1_1_promise.png new file mode 100644 index 0000000..f96a7f8 Binary files /dev/null and b/doc/fsdk/html/classfsdk_1_1_promise.png differ diff --git a/doc/fsdk/html/classfsdk_1_1_span-members.html b/doc/fsdk/html/classfsdk_1_1_span-members.html new file mode 100644 index 0000000..5ee2c53 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_span-members.html @@ -0,0 +1,156 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Span< T > Member List
+
+
+ +

This is the complete list of members for fsdk::Span< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin()fsdk::Span< T >inline
begin() const fsdk::Span< T >inline
cbegin() const fsdk::Span< T >inline
cend() const fsdk::Span< T >inline
const_iterator typedef (defined in fsdk::Span< T >)fsdk::Span< T >
const_pointer typedef (defined in fsdk::Span< T >)fsdk::Span< T >
const_reference typedef (defined in fsdk::Span< T >)fsdk::Span< T >
data() const fsdk::Span< T >inline
element_type typedef (defined in fsdk::Span< T >)fsdk::Span< T >
empty() const fsdk::Span< T >inline
end()fsdk::Span< T >inline
end() const fsdk::Span< T >inline
getSize() const fsdk::Span< T >inline
index_type typedef (defined in fsdk::Span< T >)fsdk::Span< T >
iterator typedef (defined in fsdk::Span< T >)fsdk::Span< T >
operator=(Span const &)=default (defined in fsdk::Span< T >)fsdk::Span< T >
operator=(ContiguousContainer &&container)fsdk::Span< T >inline
operator[](std::size_t index)fsdk::Span< T >inline
operator[](std::size_t index) const fsdk::Span< T >inline
pointer typedef (defined in fsdk::Span< T >)fsdk::Span< T >
reference typedef (defined in fsdk::Span< T >)fsdk::Span< T >
setSize(std::size_t size)fsdk::Span< T >inline
size() const fsdk::Span< T >inline
Span()=default (defined in fsdk::Span< T >)fsdk::Span< T >
Span(Span const &)=default (defined in fsdk::Span< T >)fsdk::Span< T >
Span(T *data, std::size_t size)fsdk::Span< T >inline
Span(ContiguousContainer &&container)fsdk::Span< T >inline
value_type typedef (defined in fsdk::Span< T >)fsdk::Span< T >
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_span.html b/doc/fsdk/html/classfsdk_1_1_span.html new file mode 100644 index 0000000..8619a70 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_span.html @@ -0,0 +1,365 @@ + + + + + + +Face Engine SDK: fsdk::Span< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Span< T > Class Template Reference
+
+
+ +

Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objects. + More...

+ +

#include <Span.h>

+ + + + + + + + + + + + + + + + + + + + +

+Public Types

+using element_type = T
 
+using value_type = typename std::remove_const< T >::type
 
+using index_type = std::ptrdiff_t
 
+using pointer = T *
 
+using reference = T &
 
+using iterator = pointer
 
+using const_pointer = T const *
 
+using const_reference = T const &
 
+using const_iterator = const_pointer
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Span (Span const &)=default
 
+Spanoperator= (Span const &)=default
 
 Span (T *data, std::size_t size)
 Constructor by pointer and size. More...
 
template<class ContiguousContainer >
 Span (ContiguousContainer &&container)
 Constructor by contiguous container. More...
 
template<class ContiguousContainer >
Spanoperator= (ContiguousContainer &&container)
 Assignment operator with contiguous container. More...
 
+reference operator[] (std::size_t index)
 Square brackets operator for convenient acces to underlying array; param index Array index.
 
+const_reference operator[] (std::size_t index) const
 Non-modifying square brackets operator for convenient acces to underlying array; param index Array index.
 
+bool empty () const
 Returns true if the span is empty.
 
+pointer data () const
 Returns a pointer to the beginning of the span.
 
+std::size_t size () const
 Returns the number of elements in the span.
 
+std::size_t getSize () const
 Returns the number of elements in the span.
 
+void setSize (std::size_t size)
 Sets the number of elements in the span. Because the span is not owning, this method will no construct or destroy element. This method will not allocate or free memory.
 
+iterator begin ()
 Returns an iterator to the beginning of the span.
 
+const_iterator begin () const
 Returns an const iterator to the beginning of the span.
 
+const_iterator cbegin () const
 Returns an iterator to the beginning of the span.
 
+iterator end ()
 Returns an iterator to one past the end of the span.
 
+const_iterator end () const
 Returns an const iterator to one past the end of the span.
 
+const_iterator cend () const
 Returns an const iterator to one past the end of the span.
 
+

Detailed Description

+

template<class T>
+class fsdk::Span< T >

+ +

Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objects.

+

Constructor & Destructor Documentation

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::Span< T >::Span (T * data,
std::size_t size 
)
+
+inline
+
+ +

Constructor by pointer and size.

+
Parameters
+ + + +
dataA pointer to the beginning of the range of elements
sizeThe number of elements pointed to by data
+
+
+ +
+
+ +
+
+
+template<class T>
+
+template<class ContiguousContainer >
+ + + + + +
+ + + + + + + + +
fsdk::Span< T >::Span (ContiguousContainer && container)
+
+inline
+
+ +

Constructor by contiguous container.

+
Parameters
+ + +
containerThe container to construct from
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<class T>
+
+template<class ContiguousContainer >
+ + + + + +
+ + + + + + + + +
Span& fsdk::Span< T >::operator= (ContiguousContainer && container)
+
+inline
+
+ +

Assignment operator with contiguous container.

+
Parameters
+ + +
containerThe container to assign from
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/classfsdk_1_1_span.js b/doc/fsdk/html/classfsdk_1_1_span.js new file mode 100644 index 0000000..f5097e0 --- /dev/null +++ b/doc/fsdk/html/classfsdk_1_1_span.js @@ -0,0 +1,31 @@ +var classfsdk_1_1_span = +[ + [ "const_iterator", "classfsdk_1_1_span.html#affd681ecb9f1086f6a3b5c6ad2ddc93f", null ], + [ "const_pointer", "classfsdk_1_1_span.html#a9fbe74fd5fd064ed81d7c108c28dfaeb", null ], + [ "const_reference", "classfsdk_1_1_span.html#a2a116aa0f21d8868d51f40cf85d94403", null ], + [ "element_type", "classfsdk_1_1_span.html#ae52e826225cb124e859101fc19877b15", null ], + [ "index_type", "classfsdk_1_1_span.html#a5d56ebed8442593f2f9fded9c88ebbb6", null ], + [ "iterator", "classfsdk_1_1_span.html#a81e49d52e6329452a8badab0b8a29595", null ], + [ "pointer", "classfsdk_1_1_span.html#afc98bf84b1455a236329ef684970e65f", null ], + [ "reference", "classfsdk_1_1_span.html#aaa0b61e529461b7a741efb5efb895c85", null ], + [ "value_type", "classfsdk_1_1_span.html#a0b0e712e9c42cbf28074f07e1adbff49", null ], + [ "Span", "classfsdk_1_1_span.html#a4cebcd965f5b95696aa728d73a9bc9dc", null ], + [ "Span", "classfsdk_1_1_span.html#a1d2df65eb3624affd20da91cd8075d01", null ], + [ "Span", "classfsdk_1_1_span.html#ae984b657d4947a6adb3e1d0b4ddce297", null ], + [ "Span", "classfsdk_1_1_span.html#ad269a8eb69d0d90e34d8eab02d575cc6", null ], + [ "begin", "classfsdk_1_1_span.html#a6dd554d60d4ad6c1b9d383b92d306d4d", null ], + [ "begin", "classfsdk_1_1_span.html#a4ff1cfe464f87e22ba38ffdee05b2247", null ], + [ "cbegin", "classfsdk_1_1_span.html#a75d776c2cd247ee09dca89c7b76ef95e", null ], + [ "cend", "classfsdk_1_1_span.html#a095a8f1430c6ba5f9c596af9fa88c3e6", null ], + [ "data", "classfsdk_1_1_span.html#afb750480f6d63afa1bd5607bb820f03f", null ], + [ "empty", "classfsdk_1_1_span.html#a16429259247be701ed06e956e4e423b3", null ], + [ "end", "classfsdk_1_1_span.html#a55f6a9fc7fa9f503d13d4f5cb30023b8", null ], + [ "end", "classfsdk_1_1_span.html#af983e470cc40648ca32aa470312b6bb0", null ], + [ "getSize", "classfsdk_1_1_span.html#a15ed0b927c4c6ef86e9468a05d983938", null ], + [ "operator=", "classfsdk_1_1_span.html#ac0371b94f536df818bbe922147d2ac03", null ], + [ "operator=", "classfsdk_1_1_span.html#a1371c55fe46de7880cafc8836e8f5043", null ], + [ "operator[]", "classfsdk_1_1_span.html#a16e587f201014a10a13a04a72c2a4939", null ], + [ "operator[]", "classfsdk_1_1_span.html#ab1575087c09d7d055cad79a1833f88c6", null ], + [ "setSize", "classfsdk_1_1_span.html#ac6eff7f7e3d1fedb1673b4411d9a3de9", null ], + [ "size", "classfsdk_1_1_span.html#a1fcb99423267eb25a11f87bc069cb97e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/closed.png b/doc/fsdk/html/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/doc/fsdk/html/closed.png differ diff --git a/doc/fsdk/html/dir_104afe3ef84f31716f380b8a9fe62f28.html b/doc/fsdk/html/dir_104afe3ef84f31716f380b8a9fe62f28.html new file mode 100644 index 0000000..ff8cdbc --- /dev/null +++ b/doc/fsdk/html/dir_104afe3ef84f31716f380b8a9fe62f28.html @@ -0,0 +1,164 @@ + + + + + + +Face Engine SDK: include/fsdk/Types Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Types Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  Detection.h [code]
 
file  Face.h [code]
 
file  FaceEngineEdition.h [code]
 
file  Format.h [code]
 
file  Future.h [code]
 
file  Human.h [code]
 
file  HumanLandmarks.h [code]
 
file  Image.h [code]
 
file  Landmarks.h [code]
 
file  MultiError.h [code]
 
file  OrientationType.h [code]
 
file  Rect.h [code]
 
file  Ref.h [code]
 
file  RefBase.h [code]
 
file  Result.h [code]
 
file  ResultValue.h [code]
 
file  Sizer.h [code]
 
file  Span.h [code]
 
file  SubImage.h [code]
 
file  Vector2.h [code]
 
file  WeakRef.h [code]
 
+
+
+ + + + diff --git a/doc/fsdk/html/dir_104afe3ef84f31716f380b8a9fe62f28.js b/doc/fsdk/html/dir_104afe3ef84f31716f380b8a9fe62f28.js new file mode 100644 index 0000000..270fa9a --- /dev/null +++ b/doc/fsdk/html/dir_104afe3ef84f31716f380b8a9fe62f28.js @@ -0,0 +1,24 @@ +var dir_104afe3ef84f31716f380b8a9fe62f28 = +[ + [ "Detection.h", "_detection_8h_source.html", null ], + [ "Face.h", "_face_8h_source.html", null ], + [ "FaceEngineEdition.h", "_face_engine_edition_8h_source.html", null ], + [ "Format.h", "_format_8h_source.html", null ], + [ "Future.h", "_future_8h_source.html", null ], + [ "Human.h", "_human_8h_source.html", null ], + [ "HumanLandmarks.h", "_human_landmarks_8h_source.html", null ], + [ "Image.h", "_image_8h_source.html", null ], + [ "Landmarks.h", "_landmarks_8h_source.html", null ], + [ "MultiError.h", "_multi_error_8h_source.html", null ], + [ "OrientationType.h", "_orientation_type_8h_source.html", null ], + [ "Rect.h", "_rect_8h_source.html", null ], + [ "Ref.h", "_ref_8h_source.html", null ], + [ "RefBase.h", "_ref_base_8h_source.html", null ], + [ "Result.h", "_result_8h_source.html", null ], + [ "ResultValue.h", "_result_value_8h_source.html", null ], + [ "Sizer.h", "_sizer_8h_source.html", null ], + [ "Span.h", "_span_8h_source.html", null ], + [ "SubImage.h", "_sub_image_8h_source.html", null ], + [ "Vector2.h", "_vector2_8h_source.html", null ], + [ "WeakRef.h", "_weak_ref_8h_source.html", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/dir_96470401125dcf7b94020a7d1057712f.html b/doc/fsdk/html/dir_96470401125dcf7b94020a7d1057712f.html new file mode 100644 index 0000000..d737833 --- /dev/null +++ b/doc/fsdk/html/dir_96470401125dcf7b94020a7d1057712f.html @@ -0,0 +1,138 @@ + + + + + + +Face Engine SDK: include/fsdk/Estimators Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Estimators Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Files

file  IAGSEstimator.h [code]
 
file  IBestShotQualityEstimator.h [code]
 
file  IEyeEstimator.h [code]
 
file  IGlassesEstimator.h [code]
 
file  IHeadPoseEstimator.h [code]
 
file  ILivenessOneShotRGBEstimator.h [code]
 
file  IMedicalMaskEstimator.h [code]
 
file  IQualityEstimator.h [code]
 
+
+
+ + + + diff --git a/doc/fsdk/html/dir_96470401125dcf7b94020a7d1057712f.js b/doc/fsdk/html/dir_96470401125dcf7b94020a7d1057712f.js new file mode 100644 index 0000000..e6a94f4 --- /dev/null +++ b/doc/fsdk/html/dir_96470401125dcf7b94020a7d1057712f.js @@ -0,0 +1,11 @@ +var dir_96470401125dcf7b94020a7d1057712f = +[ + [ "IAGSEstimator.h", "_i_a_g_s_estimator_8h_source.html", null ], + [ "IBestShotQualityEstimator.h", "_i_best_shot_quality_estimator_8h_source.html", null ], + [ "IEyeEstimator.h", "_i_eye_estimator_8h_source.html", null ], + [ "IGlassesEstimator.h", "_i_glasses_estimator_8h_source.html", null ], + [ "IHeadPoseEstimator.h", "_i_head_pose_estimator_8h_source.html", null ], + [ "ILivenessOneShotRGBEstimator.h", "_i_liveness_one_shot_r_g_b_estimator_8h_source.html", null ], + [ "IMedicalMaskEstimator.h", "_i_medical_mask_estimator_8h_source.html", null ], + [ "IQualityEstimator.h", "_i_quality_estimator_8h_source.html", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/dir_d44c64559bbebec7f509842c48db8b23.html b/doc/fsdk/html/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 0000000..4f884fa --- /dev/null +++ b/doc/fsdk/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,124 @@ + + + + + + +Face Engine SDK: include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + +

+Directories

directory  fsdk
 
+
+
+ + + + diff --git a/doc/fsdk/html/dir_d44c64559bbebec7f509842c48db8b23.js b/doc/fsdk/html/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 0000000..6637ff8 --- /dev/null +++ b/doc/fsdk/html/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,4 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "fsdk", "dir_f55a93227fda83d5dd4a3d796702467d.html", "dir_f55a93227fda83d5dd4a3d796702467d" ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/dir_f55a93227fda83d5dd4a3d796702467d.html b/doc/fsdk/html/dir_f55a93227fda83d5dd4a3d796702467d.html new file mode 100644 index 0000000..0d8015b --- /dev/null +++ b/doc/fsdk/html/dir_f55a93227fda83d5dd4a3d796702467d.html @@ -0,0 +1,193 @@ + + + + + + +Face Engine SDK: include/fsdk Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk Directory Reference
+
+
+ + + + + + +

+Directories

directory  Estimators
 
directory  Types
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  Def.h [code]
 Common SDK definitions.
 
file  Exception.h [code]
 
file  FaceEngine.h [code]
 Face detection, analyzing and recognition SDK interfaces, AIO public header.
 
file  FSDKError.h [code]
 Common SDK error codes.
 
file  FSDKVersion.h [code]
 
file  IAsyncContext.h [code]
 Async context interface.
 
file  IDescriptor.h [code]
 Descriptor extractor and matcher interfaces.
 
file  IDetector.h [code]
 Face detector interfaces.
 
file  IFaceDetectionBatch.h [code]
 
file  IFaceEngineMobile.h [code]
 
file  IHumanDetectionBatch.h [code]
 
file  IHumanDetector.h [code]
 
file  IHumanWarper.h [code]
 Image warping base on Human detection.
 
file  IIndex.h [code]
 
file  ILicense.h [code]
 
file  IObject.h [code]
 Object system types and interfaces.
 
file  IRefCounted.h [code]
 Reference counted object interface.
 
file  IResultBatch.h [code]
 
file  ISettingsProvider.h [code]
 Settings provider interface.
 
file  IWarper.h [code]
 Image and landmarks warping.
 
file  LaunchOptions.h [code]
 
file  Log.h [code]
 Log interfaces.
 
file  Optional.h [code]
 
file  Types.h [code]
 Common data types and structures.
 
file  Version.h [code]
 SDK version information routines.
 
+
+
+ + + + diff --git a/doc/fsdk/html/dir_f55a93227fda83d5dd4a3d796702467d.js b/doc/fsdk/html/dir_f55a93227fda83d5dd4a3d796702467d.js new file mode 100644 index 0000000..1dd49fe --- /dev/null +++ b/doc/fsdk/html/dir_f55a93227fda83d5dd4a3d796702467d.js @@ -0,0 +1,37 @@ +var dir_f55a93227fda83d5dd4a3d796702467d = +[ + [ "Estimators", "dir_96470401125dcf7b94020a7d1057712f.html", "dir_96470401125dcf7b94020a7d1057712f" ], + [ "Types", "dir_104afe3ef84f31716f380b8a9fe62f28.html", "dir_104afe3ef84f31716f380b8a9fe62f28" ], + [ "Def.h", "_def_8h.html", "_def_8h" ], + [ "Exception.h", "_exception_8h_source.html", null ], + [ "FaceEngine.h", "_face_engine_8h.html", "_face_engine_8h" ], + [ "FSDKError.h", "_f_s_d_k_error_8h.html", "_f_s_d_k_error_8h" ], + [ "FSDKVersion.h", "_f_s_d_k_version_8h_source.html", null ], + [ "IAsyncContext.h", "_i_async_context_8h.html", [ + [ "IAsyncContext", "structfsdk_1_1_i_async_context.html", "structfsdk_1_1_i_async_context" ] + ] ], + [ "IDescriptor.h", "_i_descriptor_8h.html", "_i_descriptor_8h" ], + [ "IDetector.h", "_i_detector_8h.html", "_i_detector_8h" ], + [ "IFaceDetectionBatch.h", "_i_face_detection_batch_8h_source.html", null ], + [ "IFaceEngineMobile.h", "_i_face_engine_mobile_8h_source.html", null ], + [ "IHumanDetectionBatch.h", "_i_human_detection_batch_8h_source.html", null ], + [ "IHumanDetector.h", "_i_human_detector_8h_source.html", null ], + [ "IHumanWarper.h", "_i_human_warper_8h.html", [ + [ "IHumanWarper", "structfsdk_1_1_i_human_warper.html", "structfsdk_1_1_i_human_warper" ] + ] ], + [ "IIndex.h", "_i_index_8h_source.html", null ], + [ "ILicense.h", "_i_license_8h_source.html", null ], + [ "IObject.h", "_i_object_8h.html", null ], + [ "IRefCounted.h", "_i_ref_counted_8h.html", null ], + [ "IResultBatch.h", "_i_result_batch_8h_source.html", null ], + [ "ISettingsProvider.h", "_i_settings_provider_8h.html", "_i_settings_provider_8h" ], + [ "IWarper.h", "_i_warper_8h.html", [ + [ "Transformation", "structfsdk_1_1_transformation.html", "structfsdk_1_1_transformation" ], + [ "IWarper", "structfsdk_1_1_i_warper.html", "structfsdk_1_1_i_warper" ] + ] ], + [ "LaunchOptions.h", "_launch_options_8h_source.html", null ], + [ "Log.h", "_log_8h.html", "_log_8h" ], + [ "Optional.h", "_optional_8h_source.html", null ], + [ "Types.h", "_types_8h.html", null ], + [ "Version.h", "_version_8h.html", "_version_8h" ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/doxygen.css b/doc/fsdk/html/doxygen.css new file mode 100644 index 0000000..4699e69 --- /dev/null +++ b/doc/fsdk/html/doxygen.css @@ -0,0 +1,1357 @@ +/* The standard CSS for doxygen 1.8.5 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0px; + margin: 0px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/doc/fsdk/html/doxygen.png b/doc/fsdk/html/doxygen.png new file mode 100644 index 0000000..3ff17d8 Binary files /dev/null and b/doc/fsdk/html/doxygen.png differ diff --git a/doc/fsdk/html/dynsections.js b/doc/fsdk/html/dynsections.js new file mode 100644 index 0000000..ed092c7 --- /dev/null +++ b/doc/fsdk/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +Face Engine SDK: File List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\-include
 \-fsdk
  o-Estimators
  |o*IAGSEstimator.h
  |o*IBestShotQualityEstimator.h
  |o*IEyeEstimator.h
  |o*IGlassesEstimator.h
  |o*IHeadPoseEstimator.h
  |o*ILivenessOneShotRGBEstimator.h
  |o*IMedicalMaskEstimator.h
  |\*IQualityEstimator.h
  o-Types
  |o*Detection.h
  |o*Face.h
  |o*FaceEngineEdition.h
  |o*Format.h
  |o*Future.h
  |o*Human.h
  |o*HumanLandmarks.h
  |o*Image.h
  |o*Landmarks.h
  |o*MultiError.h
  |o*OrientationType.h
  |o*Rect.h
  |o*Ref.h
  |o*RefBase.h
  |o*Result.h
  |o*ResultValue.h
  |o*Sizer.h
  |o*Span.h
  |o*SubImage.h
  |o*Vector2.h
  |\*WeakRef.h
  o*Def.hCommon SDK definitions
  o*Exception.h
  o*FaceEngine.hFace detection, analyzing and recognition SDK interfaces, AIO public header
  o*FSDKError.hCommon SDK error codes
  o*FSDKVersion.h
  o*IAsyncContext.hAsync context interface
  o*IDescriptor.hDescriptor extractor and matcher interfaces
  o*IDetector.hFace detector interfaces
  o*IFaceDetectionBatch.h
  o*IFaceEngineMobile.h
  o*IHumanDetectionBatch.h
  o*IHumanDetector.h
  o*IHumanWarper.hImage warping base on Human detection
  o*IIndex.h
  o*ILicense.h
  o*IObject.hObject system types and interfaces
  o*IRefCounted.hReference counted object interface
  o*IResultBatch.h
  o*ISettingsProvider.hSettings provider interface
  o*IWarper.hImage and landmarks warping
  o*LaunchOptions.h
  o*Log.hLog interfaces
  o*Optional.h
  o*Types.hCommon data types and structures
  \*Version.hSDK version information routines
+
+
+
+ + + + diff --git a/doc/fsdk/html/files.js b/doc/fsdk/html/files.js new file mode 100644 index 0000000..93d774e --- /dev/null +++ b/doc/fsdk/html/files.js @@ -0,0 +1,4 @@ +var files = +[ + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/ftv2blank.png b/doc/fsdk/html/ftv2blank.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/fsdk/html/ftv2blank.png differ diff --git a/doc/fsdk/html/ftv2cl.png b/doc/fsdk/html/ftv2cl.png new file mode 100644 index 0000000..132f657 Binary files /dev/null and b/doc/fsdk/html/ftv2cl.png differ diff --git a/doc/fsdk/html/ftv2doc.png b/doc/fsdk/html/ftv2doc.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/doc/fsdk/html/ftv2doc.png differ diff --git a/doc/fsdk/html/ftv2folderclosed.png b/doc/fsdk/html/ftv2folderclosed.png new file mode 100644 index 0000000..bb8ab35 Binary files /dev/null and b/doc/fsdk/html/ftv2folderclosed.png differ diff --git a/doc/fsdk/html/ftv2folderopen.png b/doc/fsdk/html/ftv2folderopen.png new file mode 100644 index 0000000..d6c7f67 Binary files /dev/null and b/doc/fsdk/html/ftv2folderopen.png differ diff --git a/doc/fsdk/html/ftv2lastnode.png b/doc/fsdk/html/ftv2lastnode.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/fsdk/html/ftv2lastnode.png differ diff --git a/doc/fsdk/html/ftv2link.png b/doc/fsdk/html/ftv2link.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/doc/fsdk/html/ftv2link.png differ diff --git a/doc/fsdk/html/ftv2mlastnode.png b/doc/fsdk/html/ftv2mlastnode.png new file mode 100644 index 0000000..0b63f6d Binary files /dev/null and b/doc/fsdk/html/ftv2mlastnode.png differ diff --git a/doc/fsdk/html/ftv2mnode.png b/doc/fsdk/html/ftv2mnode.png new file mode 100644 index 0000000..0b63f6d Binary files /dev/null and b/doc/fsdk/html/ftv2mnode.png differ diff --git a/doc/fsdk/html/ftv2mo.png b/doc/fsdk/html/ftv2mo.png new file mode 100644 index 0000000..4bfb80f Binary files /dev/null and b/doc/fsdk/html/ftv2mo.png differ diff --git a/doc/fsdk/html/ftv2node.png b/doc/fsdk/html/ftv2node.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/fsdk/html/ftv2node.png differ diff --git a/doc/fsdk/html/ftv2ns.png b/doc/fsdk/html/ftv2ns.png new file mode 100644 index 0000000..72e3d71 Binary files /dev/null and b/doc/fsdk/html/ftv2ns.png differ diff --git a/doc/fsdk/html/ftv2plastnode.png b/doc/fsdk/html/ftv2plastnode.png new file mode 100644 index 0000000..c6ee22f Binary files /dev/null and b/doc/fsdk/html/ftv2plastnode.png differ diff --git a/doc/fsdk/html/ftv2pnode.png b/doc/fsdk/html/ftv2pnode.png new file mode 100644 index 0000000..c6ee22f Binary files /dev/null and b/doc/fsdk/html/ftv2pnode.png differ diff --git a/doc/fsdk/html/ftv2splitbar.png b/doc/fsdk/html/ftv2splitbar.png new file mode 100644 index 0000000..fe895f2 Binary files /dev/null and b/doc/fsdk/html/ftv2splitbar.png differ diff --git a/doc/fsdk/html/ftv2vertline.png b/doc/fsdk/html/ftv2vertline.png new file mode 100644 index 0000000..63c605b Binary files /dev/null and b/doc/fsdk/html/ftv2vertline.png differ diff --git a/doc/fsdk/html/functions.html b/doc/fsdk/html/functions.html new file mode 100644 index 0000000..0a455d6 --- /dev/null +++ b/doc/fsdk/html/functions.html @@ -0,0 +1,233 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x62.html b/doc/fsdk/html/functions_0x62.html new file mode 100644 index 0000000..30d1f0a --- /dev/null +++ b/doc/fsdk/html/functions_0x62.html @@ -0,0 +1,191 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x63.html b/doc/fsdk/html/functions_0x63.html new file mode 100644 index 0000000..bdad48a --- /dev/null +++ b/doc/fsdk/html/functions_0x63.html @@ -0,0 +1,259 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x64.html b/doc/fsdk/html/functions_0x64.html new file mode 100644 index 0000000..9112b9b --- /dev/null +++ b/doc/fsdk/html/functions_0x64.html @@ -0,0 +1,201 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x65.html b/doc/fsdk/html/functions_0x65.html new file mode 100644 index 0000000..6832d5d --- /dev/null +++ b/doc/fsdk/html/functions_0x65.html @@ -0,0 +1,255 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- e -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x66.html b/doc/fsdk/html/functions_0x66.html new file mode 100644 index 0000000..b3db39d --- /dev/null +++ b/doc/fsdk/html/functions_0x66.html @@ -0,0 +1,227 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x67.html b/doc/fsdk/html/functions_0x67.html new file mode 100644 index 0000000..68a570a --- /dev/null +++ b/doc/fsdk/html/functions_0x67.html @@ -0,0 +1,393 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x68.html b/doc/fsdk/html/functions_0x68.html new file mode 100644 index 0000000..eb6cd2e --- /dev/null +++ b/doc/fsdk/html/functions_0x68.html @@ -0,0 +1,171 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- h -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x69.html b/doc/fsdk/html/functions_0x69.html new file mode 100644 index 0000000..67bc200 --- /dev/null +++ b/doc/fsdk/html/functions_0x69.html @@ -0,0 +1,368 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x6b.html b/doc/fsdk/html/functions_0x6b.html new file mode 100644 index 0000000..f948d69 --- /dev/null +++ b/doc/fsdk/html/functions_0x6b.html @@ -0,0 +1,167 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- k -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x6c.html b/doc/fsdk/html/functions_0x6c.html new file mode 100644 index 0000000..9c39f92 --- /dev/null +++ b/doc/fsdk/html/functions_0x6c.html @@ -0,0 +1,208 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- l -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x6d.html b/doc/fsdk/html/functions_0x6d.html new file mode 100644 index 0000000..f35becc --- /dev/null +++ b/doc/fsdk/html/functions_0x6d.html @@ -0,0 +1,284 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x6e.html b/doc/fsdk/html/functions_0x6e.html new file mode 100644 index 0000000..28a2d40 --- /dev/null +++ b/doc/fsdk/html/functions_0x6e.html @@ -0,0 +1,177 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x6f.html b/doc/fsdk/html/functions_0x6f.html new file mode 100644 index 0000000..f0f6efd --- /dev/null +++ b/doc/fsdk/html/functions_0x6f.html @@ -0,0 +1,292 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- o -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x70.html b/doc/fsdk/html/functions_0x70.html new file mode 100644 index 0000000..5a37697 --- /dev/null +++ b/doc/fsdk/html/functions_0x70.html @@ -0,0 +1,180 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- p -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x71.html b/doc/fsdk/html/functions_0x71.html new file mode 100644 index 0000000..611bafc --- /dev/null +++ b/doc/fsdk/html/functions_0x71.html @@ -0,0 +1,167 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- q -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x72.html b/doc/fsdk/html/functions_0x72.html new file mode 100644 index 0000000..262b55b --- /dev/null +++ b/doc/fsdk/html/functions_0x72.html @@ -0,0 +1,257 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x73.html b/doc/fsdk/html/functions_0x73.html new file mode 100644 index 0000000..dd01f33 --- /dev/null +++ b/doc/fsdk/html/functions_0x73.html @@ -0,0 +1,328 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- s -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x74.html b/doc/fsdk/html/functions_0x74.html new file mode 100644 index 0000000..c20861c --- /dev/null +++ b/doc/fsdk/html/functions_0x74.html @@ -0,0 +1,188 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_0x75.html b/doc/fsdk/html/functions_0x75.html new file mode 100644 index 0000000..a485c67 --- /dev/null +++ b/doc/fsdk/html/functions_0x75.html @@ -0,0 +1,177 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- u -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x76.html b/doc/fsdk/html/functions_0x76.html new file mode 100644 index 0000000..0e02394 --- /dev/null +++ b/doc/fsdk/html/functions_0x76.html @@ -0,0 +1,196 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_0x77.html b/doc/fsdk/html/functions_0x77.html new file mode 100644 index 0000000..25e209a --- /dev/null +++ b/doc/fsdk/html/functions_0x77.html @@ -0,0 +1,189 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x78.html b/doc/fsdk/html/functions_0x78.html new file mode 100644 index 0000000..58fe0c5 --- /dev/null +++ b/doc/fsdk/html/functions_0x78.html @@ -0,0 +1,169 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- x -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x79.html b/doc/fsdk/html/functions_0x79.html new file mode 100644 index 0000000..19ce57c --- /dev/null +++ b/doc/fsdk/html/functions_0x79.html @@ -0,0 +1,178 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- y -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_0x7e.html b/doc/fsdk/html/functions_0x7e.html new file mode 100644 index 0000000..167f7b1 --- /dev/null +++ b/doc/fsdk/html/functions_0x7e.html @@ -0,0 +1,167 @@ + + + + + + +Face Engine SDK: Class Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- ~ -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_dup.js b/doc/fsdk/html/functions_dup.js new file mode 100644 index 0000000..f4323cb --- /dev/null +++ b/doc/fsdk/html/functions_dup.js @@ -0,0 +1,28 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_0x62.html", null ], + [ "c", "functions_0x63.html", null ], + [ "d", "functions_0x64.html", null ], + [ "e", "functions_0x65.html", null ], + [ "f", "functions_0x66.html", null ], + [ "g", "functions_0x67.html", null ], + [ "h", "functions_0x68.html", null ], + [ "i", "functions_0x69.html", null ], + [ "k", "functions_0x6b.html", null ], + [ "l", "functions_0x6c.html", null ], + [ "m", "functions_0x6d.html", null ], + [ "n", "functions_0x6e.html", null ], + [ "o", "functions_0x6f.html", null ], + [ "p", "functions_0x70.html", null ], + [ "q", "functions_0x71.html", null ], + [ "r", "functions_0x72.html", null ], + [ "s", "functions_0x73.html", null ], + [ "t", "functions_0x74.html", null ], + [ "u", "functions_0x75.html", null ], + [ "v", "functions_0x76.html", null ], + [ "w", "functions_0x77.html", null ], + [ "x", "functions_0x78.html", null ], + [ "y", "functions_0x79.html", null ], + [ "~", "functions_0x7e.html", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/functions_enum.html b/doc/fsdk/html/functions_enum.html new file mode 100644 index 0000000..b55910a --- /dev/null +++ b/doc/fsdk/html/functions_enum.html @@ -0,0 +1,166 @@ + + + + + + +Face Engine SDK: Class Members - Enumerations + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_eval.html b/doc/fsdk/html/functions_eval.html new file mode 100644 index 0000000..c35438a --- /dev/null +++ b/doc/fsdk/html/functions_eval.html @@ -0,0 +1,505 @@ + + + + + + +Face Engine SDK: Class Members - Enumerator + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- r -

+ + +

- s -

+ + +

- u -

+ + +

- y -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func.html b/doc/fsdk/html/functions_func.html new file mode 100644 index 0000000..4e2dfc4 --- /dev/null +++ b/doc/fsdk/html/functions_func.html @@ -0,0 +1,213 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func.js b/doc/fsdk/html/functions_func.js new file mode 100644 index 0000000..61bcbfb --- /dev/null +++ b/doc/fsdk/html/functions_func.js @@ -0,0 +1,23 @@ +var functions_func = +[ + [ "a", "functions_func.html", null ], + [ "b", "functions_func_0x62.html", null ], + [ "c", "functions_func_0x63.html", null ], + [ "d", "functions_func_0x64.html", null ], + [ "e", "functions_func_0x65.html", null ], + [ "f", "functions_func_0x66.html", null ], + [ "g", "functions_func_0x67.html", null ], + [ "i", "functions_func_0x69.html", null ], + [ "k", "functions_func_0x6b.html", null ], + [ "l", "functions_func_0x6c.html", null ], + [ "m", "functions_func_0x6d.html", null ], + [ "o", "functions_func_0x6f.html", null ], + [ "p", "functions_func_0x70.html", null ], + [ "r", "functions_func_0x72.html", null ], + [ "s", "functions_func_0x73.html", null ], + [ "t", "functions_func_0x74.html", null ], + [ "u", "functions_func_0x75.html", null ], + [ "v", "functions_func_0x76.html", null ], + [ "w", "functions_func_0x77.html", null ], + [ "~", "functions_func_0x7e.html", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/functions_func_0x62.html b/doc/fsdk/html/functions_func_0x62.html new file mode 100644 index 0000000..168c340 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x62.html @@ -0,0 +1,177 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- b -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x63.html b/doc/fsdk/html/functions_func_0x63.html new file mode 100644 index 0000000..ec5e276 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x63.html @@ -0,0 +1,251 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- c -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x64.html b/doc/fsdk/html/functions_func_0x64.html new file mode 100644 index 0000000..81950a3 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x64.html @@ -0,0 +1,185 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x65.html b/doc/fsdk/html/functions_func_0x65.html new file mode 100644 index 0000000..4e18749 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x65.html @@ -0,0 +1,211 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x66.html b/doc/fsdk/html/functions_func_0x66.html new file mode 100644 index 0000000..65826e4 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x66.html @@ -0,0 +1,177 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- f -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x67.html b/doc/fsdk/html/functions_func_0x67.html new file mode 100644 index 0000000..5724264 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x67.html @@ -0,0 +1,385 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- g -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x69.html b/doc/fsdk/html/functions_func_0x69.html new file mode 100644 index 0000000..1a916bc --- /dev/null +++ b/doc/fsdk/html/functions_func_0x69.html @@ -0,0 +1,221 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- i -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x6b.html b/doc/fsdk/html/functions_func_0x6b.html new file mode 100644 index 0000000..3688c6e --- /dev/null +++ b/doc/fsdk/html/functions_func_0x6b.html @@ -0,0 +1,162 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x6c.html b/doc/fsdk/html/functions_func_0x6c.html new file mode 100644 index 0000000..06f6742 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x6c.html @@ -0,0 +1,179 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- l -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x6d.html b/doc/fsdk/html/functions_func_0x6d.html new file mode 100644 index 0000000..d38e7a5 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x6d.html @@ -0,0 +1,171 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x6f.html b/doc/fsdk/html/functions_func_0x6f.html new file mode 100644 index 0000000..6c38a8c --- /dev/null +++ b/doc/fsdk/html/functions_func_0x6f.html @@ -0,0 +1,265 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- o -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x70.html b/doc/fsdk/html/functions_func_0x70.html new file mode 100644 index 0000000..4366765 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x70.html @@ -0,0 +1,165 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x72.html b/doc/fsdk/html/functions_func_0x72.html new file mode 100644 index 0000000..28c0645 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x72.html @@ -0,0 +1,229 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x73.html b/doc/fsdk/html/functions_func_0x73.html new file mode 100644 index 0000000..9c2d57a --- /dev/null +++ b/doc/fsdk/html/functions_func_0x73.html @@ -0,0 +1,297 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- s -

+
+
+ + + + diff --git a/doc/fsdk/html/functions_func_0x74.html b/doc/fsdk/html/functions_func_0x74.html new file mode 100644 index 0000000..b6b878b --- /dev/null +++ b/doc/fsdk/html/functions_func_0x74.html @@ -0,0 +1,175 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x75.html b/doc/fsdk/html/functions_func_0x75.html new file mode 100644 index 0000000..fb1c21c --- /dev/null +++ b/doc/fsdk/html/functions_func_0x75.html @@ -0,0 +1,162 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x76.html b/doc/fsdk/html/functions_func_0x76.html new file mode 100644 index 0000000..ca9f233 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x76.html @@ -0,0 +1,184 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x77.html b/doc/fsdk/html/functions_func_0x77.html new file mode 100644 index 0000000..55b14e9 --- /dev/null +++ b/doc/fsdk/html/functions_func_0x77.html @@ -0,0 +1,179 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_func_0x7e.html b/doc/fsdk/html/functions_func_0x7e.html new file mode 100644 index 0000000..813c8ce --- /dev/null +++ b/doc/fsdk/html/functions_func_0x7e.html @@ -0,0 +1,162 @@ + + + + + + +Face Engine SDK: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_type.html b/doc/fsdk/html/functions_type.html new file mode 100644 index 0000000..5dafd83 --- /dev/null +++ b/doc/fsdk/html/functions_type.html @@ -0,0 +1,173 @@ + + + + + + +Face Engine SDK: Class Members - Typedefs + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/functions_vars.html b/doc/fsdk/html/functions_vars.html new file mode 100644 index 0000000..ac95c65 --- /dev/null +++ b/doc/fsdk/html/functions_vars.html @@ -0,0 +1,417 @@ + + + + + + +Face Engine SDK: Class Members - Variables + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- a -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- q -

+ + +

- r -

+ + +

- s -

+ + +

- v -

+ + +

- w -

+ + +

- x -

+ + +

- y -

+
+
+ + + + diff --git a/doc/fsdk/html/globals.html b/doc/fsdk/html/globals.html new file mode 100644 index 0000000..5f71033 --- /dev/null +++ b/doc/fsdk/html/globals.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented file members with links to the documentation:
+
+
+ + + + diff --git a/doc/fsdk/html/globals_defs.html b/doc/fsdk/html/globals_defs.html new file mode 100644 index 0000000..9da7162 --- /dev/null +++ b/doc/fsdk/html/globals_defs.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: File Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
+ + + + diff --git a/doc/fsdk/html/group___core_group.html b/doc/fsdk/html/group___core_group.html new file mode 100644 index 0000000..5decc41 --- /dev/null +++ b/doc/fsdk/html/group___core_group.html @@ -0,0 +1,1187 @@ + + + + + + +Face Engine SDK: SDK core interfaces + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
SDK core interfaces
+
+
+ +

Common interfaces and macros shared across all SDK objects. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  fsdk::IFaceEngineMobile
 Root LUNA SDK object interface. More...
 
struct  fsdk::IArchive
 Archive interface. More...
 
struct  fsdk::ISerializableObject
 Serializable object interface. More...
 
struct  fsdk::ErrorTraits< ISerializableObject::Error >
 Specialized for ISerializableObject::SerializationError. More...
 
struct  fsdk::IDataStorageObject
 Data storage object interface helper. More...
 
struct  fsdk::IRefCounted
 Base strong reference counted object interface. More...
 
struct  fsdk::ISettingsProvider
 SDK settings provider interface. More...
 
struct  fsdk::ErrorTraits< ISettingsProvider::Error >
 Specialized for ISettingsProvider::ParseError. More...
 
+ + + + + + + + + + + + + + + + + + +

+Macros

#define ALIGN_UP(value, align)
 
+#define ALIGNED(x)   __attribute__ ((aligned(x)))
 
+#define RESTRICT   __restrict__
 
+#define FORCE_INLINE   inline __attribute__ ((always_inline))
 
+#define DECLARE_SMARTPTR(X)   struct X; using X##Ptr = fsdk::Ref<X>
 Smart ptr declaration helper macro.
 
+#define STRINGIFY2(x)   #x
 Stringification helper macro.
 
+#define STRINGIFY(x)   STRINGIFY2(x)
 Stringifies it's argument.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

virtual ResultValue< FSDKError,
+IDetectorPtr > 
fsdk::IFaceEngineMobile::createDetector () noexcept=0
 Creates a detector of given type. More...
 
virtual ResultValue< FSDKError,
+IHeadPoseEstimatorPtr > 
fsdk::IFaceEngineMobile::createHeadPoseEstimator () noexcept=0
 Creates Head pose estimator. More...
 
virtual ResultValue< FSDKError,
+IAGSEstimatorPtr > 
fsdk::IFaceEngineMobile::createAGSEstimator () noexcept=0
 Creates AGS estimator. More...
 
virtual ResultValue< FSDKError,
+IEyeEstimatorPtr > 
fsdk::IFaceEngineMobile::createEyeEstimator () noexcept=0
 Creates Eye estimator. More...
 
virtual ResultValue< FSDKError,
+IMedicalMaskEstimatorPtr > 
fsdk::IFaceEngineMobile::createMedicalMaskEstimator () noexcept=0
 Creates MedicalMask estimator. More...
 
virtual ResultValue< FSDKError,
+IGlassesEstimatorPtr > 
fsdk::IFaceEngineMobile::createGlassesEstimator () noexcept=0
 Creates Glasses estimator. More...
 
virtual ResultValue< FSDKError,
+IQualityEstimatorPtr > 
fsdk::IFaceEngineMobile::createQualityEstimator () noexcept=0
 Creates Quality estimator. More...
 
virtual ResultValue< FSDKError,
+IBestShotQualityEstimatorPtr > 
fsdk::IFaceEngineMobile::createBestShotQualityEstimator () noexcept=0
 Creates BestShotQuality estimator. More...
 
virtual ResultValue< FSDKError,
+ILivenessOneShotRGBEstimatorPtr > 
fsdk::IFaceEngineMobile::createLivenessOneShotRGBEstimator () noexcept=0
 Creates Liveness OneShot estimator. More...
 
virtual ResultValue< FSDKError,
+IDescriptorPtr > 
fsdk::IFaceEngineMobile::createDescriptor (uint32_t version=0) noexcept=0
 Creates Descriptor. More...
 
virtual ResultValue< FSDKError,
+IDescriptorPtr > 
fsdk::IFaceEngineMobile::createDescriptor (IArchive *archive, uint32_t flags=0) noexcept=0
 Creates and loads Descriptor from Archive. More...
 
virtual ResultValue< FSDKError,
+IDescriptorBatchPtr > 
fsdk::IFaceEngineMobile::createDescriptorBatch (int32_t size, uint32_t version=0) noexcept=0
 Creates Batch of descriptors. More...
 
virtual ResultValue< FSDKError,
+IDescriptorExtractorPtr > 
fsdk::IFaceEngineMobile::createExtractor (uint32_t version=0) noexcept=0
 Creates descriptor extractor. More...
 
virtual ResultValue< FSDKError,
+IDescriptorMatcherPtr > 
fsdk::IFaceEngineMobile::createMatcher (uint32_t version=0) noexcept=0
 Creates descriptor matcher. More...
 
virtual ResultValue< FSDKError,
+IWarperPtr > 
fsdk::IFaceEngineMobile::createWarper () noexcept=0
 Creates warper. More...
 
virtual FaceEngineEdition fsdk::IFaceEngineMobile::getFaceEngineEdition () const noexcept=0
 Get LUNA SDK ditribution edition. More...
 
virtual void fsdk::IFaceEngineMobile::setDataDirectory (const char *path) noexcept=0
 Sets data directory. More...
 
virtual const char * fsdk::IFaceEngineMobile::getDataDirectory () const noexcept=0
 Gets data directory. More...
 
virtual void fsdk::IFaceEngineMobile::setSettingsProvider (ISettingsProvider *provider) noexcept=0
 Sets settings provider. More...
 
virtual void fsdk::IFaceEngineMobile::setRuntimeSettingsProvider (ISettingsProvider *provider) noexcept=0
 Sets runtime settings provider. More...
 
virtual ISettingsProvider * fsdk::IFaceEngineMobile::getSettingsProvider () const noexcept=0
 Gets settings provider. More...
 
virtual ISettingsProvider * fsdk::IFaceEngineMobile::getRuntimeSettingsProvider () const noexcept=0
 Gets runtime settings provider. More...
 
virtual ILicense * fsdk::IFaceEngineMobile::getLicense () const noexcept=0
 Get current License object, which was set for FaceEngine object. More...
 
FSDK_API Result< FSDKError > fsdk::activateLicense (ILicense *license, const char *configPath) noexcept
 Makes License activation with some platform specific manner. Network connection is required. More...
 
FSDK_API Result< FSDKError > fsdk::activateLicense (ILicense *license, ISettingsProvider *settings) noexcept
 Makes License activation with some platform specific manner. Network connection is required. More...
 
FSDK_API ResultValue
+< FSDKError,
+IFaceEngineMobilePtr > 
fsdk::createFaceEngineMobile (const char *dataPath=nullptr, const char *configPath=nullptr, const char *runtimePath=nullptr) noexcept
 Create the LUNA SDK root object. More...
 
FSDK_API ResultValue
+< FSDKError,
+ISettingsProviderPtr > 
fsdk::createSettingsProvider (const char *path) noexcept
 Create a settings provider. More...
 
+

Detailed Description

+

Common interfaces and macros shared across all SDK objects.

+

Macro Definition Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define ALIGN_UP( value,
 align 
)
+
+Value:
(((value) & (align-1)) ? \
+
(((value) + (align-1)) & ~(align-1)) : \
+
(value))
+
+
+
+

Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
FSDK_API Result<FSDKError> fsdk::activateLicense (ILicense * license,
const char * configPath 
)
+
+noexcept
+
+ +

Makes License activation with some platform specific manner. Network connection is required.

+
Parameters
+ + + +
[in]licensepointer to the license object which should be activated
[in]configPathpath to license.conf file with licensing settings.
+
+
+
Returns
true if license was successfully activated.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
FSDK_API Result<FSDKError> fsdk::activateLicense (ILicense * license,
ISettingsProvider * settings 
)
+
+noexcept
+
+ +

Makes License activation with some platform specific manner. Network connection is required.

+
Parameters
+ + + +
[in]licensepointer to the license object which should be activated
[in]providersettings provider.
+
+
+
Returns
true if license was successfully activated.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IAGSEstimatorPtr> fsdk::IFaceEngineMobile::createAGSEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates AGS estimator.

+
Returns
Error code;
+
See Also
FSDKError and AGS estimator if succeeded, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IBestShotQualityEstimatorPtr> fsdk::IFaceEngineMobile::createBestShotQualityEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates BestShotQuality estimator.

+
Returns
Error code;
+
See Also
FSDKError and BestShotQuality estimator if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, IDescriptorPtr> fsdk::IFaceEngineMobile::createDescriptor (uint32_t version = 0)
+
+pure virtualnoexcept
+
+ +

Creates Descriptor.

+
Parameters
+ + +
[in]versiondescriptor version.
+
+
+

face descriptor will created by default, to create human descriptor pass version, minimum version of human descriptor is DV_MIN_HUMAN_DESCRIPTOR_VERSION == 102

+
See Also
DescriptorVersion
+
Returns
Error code;
+
See Also
FSDKError and Descriptor if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, IDescriptorPtr> fsdk::IFaceEngineMobile::createDescriptor (IArchivearchive,
uint32_t flags = 0 
)
+
+pure virtualnoexcept
+
+ +

Creates and loads Descriptor from Archive.

+
Parameters
+ + + +
[in]archiveArchive with descriptor.
[in]flagsArchive flag.
+
+
+
Returns
Error code;
+
See Also
FSDKError and Descriptor if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, IDescriptorBatchPtr> fsdk::IFaceEngineMobile::createDescriptorBatch (int32_t size,
uint32_t version = 0 
)
+
+pure virtualnoexcept
+
+ +

Creates Batch of descriptors.

+

face descriptor batch will be created by default, to create human descriptor batch you must pass version, minimum version of human descriptor is DV_MIN_HUMAN_DESCRIPTOR_VERSION == 102

+
See Also
DescriptorVersion
+
Parameters
+ + + +
[in]size- amount of descriptors in batch.
[in]version- descriptor version in batch. If 0 - use dafault version from config.
+
+
+
Returns
Error code;
+
See Also
FSDKError and Batch if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IDetectorPtr> fsdk::IFaceEngineMobile::createDetector ()
+
+pure virtualnoexcept
+
+ +

Creates a detector of given type.

+
Returns
Error code;
+
See Also
FSDKError and detector object if succeeded, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, IDescriptorExtractorPtr> fsdk::IFaceEngineMobile::createExtractor (uint32_t version = 0)
+
+pure virtualnoexcept
+
+ +

Creates descriptor extractor.

+
Parameters
+ + +
[in]versiondescriptor version.
+
+
+

face descriptor extractor will created by default, to create human descriptor extractor descriptor you must pass version, minimum version of human descriptor is DV_MIN_HUMAN_DESCRIPTOR_VERSION == 102

+
See Also
DescriptorVersion
+
Returns
Error code;
+
See Also
FSDKError and Descriptor extractor if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IEyeEstimatorPtr> fsdk::IFaceEngineMobile::createEyeEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates Eye estimator.

+
Returns
Error code;
+
See Also
FSDKError and Eye estimator if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API ResultValue<FSDKError, IFaceEngineMobilePtr> fsdk::createFaceEngineMobile (const char * dataPath = nullptr,
const char * configPath = nullptr,
const char * runtimePath = nullptr 
)
+
+noexcept
+
+ +

Create the LUNA SDK root object.

+
Parameters
+ + + + +
[in]dataPath[optional] path to folder with FSDK data. Default: ./data (on windows), /opt/visionlabs/data (on linux)
[in]configPath[optional] path to faceengine.conf file. Default: <dataPath>/faceengine.cong
[in]runtimePath[optional] path to runtime.conf file. Default: <dataPath>/runtime.cong
+
+
+
Returns
Error code;
+
See Also
FSDKError and face engine object if succeeded, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IGlassesEstimatorPtr> fsdk::IFaceEngineMobile::createGlassesEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates Glasses estimator.

+
Returns
ResultValue with error code and IGlassesEstimatorPtr instance.
+
See Also
ResultValue, FSDKError, IGlassesEstimatorPtr
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IHeadPoseEstimatorPtr> fsdk::IFaceEngineMobile::createHeadPoseEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates Head pose estimator.

+
Returns
Error code;
+
See Also
FSDKError and Head pose estimator if succeeded, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, ILivenessOneShotRGBEstimatorPtr> fsdk::IFaceEngineMobile::createLivenessOneShotRGBEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates Liveness OneShot estimator.

+
Returns
Error code;
+
See Also
FSDKError and OneShot liveness estimator if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, IDescriptorMatcherPtr> fsdk::IFaceEngineMobile::createMatcher (uint32_t version = 0)
+
+pure virtualnoexcept
+
+ +

Creates descriptor matcher.

+
Parameters
+ + +
[in]versiondescriptor version.
+
+
+

face descriptor matcher will created by default, to create human descriptor matcher you must pass version, minimum version of human descriptor is DV_MIN_HUMAN_DESCRIPTOR_VERSION == 102

+
See Also
DescriptorVersion
+
Returns
Error code;
+
See Also
FSDKError and Descriptor matcher if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IMedicalMaskEstimatorPtr> fsdk::IFaceEngineMobile::createMedicalMaskEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates MedicalMask estimator.

+
Returns
ResultValue with error code and IMedicalMaskEstimatorPtr instance.
+
See Also
ResultValue, FSDKError, IMedicalMaskEstimatorPtr
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IQualityEstimatorPtr> fsdk::IFaceEngineMobile::createQualityEstimator ()
+
+pure virtualnoexcept
+
+ +

Creates Quality estimator.

+
Returns
ResultValue with error code and IQualityEstimatorPtr instance.
+
See Also
ResultValue, FSDKError, IQualityEstimatorPtr
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API fsdk::ResultValue< fsdk::FSDKError, fsdk::ISettingsProviderPtr > fsdk::createSettingsProvider (const char * path)
+
+noexcept
+
+ +

Create a settings provider.

+
Parameters
+ + +
[in]pathconfiguration file path.
+
+
+
Returns
settings provider object if succeeded, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, IWarperPtr> fsdk::IFaceEngineMobile::createWarper ()
+
+pure virtualnoexcept
+
+ +

Creates warper.

+
Returns
Warper if succeed, null if failed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual const char* fsdk::IFaceEngineMobile::getDataDirectory () const
+
+pure virtualnoexcept
+
+ +

Gets data directory.

+

By default is set to "./data".

+
Returns
path to data directory.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual FaceEngineEdition fsdk::IFaceEngineMobile::getFaceEngineEdition () const
+
+pure virtualnoexcept
+
+ +

Get LUNA SDK ditribution edition.

+
Returns
Edition of LUNA SDK instance. Posible values:
    +
  • CompleteEdition - full edition with all function.
  • +
  • FrontEndEdition - short edition with excluded descriptor functions. Extractor, matcher, descriptor, batch and index cannot be created.
  • +
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ILicense* fsdk::IFaceEngineMobile::getLicense () const
+
+pure virtualnoexcept
+
+ +

Get current License object, which was set for FaceEngine object.

+
Returns
pointer to current license object, nullptr if no any license was set to.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ISettingsProvider* fsdk::IFaceEngineMobile::getRuntimeSettingsProvider () const
+
+pure virtualnoexcept
+
+ +

Gets runtime settings provider.

+
Returns
runtime settings provider.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ISettingsProvider* fsdk::IFaceEngineMobile::getSettingsProvider () const
+
+pure virtualnoexcept
+
+ +

Gets settings provider.

+
Returns
settings provider.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IFaceEngineMobile::setDataDirectory (const char * path)
+
+pure virtualnoexcept
+
+ +

Sets data directory.

+
Parameters
+ + +
[in]pathpath to data directory.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IFaceEngineMobile::setRuntimeSettingsProvider (ISettingsProviderprovider)
+
+pure virtualnoexcept
+
+ +

Sets runtime settings provider.

+
Parameters
+ + +
[in]providerruntime settings provider.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IFaceEngineMobile::setSettingsProvider (ISettingsProviderprovider)
+
+pure virtualnoexcept
+
+ +

Sets settings provider.

+
Parameters
+ + +
[in]providersettings provider.
+
+
+ +
+
+
+
+ + + + diff --git a/doc/fsdk/html/group___core_group.js b/doc/fsdk/html/group___core_group.js new file mode 100644 index 0000000..1b1ad07 --- /dev/null +++ b/doc/fsdk/html/group___core_group.js @@ -0,0 +1,279 @@ +var group___core_group = +[ + [ "IFaceEngineMobile", "structfsdk_1_1_i_face_engine_mobile.html", [ + [ "createAGSEstimator", "group___core_group.html#ga7a8dada6aaffd748670b10af9b046a18", null ], + [ "createBestShotQualityEstimator", "group___core_group.html#ga82e87dfd7117d3763343ae6078009efb", null ], + [ "createDescriptor", "group___core_group.html#gae1c6db8b544293bc9d766179e60e1c9a", null ], + [ "createDescriptor", "group___core_group.html#ga7c21f0d0ebda0e2781587c4997d2a074", null ], + [ "createDescriptorBatch", "group___core_group.html#gaabd68d9f71a2fec2fbf5dce797f3f73f", null ], + [ "createDetector", "group___core_group.html#gab4e15bad5b0652a07740dd42c3f94b0e", null ], + [ "createExtractor", "group___core_group.html#ga6d171cca36e4bad1c168446af23bc1f7", null ], + [ "createEyeEstimator", "group___core_group.html#gaa34107647b69d70c58a3af02e0048c12", null ], + [ "createGlassesEstimator", "group___core_group.html#ga94b00826d57a09e377fb6c1129b495e9", null ], + [ "createHeadPoseEstimator", "group___core_group.html#ga6566961928a6f4baa9894df55e1c7c42", null ], + [ "createLivenessOneShotRGBEstimator", "group___core_group.html#ga4f583287b3fe2c550aec979adc633fa6", null ], + [ "createMatcher", "group___core_group.html#ga7201c2b88cc0ea2c205984980b15d907", null ], + [ "createMedicalMaskEstimator", "group___core_group.html#gaf71707f01d6c22abce1c3b04c58e698d", null ], + [ "createQualityEstimator", "group___core_group.html#ga48d0e10395506ba4632304c49d0e076a", null ], + [ "createWarper", "group___core_group.html#ga8f4b3b0e8896608c769e841fca849e3d", null ], + [ "getDataDirectory", "group___core_group.html#ga217e0e83b975735419e174ee80ba36fb", null ], + [ "getFaceEngineEdition", "group___core_group.html#ga74540f3cf43d5a029db8f4875744557f", null ], + [ "getLicense", "group___core_group.html#gaaaf25fb20c78b3252073b7789e45769c", null ], + [ "getRuntimeSettingsProvider", "group___core_group.html#gaf750282898a3426064f2911ad82a3caf", null ], + [ "getSettingsProvider", "group___core_group.html#gaea8316288bbea8bde5fe36dd6909356e", null ], + [ "setDataDirectory", "group___core_group.html#ga297a0bb88bf7d2a79939e4936067d5d3", null ], + [ "setRuntimeSettingsProvider", "group___core_group.html#ga4d091c486f5157e8f0f42630fa4c7d78", null ], + [ "setSettingsProvider", "group___core_group.html#ga807383acfa6e302fce4fdc6254884735", null ] + ] ], + [ "IArchive", "structfsdk_1_1_i_archive.html", [ + [ "~IArchive", "structfsdk_1_1_i_archive.html#ab8e4a2c51e99971fd67345b31ddfab9e", null ], + [ "read", "structfsdk_1_1_i_archive.html#af27d2a846518cb22b709a40c88601b7b", null ], + [ "setSizeHint", "structfsdk_1_1_i_archive.html#a7f1fe72083db24c7b6620d4a9a657612", null ], + [ "write", "structfsdk_1_1_i_archive.html#a8c48b5099bee7f93b069cc7a9901ba3e", null ] + ] ], + [ "ISerializableObject", "structfsdk_1_1_i_serializable_object.html", [ + [ "Error", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0", [ + [ "Ok", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0aa60852f204ed8028c1c58808b746d115", null ], + [ "Size", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a6f6cb72d544962fa333e2e34ce64f719", null ], + [ "Signature", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a8c09001c99ecb6fdd8d6023fcf039054", null ], + [ "ArchiveRead", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a475e42b82c23aaaa94f66c43f80a14d1", null ], + [ "InputArchive", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0af7d6ea2b343a99ac0a2cd306ed96b5c7", null ], + [ "ArchiveWrite", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a5b9364e023e7cee301db9754a421d258", null ] + ] ], + [ "Flags", "structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79", [ + [ "Default", "structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79a6e4800456cd37d67c1cdcfecaac8afab", null ], + [ "NoSignature", "structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79abe2164cbc91b390163c0c9af3448acf6", null ] + ] ], + [ "getSize", "structfsdk_1_1_i_serializable_object.html#a22ce2c43e668e4d5dbd79dc0056e2032", null ], + [ "load", "structfsdk_1_1_i_serializable_object.html#a9217958c8ff2aeb970db02c3324a017b", null ], + [ "save", "structfsdk_1_1_i_serializable_object.html#a5171a97d79c639d613ec9d6ee694c8e1", null ] + ] ], + [ "ErrorTraits< ISerializableObject::Error >", "structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html", null ], + [ "IDataStorageObject", "structfsdk_1_1_i_data_storage_object.html", [ + [ "clear", "structfsdk_1_1_i_data_storage_object.html#addfae1943b82b44900f1c2f318a05d53", null ], + [ "getParentObject", "structfsdk_1_1_i_data_storage_object.html#a76dd0aaf5ac83187635a9161ceae8237", null ] + ] ], + [ "IRefCounted", "structfsdk_1_1_i_ref_counted.html", [ + [ "getRefCount", "structfsdk_1_1_i_ref_counted.html#a0e9c300055d88ac0ef739d1e424c8634", null ], + [ "getWeakRefCount", "structfsdk_1_1_i_ref_counted.html#a230ba9c884c16e9e316344b9b901a480", null ], + [ "release", "structfsdk_1_1_i_ref_counted.html#a1b045b30c43c70150e553b7bd796e92a", null ], + [ "releaseWeak", "structfsdk_1_1_i_ref_counted.html#a89a2ad867e5ded45c0b3764a48fc6ff3", null ], + [ "retain", "structfsdk_1_1_i_ref_counted.html#a8cb7a6ecf064e4b8a99038cf08a29e7f", null ], + [ "retainLocked", "structfsdk_1_1_i_ref_counted.html#a7362292166bdff4b2463e25f8003671a", null ], + [ "retainWeak", "structfsdk_1_1_i_ref_counted.html#aaea14dbe2f8eee5deefced4ef3a126b5", null ] + ] ], + [ "ISettingsProvider", "structfsdk_1_1_i_settings_provider.html", [ + [ "Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html", [ + [ "Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#ac5b3c770ae3ec11839e56ba4b5bb1270", null ], + [ "Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#a5f4b610fa970c3719789a0413c9eab4a", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#a8a848bcc48f7ede8a50f46c5c811fb48", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#af5c231731f8657154468cfc4ba7e3096", null ], + [ "m_desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#acca51618f5f65a44723b8396207535be", null ] + ] ], + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html", [ + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a2a436c5de00e2ae0972f2678d6e1d35c", null ], + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a76c3a1fc463fc29c392d0a5b25e50b0c", null ], + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html#aa56d52bb2b36a95778b68f9ef3d5f37d", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a0b98e0168b42f322a92c912529b450ec", null ], + [ "getValue", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a673ccd7aa4e1ceed022216588cfff06c", null ], + [ "operator=", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a00387b57774580fd07bc4c2bc2ae16ed", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a462b8686b4b770c5204a4a5031514fb9", null ], + [ "setValue", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a0f18fe3e34e0546f8bb7e8ec89ac2b7f", null ], + [ "swap", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a12378000c5e82a764cc23ba0ced3b0aa", null ], + [ "m_desc", "structfsdk_1_1_i_settings_provider_1_1_entry.html#ab62a7d512a201be88694b03f89a4f44a", null ], + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_entry.html#ac2bba965cd886b1f53b60ddf24f35df3", null ] + ] ], + [ "Key", "structfsdk_1_1_i_settings_provider_1_1_key.html", [ + [ "Key", "structfsdk_1_1_i_settings_provider_1_1_key.html#a67d333ee0b4c658d8ebe9cd6b2f293f8", null ], + [ "Key", "structfsdk_1_1_i_settings_provider_1_1_key.html#a8119c6cd5cc92e235c39f333abdfc5ad", null ], + [ "getParameter", "structfsdk_1_1_i_settings_provider_1_1_key.html#ac2c40cfd491b56908d2f90e71da997f7", null ], + [ "getSection", "structfsdk_1_1_i_settings_provider_1_1_key.html#a3b0d1a48c5eb2e6255fd51fcc3d28df4", null ], + [ "operator<", "structfsdk_1_1_i_settings_provider_1_1_key.html#a09f319d67c581d9eab31d16bb20062db", null ], + [ "setParameter", "structfsdk_1_1_i_settings_provider_1_1_key.html#a4806cf422efe957999b8b1578f716d4b", null ], + [ "setSection", "structfsdk_1_1_i_settings_provider_1_1_key.html#acb298366c5ad703f47add965f31420ed", null ], + [ "m_parameter", "structfsdk_1_1_i_settings_provider_1_1_key.html#a4a9ac00ecf0318698499bc7ca5a3dd6d", null ], + [ "m_section", "structfsdk_1_1_i_settings_provider_1_1_key.html#a47c4fb20308ffab842f8c6b8771482c2", null ] + ] ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html", [ + [ "Data", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html", [ + [ "Float1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html#ae63a9c7288b98e3ee010a0d71ddf66b0", null ] + ] ], + [ "Float2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html#a54ef03e3764f6c9d717428f00d7dcac0", null ] + ] ], + [ "Float3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html#a2c65cd019d53b98e9c7228b0728b0672", null ] + ] ], + [ "Float4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html#ae56a2030465c842ae2cf680ed000e9f5", null ] + ] ], + [ "Int1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html#ac1c85d9f4a766988ba3e44895851e3d2", null ] + ] ], + [ "Int2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html#a4c55e81f7dea9e29a0021985ee3858bd", null ] + ] ], + [ "Int3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html#ab4ead299cf9fdf2e8a88d3837f0e4637", null ] + ] ], + [ "Int4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html#a4a066c64f5fa448328eaa181e4a9b650", null ] + ] ], + [ "String", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html", [ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html#aef4bb8f9515dc54644cd37ee57c46a05", null ] + ] ], + [ "m_float1", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a77dc14765597fe4cf65da827a2c36d01", null ], + [ "m_float2", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#ab756fa69de93422f525aede6fd4d5dcb", null ], + [ "m_float3", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a5ec6030828e645853be71394e3d22e8e", null ], + [ "m_float4", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aec1196921ed7470f8869d930160883cf", null ], + [ "m_int1", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a19bebc0b9e17e194c981355ce0bfa90a", null ], + [ "m_int2", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a9b685dfe0da1654cdbc72215f2db04ed", null ], + [ "m_int3", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#afa87698cc37557d1cae0bdafb2663ec4", null ], + [ "m_int4", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a3e4b62bfb96be90b38126d7af628fef5", null ], + [ "m_string", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aea8dd6b42c5e9ffa5ffebfb8e31e5b23", null ] + ] ], + [ "Type", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947", [ + [ "Undefined", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a99ad8e5a64bab96bf5f777dc1b51d88f", null ], + [ "Int1", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a95a8d18f7debfc437b1669849e7dd925", null ], + [ "Int2", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947adf23e4f8136317e83ee4579ba2a5e066", null ], + [ "Int3", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ab6b18a107e12ec3a414343d93b4d69ec", null ], + [ "Int4", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac4b020c2b070595a491d27e82c03ab5d", null ], + [ "Float1", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947afce0cbbaf3da4fd239865223a2cafd2d", null ], + [ "Float2", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947acab9b95fc0f8e22586956c7b2831c742", null ], + [ "Float3", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac1e9d375777e2ca4631b5e4851a8e70c", null ], + [ "Float4", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a96cf9d7a2ede9c47b110b3a4178f3401", null ], + [ "String", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac62a83138afcfe41b9c64a6e6026f5fb", null ] + ] ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#ade9870a88b9fa5247d9f82c943001100", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5b698f499b70e5d43fce29e0d9aaec45", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#acf068436955aef306ffe0ca7eb2d5eaa", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a3ff3a44e47d48d850e79e32602ec2998", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#aff30902febdfdfd0d643f8610b68de9f", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a637a0f66f4f6449c868e1fd51d844387", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5ac724fe6b158f9f22e0e5cebad63a1d", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#ad4524374bafcce36a1349f0648dbefd4", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#acd744c00433c524a120bb97fcb0694e9", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#aa0d8c8295aa8659f811339346676afda", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#ab99aac88b065b701b60fa4fbe2ec0b72", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#aac66334b8d4bb178545ae4821d2451a6", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a44bd12725bb7ead2c5c8dfbd53001fd5", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a253a8ea6fa125871c60351d1488a8ef7", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a65ad04619431c95aff284087f1a5c23d", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9b2d860be94b53a84331ca5351f28685", null ], + [ "~Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a351856d77b04742d7c62bb4a3fa1dd9e", null ], + [ "asBool", "structfsdk_1_1_i_settings_provider_1_1_value.html#a81865a1f56ef1450a47de5d8e8866c6d", null ], + [ "asFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a6070b50e16d3cbcd5a49c018b6d631c8", null ], + [ "asInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9dc95a2a7f10e8860915a14565a86f73", null ], + [ "asPoint2f", "structfsdk_1_1_i_settings_provider_1_1_value.html#a89993c2d966d24f4d8f1800d25af4071", null ], + [ "asPoint2i", "structfsdk_1_1_i_settings_provider_1_1_value.html#a62b3eff07e0687047a65e18939f4a1af", null ], + [ "asRect", "structfsdk_1_1_i_settings_provider_1_1_value.html#a320c5395ac81284ee738283ef07f6f32", null ], + [ "asSize", "structfsdk_1_1_i_settings_provider_1_1_value.html#ac401f96faea0d11e79f92e66416e560d", null ], + [ "asString", "structfsdk_1_1_i_settings_provider_1_1_value.html#acf75100534bf1b7c7d9536ace5b8dca8", null ], + [ "getBool", "structfsdk_1_1_i_settings_provider_1_1_value.html#a7dc84becec0ff1614a11c85c268b2571", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#ade18ca8709878512682fa7b69fc0cfc1", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a35cc96b6aae0ecbbc0c1079ea3142899", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5c4c474afda291a09a19f69f43c43abc", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a681b8d01c5a5112fae15ec244f97ee84", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9a2643462aaff211e15a57fd5c6e348e", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#af9f2f9595e49580129d8502768fdc080", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9b264cc5dd478ec7e113819addd0d807", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#affa5d3f08168c5ffa1fcf815b32d4513", null ], + [ "getPoint2f", "structfsdk_1_1_i_settings_provider_1_1_value.html#a8dcc7bc3027a4462188342bf0fb1fbc9", null ], + [ "getPoint2i", "structfsdk_1_1_i_settings_provider_1_1_value.html#a3b53f8c1e07a0403aaadde5e9bac69ae", null ], + [ "getRect", "structfsdk_1_1_i_settings_provider_1_1_value.html#acbe915c78434291060b0a4159405ec45", null ], + [ "getSize", "structfsdk_1_1_i_settings_provider_1_1_value.html#a1fbb01df32dceb4539a852113a27c752", null ], + [ "getString", "structfsdk_1_1_i_settings_provider_1_1_value.html#ac5551406db04db1db8f54279c737fff3", null ], + [ "is", "structfsdk_1_1_i_settings_provider_1_1_value.html#a0712a27f674f611a777f8067bb6c9c5e", null ], + [ "operator bool", "structfsdk_1_1_i_settings_provider_1_1_value.html#aee7766a54dfb9dce2606aef1f88f2b3c", null ], + [ "operator=", "structfsdk_1_1_i_settings_provider_1_1_value.html#aeb4a8584bac9b97ee89ddc67ec1ac288", null ], + [ "operator=", "structfsdk_1_1_i_settings_provider_1_1_value.html#ad741f2aa88c7982c302fe2fe66bb6471", null ], + [ "setBool", "structfsdk_1_1_i_settings_provider_1_1_value.html#afbdabfa895b18e2ae63429b99accb87b", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a4e86e07ec3d3dd9fa6df83af423b147e", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5720f7b47ca5264c9da56cb8659fff40", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#af6de22e8a4956661ef47b65adbc7684f", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#aefc7af5a886571f1e510c1eb51558c06", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a8ffc8d4baa19ff98c25b3ca1cdec419d", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a4b8b66e59cbdc206fc389f486ac9da69", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#abf9c6a2457cf1f7cc856533aefd85d9d", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a999198508b6f0f7ec19daff50424343b", null ], + [ "setPoint2f", "structfsdk_1_1_i_settings_provider_1_1_value.html#a97c411b847afda41ec7b64a0e646e6e6", null ], + [ "setPoint2i", "structfsdk_1_1_i_settings_provider_1_1_value.html#a2a6a2b04795f4be07002b554877951b0", null ], + [ "setRect", "structfsdk_1_1_i_settings_provider_1_1_value.html#a33745b6b63863e2153867c888257a373", null ], + [ "setSize", "structfsdk_1_1_i_settings_provider_1_1_value.html#a98e8b1488035f0329ffc81180143398e", null ], + [ "setString", "structfsdk_1_1_i_settings_provider_1_1_value.html#a730243dec9aa8addb47d58b11806dafa", null ], + [ "swap", "structfsdk_1_1_i_settings_provider_1_1_value.html#a35b338eaba92786d687532a27101fe89", null ], + [ "m_data", "structfsdk_1_1_i_settings_provider_1_1_value.html#a2b853c76f9e36682a6955399565855d3", null ], + [ "m_type", "structfsdk_1_1_i_settings_provider_1_1_value.html#a2eacc17be55f5b7c45b0b14dae8dabed", null ] + ] ], + [ "Error", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5", [ + [ "Ok", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aa60852f204ed8028c1c58808b746d115", null ], + [ "IOError", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a5206bd7472156351d2d9a99633ac9580", null ], + [ "Memory", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a4789f23283b3a61f858b641a1bef19a3", null ], + [ "Internal", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aafbf0897a5a83fdd873dfb032ec695d3", null ], + [ "InvalidPi", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a96fe5a2a900fba7e5dd6fe5519f09e90", null ], + [ "InvalidTag", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5af155a86534ba8c83bd9ced7c8f510b4c", null ], + [ "InvalidCdata", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a20c6429b7ff545070b48df0668d686fe", null ], + [ "FileNotFound", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a2767828026039e8ba7b38973cbb701f2", null ], + [ "InvalidPcdata", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a65d83fd76501c29718cc8fde8b8f33db", null ], + [ "InvalidDocType", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a93650de0861d0516977f25b86ee42e5a", null ], + [ "InvalidSettings", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a37a5f254c366f6c4dcba8bfd75f1070e", null ], + [ "InvalidComment", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5ac51b09d66c17f113d52d2822fb71a757", null ], + [ "InvalidAttribute", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a49069827e26a70a158193ed0595b485b", null ], + [ "InvalidEndElement", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a811a6b500aa2374e3a70057141dccbbf", null ], + [ "AppendInvalidRoot", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a29ebf8fe305fd42de0b208c9dc226559", null ], + [ "NoDocumentElement", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a655f7706c6b80b169803c2854e43f207", null ], + [ "EndElementMismatch", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a491cc2103be52c3b503686a792baf206", null ], + [ "InvalidStartElement", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a17b7fccdd65da9c5a54552c3685041a4", null ], + [ "MemoryAllocationFailed", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5accc756faa9c309bf0bd9ed5e43dee2a0", null ] + ] ], + [ "clear", "structfsdk_1_1_i_settings_provider.html#a80367779f65239e656e0a20a6204224a", null ], + [ "getDefaultPath", "structfsdk_1_1_i_settings_provider.html#a6c0a658442e821b9f8f7dfd77d1efcb7", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider.html#a40af7f105aed6ee83863bda1f0f2219e", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider.html#a49a4727e0cf0a90cc1536440a049cc07", null ], + [ "getEntry", "structfsdk_1_1_i_settings_provider.html#af4b9a97e6472e46ba644f7a41418e5d8", null ], + [ "getValue", "structfsdk_1_1_i_settings_provider.html#acd929b0985eb547bf1c40e494e36e1f8", null ], + [ "getValue", "structfsdk_1_1_i_settings_provider.html#a5f5381f466e214ba4a2c7565bc89dba2", null ], + [ "isEmpty", "structfsdk_1_1_i_settings_provider.html#acedb7b69472de81a44c6d69511c9e908", null ], + [ "load", "structfsdk_1_1_i_settings_provider.html#a882a7671cc283d81028ddeeae9da1a23", null ], + [ "save", "structfsdk_1_1_i_settings_provider.html#a24c6329c41291b32cdecf5d10cb90a90", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider.html#ac9dd8729888381082f1fd9ec46734db2", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider.html#aabb9a7e6bd022bc5fd89d019a74628d0", null ], + [ "setEntry", "structfsdk_1_1_i_settings_provider.html#a24483db5f2e2b8434cb226d23e8f767d", null ], + [ "setEntry", "structfsdk_1_1_i_settings_provider.html#abedbf12597aee1d33e7f42c47fa9b18a", null ], + [ "setEntry", "structfsdk_1_1_i_settings_provider.html#a44255bcd4c2f6697782082033f1c062e", null ], + [ "setValue", "structfsdk_1_1_i_settings_provider.html#a98efbcbf26e39e5cf70b3215514d5975", null ], + [ "setValue", "structfsdk_1_1_i_settings_provider.html#a6472ad96f6b21bbf36fbbd4e4473bb50", null ] + ] ], + [ "ErrorTraits< ISettingsProvider::Error >", "structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html", null ], + [ "DECLARE_SMARTPTR", "group___core_group.html#gac4832e274cc0ba20ce33c3e34503a063", null ], + [ "STRINGIFY", "group___core_group.html#ga6df1d22fb5f09eccc23b9f399670cfd7", null ], + [ "STRINGIFY2", "group___core_group.html#ga41f0baf2fca639d9cb25be1b9e03e335", null ], + [ "activateLicense", "group___core_group.html#ga53c35949048b783d461b35d554b8f6d0", null ], + [ "activateLicense", "group___core_group.html#gac6fffdb9d8e070ac8bc8a0515a0fde27", null ], + [ "createAGSEstimator", "group___core_group.html#ga7a8dada6aaffd748670b10af9b046a18", null ], + [ "createBestShotQualityEstimator", "group___core_group.html#ga82e87dfd7117d3763343ae6078009efb", null ], + [ "createDescriptor", "group___core_group.html#gae1c6db8b544293bc9d766179e60e1c9a", null ], + [ "createDescriptor", "group___core_group.html#ga7c21f0d0ebda0e2781587c4997d2a074", null ], + [ "createDescriptorBatch", "group___core_group.html#gaabd68d9f71a2fec2fbf5dce797f3f73f", null ], + [ "createDetector", "group___core_group.html#gab4e15bad5b0652a07740dd42c3f94b0e", null ], + [ "createExtractor", "group___core_group.html#ga6d171cca36e4bad1c168446af23bc1f7", null ], + [ "createEyeEstimator", "group___core_group.html#gaa34107647b69d70c58a3af02e0048c12", null ], + [ "createFaceEngineMobile", "group___core_group.html#gadbdeae1a7389e47b9306ab1101602e5f", null ], + [ "createGlassesEstimator", "group___core_group.html#ga94b00826d57a09e377fb6c1129b495e9", null ], + [ "createHeadPoseEstimator", "group___core_group.html#ga6566961928a6f4baa9894df55e1c7c42", null ], + [ "createLivenessOneShotRGBEstimator", "group___core_group.html#ga4f583287b3fe2c550aec979adc633fa6", null ], + [ "createMatcher", "group___core_group.html#ga7201c2b88cc0ea2c205984980b15d907", null ], + [ "createMedicalMaskEstimator", "group___core_group.html#gaf71707f01d6c22abce1c3b04c58e698d", null ], + [ "createQualityEstimator", "group___core_group.html#ga48d0e10395506ba4632304c49d0e076a", null ], + [ "createSettingsProvider", "group___core_group.html#gabaa648d3852a1059c82f1d8462e18e9d", null ], + [ "createWarper", "group___core_group.html#ga8f4b3b0e8896608c769e841fca849e3d", null ], + [ "getDataDirectory", "group___core_group.html#ga217e0e83b975735419e174ee80ba36fb", null ], + [ "getFaceEngineEdition", "group___core_group.html#ga74540f3cf43d5a029db8f4875744557f", null ], + [ "getLicense", "group___core_group.html#gaaaf25fb20c78b3252073b7789e45769c", null ], + [ "getRuntimeSettingsProvider", "group___core_group.html#gaf750282898a3426064f2911ad82a3caf", null ], + [ "getSettingsProvider", "group___core_group.html#gaea8316288bbea8bde5fe36dd6909356e", null ], + [ "setDataDirectory", "group___core_group.html#ga297a0bb88bf7d2a79939e4936067d5d3", null ], + [ "setRuntimeSettingsProvider", "group___core_group.html#ga4d091c486f5157e8f0f42630fa4c7d78", null ], + [ "setSettingsProvider", "group___core_group.html#ga807383acfa6e302fce4fdc6254884735", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/group___descriptor_processing_group.html b/doc/fsdk/html/group___descriptor_processing_group.html new file mode 100644 index 0000000..8d2bdff --- /dev/null +++ b/doc/fsdk/html/group___descriptor_processing_group.html @@ -0,0 +1,236 @@ + + + + + + +Face Engine SDK: Descriptor extractor + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Descriptor extractor
+
+
+ +

Descriptor extractor public interfaces and related types and structures. +More...

+ + + + + + + + + + + + + + + + + + + + +

+Classes

struct  fsdk::MatchingResult
 Result of descriptor matching. More...
 
struct  fsdk::IDescriptor
 Descriptor interface. More...
 
struct  fsdk::IDescriptorBatch
 Descriptor batch interface. More...
 
struct  fsdk::ErrorTraits< IDescriptorBatch::Error >
 Specialized for DescriptorBatchError. More...
 
struct  fsdk::IDescriptorExtractor
 Descriptor extractor interface. More...
 
struct  fsdk::IDescriptorMatcher
 Descriptor matcher interface. More...
 
+ + + + + + + + + + +

+Enumerations

enum  fsdk::DescriptorType { fsdk::DT_FACE, +fsdk::DT_HUMAN + }
 Descriptor type enum. Determines which type of descriptor to use. More...
 
enum  fsdk::DescriptorVersion : uint32_t { fsdk::DV_MIN_FACE_DESCRIPTOR_VERSION = 46, +fsdk::DV_MIN_HUMAN_DESCRIPTOR_VERSION = 102 + }
 Minimum descriptor model version. Determines which minimum version of descriptor to use. More...
 
enum  fsdk::HumanDescriptorVersion : uint32_t { fsdk::HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION = 102, +fsdk::HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION = 103, +fsdk::HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION = 104 + }
 Human descriptor model versions. Determines which version of human descriptor to use. More...
 
+

Detailed Description

+

Descriptor extractor public interfaces and related types and structures.

+

Enumeration Type Documentation

+ +
+
+ + + + +
enum fsdk::DescriptorType
+
+ +

Descriptor type enum. Determines which type of descriptor to use.

+ + + +
Enumerator
DT_FACE  +

face descriptor.

+
DT_HUMAN  +

human descriptor.

+
+ +
+
+ +
+
+ + + + +
enum fsdk::DescriptorVersion : uint32_t
+
+ +

Minimum descriptor model version. Determines which minimum version of descriptor to use.

+ + + +
Enumerator
DV_MIN_FACE_DESCRIPTOR_VERSION  +

face descriptor.

+
DV_MIN_HUMAN_DESCRIPTOR_VERSION  +

human descriptor.

+
+ +
+
+ +
+
+ + + + +
enum fsdk::HumanDescriptorVersion : uint32_t
+
+ +

Human descriptor model versions. Determines which version of human descriptor to use.

+ + + + +
Enumerator
HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION  +

human descriptor for tracking of people, light and fast version.

+
HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION  +

precise human descriptor, heavy and slow.

+
HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION  +

regular human descriptor.

+
+ +
+
+
+
+ + + + diff --git a/doc/fsdk/html/group___descriptor_processing_group.js b/doc/fsdk/html/group___descriptor_processing_group.js new file mode 100644 index 0000000..03b3655 --- /dev/null +++ b/doc/fsdk/html/group___descriptor_processing_group.js @@ -0,0 +1,71 @@ +var group___descriptor_processing_group = +[ + [ "MatchingResult", "structfsdk_1_1_matching_result.html", [ + [ "MatchingResult", "structfsdk_1_1_matching_result.html#a225957f44be2294e809c2dd59ad728ed", null ], + [ "MatchingResult", "structfsdk_1_1_matching_result.html#a913ed5d074a8c817b3a1c59e7759e526", null ], + [ "distance", "structfsdk_1_1_matching_result.html#a51e3137806e9938aa3b70557cbf1628b", null ], + [ "similarity", "structfsdk_1_1_matching_result.html#ae8b080ed7da80dd6848de80be9ffce51", null ] + ] ], + [ "IDescriptor", "structfsdk_1_1_i_descriptor.html", [ + [ "getDescriptor", "structfsdk_1_1_i_descriptor.html#ab5512a2e46ca8b3b9f791bc620855e4c", null ], + [ "getDescriptorLength", "structfsdk_1_1_i_descriptor.html#a1a0c8122a9c7f0fcefa94d48d4144b4f", null ], + [ "getDescriptorType", "structfsdk_1_1_i_descriptor.html#a1c13db8168c4fb3102ac9f5ab8064722", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor.html#a69cd5752c0de1981d0eae131492ea5e7", null ], + [ "setDescriptor", "structfsdk_1_1_i_descriptor.html#a430f0098d482b8f235f0b0282184c864", null ] + ] ], + [ "IDescriptorBatch", "structfsdk_1_1_i_descriptor_batch.html", [ + [ "Error", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93", [ + [ "Ok", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aa60852f204ed8028c1c58808b746d115", null ], + [ "InvalidInput", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93ad8f78ca9a692a9411afbc7584b69d043", null ], + [ "BatchFull", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a04b15c03f3f8d523b85b4698e1bc56cb", null ], + [ "Incompatible", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a2a208768bc7995cc26b7f3797d24b0b1", null ], + [ "Internal", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aafbf0897a5a83fdd873dfb032ec695d3", null ], + [ "IoError", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93af05cfcbf5123775f7c73e520a8d861e1", null ], + [ "OutOfRange", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a365b2699d38b61ef4b4c8a1066c8468f", null ] + ] ], + [ "add", "structfsdk_1_1_i_descriptor_batch.html#acdebdf5cd4b73082fb1f69b7c3673b3e", null ], + [ "add", "structfsdk_1_1_i_descriptor_batch.html#a61596b9c2071cf35b9f7b36f78338b31", null ], + [ "add", "structfsdk_1_1_i_descriptor_batch.html#ab13b6d9a8bc83a2319a2df12ea8fb385", null ], + [ "getCount", "structfsdk_1_1_i_descriptor_batch.html#a786779cf2e2c286ce80f95907c23ff1d", null ], + [ "getDescriptorFast", "structfsdk_1_1_i_descriptor_batch.html#a4e0a961f7736f00dae3327dd58d39f68", null ], + [ "getDescriptorLength", "structfsdk_1_1_i_descriptor_batch.html#a7cf7c4ae4d831ff0bc9b7187eb866e9e", null ], + [ "getDescriptorSlow", "structfsdk_1_1_i_descriptor_batch.html#a61d0c7378db1a1a4e336c0b12f9af7e5", null ], + [ "getDescriptorType", "structfsdk_1_1_i_descriptor_batch.html#ac044ea615c32aa4433c60e0491e8c958", null ], + [ "getMaxCount", "structfsdk_1_1_i_descriptor_batch.html#a48090c46fcc1613d4d08c082f21b40ce", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor_batch.html#a88c11b85fc5a8b3eede0d7a2c6f251d6", null ], + [ "loadAndAdd", "structfsdk_1_1_i_descriptor_batch.html#a1e40e982bc2bd2fe5a18e8a7f43cbf99", null ], + [ "removeFast", "structfsdk_1_1_i_descriptor_batch.html#a8f32454a4158e732938e6b9812b6ceb5", null ], + [ "removeSlow", "structfsdk_1_1_i_descriptor_batch.html#ac98c97ca906f99236c7065d51f82c65a", null ] + ] ], + [ "ErrorTraits< IDescriptorBatch::Error >", "structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html", null ], + [ "IDescriptorExtractor", "structfsdk_1_1_i_descriptor_extractor.html", [ + [ "FutureResult", "structfsdk_1_1_i_descriptor_extractor.html#a99a4f2d66cd4fc28a69cd02b9348817c", null ], + [ "extractFromWarpedImage", "structfsdk_1_1_i_descriptor_extractor.html#ae6fdfb87662991d62af362b06982728e", null ], + [ "extractFromWarpedImageBatch", "structfsdk_1_1_i_descriptor_extractor.html#a3bdb3f914db81bef8b849e4973566f88", null ], + [ "extractFromWarpedImageBatch", "structfsdk_1_1_i_descriptor_extractor.html#a5c1d36e3c3362aa8160bcc89933bcf1b", null ], + [ "extractFromWarpedImageBatchAsync", "structfsdk_1_1_i_descriptor_extractor.html#af35cadc879d6ceb1429a95c4fee6509d", null ], + [ "getDescriptorType", "structfsdk_1_1_i_descriptor_extractor.html#afdd1464778a55727acaef93b9fc5d443", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor_extractor.html#ad1e6f85a654cc0d5b7e61e1a5caad36d", null ], + [ "validate", "structfsdk_1_1_i_descriptor_extractor.html#a02a1049adb8088b270111afb8cb438da", null ] + ] ], + [ "IDescriptorMatcher", "structfsdk_1_1_i_descriptor_matcher.html", [ + [ "calcDistance", "structfsdk_1_1_i_descriptor_matcher.html#a686369ae167cf3a4829845a37abfa620", null ], + [ "calcSimilarity", "structfsdk_1_1_i_descriptor_matcher.html#a5f0fa94452bc1690b1f687c0ddd80c98", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor_matcher.html#ac18bfe74c35189d18c4ae0d9c6757e11", null ], + [ "match", "structfsdk_1_1_i_descriptor_matcher.html#ae6a1c205c90fc302ac60888500b751ba", null ], + [ "match", "structfsdk_1_1_i_descriptor_matcher.html#af8ca338dac43b61892815153c2eb960f", null ] + ] ], + [ "DescriptorType", "group___descriptor_processing_group.html#ga1cd2e0e27848b58fe8d39becd00d6186", [ + [ "DT_FACE", "group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186adfd064a1bc06eda4ce5ad8cbb32ceb05", null ], + [ "DT_HUMAN", "group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186a55aa0ee5f96f43689faa8dc86966340e", null ] + ] ], + [ "DescriptorVersion", "group___descriptor_processing_group.html#gaa796beff9fb761301be4e46b1a2412ab", [ + [ "DV_MIN_FACE_DESCRIPTOR_VERSION", "group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba1dfe29faa054d00d13d992fdfcffaef4", null ], + [ "DV_MIN_HUMAN_DESCRIPTOR_VERSION", "group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba663094a3a39d591eca695b631243f71a", null ] + ] ], + [ "HumanDescriptorVersion", "group___descriptor_processing_group.html#ga483d7359d800ae83b6fbda4dabdf086a", [ + [ "HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION", "group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aab372ead6c8a3d98140e26c9b05603fbf", null ], + [ "HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION", "group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aaccfd669d40850d6a873556ade7aa880e", null ], + [ "HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION", "group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aa2f2c4b298d09076afaf1ce4b262b88f3", null ] + ] ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/group___detector_group.html b/doc/fsdk/html/group___detector_group.html new file mode 100644 index 0000000..bea8d85 --- /dev/null +++ b/doc/fsdk/html/group___detector_group.html @@ -0,0 +1,303 @@ + + + + + + +Face Engine SDK: Face detector. + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Face detector.
+
+
+ +

Face detector public interfaces and related types and structures. +More...

+ + + + + + + + + + + + + + +

+Classes

class  fsdk::IDetectionComparer
 Interface of BestDetection comparer. Implement it if you want to use own BestDetection strategy. More...
 
class  fsdk::FunctionDetectionComparer
 Syntax sugar, allows you to use lambdas to define a BestDetection comparer. More...
 
struct  fsdk::IDetector
 face detector interface. More...
 
struct  fsdk::IHumanDetector
 human body detector interface. More...
 
+ + + + + + + + + + + + + +

+Enumerations

enum  fsdk::ObjectDetectorClassType {
+  fsdk::FACE_DET_DEFAULT = 0, +fsdk::FACE_DET_V1 = 4, +fsdk::FACE_DET_V2 = 5, +fsdk::FACE_DET_V3 = 6, +
+  fsdk::FACE_DET_COUNT = 7 +
+ }
 Object detector type enumeration. More...
 
enum  fsdk::DetectionComparerType {
+  fsdk::DCT_CONFIDENCE = 0, +fsdk::DCT_CENTER, +fsdk::DCT_CENTER_AND_CONFIDENCE, +fsdk::DCT_SIZE, +
+  DCT_COUNT +
+ }
 Strategy of BestDetections comparer. More...
 
enum  fsdk::DetectionType { fsdk::DT_BBOX = 0, +fsdk::DT_LANDMARKS5 = 1<<0, +fsdk::DT_LANDMARKS68 = 1<<1, +fsdk::DT_ALL = 0xffff + }
 Detection type enumeration. More...
 
enum  fsdk::HumanDetectionType { fsdk::HDT_BOX = 0, +fsdk::HDT_POINTS = 1<<0, +fsdk::HDT_ALL = 0xffff + }
 Human detection type enumeration. More...
 
+ + + + + +

+Functions

+DetectionType fsdk::operator| (DetectionType a, DetectionType b)
 
+HumanDetectionType fsdk::operator| (HumanDetectionType a, HumanDetectionType b)
 
+

Detailed Description

+

Face detector public interfaces and related types and structures.

+

Human detector public interfaces and related types and structures.

+

Enumeration Type Documentation

+ +
+
+ + + + +
enum fsdk::DetectionComparerType
+
+ +

Strategy of BestDetections comparer.

+ + + + + +
Enumerator
DCT_CONFIDENCE  +

BestDetection - detections with highest score.

+
DCT_CENTER  +

BestDetection - most centered detection.

+
DCT_CENTER_AND_CONFIDENCE  +

bestDetection - most centered with high score.

+
DCT_SIZE  +

bestDetection - the largest detection.

+
+ +
+
+ +
+
+ + + + +
enum fsdk::DetectionType
+
+ +

Detection type enumeration.

+ + + + + +
Enumerator
DT_BBOX  +

Get bounding boxes of faces.

+
DT_LANDMARKS5  +

Get bounding boxes and 5 facial landmarks.

+
DT_LANDMARKS68  +

Get bounding boxes and 68 facial landmarks.

+
DT_ALL  +

Get all supported parameters.

+
+ +
+
+ +
+
+ + + + +
enum fsdk::HumanDetectionType
+
+ +

Human detection type enumeration.

+ + + + +
Enumerator
HDT_BOX  +

Get bounding boxes of human bodies.

+
HDT_POINTS  +

Get 17 keypoints of human, with score for each one.

+
HDT_ALL  +

Get all supported parameters.

+
+ +
+
+ +
+
+ +

Object detector type enumeration.

+ + + + + + +
Enumerator
FACE_DET_DEFAULT  +

Default detector cpecified in config file.

+
FACE_DET_V1  +

Detector type 1.

+
FACE_DET_V2  +

Detector type 2.

+
FACE_DET_V3  +

Detector type 3.

+
FACE_DET_COUNT  +

Detector type count.

+
+ +
+
+
+
+ + + + diff --git a/doc/fsdk/html/group___detector_group.js b/doc/fsdk/html/group___detector_group.js new file mode 100644 index 0000000..46c36b5 --- /dev/null +++ b/doc/fsdk/html/group___detector_group.js @@ -0,0 +1,62 @@ +var group___detector_group = +[ + [ "IDetectionComparer", "classfsdk_1_1_i_detection_comparer.html", [ + [ "~IDetectionComparer", "classfsdk_1_1_i_detection_comparer.html#a51f3eb717603448dc4429735ad08b738", null ], + [ "compare", "classfsdk_1_1_i_detection_comparer.html#a4d4a586c4ec2d4d1277c4f80a593fc62", null ] + ] ], + [ "FunctionDetectionComparer", "classfsdk_1_1_function_detection_comparer.html", [ + [ "Function", "classfsdk_1_1_function_detection_comparer.html#a1c9bf99a56409e8fce5f18ccd401aea0", null ], + [ "FunctionDetectionComparer", "classfsdk_1_1_function_detection_comparer.html#ad62076ff1b12d50971f8f636546d864b", null ], + [ "compare", "classfsdk_1_1_function_detection_comparer.html#a435c6427c6ae2eaf48306d07ccf40d4d", null ] + ] ], + [ "IDetector", "structfsdk_1_1_i_detector.html", [ + [ "FaceBatchFuture", "structfsdk_1_1_i_detector.html#adbb9c77a4c0ca459733b84b74a658ffe", null ], + [ "FaceBatchResult", "structfsdk_1_1_i_detector.html#ad1a6d103e55a64c4e0b4eb02478e64cd", null ], + [ "detect", "structfsdk_1_1_i_detector.html#abc50559be5a5f781d515ff37c0569672", null ], + [ "detectAsync", "structfsdk_1_1_i_detector.html#a46857380f1a9b542b99eed236d32c29c", null ], + [ "detectOne", "structfsdk_1_1_i_detector.html#a407bdaacb3a35f11a6b41c2bdf2d3949", null ], + [ "redetect", "structfsdk_1_1_i_detector.html#ae95fa3fe533fe5f3a15a7359446502d4", null ], + [ "redetect", "structfsdk_1_1_i_detector.html#a2b7b9a113d7f80fc6e6613d642b3943d", null ], + [ "redetectAsync", "structfsdk_1_1_i_detector.html#a31069412a8be899db49866d9651aa35b", null ], + [ "redetectOne", "structfsdk_1_1_i_detector.html#aad8aeff6c35f03740fc018a9b295a157", null ], + [ "setCustomDetectionComparer", "structfsdk_1_1_i_detector.html#aaf4ac12ce269c0cc293f9348f9ef1c3d", null ], + [ "setDetectionComparer", "structfsdk_1_1_i_detector.html#a19a8d0891929e7e922a2f1282076d8a9", null ], + [ "validate", "structfsdk_1_1_i_detector.html#a6c671781f42357e244a74e23bb9f3571", null ], + [ "validate", "structfsdk_1_1_i_detector.html#a57282cf9f0556a17670fc2274710863a", null ], + [ "validate", "structfsdk_1_1_i_detector.html#ac0600108abda046570741ed6cac302c1", null ] + ] ], + [ "IHumanDetector", "structfsdk_1_1_i_human_detector.html", [ + [ "detect", "structfsdk_1_1_i_human_detector.html#a8f7c76c7487445b59e498b49a1e3b216", null ], + [ "detectOne", "structfsdk_1_1_i_human_detector.html#a68b933f48f92ea3b1aa1986e3d8b30d8", null ], + [ "redetect", "structfsdk_1_1_i_human_detector.html#aa646c7b7ae2dda414b967a24092f3948", null ], + [ "redetect", "structfsdk_1_1_i_human_detector.html#a1a427579c96e2df17d7b445235a3f8fe", null ], + [ "redetectOne", "structfsdk_1_1_i_human_detector.html#a4f7351750b7ec8547778511a9129af60", null ], + [ "validate", "structfsdk_1_1_i_human_detector.html#a727b86aedb5fc1b9b614c57d2a0b0a3a", null ], + [ "validate", "structfsdk_1_1_i_human_detector.html#a7a47983761d58676a373231521a8181b", null ], + [ "validate", "structfsdk_1_1_i_human_detector.html#a6be4169b418fb07ccc9d6c6bb6721570", null ] + ] ], + [ "DetectionComparerType", "group___detector_group.html#ga7d021e05a5d867ffe947ffb40aa0923d", [ + [ "DCT_CONFIDENCE", "group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da8767054041a6b3288648b7a403ca7b17", null ], + [ "DCT_CENTER", "group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da763dab49108298d2d502a9749e2628e9", null ], + [ "DCT_CENTER_AND_CONFIDENCE", "group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da113aa401fd3bbad089894a3cf8fd06b6", null ], + [ "DCT_SIZE", "group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923dab87d650f70c0d623b1419a50c24ce590", null ] + ] ], + [ "DetectionType", "group___detector_group.html#ga29cb345293d30553e7af41260cede7ad", [ + [ "DT_BBOX", "group___detector_group.html#gga29cb345293d30553e7af41260cede7adafc1e9f167d5d1be9899f6732bc6f2110", null ], + [ "DT_LANDMARKS5", "group___detector_group.html#gga29cb345293d30553e7af41260cede7ada3a1cef8a2d392799c66fe948b3cee9f4", null ], + [ "DT_LANDMARKS68", "group___detector_group.html#gga29cb345293d30553e7af41260cede7ada508e9b2f679d5758e9bf979610dbb1c5", null ], + [ "DT_ALL", "group___detector_group.html#gga29cb345293d30553e7af41260cede7ada1be6a902d3612661d3200257c69323fa", null ] + ] ], + [ "HumanDetectionType", "group___detector_group.html#gaab9078e2636634d9f46c2b6616d89655", [ + [ "HDT_BOX", "group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a716d7d6139b785910a90c72107445098", null ], + [ "HDT_POINTS", "group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655ae80b512594911338293f4831de45136d", null ], + [ "HDT_ALL", "group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a68c684c9f61fe9e2ac96d86fc7b52fc5", null ] + ] ], + [ "ObjectDetectorClassType", "group___detector_group.html#gab83a85f36a0025dac2b8b6d41b88bd8c", [ + [ "FACE_DET_DEFAULT", "group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca908b2d58b338d34863dc56d21474ffc3", null ], + [ "FACE_DET_V1", "group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca76b25822675d9312e8decb221ca609ec", null ], + [ "FACE_DET_V2", "group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8caed0da3a5db3f97c5eb927a1696de2d65", null ], + [ "FACE_DET_V3", "group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8cafd6028fd9b68847f58ab7a089cedd57d", null ], + [ "FACE_DET_COUNT", "group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca53e96ce2b5c1880ce5588a4b099eb24b", null ] + ] ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/group___version_group.html b/doc/fsdk/html/group___version_group.html new file mode 100644 index 0000000..70acfe0 --- /dev/null +++ b/doc/fsdk/html/group___version_group.html @@ -0,0 +1,392 @@ + + + + + + +Face Engine SDK: Version + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Version
+
+
+ +

SDK Build type and version info. +More...

+ + + + +

+Classes

struct  fsdk::Version
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

bool fsdk::operator< (Version lhs, Version rhs) noexcept
 Check if one version is less than another. More...
 
bool fsdk::operator== (Version lhs, Version rhs) noexcept
 Check if versions are equal. More...
 
bool fsdk::operator!= (Version lhs, Version rhs) noexcept
 Check if versions are not equal. More...
 
FSDK_API Version fsdk::getVersion () noexcept
 Get FaceEngine version. More...
 
FSDK_API const char * fsdk::getVersionHash () noexcept
 Get FaceEngine commit hash. More...
 
FSDK_API const char * fsdk::getVersionString () noexcept
 Get FaceEngine version string. More...
 
FSDK_API const char * fsdk::getBuildInfo () noexcept
 Get FaceEngine build description. The descripton contains used flags and compler settings. More...
 
+

Detailed Description

+

SDK Build type and version info.

+

Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API const char* fsdk::getBuildInfo ()
+
+noexcept
+
+ +

Get FaceEngine build description. The descripton contains used flags and compler settings.

+
Returns
description as a null-terminated string.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API Version fsdk::getVersion ()
+
+noexcept
+
+ +

Get FaceEngine version.

+
Returns
filled version structure.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API const char* fsdk::getVersionHash ()
+
+noexcept
+
+ +

Get FaceEngine commit hash.

+
Returns
commit hash as a null-terminated string.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API const char* fsdk::getVersionString ()
+
+noexcept
+
+ +

Get FaceEngine version string.

+
Returns
version as a null-terminated string.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool fsdk::operator!= (Version lhs,
Version rhs 
)
+
+inlinenoexcept
+
+ +

Check if versions are not equal.

+
Parameters
+ + + +
lhsfirst version
rhssecond version
+
+
+
Returns
true if versions are not equal
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool fsdk::operator< (Version lhs,
Version rhs 
)
+
+inlinenoexcept
+
+ +

Check if one version is less than another.

+
Parameters
+ + + +
lhsfirst version
rhssecond version
+
+
+
Returns
true if lhs is less than rhs
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool fsdk::operator== (Version lhs,
Version rhs 
)
+
+inlinenoexcept
+
+ +

Check if versions are equal.

+
Parameters
+ + + +
lhsfirst version
rhssecond version
+
+
+
Returns
true if versions are equal
+ +
+
+
+
+ + + + diff --git a/doc/fsdk/html/group___version_group.js b/doc/fsdk/html/group___version_group.js new file mode 100644 index 0000000..8b063e7 --- /dev/null +++ b/doc/fsdk/html/group___version_group.js @@ -0,0 +1,15 @@ +var group___version_group = +[ + [ "Version", "structfsdk_1_1_version.html", [ + [ "major", "structfsdk_1_1_version.html#aa51eaf974da4d0a2fdc3bd41bd43df36", null ], + [ "minor", "structfsdk_1_1_version.html#a6ac214dbaed6cb0c9af597a0ce45fa73", null ], + [ "patch", "structfsdk_1_1_version.html#a720d91d998895868039802a5e26f0df2", null ] + ] ], + [ "getBuildInfo", "group___version_group.html#gac221ff93065b829ca0e059f0dfa248e3", null ], + [ "getVersion", "group___version_group.html#gadf18bd918c6a2390201ce2110ef17717", null ], + [ "getVersionHash", "group___version_group.html#gadc959b5a3e56b4c12f7c19e01c8091c7", null ], + [ "getVersionString", "group___version_group.html#ga34ebbd7511e7bda7ace0f6a65d8cea12", null ], + [ "operator!=", "group___version_group.html#ga525b65b20d219073604d14d7d845bf14", null ], + [ "operator<", "group___version_group.html#gad429c6eae9f032debb9416947550009b", null ], + [ "operator==", "group___version_group.html#gaa1f550339ca96028e8c0115d201e02a0", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/hierarchy.html b/doc/fsdk/html/hierarchy.html new file mode 100644 index 0000000..10fa50d --- /dev/null +++ b/doc/fsdk/html/hierarchy.html @@ -0,0 +1,239 @@ + + + + + + +Face Engine SDK: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
oCfsdk::BaseRect< Type >Rectangle
oCfsdk::BaseRect< float >
oCfsdk::BaseRect< int >
oCfsdk::ISettingsProvider::Value::DataValue data
oCfsdk::ISettingsProvider::DescConfiguration parameter description
oCfsdk::DetectionDetection structure. Stores a detected bounding box within a source image rect
oCfsdk::ISettingsProvider::EntryConfiguration parameter entry
oCfsdk::ErrorTraits< E >
oCfsdk::ErrorTraits< FSDKError >Specialized for FSDKError
oCfsdk::ErrorTraits< FutureError >Specialized for Future::Error
oCfsdk::ErrorTraits< IDescriptorBatch::Error >Specialized for DescriptorBatchError
oCfsdk::ErrorTraits< Image::Error >Specialized for Image::Error
oCfsdk::ErrorTraits< ISerializableObject::Error >Specialized for ISerializableObject::SerializationError
oCfsdk::ErrorTraits< ISettingsProvider::Error >Specialized for ISettingsProvider::ParseError
oCfsdk::ErrorTraits< MultiError< E0, E1 > >Specialized for MultiError
oCfsdk::ErrorTraits< PromiseError >Specialized for Promise::Error
oCfsdk::IBestShotQualityEstimator::EstimationResultBestShotQualityEstimator output structure
oCfsdk::Exception
oCfsdk::EyesEstimation::EyeAttributesEyes attribute structure
oCfsdk::EyeCropperEyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input warped image and returns rectangle coordinates of each eye
oCfsdk::EyesEstimationEyes estimation output
oCfsdk::EyeCropper::EyesRects
oCfsdk::Face
oCfsdk::ISettingsProvider::Value::Data::Float1
oCfsdk::ISettingsProvider::Value::Data::Float2
oCfsdk::ISettingsProvider::Value::Data::Float3
oCfsdk::ISettingsProvider::Value::Data::Float4
oCfsdk::FormatImage format
oCfsdk::HeadPoseEstimationHead pose estimation output
oCfsdk::Human
oCfsdk::HumanLandmarkHuman keypoints landmark structure
oCfsdk::HumanLandmarks< numOfLandmarks >Human keypoints landmarks template structure
oCfsdk::IArchiveArchive interface
oCfsdk::IDetectionComparerInterface of BestDetection comparer. Implement it if you want to use own BestDetection strategy
oCfsdk::ImageImage
oCfsdk::ISettingsProvider::Value::Data::Int1
oCfsdk::ISettingsProvider::Value::Data::Int2
oCfsdk::ISettingsProvider::Value::Data::Int3
oCfsdk::ISettingsProvider::Value::Data::Int4
oCfsdk::IProgressTrackerProgress tracker interface
oCfsdk::IRefCountedBase strong reference counted object interface
oCfsdk::IStaticDescriptorStorageStatic descriptor storage interface
oCfsdk::ISettingsProvider::KeyConfiguration parameter key
oCfsdk::Landmarks< numOfLandmarks >Face landmarks template structure
oCfsdk::Landmarks5IndexesEnumerates detected landmarks. Only valid for template with 5 landmarks
oCfsdk::Landmarks< eyelidLandmarksCount >
oCfsdk::Landmarks< irisLandmarksCount >
oCfsdk::LaunchOptionsLaunchOptions struct configures inference options on per-estimator/detector basis, giving user fine grained control over cpu/gpu utilisation
oCfsdk::LivenessOneShotRGBEstimationLiveness OneShotRGB estimation structure
oCfsdk::MatchingResultResult of descriptor matching
oCfsdk::MedicalMaskEstimationMedicalMask estimator output structure. This structure contains the result of estimation (
oCfsdk::MedicalMaskEstimationExtendedMedicalMask estimator output structure. This structure contains the result of estimation (
oCfsdk::MultiError< E0, E1 >An error structure designed for functions which can return errors from different enum classes
oCfsdk::NoncopyableHelper class to block copy operator&constructor of its descendants
oCfsdk::QualityQuality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:
oCfsdk::RefBase< T >Generic base class of a pointer for reference counted objects
oCfsdk::Result< E >A structure that encapsulates an action result enumeration
oCfsdk::Result< R >
oCfsdk::SizerHelper entity to measure size of dynamic objects in memory
oCfsdk::Span< T >Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objects
oCfsdk::ISettingsProvider::Value::Data::String
oCfsdk::SubImageSub Image
oCfsdk::SubjectiveQualitySubjective Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:
oCfsdk::TransformationTransformation data structure, used for warping
oCfsdk::ISettingsProvider::ValueConfiguration parameter value
oCfsdk::Vector2< T >Generic 2D vector
oCfsdk::Vector2< float >
oCfsdk::Vector2< int >
\Cfsdk::Version
+
+
+
+ + + + diff --git a/doc/fsdk/html/hierarchy.js b/doc/fsdk/html/hierarchy.js new file mode 100644 index 0000000..3f5cc42 --- /dev/null +++ b/doc/fsdk/html/hierarchy.js @@ -0,0 +1,124 @@ +var hierarchy = +[ + [ "fsdk::BaseRect< Type >", "structfsdk_1_1_base_rect.html", null ], + [ "fsdk::BaseRect< float >", "structfsdk_1_1_base_rect.html", null ], + [ "fsdk::BaseRect< int >", "structfsdk_1_1_base_rect.html", null ], + [ "fsdk::ISettingsProvider::Value::Data", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html", null ], + [ "fsdk::ISettingsProvider::Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html", null ], + [ "fsdk::Detection", "structfsdk_1_1_detection.html", null ], + [ "fsdk::ISettingsProvider::Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html", null ], + [ "fsdk::ErrorTraits< E >", "structfsdk_1_1_error_traits.html", null ], + [ "fsdk::ErrorTraits< FSDKError >", "structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html", null ], + [ "fsdk::ErrorTraits< FutureError >", "structfsdk_1_1_error_traits_3_01_future_error_01_4.html", null ], + [ "fsdk::ErrorTraits< IDescriptorBatch::Error >", "structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html", null ], + [ "fsdk::ErrorTraits< Image::Error >", "structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html", null ], + [ "fsdk::ErrorTraits< ISerializableObject::Error >", "structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html", null ], + [ "fsdk::ErrorTraits< ISettingsProvider::Error >", "structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html", null ], + [ "fsdk::ErrorTraits< MultiError< E0, E1 > >", "structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html", null ], + [ "fsdk::ErrorTraits< PromiseError >", "structfsdk_1_1_error_traits_3_01_promise_error_01_4.html", null ], + [ "fsdk::IBestShotQualityEstimator::EstimationResult", "structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html", null ], + [ "fsdk::Exception", "structfsdk_1_1_exception.html", null ], + [ "fsdk::EyesEstimation::EyeAttributes", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html", null ], + [ "fsdk::EyeCropper", "structfsdk_1_1_eye_cropper.html", null ], + [ "fsdk::EyesEstimation", "structfsdk_1_1_eyes_estimation.html", null ], + [ "fsdk::EyeCropper::EyesRects", "structfsdk_1_1_eye_cropper_1_1_eyes_rects.html", null ], + [ "fsdk::Face", "structfsdk_1_1_face.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Float1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Float2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Float3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Float4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html", null ], + [ "fsdk::Format", "structfsdk_1_1_format.html", null ], + [ "fsdk::HeadPoseEstimation", "structfsdk_1_1_head_pose_estimation.html", null ], + [ "fsdk::Human", "structfsdk_1_1_human.html", null ], + [ "fsdk::HumanLandmark", "structfsdk_1_1_human_landmark.html", null ], + [ "fsdk::HumanLandmarks< numOfLandmarks >", "structfsdk_1_1_human_landmarks.html", null ], + [ "fsdk::IArchive", "structfsdk_1_1_i_archive.html", null ], + [ "fsdk::IDetectionComparer", "classfsdk_1_1_i_detection_comparer.html", [ + [ "fsdk::FunctionDetectionComparer", "classfsdk_1_1_function_detection_comparer.html", null ] + ] ], + [ "fsdk::Image", "structfsdk_1_1_image.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Int1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Int2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Int3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::Int4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html", null ], + [ "fsdk::IProgressTracker", "structfsdk_1_1_i_progress_tracker.html", null ], + [ "fsdk::IRefCounted", "structfsdk_1_1_i_ref_counted.html", [ + [ "fsdk::IAGSEstimator", "structfsdk_1_1_i_a_g_s_estimator.html", null ], + [ "fsdk::IAsyncContext", "structfsdk_1_1_i_async_context.html", null ], + [ "fsdk::IBestShotQualityEstimator", "structfsdk_1_1_i_best_shot_quality_estimator.html", null ], + [ "fsdk::IDescriptorExtractor", "structfsdk_1_1_i_descriptor_extractor.html", null ], + [ "fsdk::IDescriptorMatcher", "structfsdk_1_1_i_descriptor_matcher.html", null ], + [ "fsdk::IDetector", "structfsdk_1_1_i_detector.html", null ], + [ "fsdk::IEyeEstimator", "structfsdk_1_1_i_eye_estimator.html", null ], + [ "fsdk::IFaceDetectionBatch", "structfsdk_1_1_i_face_detection_batch.html", null ], + [ "fsdk::IFaceEngineMobile", "structfsdk_1_1_i_face_engine_mobile.html", null ], + [ "fsdk::IGlassesEstimator", "structfsdk_1_1_i_glasses_estimator.html", null ], + [ "fsdk::IHeadPoseEstimator", "structfsdk_1_1_i_head_pose_estimator.html", null ], + [ "fsdk::IHumanDetectionBatch", "structfsdk_1_1_i_human_detection_batch.html", null ], + [ "fsdk::IHumanDetector", "structfsdk_1_1_i_human_detector.html", null ], + [ "fsdk::IHumanWarper", "structfsdk_1_1_i_human_warper.html", null ], + [ "fsdk::IIndex", "structfsdk_1_1_i_index.html", [ + [ "fsdk::IDenseIndex", "structfsdk_1_1_i_dense_index.html", null ], + [ "fsdk::IDynamicIndex", "structfsdk_1_1_i_dynamic_index.html", null ] + ] ], + [ "fsdk::IIndexBuilder", "structfsdk_1_1_i_index_builder.html", null ], + [ "fsdk::ILicense", "structfsdk_1_1_i_license.html", null ], + [ "fsdk::ILivenessOneShotRGBEstimator", "structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html", null ], + [ "fsdk::IMedicalMaskEstimator", "structfsdk_1_1_i_medical_mask_estimator.html", null ], + [ "fsdk::IQualityEstimator", "structfsdk_1_1_i_quality_estimator.html", null ], + [ "fsdk::IResultBatch< T >", "structfsdk_1_1_i_result_batch.html", null ], + [ "fsdk::ISerializableObject", "structfsdk_1_1_i_serializable_object.html", [ + [ "fsdk::IDataStorageObject", "structfsdk_1_1_i_data_storage_object.html", [ + [ "fsdk::IDescriptor", "structfsdk_1_1_i_descriptor.html", null ], + [ "fsdk::IDescriptorBatch", "structfsdk_1_1_i_descriptor_batch.html", null ] + ] ] + ] ], + [ "fsdk::ISettingsProvider", "structfsdk_1_1_i_settings_provider.html", null ], + [ "fsdk::IWarper", "structfsdk_1_1_i_warper.html", null ] + ] ], + [ "fsdk::IStaticDescriptorStorage", "structfsdk_1_1_i_static_descriptor_storage.html", [ + [ "fsdk::IDenseIndex", "structfsdk_1_1_i_dense_index.html", null ], + [ "fsdk::IDynamicDescriptorStorage", "structfsdk_1_1_i_dynamic_descriptor_storage.html", [ + [ "fsdk::IDynamicIndex", "structfsdk_1_1_i_dynamic_index.html", null ], + [ "fsdk::IIndexBuilder", "structfsdk_1_1_i_index_builder.html", null ] + ] ] + ] ], + [ "fsdk::ISettingsProvider::Key", "structfsdk_1_1_i_settings_provider_1_1_key.html", null ], + [ "fsdk::Landmarks< numOfLandmarks >", "structfsdk_1_1_landmarks.html", null ], + [ "fsdk::Landmarks5Indexes", "structfsdk_1_1_landmarks5_indexes.html", null ], + [ "fsdk::Landmarks< eyelidLandmarksCount >", "structfsdk_1_1_landmarks.html", null ], + [ "fsdk::Landmarks< irisLandmarksCount >", "structfsdk_1_1_landmarks.html", null ], + [ "fsdk::LaunchOptions", "structfsdk_1_1_launch_options.html", null ], + [ "fsdk::LivenessOneShotRGBEstimation", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html", null ], + [ "fsdk::MatchingResult", "structfsdk_1_1_matching_result.html", [ + [ "fsdk::SearchResult", "structfsdk_1_1_search_result.html", null ] + ] ], + [ "fsdk::MedicalMaskEstimation", "structfsdk_1_1_medical_mask_estimation.html", null ], + [ "fsdk::MedicalMaskEstimationExtended", "structfsdk_1_1_medical_mask_estimation_extended.html", null ], + [ "fsdk::MultiError< E0, E1 >", "structfsdk_1_1_multi_error.html", null ], + [ "fsdk::Noncopyable", "classfsdk_1_1_noncopyable.html", [ + [ "fsdk::Future< T >", "classfsdk_1_1_future.html", null ], + [ "fsdk::Promise< T >", "classfsdk_1_1_promise.html", null ] + ] ], + [ "fsdk::Quality", "structfsdk_1_1_quality.html", null ], + [ "fsdk::RefBase< T >", "structfsdk_1_1_ref_base.html", [ + [ "fsdk::Ref< T >", "structfsdk_1_1_ref.html", null ] + ] ], + [ "fsdk::Result< E >", "structfsdk_1_1_result.html", null ], + [ "fsdk::Result< R >", "structfsdk_1_1_result.html", [ + [ "fsdk::ResultValue< R, V, Enable >", "structfsdk_1_1_result_value.html", null ], + [ "fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html", null ], + [ "fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html", null ] + ] ], + [ "fsdk::Sizer", "structfsdk_1_1_sizer.html", null ], + [ "fsdk::Span< T >", "classfsdk_1_1_span.html", null ], + [ "fsdk::ISettingsProvider::Value::Data::String", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html", null ], + [ "fsdk::SubImage", "structfsdk_1_1_sub_image.html", null ], + [ "fsdk::SubjectiveQuality", "structfsdk_1_1_subjective_quality.html", null ], + [ "fsdk::Transformation", "structfsdk_1_1_transformation.html", null ], + [ "fsdk::ISettingsProvider::Value", "structfsdk_1_1_i_settings_provider_1_1_value.html", null ], + [ "fsdk::Vector2< T >", "structfsdk_1_1_vector2.html", null ], + [ "fsdk::Vector2< float >", "structfsdk_1_1_vector2.html", null ], + [ "fsdk::Vector2< int >", "structfsdk_1_1_vector2.html", null ], + [ "fsdk::Version", "structfsdk_1_1_version.html", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/index.html b/doc/fsdk/html/index.html new file mode 100644 index 0000000..9385148 --- /dev/null +++ b/doc/fsdk/html/index.html @@ -0,0 +1,131 @@ + + + + + + +Face Engine SDK: LUNA SDK + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
LUNA SDK
+
+
+

+Introduction

+

Welcome to the FaceEngine reference manual! This documentations covers all public interfaces and types.

+

Advanced usage Advanced usage is covered in the Face Engine handbook. Please contact us via e-mail: info@.nosp@m.visi.nosp@m.onlab.nosp@m.s.ru if you haven't got one.

+

Example code Examples located at /examples folder of LUNA SDK package.

+

+Structure

+

LUNA SDK consists of the following modules:

+
    +
  • Detectors: detect faces on images, and find landmarks on it
  • +
  • Warper: normalize face position, scale and orientation by detection and landmarks.
  • +
  • Estimators: estimate various properties of images such as blurriness.
  • +
  • Descriptors: facilities to create and match face templates (aka descriptors).
  • +
+
+
+ + + + diff --git a/doc/fsdk/html/jquery.js b/doc/fsdk/html/jquery.js new file mode 100644 index 0000000..3db33e6 --- /dev/null +++ b/doc/fsdk/html/jquery.js @@ -0,0 +1,72 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; +if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 +},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); +ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; +if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b +})}})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null; +p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+
+
Modules
+
+
+
Here is a list of all modules:
+
+ + + + +
oDescriptor extractorDescriptor extractor public interfaces and related types and structures
oFace detector.Face detector public interfaces and related types and structures
oSDK core interfacesCommon interfaces and macros shared across all SDK objects
\VersionSDK Build type and version info
+ + + + + + + diff --git a/doc/fsdk/html/modules.js b/doc/fsdk/html/modules.js new file mode 100644 index 0000000..22aa513 --- /dev/null +++ b/doc/fsdk/html/modules.js @@ -0,0 +1,7 @@ +var modules = +[ + [ "Descriptor extractor", "group___descriptor_processing_group.html", "group___descriptor_processing_group" ], + [ "Face detector.", "group___detector_group.html", "group___detector_group" ], + [ "SDK core interfaces", "group___core_group.html", "group___core_group" ], + [ "Version", "group___version_group.html", "group___version_group" ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/namespacefsdk.html b/doc/fsdk/html/namespacefsdk.html new file mode 100644 index 0000000..5fc14c1 --- /dev/null +++ b/doc/fsdk/html/namespacefsdk.html @@ -0,0 +1,1669 @@ + + + + + + +Face Engine SDK: fsdk Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk Namespace Reference
+
+
+ +

SDK namespace. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  IAGSEstimator
 Approximate Garbage Score estimator interface. More...
 
struct  IBestShotQualityEstimator
 BestShotQuality estimator interface. More...
 
struct  EyesEstimation
 Eyes estimation output. More...
 
struct  EyeCropper
 EyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input warped image and returns rectangle coordinates of each eye. More...
 
struct  IEyeEstimator
 Eye estimator interface. More...
 
struct  IGlassesEstimator
 Glasses estimator interface. More...
 
struct  HeadPoseEstimation
 Head pose estimation output. More...
 
struct  IHeadPoseEstimator
 Head pose angles estimator interface. More...
 
struct  LivenessOneShotRGBEstimation
 Liveness OneShotRGB estimation structure. More...
 
struct  ILivenessOneShotRGBEstimator
 OneShot RGB Liveness estimator interface. More...
 
struct  MedicalMaskEstimation
 MedicalMask estimator output structure. This structure contains the result of estimation (. More...
 
struct  MedicalMaskEstimationExtended
 MedicalMask estimator output structure. This structure contains the result of estimation (. More...
 
struct  IMedicalMaskEstimator
 MedicalMask estimator interface. More...
 
struct  Quality
 Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings: More...
 
struct  SubjectiveQuality
 Subjective Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings: More...
 
struct  IQualityEstimator
 Image quality estimator interface. More...
 
struct  Exception
 
struct  ErrorTraits< FSDKError >
 Specialized for FSDKError. More...
 
struct  IAsyncContext
 Interface for running tasks asynchronously. More...
 
struct  MatchingResult
 Result of descriptor matching. More...
 
struct  IDescriptor
 Descriptor interface. More...
 
struct  IDescriptorBatch
 Descriptor batch interface. More...
 
struct  ErrorTraits< IDescriptorBatch::Error >
 Specialized for DescriptorBatchError. More...
 
struct  IDescriptorExtractor
 Descriptor extractor interface. More...
 
struct  IDescriptorMatcher
 Descriptor matcher interface. More...
 
class  IDetectionComparer
 Interface of BestDetection comparer. Implement it if you want to use own BestDetection strategy. More...
 
class  FunctionDetectionComparer
 Syntax sugar, allows you to use lambdas to define a BestDetection comparer. More...
 
struct  IDetector
 face detector interface. More...
 
struct  IFaceDetectionBatch
 Face detection result batch interface. More...
 
struct  IFaceEngineMobile
 Root LUNA SDK object interface. More...
 
struct  IHumanDetectionBatch
 Human detection result batch interface. More...
 
struct  IHumanDetector
 human body detector interface. More...
 
struct  IHumanWarper
 Human detection area warper interface. More...
 
struct  SearchResult
 Result of index search. More...
 
struct  IStaticDescriptorStorage
 Static descriptor storage interface. More...
 
struct  IDynamicDescriptorStorage
 Dynamic descriptor storage interface. More...
 
struct  IIndex
 Base index interface. More...
 
struct  IDenseIndex
 Dense (read only) index interface. More...
 
struct  IDynamicIndex
 Dynamic index interface. More...
 
struct  IProgressTracker
 Progress tracker interface. More...
 
struct  IIndexBuilder
 Index builder interface. More...
 
struct  ILicense
 License objects interface. More...
 
struct  IArchive
 Archive interface. More...
 
struct  ISerializableObject
 Serializable object interface. More...
 
struct  ErrorTraits< ISerializableObject::Error >
 Specialized for ISerializableObject::SerializationError. More...
 
struct  IDataStorageObject
 Data storage object interface helper. More...
 
struct  IRefCounted
 Base strong reference counted object interface. More...
 
struct  IResultBatch
 
struct  ISettingsProvider
 SDK settings provider interface. More...
 
struct  ErrorTraits< ISettingsProvider::Error >
 Specialized for ISettingsProvider::ParseError. More...
 
struct  Transformation
 Transformation data structure, used for warping. More...
 
struct  IWarper
 Face detection area warper interface. More...
 
struct  LaunchOptions
 LaunchOptions struct configures inference options on per-estimator/detector basis, giving user fine grained control over cpu/gpu utilisation. More...
 
struct  Detection
 Detection structure. Stores a detected bounding box within a source image rect. More...
 
struct  Face
 
struct  Format
 Image format. More...
 
class  Noncopyable
 Helper class to block copy operator&constructor of its descendants. More...
 
class  Promise
 Promise class to support asynchronous data retrieval Look into std::promise semantics to understand it. More...
 
class  Future
 Future class to support asynchronous data retrieval Look into std::future semantics to understand it. More...
 
struct  ErrorTraits< FutureError >
 Specialized for Future::Error. More...
 
struct  ErrorTraits< PromiseError >
 Specialized for Promise::Error. More...
 
struct  Human
 
struct  HumanLandmark
 Human keypoints landmark structure. More...
 
struct  HumanLandmarks
 Human keypoints landmarks template structure. More...
 
struct  Image
 Image. More...
 
struct  ErrorTraits< Image::Error >
 Specialized for Image::Error. More...
 
struct  Landmarks
 Face landmarks template structure. More...
 
struct  Landmarks5Indexes
 Enumerates detected landmarks. Only valid for template with 5 landmarks. More...
 
struct  MultiError
 An error structure designed for functions which can return errors from different enum classes. More...
 
struct  ErrorTraits< MultiError< E0, E1 > >
 Specialized for MultiError. More...
 
struct  BaseRect
 Rectangle. More...
 
struct  Ref
 Smart pointer for reference counted objects. More...
 
struct  RefBase
 Generic base class of a pointer for reference counted objects. More...
 
struct  ErrorTraits
 
struct  Result
 A structure that encapsulates an action result enumeration. More...
 
struct  ResultValue
 Addon for Result to output some value aside the result. Specialization for copiable types. More...
 
struct  ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >
 
struct  ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >
 Addon for Result to output some value aside the result. Specialization for non copiable types. More...
 
struct  Sizer
 Helper entity to measure size of dynamic objects in memory. More...
 
class  Span
 Span. Not owning data view. It incapsulated pointer to the continuous array with one or more T objects. More...
 
struct  SubImage
 Sub Image. More...
 
struct  Vector2
 Generic 2D vector. More...
 
struct  Version
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+using FaceEngineType = IFaceEngineMobile
 
+using FaceEnginePtrType = IFaceEngineMobilePtr
 
+using DescriptorId = size_t
 Intergral type used as identification of descriptor in internal storage.
 
+template<typename T >
using Optional = optional< T >
 
+using HumanLandmarks17 = HumanLandmarks< 17 >
 alias for structure with 17 landmarks
 
+using ImageType = Image::Type
 Convenient type aliases for fsdk::Image enum classes.
 
+using ImageError = Image::Error
 
+using TargetDevice = Image::TargetDevice
 
+using ImageCompression = Image::ImageCompression
 
+typedef Vector2< float > Landmark
 Landmark floating point coordinates type.
 
+using Landmarks5 = Landmarks< 5 >
 alias for structure with 5 landmarks
 
+using Landmarks68 = Landmarks< 68 >
 alias for structure with 68 landmarks
 
+using Rect = BaseRect< int >
 
+using FloatRect = BaseRect< float >
 
typedef Vector2< float > Point2f
 
typedef Vector2< double > Point2d
 
typedef Vector2< int > Point2i
 
typedef Vector2< unsigned int > Point2u
 
typedef Vector2< unsigned short > Point2us
 
typedef Vector2< int > Size
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  GlassesEstimation : uint8_t { GlassesEstimation::NoGlasses, +GlassesEstimation::EyeGlasses, +GlassesEstimation::SunGlasses, +GlassesEstimation::EstimationError + }
 Glasses estimation enum. More...
 
enum  MedicalMask { MedicalMask::Mask = 0, +MedicalMask::NoMask, +MedicalMask::OccludedFace + }
 MedicalMask estimator output enum. This enum contains all possible estimation results. More...
 
enum  MedicalMaskExtended { MedicalMaskExtended::Mask = 0, +MedicalMaskExtended::NoMask, +MedicalMaskExtended::MaskNotInPlace, +MedicalMaskExtended::OccludedFace + }
 MedicalMask estimator output enum. This enum contains all possible extended estimation results. More...
 
enum  DetailedMaskType {
+  DetailedMaskType::CorrectMask = 0, +DetailedMaskType::MouthCoveredWithMask, +DetailedMaskType::ClearFace, +DetailedMaskType::ClearFaceWithMaskUnderChin, +
+  DetailedMaskType::PartlyCoveredFace, +DetailedMaskType::FullMask, +Count +
+ }
 MedicalMask estimator output enum. This enum contains all type of DetailedMaskType results. More...
 
enum  FSDKError : uint32_t {
+  FSDKError::Ok, +FSDKError::Internal, +FSDKError::InvalidInput, +FSDKError::InvalidImage, +
+  FSDKError::InvalidRect, +FSDKError::InvalidImageFormat, +FSDKError::InvalidImageSize, +FSDKError::InvalidDetection, +
+  FSDKError::InvalidLandmarks5, +FSDKError::InvalidLandmarks68, +FSDKError::InvalidTransformation, +FSDKError::InvalidDescriptor, +
+  FSDKError::InvalidDescriptorBatch, +FSDKError::InvalidSettingsProvider, +FSDKError::InvalidDescriptorId, +FSDKError::InvalidPath, +
+  FSDKError::InvalidSerializedObject, +FSDKError::ModuleNotInitialized, +FSDKError::ModuleNotReady, +FSDKError::LicenseError, +
+  FSDKError::BufferIsNull, +FSDKError::BufferIsFull, +FSDKError::BufferIsEmpty, +FSDKError::InvalidBufferSize, +
+  FSDKError::InvalidSpanSize, +FSDKError::InvalidBatch, +FSDKError::IncompatibleDescriptors, +FSDKError::EnableJustInBetaMode, +
+  FSDKError::FiltredAggregationError, +FSDKError::BatchedInternalError, +UnsupportedFunctionality, +HighMemoryUsage, +
+  FSDKError::IncompatibleModelVersions, +FSDKError::ModelNotLoaded, +FSDKError::InvalidConfig, +FSDKError::LicenseIsNotActivated, +
+  FSDKError::FeatureNotAvailable, +FSDKError::FeatureExpired, +FSDKError::FingerprintError, +FSDKError::ValidationFailed, +
+  FSDKError::NotImplemented +
+ }
 Common SDK error codes. More...
 
enum  DescriptorType { DT_FACE, +DT_HUMAN + }
 Descriptor type enum. Determines which type of descriptor to use. More...
 
enum  DescriptorVersion : uint32_t { DV_MIN_FACE_DESCRIPTOR_VERSION = 46, +DV_MIN_HUMAN_DESCRIPTOR_VERSION = 102 + }
 Minimum descriptor model version. Determines which minimum version of descriptor to use. More...
 
enum  HumanDescriptorVersion : uint32_t { HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION = 102, +HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION = 103, +HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION = 104 + }
 Human descriptor model versions. Determines which version of human descriptor to use. More...
 
enum  SensorType { SensorType::Visible = 0, +SensorType::NIR + }
 Sensor type structure. Determines which type of camera sensor is used to perform face recognition. More...
 
enum  ObjectDetectorClassType {
+  FACE_DET_DEFAULT = 0, +FACE_DET_V1 = 4, +FACE_DET_V2 = 5, +FACE_DET_V3 = 6, +
+  FACE_DET_COUNT = 7 +
+ }
 Object detector type enumeration. More...
 
enum  DetectionComparerType {
+  DCT_CONFIDENCE = 0, +DCT_CENTER, +DCT_CENTER_AND_CONFIDENCE, +DCT_SIZE, +
+  DCT_COUNT +
+ }
 Strategy of BestDetections comparer. More...
 
enum  DetectionType { DT_BBOX = 0, +DT_LANDMARKS5 = 1<<0, +DT_LANDMARKS68 = 1<<1, +DT_ALL = 0xffff + }
 Detection type enumeration. More...
 
enum  HumanDetectionType { HDT_BOX = 0, +HDT_POINTS = 1<<0, +HDT_ALL = 0xffff + }
 Human detection type enumeration. More...
 
enum  LicenseFeature : uint32_t {
+  Detection = 1, +BestShot = 2, +Attributes = 3, +Emotions = 4, +
+  FaceFeatures = 5, +Liveness = 6, +Descriptor = 7, +DescriptorIndex = 8, +
+  LivenessEngine = 9, +TrackEngine = 10, +HumanDetection = 11, +PPEDetection = 17, +
+  MobileLiveness = 18, +MedicalMaskDetection = 19, +ReIdDescriptor = 20, +ISOCheck = 21 +
+ }
 License features.
 
enum  DeviceClass : int32_t {
+  CPU = 0, +GPU = 1, +CPU_ARM = 2, +CPU_AVX2, +
+  GPU_INT8, +CPU_ARM_INT8, +GPU_MOBILE, +NPU_ASCEND, +
+  Invalid = -1 +
+ }
 DeviceClass specifies which device/instruction set to use for cnn inference.
 
enum  FaceEngineEdition { FrontEndEdition, +CompleteEdition + }
 
enum  ExecutionPolicy : uint8_t { ExecutionPolicy::Sync, +ExecutionPolicy::Async + }
 Enum to tell some method how to behave. More...
 
enum  FuturePromiseState : uint8_t {
+  FuturePromiseState::Empty, +FuturePromiseState::Promised, +FuturePromiseState::Fulfilled, +FuturePromiseState::CancelRequested, +
+  FuturePromiseState::Canceled, +FuturePromiseState::Failed, +FuturePromiseState::Broken +
+ }
 Enumeration of possible future or promise states. More...
 
enum  FutureError : uint8_t {
+  FutureError::Ok, +FutureError::InvalidInput, +FutureError::NotPromised, +FutureError::NotFulfilled, +
+  FutureError::NonWaitable, +FutureError::Timeout, +FutureError::Internal +
+ }
 Enumeration of possible Future errors. More...
 
enum  PromiseError : uint8_t {
+  PromiseError::Ok, +PromiseError::Internal, +PromiseError::StateNotCancelable, +PromiseError::StateNotFailable, +
+  PromiseError::StateNotFulfillable, +PromiseError::StateDoesntAllowFutureCreation +
+ }
 Enumeration of possible Promise errors. More...
 
enum  OrientationType : uint32_t { OT_NORMAL = 0, +OT_LEFT = 1, +OT_UPSIDE_DOWN = 2, +OT_RIGHT = 3 + }
 Estimation of image orientation. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+IBestShotQualityEstimator::EstimationRequest operator| (IBestShotQualityEstimator::EstimationRequest first, IBestShotQualityEstimator::EstimationRequest second)
 
+DetectionType operator| (DetectionType a, DetectionType b)
 
FSDK_API Result< FSDKErroractivateLicense (ILicense *license, const char *configPath) noexcept
 Makes License activation with some platform specific manner. Network connection is required. More...
 
FSDK_API Result< FSDKErroractivateLicense (ILicense *license, ISettingsProvider *settings) noexcept
 Makes License activation with some platform specific manner. Network connection is required. More...
 
FSDK_API ResultValue
+< FSDKError,
+IFaceEngineMobilePtr > 
createFaceEngineMobile (const char *dataPath=nullptr, const char *configPath=nullptr, const char *runtimePath=nullptr) noexcept
 Create the LUNA SDK root object. More...
 
FSDK_API ResultValue
+< FSDKError,
+ISettingsProviderPtr > 
createSettingsProvider (const char *path) noexcept
 Create a settings provider. More...
 
+HumanDetectionType operator| (HumanDetectionType a, HumanDetectionType b)
 
Landmarks5 FSDK_API convert (const Landmarks68 &landmarks)
 convert landmarks68 into landmarks5 More...
 
+template<typename E0 , typename E1 >
Result< MultiError< E0, E1 > > makeMultiResult (E0 error0, E1 error1)
 
template<typename Type >
BaseRect< Type > centerScale (const BaseRect< Type > &in, float scaleFactor) noexcept
 scale rect out of center More...
 
template<typename T >
Ref< T > make_ref (T *ptr) noexcept
 Make smart reference to a IRefCounted based object without acquiring ownership. More...
 
template<typename S , typename T >
Ref< S > make_ref_as (T *ptr) noexcept
 Make smart reference to a IRefCounted based object without acquiring ownership. More...
 
template<typename T >
Ref< T > acquire (T *ptr) noexcept
 Acquire ownership of IRefCounted based object. More...
 
template<typename S , typename T >
Ref< S > acquire_as (T *ptr) noexcept
 Acquire ownership of IRefCounted based object with a cast to a given type. More...
 
+template<typename E >
Result< E > makeResult (E error) noexcept
 
template<typename R , typename V >
ResultValue< R, typename
+std::remove_const< typename
+std::remove_reference< V >
+::type >::type > 
makeResultValue (R result, V &&value) noexcept
 Addon for Result to output some value aside the result. More...
 
bool operator< (Version lhs, Version rhs) noexcept
 Check if one version is less than another. More...
 
bool operator== (Version lhs, Version rhs) noexcept
 Check if versions are equal. More...
 
bool operator!= (Version lhs, Version rhs) noexcept
 Check if versions are not equal. More...
 
FSDK_API Version getVersion () noexcept
 Get FaceEngine version. More...
 
FSDK_API const char * getVersionHash () noexcept
 Get FaceEngine commit hash. More...
 
FSDK_API const char * getVersionString () noexcept
 Get FaceEngine version string. More...
 
FSDK_API const char * getBuildInfo () noexcept
 Get FaceEngine build description. The descripton contains used flags and compler settings. More...
 
+

Detailed Description

+

SDK namespace.

+

Typedef Documentation

+ +
+
+ + + + +
typedef Vector2<double> fsdk::Point2d
+
+

Double precision floating point 2-dimensional point

+ +
+
+ +
+
+ + + + +
typedef Vector2<float> fsdk::Point2f
+
+

Single precision floating point 2-dimensional point

+ +
+
+ +
+
+ + + + +
typedef Vector2<int> fsdk::Point2i
+
+

Integer 2-dimensional point

+ +
+
+ +
+
+ + + + +
typedef Vector2<unsigned int> fsdk::Point2u
+
+

Integer 2-dimensional point

+ +
+
+ +
+
+ + + + +
typedef Vector2<unsigned short> fsdk::Point2us
+
+

Integer 2-dimensional point

+ +
+
+ +
+
+ + + + +
typedef Vector2<int> fsdk::Size
+
+

2-dimensional size type

+ +
+
+

Enumeration Type Documentation

+ +
+
+ + + + + +
+ + + + +
enum fsdk::DetailedMaskType
+
+strong
+
+ +

MedicalMask estimator output enum. This enum contains all type of DetailedMaskType results.

+ + + + + + + +
Enumerator
CorrectMask  +

correct mask on the face (mouth and nose are covered correctly)

+
MouthCoveredWithMask  +

mask covers only a mouth

+
ClearFace  +

clear face - no mask on the face

+
ClearFaceWithMaskUnderChin  +

clear face with a mask around of a chin, mask does not cover anything in the face region (from mouth to eyes)

+
PartlyCoveredFace  +

face is covered with not a medical mask or a full mask

+
FullMask  +

face is covered with a full mask (such as balaclava, sky mask, etc.)

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::ExecutionPolicy : uint8_t
+
+strong
+
+ +

Enum to tell some method how to behave.

+ + + +
Enumerator
Sync  +

Execute synchronously.

+
Async  +

Execute asynchronously.

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::FSDKError : uint32_t
+
+strong
+
+ +

Common SDK error codes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Enumerator
Ok  +

Ok.

+
Internal  +

Internal error.

+
InvalidInput  +

Invalid input.

+
InvalidImage  +

Invalid image.

+
InvalidRect  +

Invalid rectangle.

+
InvalidImageFormat  +

Invalid image format.

+
InvalidImageSize  +

Invalid image size.

+
InvalidDetection  +

Invalid detection.

+
InvalidLandmarks5  +

Invalid landmarks 5.

+
InvalidLandmarks68  +

Invalid landmarks 68.

+
InvalidTransformation  +

Invalid transformation.

+
InvalidDescriptor  +

Invalid descriptor.

+
InvalidDescriptorBatch  +

Invalid descriptor batch.

+
InvalidSettingsProvider  +

Invalid settings provider.

+
InvalidDescriptorId  +

Invalid descriptor id.

+
InvalidPath  +

Invalid path to object.

+
InvalidSerializedObject  +

Invalid serialized object.

+
ModuleNotInitialized  +

Module is not initialized.

+
ModuleNotReady  +

Module is not ready.

+
LicenseError  +

Licensing issue (expired license or unavailable feature).

+
BufferIsNull  +

Buffer is null.

+
BufferIsFull  +

Buffer is full.

+
BufferIsEmpty  +

Buffer is empty.

+
InvalidBufferSize  +

Invalid buffer size.

+
InvalidSpanSize  +

Invalid span size.

+
InvalidBatch  +

Invalid batch.

+
IncompatibleDescriptors  +

Matching attempt with incompatible descriptors.

+
EnableJustInBetaMode  +

Attempt to create feature while betaMode is turned off.

+
FiltredAggregationError  +

Cant aggregate descriptors - all images'a GSs are less the threashold.

+
BatchedInternalError  +

Something gone wrong in batched query. See batch with error codes to each input image for details.

+
IncompatibleModelVersions  +

Incompatible model versions.

+
ModelNotLoaded  +

Model not loaded.

+
InvalidConfig  +

Invalid config.

+
LicenseIsNotActivated  +

License is not activated.

+
FeatureNotAvailable  +

Requested Feature not available.

+
FeatureExpired  +

Feature expired.

+
FingerprintError  +

Failed to get device fingerprint.

+
ValidationFailed  +

Failed validation.

+
NotImplemented  +

Not implemented error.

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::FutureError : uint8_t
+
+strong
+
+ +

Enumeration of possible Future errors.

+ + + + + + + + +
Enumerator
Ok  +

All good.

+
InvalidInput  +

Invalid data is given as input to some method.

+
NotPromised  +

Error if you call.

+
See Also
Future::cancel on not Promised state.
+
NotFulfilled  +

Error if you call.

+
See Also
Future::takeInto on not Fulfilled state.
+
NonWaitable  +

Error if you try to.

+
See Also
Future::wait on non waitable state.
+
Timeout  +

Error if your.

+
See Also
Future::waitFor method ran out of time.
+
Internal  +

Some internal error.

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::FuturePromiseState : uint8_t
+
+strong
+
+ +

Enumeration of possible future or promise states.

+ + + + + + + + +
Enumerator
Empty  +

Lack of internal state: on promise creation and emptying Future.

+
See Also
Future::takeInto.
+
Promised  +

State right after future is created from promise.

+
Fulfilled  +

State possible after Promised if promise' method.

+
See Also
Promise::fulfill is called.
+
CancelRequested  +

State possible if.

+
See Also
Future::cancel is called on Promised state.
+
Canceled  +

State possible if during CancelRequested.

+
See Also
Promise::cancel is called.
+
Failed  +

State possible if during Promised.

+
See Also
Promise::fail is called.
+
Broken  +

State indicating some internal error.

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::GlassesEstimation : uint8_t
+
+strong
+
+ +

Glasses estimation enum.

+
    +
  • noglasses: checks whether person is wearing glasses or not. true - no glasses, false - with glasses;
  • +
  • eyeglasses: checks whether person is wearing eyeglasses or not. true - eyeglasses, false - not eyeglasses;
  • +
  • sunglasses: checks whether person is wearing sunglasses or not. true - sunglasses, false - not sunglasses.
  • +
+ + + + + +
Enumerator
NoGlasses  +

Person is not wearing glasses.

+
EyeGlasses  +

Person is wearing eyeglasses.

+
SunGlasses  +

Person is wearing sunglasses.

+
EstimationError  +

failed to estimate

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::MedicalMask
+
+strong
+
+ +

MedicalMask estimator output enum. This enum contains all possible estimation results.

+ + + + +
Enumerator
Mask  +

medical mask is on the face

+
NoMask  +

no medical mask on the face

+
OccludedFace  +

face is occluded by something

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::MedicalMaskExtended
+
+strong
+
+ +

MedicalMask estimator output enum. This enum contains all possible extended estimation results.

+ + + + + +
Enumerator
Mask  +

medical mask is on the face

+
NoMask  +

no medical mask on the face

+
MaskNotInPlace  +

mask is not on the right place

+
OccludedFace  +

face is occluded by something

+
+ +
+
+ +
+
+ + + + +
enum fsdk::OrientationType : uint32_t
+
+ +

Estimation of image orientation.

+ + + + + +
Enumerator
OT_NORMAL  +

Normal orientation of image.

+
OT_LEFT  +

Image is turned left by 90 deg.

+
OT_UPSIDE_DOWN  +

Image is flipped upsidedown.

+
OT_RIGHT  +

Image is turned right by 90 deg.

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::PromiseError : uint8_t
+
+strong
+
+ +

Enumeration of possible Promise errors.

+ + + + + + + +
Enumerator
Ok  +

All good.

+
Internal  +

Internal error.

+
StateNotCancelable  +

Error if you call.

+
See Also
Promise::cancel on not CancelRequested state.
+
StateNotFailable  +

Error if you call.

+
See Also
Promise::fail on not Promised and not CancelRequested state.
+
StateNotFulfillable  +

Error if you call.

+
See Also
Promise::fulfill on not Promised state.
+
StateDoesntAllowFutureCreation  +

Error if you call.

+
See Also
Promise::future on not Empty state.
+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::SensorType
+
+strong
+
+ +

Sensor type structure. Determines which type of camera sensor is used to perform face recognition.

+ + + +
Enumerator
Visible  +

Visible sensor type.

+
NIR  +

NIR sensor type.

+
+ +
+
+

Function Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
Ref<T> fsdk::acquire (T * ptr)
+
+inlinenoexcept
+
+ +

Acquire ownership of IRefCounted based object.

+
Template Parameters
+ + +
Tobject interface (must be derived from IRefCounted).
+
+
+
Parameters
+ + +
[in]ptrraw pointer.
+
+
+ +
+
+ +
+
+
+template<typename S , typename T >
+ + + + + +
+ + + + + + + + +
Ref<S> fsdk::acquire_as (T * ptr)
+
+inlinenoexcept
+
+ +

Acquire ownership of IRefCounted based object with a cast to a given type.

+
Template Parameters
+ + + +
Starget interface (must be relative to T).
Tsource interface (must be derived from IRefCounted).
+
+
+
Parameters
+ + +
[in]ptrraw pointer.
+
+
+ +
+
+ +
+
+
+template<typename Type >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
BaseRect<Type> fsdk::centerScale (const BaseRect< Type > & in,
float scaleFactor 
)
+
+noexcept
+
+ +

scale rect out of center

+
Parameters
+ + + +
[in]inputrect
[in]scaleFactorto scale rect
+
+
+
Returns
scaled rect
+ +
+
+ +
+
+ + + + + + + + +
Landmarks5 FSDK_API fsdk::convert (const Landmarks68 & landmarks)
+
+ +

convert landmarks68 into landmarks5

+
Parameters
+ + +
landmarkslandmarks68
+
+
+
Returns
landmarks5
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
Ref<T> fsdk::make_ref (T * ptr)
+
+inlinenoexcept
+
+ +

Make smart reference to a IRefCounted based object without acquiring ownership.

+
Template Parameters
+ + +
Tobject interface (must be derived from IRefCounted).
+
+
+
Parameters
+ + +
[in]ptrraw pointer.
+
+
+ +
+
+ +
+
+
+template<typename S , typename T >
+ + + + + +
+ + + + + + + + +
Ref<S> fsdk::make_ref_as (T * ptr)
+
+inlinenoexcept
+
+ +

Make smart reference to a IRefCounted based object without acquiring ownership.

+
Template Parameters
+ + + +
Starget interface (must be relative to T).
Tobject interface (must be derived from IRefCounted).
+
+
+
Parameters
+ + +
[in]ptrraw pointer.
+
+
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResultValue<R, typename std::remove_const<typename std::remove_reference<V>::type>::type> fsdk::makeResultValue (result,
V && value 
)
+
+inlinenoexcept
+
+ +

Addon for Result to output some value aside the result.

+
Template Parameters
+ + + +
Rresult enumeration type.
Vresult value type.
+
+
+
Note
All rules for Result template parameter apply to R.
+
+V instance is always held by value despite -> operators.
+
Parameters
+ + + +
resultthe result.
valuethe value.
+
+
+
Returns
result value struct.
+ +
+
+
+
+ + + + diff --git a/doc/fsdk/html/namespacefsdk.js b/doc/fsdk/html/namespacefsdk.js new file mode 100644 index 0000000..7bd023c --- /dev/null +++ b/doc/fsdk/html/namespacefsdk.js @@ -0,0 +1,86 @@ +var namespacefsdk = +[ + [ "IAGSEstimator", "structfsdk_1_1_i_a_g_s_estimator.html", "structfsdk_1_1_i_a_g_s_estimator" ], + [ "IBestShotQualityEstimator", "structfsdk_1_1_i_best_shot_quality_estimator.html", "structfsdk_1_1_i_best_shot_quality_estimator" ], + [ "EyesEstimation", "structfsdk_1_1_eyes_estimation.html", "structfsdk_1_1_eyes_estimation" ], + [ "EyeCropper", "structfsdk_1_1_eye_cropper.html", "structfsdk_1_1_eye_cropper" ], + [ "IEyeEstimator", "structfsdk_1_1_i_eye_estimator.html", "structfsdk_1_1_i_eye_estimator" ], + [ "IGlassesEstimator", "structfsdk_1_1_i_glasses_estimator.html", "structfsdk_1_1_i_glasses_estimator" ], + [ "HeadPoseEstimation", "structfsdk_1_1_head_pose_estimation.html", "structfsdk_1_1_head_pose_estimation" ], + [ "IHeadPoseEstimator", "structfsdk_1_1_i_head_pose_estimator.html", "structfsdk_1_1_i_head_pose_estimator" ], + [ "LivenessOneShotRGBEstimation", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation" ], + [ "ILivenessOneShotRGBEstimator", "structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html", "structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator" ], + [ "MedicalMaskEstimation", "structfsdk_1_1_medical_mask_estimation.html", "structfsdk_1_1_medical_mask_estimation" ], + [ "MedicalMaskEstimationExtended", "structfsdk_1_1_medical_mask_estimation_extended.html", "structfsdk_1_1_medical_mask_estimation_extended" ], + [ "IMedicalMaskEstimator", "structfsdk_1_1_i_medical_mask_estimator.html", "structfsdk_1_1_i_medical_mask_estimator" ], + [ "Quality", "structfsdk_1_1_quality.html", "structfsdk_1_1_quality" ], + [ "SubjectiveQuality", "structfsdk_1_1_subjective_quality.html", "structfsdk_1_1_subjective_quality" ], + [ "IQualityEstimator", "structfsdk_1_1_i_quality_estimator.html", "structfsdk_1_1_i_quality_estimator" ], + [ "Exception", "structfsdk_1_1_exception.html", "structfsdk_1_1_exception" ], + [ "ErrorTraits< FSDKError >", "structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html", null ], + [ "IAsyncContext", "structfsdk_1_1_i_async_context.html", "structfsdk_1_1_i_async_context" ], + [ "MatchingResult", "structfsdk_1_1_matching_result.html", "structfsdk_1_1_matching_result" ], + [ "IDescriptor", "structfsdk_1_1_i_descriptor.html", "structfsdk_1_1_i_descriptor" ], + [ "IDescriptorBatch", "structfsdk_1_1_i_descriptor_batch.html", "structfsdk_1_1_i_descriptor_batch" ], + [ "ErrorTraits< IDescriptorBatch::Error >", "structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html", null ], + [ "IDescriptorExtractor", "structfsdk_1_1_i_descriptor_extractor.html", "structfsdk_1_1_i_descriptor_extractor" ], + [ "IDescriptorMatcher", "structfsdk_1_1_i_descriptor_matcher.html", "structfsdk_1_1_i_descriptor_matcher" ], + [ "IDetectionComparer", "classfsdk_1_1_i_detection_comparer.html", "classfsdk_1_1_i_detection_comparer" ], + [ "FunctionDetectionComparer", "classfsdk_1_1_function_detection_comparer.html", "classfsdk_1_1_function_detection_comparer" ], + [ "IDetector", "structfsdk_1_1_i_detector.html", "structfsdk_1_1_i_detector" ], + [ "IFaceDetectionBatch", "structfsdk_1_1_i_face_detection_batch.html", "structfsdk_1_1_i_face_detection_batch" ], + [ "IFaceEngineMobile", "structfsdk_1_1_i_face_engine_mobile.html", "structfsdk_1_1_i_face_engine_mobile" ], + [ "IHumanDetectionBatch", "structfsdk_1_1_i_human_detection_batch.html", "structfsdk_1_1_i_human_detection_batch" ], + [ "IHumanDetector", "structfsdk_1_1_i_human_detector.html", "structfsdk_1_1_i_human_detector" ], + [ "IHumanWarper", "structfsdk_1_1_i_human_warper.html", "structfsdk_1_1_i_human_warper" ], + [ "SearchResult", "structfsdk_1_1_search_result.html", "structfsdk_1_1_search_result" ], + [ "IStaticDescriptorStorage", "structfsdk_1_1_i_static_descriptor_storage.html", "structfsdk_1_1_i_static_descriptor_storage" ], + [ "IDynamicDescriptorStorage", "structfsdk_1_1_i_dynamic_descriptor_storage.html", "structfsdk_1_1_i_dynamic_descriptor_storage" ], + [ "IIndex", "structfsdk_1_1_i_index.html", "structfsdk_1_1_i_index" ], + [ "IDenseIndex", "structfsdk_1_1_i_dense_index.html", null ], + [ "IDynamicIndex", "structfsdk_1_1_i_dynamic_index.html", "structfsdk_1_1_i_dynamic_index" ], + [ "IProgressTracker", "structfsdk_1_1_i_progress_tracker.html", "structfsdk_1_1_i_progress_tracker" ], + [ "IIndexBuilder", "structfsdk_1_1_i_index_builder.html", "structfsdk_1_1_i_index_builder" ], + [ "ILicense", "structfsdk_1_1_i_license.html", "structfsdk_1_1_i_license" ], + [ "IArchive", "structfsdk_1_1_i_archive.html", "structfsdk_1_1_i_archive" ], + [ "ISerializableObject", "structfsdk_1_1_i_serializable_object.html", "structfsdk_1_1_i_serializable_object" ], + [ "ErrorTraits< ISerializableObject::Error >", "structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html", null ], + [ "IDataStorageObject", "structfsdk_1_1_i_data_storage_object.html", "structfsdk_1_1_i_data_storage_object" ], + [ "IRefCounted", "structfsdk_1_1_i_ref_counted.html", "structfsdk_1_1_i_ref_counted" ], + [ "IResultBatch", "structfsdk_1_1_i_result_batch.html", "structfsdk_1_1_i_result_batch" ], + [ "ISettingsProvider", "structfsdk_1_1_i_settings_provider.html", "structfsdk_1_1_i_settings_provider" ], + [ "ErrorTraits< ISettingsProvider::Error >", "structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html", null ], + [ "Transformation", "structfsdk_1_1_transformation.html", "structfsdk_1_1_transformation" ], + [ "IWarper", "structfsdk_1_1_i_warper.html", "structfsdk_1_1_i_warper" ], + [ "LaunchOptions", "structfsdk_1_1_launch_options.html", "structfsdk_1_1_launch_options" ], + [ "Detection", "structfsdk_1_1_detection.html", "structfsdk_1_1_detection" ], + [ "Face", "structfsdk_1_1_face.html", "structfsdk_1_1_face" ], + [ "Format", "structfsdk_1_1_format.html", "structfsdk_1_1_format" ], + [ "Noncopyable", "classfsdk_1_1_noncopyable.html", "classfsdk_1_1_noncopyable" ], + [ "Promise", "classfsdk_1_1_promise.html", "classfsdk_1_1_promise" ], + [ "Future", "classfsdk_1_1_future.html", "classfsdk_1_1_future" ], + [ "ErrorTraits< FutureError >", "structfsdk_1_1_error_traits_3_01_future_error_01_4.html", null ], + [ "ErrorTraits< PromiseError >", "structfsdk_1_1_error_traits_3_01_promise_error_01_4.html", null ], + [ "Human", "structfsdk_1_1_human.html", "structfsdk_1_1_human" ], + [ "HumanLandmark", "structfsdk_1_1_human_landmark.html", "structfsdk_1_1_human_landmark" ], + [ "HumanLandmarks", "structfsdk_1_1_human_landmarks.html", "structfsdk_1_1_human_landmarks" ], + [ "Image", "structfsdk_1_1_image.html", "structfsdk_1_1_image" ], + [ "ErrorTraits< Image::Error >", "structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html", null ], + [ "Landmarks", "structfsdk_1_1_landmarks.html", "structfsdk_1_1_landmarks" ], + [ "Landmarks5Indexes", "structfsdk_1_1_landmarks5_indexes.html", "structfsdk_1_1_landmarks5_indexes" ], + [ "MultiError", "structfsdk_1_1_multi_error.html", "structfsdk_1_1_multi_error" ], + [ "ErrorTraits< MultiError< E0, E1 > >", "structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html", "structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4" ], + [ "BaseRect", "structfsdk_1_1_base_rect.html", "structfsdk_1_1_base_rect" ], + [ "Ref", "structfsdk_1_1_ref.html", "structfsdk_1_1_ref" ], + [ "RefBase", "structfsdk_1_1_ref_base.html", "structfsdk_1_1_ref_base" ], + [ "ErrorTraits", "structfsdk_1_1_error_traits.html", null ], + [ "Result", "structfsdk_1_1_result.html", "structfsdk_1_1_result" ], + [ "ResultValue", "structfsdk_1_1_result_value.html", null ], + [ "ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b" ], + [ "ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8" ], + [ "Sizer", "structfsdk_1_1_sizer.html", "structfsdk_1_1_sizer" ], + [ "Span", "classfsdk_1_1_span.html", "classfsdk_1_1_span" ], + [ "SubImage", "structfsdk_1_1_sub_image.html", "structfsdk_1_1_sub_image" ], + [ "Vector2", "structfsdk_1_1_vector2.html", "structfsdk_1_1_vector2" ], + [ "Version", "structfsdk_1_1_version.html", "structfsdk_1_1_version" ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/namespacemembers.html b/doc/fsdk/html/namespacemembers.html new file mode 100644 index 0000000..10f79aa --- /dev/null +++ b/doc/fsdk/html/namespacemembers.html @@ -0,0 +1,661 @@ + + + + + + +Face Engine SDK: Namespace Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
Here is a list of all documented namespace members with links to the namespaces they belong to:
+ +

- a -

    +
  • acquire() +: fsdk +
  • +
  • acquire_as() +: fsdk +
  • +
  • activateLicense() +: fsdk +
  • +
  • Async +: fsdk +
  • +
+ + +

- b -

    +
  • BatchedInternalError +: fsdk +
  • +
  • Broken +: fsdk +
  • +
  • BufferIsEmpty +: fsdk +
  • +
  • BufferIsFull +: fsdk +
  • +
  • BufferIsNull +: fsdk +
  • +
+ + +

- c -

    +
  • Canceled +: fsdk +
  • +
  • CancelRequested +: fsdk +
  • +
  • centerScale() +: fsdk +
  • +
  • ClearFace +: fsdk +
  • +
  • ClearFaceWithMaskUnderChin +: fsdk +
  • +
  • convert() +: fsdk +
  • +
  • CorrectMask +: fsdk +
  • +
  • createFaceEngineMobile() +: fsdk +
  • +
  • createSettingsProvider() +: fsdk +
  • +
+ + +

- d -

    +
  • DCT_CENTER +: fsdk +
  • +
  • DCT_CENTER_AND_CONFIDENCE +: fsdk +
  • +
  • DCT_CONFIDENCE +: fsdk +
  • +
  • DCT_SIZE +: fsdk +
  • +
  • DescriptorId +: fsdk +
  • +
  • DescriptorType +: fsdk +
  • +
  • DescriptorVersion +: fsdk +
  • +
  • DetailedMaskType +: fsdk +
  • +
  • DetectionComparerType +: fsdk +
  • +
  • DetectionType +: fsdk +
  • +
  • DeviceClass +: fsdk +
  • +
  • DT_ALL +: fsdk +
  • +
  • DT_BBOX +: fsdk +
  • +
  • DT_FACE +: fsdk +
  • +
  • DT_HUMAN +: fsdk +
  • +
  • DT_LANDMARKS5 +: fsdk +
  • +
  • DT_LANDMARKS68 +: fsdk +
  • +
  • DV_MIN_FACE_DESCRIPTOR_VERSION +: fsdk +
  • +
  • DV_MIN_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
+ + +

- e -

    +
  • Empty +: fsdk +
  • +
  • EnableJustInBetaMode +: fsdk +
  • +
  • EstimationError +: fsdk +
  • +
  • ExecutionPolicy +: fsdk +
  • +
  • EyeGlasses +: fsdk +
  • +
+ + +

- f -

    +
  • FACE_DET_COUNT +: fsdk +
  • +
  • FACE_DET_DEFAULT +: fsdk +
  • +
  • FACE_DET_V1 +: fsdk +
  • +
  • FACE_DET_V2 +: fsdk +
  • +
  • FACE_DET_V3 +: fsdk +
  • +
  • Failed +: fsdk +
  • +
  • FeatureExpired +: fsdk +
  • +
  • FeatureNotAvailable +: fsdk +
  • +
  • FiltredAggregationError +: fsdk +
  • +
  • FingerprintError +: fsdk +
  • +
  • FSDKError +: fsdk +
  • +
  • Fulfilled +: fsdk +
  • +
  • FullMask +: fsdk +
  • +
  • FutureError +: fsdk +
  • +
  • FuturePromiseState +: fsdk +
  • +
+ + +

- g -

    +
  • getBuildInfo() +: fsdk +
  • +
  • getVersion() +: fsdk +
  • +
  • getVersionHash() +: fsdk +
  • +
  • getVersionString() +: fsdk +
  • +
  • GlassesEstimation +: fsdk +
  • +
+ + +

- h -

    +
  • HDT_ALL +: fsdk +
  • +
  • HDT_BOX +: fsdk +
  • +
  • HDT_POINTS +: fsdk +
  • +
  • HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
  • HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
  • HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
  • HumanDescriptorVersion +: fsdk +
  • +
  • HumanDetectionType +: fsdk +
  • +
  • HumanLandmarks17 +: fsdk +
  • +
+ + +

- i -

    +
  • ImageType +: fsdk +
  • +
  • IncompatibleDescriptors +: fsdk +
  • +
  • IncompatibleModelVersions +: fsdk +
  • +
  • Internal +: fsdk +
  • +
  • InvalidBatch +: fsdk +
  • +
  • InvalidBufferSize +: fsdk +
  • +
  • InvalidConfig +: fsdk +
  • +
  • InvalidDescriptor +: fsdk +
  • +
  • InvalidDescriptorBatch +: fsdk +
  • +
  • InvalidDescriptorId +: fsdk +
  • +
  • InvalidDetection +: fsdk +
  • +
  • InvalidImage +: fsdk +
  • +
  • InvalidImageFormat +: fsdk +
  • +
  • InvalidImageSize +: fsdk +
  • +
  • InvalidInput +: fsdk +
  • +
  • InvalidLandmarks5 +: fsdk +
  • +
  • InvalidLandmarks68 +: fsdk +
  • +
  • InvalidPath +: fsdk +
  • +
  • InvalidRect +: fsdk +
  • +
  • InvalidSerializedObject +: fsdk +
  • +
  • InvalidSettingsProvider +: fsdk +
  • +
  • InvalidSpanSize +: fsdk +
  • +
  • InvalidTransformation +: fsdk +
  • +
+ + +

- l -

    +
  • Landmark +: fsdk +
  • +
  • Landmarks5 +: fsdk +
  • +
  • Landmarks68 +: fsdk +
  • +
  • LicenseError +: fsdk +
  • +
  • LicenseFeature +: fsdk +
  • +
  • LicenseIsNotActivated +: fsdk +
  • +
+ + +

- m -

    +
  • make_ref() +: fsdk +
  • +
  • make_ref_as() +: fsdk +
  • +
  • makeResultValue() +: fsdk +
  • +
  • Mask +: fsdk +
  • +
  • MaskNotInPlace +: fsdk +
  • +
  • MedicalMask +: fsdk +
  • +
  • MedicalMaskExtended +: fsdk +
  • +
  • ModelNotLoaded +: fsdk +
  • +
  • ModuleNotInitialized +: fsdk +
  • +
  • ModuleNotReady +: fsdk +
  • +
  • MouthCoveredWithMask +: fsdk +
  • +
+ + +

- n -

    +
  • NIR +: fsdk +
  • +
  • NoGlasses +: fsdk +
  • +
  • NoMask +: fsdk +
  • +
  • NonWaitable +: fsdk +
  • +
  • NotFulfilled +: fsdk +
  • +
  • NotImplemented +: fsdk +
  • +
  • NotPromised +: fsdk +
  • +
+ + +

- o -

    +
  • ObjectDetectorClassType +: fsdk +
  • +
  • OccludedFace +: fsdk +
  • +
  • Ok +: fsdk +
  • +
  • operator!=() +: fsdk +
  • +
  • operator<() +: fsdk +
  • +
  • operator==() +: fsdk +
  • +
  • OrientationType +: fsdk +
  • +
  • OT_LEFT +: fsdk +
  • +
  • OT_NORMAL +: fsdk +
  • +
  • OT_RIGHT +: fsdk +
  • +
  • OT_UPSIDE_DOWN +: fsdk +
  • +
+ + +

- p -

    +
  • PartlyCoveredFace +: fsdk +
  • +
  • Point2d +: fsdk +
  • +
  • Point2f +: fsdk +
  • +
  • Point2i +: fsdk +
  • +
  • Point2u +: fsdk +
  • +
  • Point2us +: fsdk +
  • +
  • Promised +: fsdk +
  • +
  • PromiseError +: fsdk +
  • +
+ + +

- s -

    +
  • SensorType +: fsdk +
  • +
  • Size +: fsdk +
  • +
  • StateDoesntAllowFutureCreation +: fsdk +
  • +
  • StateNotCancelable +: fsdk +
  • +
  • StateNotFailable +: fsdk +
  • +
  • StateNotFulfillable +: fsdk +
  • +
  • SunGlasses +: fsdk +
  • +
  • Sync +: fsdk +
  • +
+ + +

- t -

    +
  • Timeout +: fsdk +
  • +
+ + +

- v -

    +
  • ValidationFailed +: fsdk +
  • +
  • Visible +: fsdk +
  • +
+
+
+ + + + diff --git a/doc/fsdk/html/namespacemembers_enum.html b/doc/fsdk/html/namespacemembers_enum.html new file mode 100644 index 0000000..687c06f --- /dev/null +++ b/doc/fsdk/html/namespacemembers_enum.html @@ -0,0 +1,190 @@ + + + + + + +Face Engine SDK: Namespace Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
    +
  • DescriptorType +: fsdk +
  • +
  • DescriptorVersion +: fsdk +
  • +
  • DetailedMaskType +: fsdk +
  • +
  • DetectionComparerType +: fsdk +
  • +
  • DetectionType +: fsdk +
  • +
  • DeviceClass +: fsdk +
  • +
  • ExecutionPolicy +: fsdk +
  • +
  • FSDKError +: fsdk +
  • +
  • FutureError +: fsdk +
  • +
  • FuturePromiseState +: fsdk +
  • +
  • GlassesEstimation +: fsdk +
  • +
  • HumanDescriptorVersion +: fsdk +
  • +
  • HumanDetectionType +: fsdk +
  • +
  • LicenseFeature +: fsdk +
  • +
  • MedicalMask +: fsdk +
  • +
  • MedicalMaskExtended +: fsdk +
  • +
  • ObjectDetectorClassType +: fsdk +
  • +
  • OrientationType +: fsdk +
  • +
  • PromiseError +: fsdk +
  • +
  • SensorType +: fsdk +
  • +
+
+
+ + + + diff --git a/doc/fsdk/html/namespacemembers_eval.html b/doc/fsdk/html/namespacemembers_eval.html new file mode 100644 index 0000000..a2879db --- /dev/null +++ b/doc/fsdk/html/namespacemembers_eval.html @@ -0,0 +1,509 @@ + + + + + + +Face Engine SDK: Namespace Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+  + +

- a -

+ + +

- b -

    +
  • BatchedInternalError +: fsdk +
  • +
  • Broken +: fsdk +
  • +
  • BufferIsEmpty +: fsdk +
  • +
  • BufferIsFull +: fsdk +
  • +
  • BufferIsNull +: fsdk +
  • +
+ + +

- c -

    +
  • Canceled +: fsdk +
  • +
  • CancelRequested +: fsdk +
  • +
  • ClearFace +: fsdk +
  • +
  • ClearFaceWithMaskUnderChin +: fsdk +
  • +
  • CorrectMask +: fsdk +
  • +
+ + +

- d -

    +
  • DCT_CENTER +: fsdk +
  • +
  • DCT_CENTER_AND_CONFIDENCE +: fsdk +
  • +
  • DCT_CONFIDENCE +: fsdk +
  • +
  • DCT_SIZE +: fsdk +
  • +
  • DT_ALL +: fsdk +
  • +
  • DT_BBOX +: fsdk +
  • +
  • DT_FACE +: fsdk +
  • +
  • DT_HUMAN +: fsdk +
  • +
  • DT_LANDMARKS5 +: fsdk +
  • +
  • DT_LANDMARKS68 +: fsdk +
  • +
  • DV_MIN_FACE_DESCRIPTOR_VERSION +: fsdk +
  • +
  • DV_MIN_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
+ + +

- e -

    +
  • Empty +: fsdk +
  • +
  • EnableJustInBetaMode +: fsdk +
  • +
  • EstimationError +: fsdk +
  • +
  • EyeGlasses +: fsdk +
  • +
+ + +

- f -

    +
  • FACE_DET_COUNT +: fsdk +
  • +
  • FACE_DET_DEFAULT +: fsdk +
  • +
  • FACE_DET_V1 +: fsdk +
  • +
  • FACE_DET_V2 +: fsdk +
  • +
  • FACE_DET_V3 +: fsdk +
  • +
  • Failed +: fsdk +
  • +
  • FeatureExpired +: fsdk +
  • +
  • FeatureNotAvailable +: fsdk +
  • +
  • FiltredAggregationError +: fsdk +
  • +
  • FingerprintError +: fsdk +
  • +
  • Fulfilled +: fsdk +
  • +
  • FullMask +: fsdk +
  • +
+ + +

- h -

    +
  • HDT_ALL +: fsdk +
  • +
  • HDT_BOX +: fsdk +
  • +
  • HDT_POINTS +: fsdk +
  • +
  • HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
  • HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
  • HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION +: fsdk +
  • +
+ + +

- i -

    +
  • IncompatibleDescriptors +: fsdk +
  • +
  • IncompatibleModelVersions +: fsdk +
  • +
  • Internal +: fsdk +
  • +
  • InvalidBatch +: fsdk +
  • +
  • InvalidBufferSize +: fsdk +
  • +
  • InvalidConfig +: fsdk +
  • +
  • InvalidDescriptor +: fsdk +
  • +
  • InvalidDescriptorBatch +: fsdk +
  • +
  • InvalidDescriptorId +: fsdk +
  • +
  • InvalidDetection +: fsdk +
  • +
  • InvalidImage +: fsdk +
  • +
  • InvalidImageFormat +: fsdk +
  • +
  • InvalidImageSize +: fsdk +
  • +
  • InvalidInput +: fsdk +
  • +
  • InvalidLandmarks5 +: fsdk +
  • +
  • InvalidLandmarks68 +: fsdk +
  • +
  • InvalidPath +: fsdk +
  • +
  • InvalidRect +: fsdk +
  • +
  • InvalidSerializedObject +: fsdk +
  • +
  • InvalidSettingsProvider +: fsdk +
  • +
  • InvalidSpanSize +: fsdk +
  • +
  • InvalidTransformation +: fsdk +
  • +
+ + +

- l -

    +
  • LicenseError +: fsdk +
  • +
  • LicenseIsNotActivated +: fsdk +
  • +
+ + +

- m -

    +
  • Mask +: fsdk +
  • +
  • MaskNotInPlace +: fsdk +
  • +
  • ModelNotLoaded +: fsdk +
  • +
  • ModuleNotInitialized +: fsdk +
  • +
  • ModuleNotReady +: fsdk +
  • +
  • MouthCoveredWithMask +: fsdk +
  • +
+ + +

- n -

    +
  • NIR +: fsdk +
  • +
  • NoGlasses +: fsdk +
  • +
  • NoMask +: fsdk +
  • +
  • NonWaitable +: fsdk +
  • +
  • NotFulfilled +: fsdk +
  • +
  • NotImplemented +: fsdk +
  • +
  • NotPromised +: fsdk +
  • +
+ + +

- o -

    +
  • OccludedFace +: fsdk +
  • +
  • Ok +: fsdk +
  • +
  • OT_LEFT +: fsdk +
  • +
  • OT_NORMAL +: fsdk +
  • +
  • OT_RIGHT +: fsdk +
  • +
  • OT_UPSIDE_DOWN +: fsdk +
  • +
+ + +

- p -

    +
  • PartlyCoveredFace +: fsdk +
  • +
  • Promised +: fsdk +
  • +
+ + +

- s -

    +
  • StateDoesntAllowFutureCreation +: fsdk +
  • +
  • StateNotCancelable +: fsdk +
  • +
  • StateNotFailable +: fsdk +
  • +
  • StateNotFulfillable +: fsdk +
  • +
  • SunGlasses +: fsdk +
  • +
  • Sync +: fsdk +
  • +
+ + +

- t -

    +
  • Timeout +: fsdk +
  • +
+ + +

- v -

    +
  • ValidationFailed +: fsdk +
  • +
  • Visible +: fsdk +
  • +
+
+
+ + + + diff --git a/doc/fsdk/html/namespacemembers_func.html b/doc/fsdk/html/namespacemembers_func.html new file mode 100644 index 0000000..6143e12 --- /dev/null +++ b/doc/fsdk/html/namespacemembers_func.html @@ -0,0 +1,181 @@ + + + + + + +Face Engine SDK: Namespace Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
    +
  • acquire() +: fsdk +
  • +
  • acquire_as() +: fsdk +
  • +
  • activateLicense() +: fsdk +
  • +
  • centerScale() +: fsdk +
  • +
  • convert() +: fsdk +
  • +
  • createFaceEngineMobile() +: fsdk +
  • +
  • createSettingsProvider() +: fsdk +
  • +
  • getBuildInfo() +: fsdk +
  • +
  • getVersion() +: fsdk +
  • +
  • getVersionHash() +: fsdk +
  • +
  • getVersionString() +: fsdk +
  • +
  • make_ref() +: fsdk +
  • +
  • make_ref_as() +: fsdk +
  • +
  • makeResultValue() +: fsdk +
  • +
  • operator!=() +: fsdk +
  • +
  • operator<() +: fsdk +
  • +
  • operator==() +: fsdk +
  • +
+
+
+ + + + diff --git a/doc/fsdk/html/namespacemembers_type.html b/doc/fsdk/html/namespacemembers_type.html new file mode 100644 index 0000000..f777378 --- /dev/null +++ b/doc/fsdk/html/namespacemembers_type.html @@ -0,0 +1,166 @@ + + + + + + +Face Engine SDK: Namespace Members + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
    +
  • DescriptorId +: fsdk +
  • +
  • HumanLandmarks17 +: fsdk +
  • +
  • ImageType +: fsdk +
  • +
  • Landmark +: fsdk +
  • +
  • Landmarks5 +: fsdk +
  • +
  • Landmarks68 +: fsdk +
  • +
  • Point2d +: fsdk +
  • +
  • Point2f +: fsdk +
  • +
  • Point2i +: fsdk +
  • +
  • Point2u +: fsdk +
  • +
  • Point2us +: fsdk +
  • +
  • Size +: fsdk +
  • +
+
+
+ + + + diff --git a/doc/fsdk/html/namespaces.html b/doc/fsdk/html/namespaces.html new file mode 100644 index 0000000..dd60a69 --- /dev/null +++ b/doc/fsdk/html/namespaces.html @@ -0,0 +1,128 @@ + + + + + + +Face Engine SDK: Namespace List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Namespace List
+
+
+
Here is a list of all documented namespaces with brief descriptions:
+ + +
\NfsdkSDK namespace
+
+
+
+ + + + diff --git a/doc/fsdk/html/namespaces.js b/doc/fsdk/html/namespaces.js new file mode 100644 index 0000000..9af390d --- /dev/null +++ b/doc/fsdk/html/namespaces.js @@ -0,0 +1,4 @@ +var namespaces = +[ + [ "fsdk", "namespacefsdk.html", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/nav_f.png b/doc/fsdk/html/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/doc/fsdk/html/nav_f.png differ diff --git a/doc/fsdk/html/nav_g.png b/doc/fsdk/html/nav_g.png new file mode 100644 index 0000000..9681f15 Binary files /dev/null and b/doc/fsdk/html/nav_g.png differ diff --git a/doc/fsdk/html/nav_h.png b/doc/fsdk/html/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/doc/fsdk/html/nav_h.png differ diff --git a/doc/fsdk/html/navtree.css b/doc/fsdk/html/navtree.css new file mode 100644 index 0000000..41a9cb9 --- /dev/null +++ b/doc/fsdk/html/navtree.css @@ -0,0 +1,143 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background:url("ftv2splitbar.png") repeat scroll right center transparent; + cursor:e-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/doc/fsdk/html/navtree.js b/doc/fsdk/html/navtree.js new file mode 100644 index 0000000..ae02739 --- /dev/null +++ b/doc/fsdk/html/navtree.js @@ -0,0 +1,568 @@ +var NAVTREE = +[ + [ "Face Engine SDK", "index.html", [ + [ "LUNA SDK", "index.html", [ + [ "Introduction", "index.html#IntroSection", null ], + [ "Structure", "index.html#StructureSection", null ] + ] ], + [ "Modules", "modules.html", "modules" ], + [ "Namespaces", null, [ + [ "Namespace List", "namespaces.html", "namespaces" ], + [ "Namespace Members", "namespacemembers.html", [ + [ "All", "namespacemembers.html", null ], + [ "Functions", "namespacemembers_func.html", null ], + [ "Typedefs", "namespacemembers_type.html", null ], + [ "Enumerations", "namespacemembers_enum.html", null ], + [ "Enumerator", "namespacemembers_eval.html", null ] + ] ] + ] ], + [ "Classes", null, [ + [ "Class List", "annotated.html", "annotated" ], + [ "Class Index", "classes.html", null ], + [ "Class Hierarchy", "hierarchy.html", "hierarchy" ], + [ "Class Members", "functions.html", [ + [ "All", "functions.html", "functions_dup" ], + [ "Functions", "functions_func.html", "functions_func" ], + [ "Variables", "functions_vars.html", null ], + [ "Typedefs", "functions_type.html", null ], + [ "Enumerations", "functions_enum.html", null ], + [ "Enumerator", "functions_eval.html", null ] + ] ] + ] ], + [ "Files", null, [ + [ "File List", "files.html", "files" ], + [ "File Members", "globals.html", [ + [ "All", "globals.html", null ], + [ "Macros", "globals_defs.html", null ] + ] ] + ] ] + ] ] +]; + +var NAVTREEINDEX = +[ +"_def_8h.html", +"functions_0x66.html", +"structfsdk_1_1_face.html#a9c829216cf178ece188aee1afa78af8f", +"structfsdk_1_1_i_serializable_object.html#a5171a97d79c639d613ec9d6ee694c8e1", +"structfsdk_1_1_image.html#a8bce66953fc250acf5c729d5168d6310", +"structfsdk_1_1_vector2.html#a956df0b0a02e8a0a2129749129c97676" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; +var navTreeSubIndices = new Array(); + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"ftv2pnode.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"ftv2pnode.png"; + } else { + var span = document.createElement("span"); + span.style.display = 'inline-block'; + span.style.width = 16*(level+1)+'px'; + span.style.height = '22px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + if (anchor.parent().attr('class')=='memItemLeft' || + anchor.parent().attr('class')=='fieldtype' || + anchor.parent().is(':header')) + { + pos = anchor.parent().position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath($(location).attr('pathname')); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = $(location).attr('hash'); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+ + window.location.hash.substring(1)+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parents().slice(2).prop('tagName')=='TR') { + glowEffect(anchor.parents('div.memitem'),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1]; + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + //root=root.replace(/_source\./,'.'); // source link to doc link + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash')); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"ftv2pnode.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + $(window).load(function(){ + navTo(o,toroot,window.location.hash,relpath); + showRoot(); + }); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath($(location).attr('pathname'))+':'+ + $(location).attr('hash').substring(1); + a=$('.item a[class$="'+clslink+'"]'); + } + if (a==null || !$(a).parent().parent().hasClass('selected')){ + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + var link=stripPath2($(location).attr('pathname')); + navTo(o,link,$(location).attr('hash'),relpath); + } else if (!animationInProgress) { + $('#doc-content').scrollTop(0); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + navTo(o,toroot,window.location.hash,relpath); + } + }) +} + diff --git a/doc/fsdk/html/navtreeindex0.js b/doc/fsdk/html/navtreeindex0.js new file mode 100644 index 0000000..f294c75 --- /dev/null +++ b/doc/fsdk/html/navtreeindex0.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX0 = +{ +"_def_8h.html":[4,0,0,0,2], +"_def_8h.html#a5dc4c3043f171426dafe6fc800218945":[4,0,0,0,2,4], +"_def_8h.html#ae0004c1093b61db5f8c34e4464997ae9":[4,0,0,0,2,5], +"_def_8h.html#ga31543af52440ac9068b6b691617944a6":[4,0,0,0,2,0], +"_def_8h.html#ga41f0baf2fca639d9cb25be1b9e03e335":[4,0,0,0,2,8], +"_def_8h.html#ga6df1d22fb5f09eccc23b9f399670cfd7":[4,0,0,0,2,7], +"_def_8h.html#ga8e7a3bf6003d72a62606f343c2db6245":[4,0,0,0,2,1], +"_def_8h.html#gaae3356b63849abbe8789dd41648ee90a":[4,0,0,0,2,6], +"_def_8h.html#gac032d233a8ebfcd82fd49d0824eefb18":[4,0,0,0,2,3], +"_def_8h.html#gac4832e274cc0ba20ce33c3e34503a063":[4,0,0,0,2,2], +"_def_8h_source.html":[4,0,0,0,2], +"_detection_8h_source.html":[4,0,0,0,1,0], +"_exception_8h_source.html":[4,0,0,0,3], +"_f_s_d_k_error_8h.html":[4,0,0,0,5], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6":[4,0,0,0,5,1], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a06ac3f10514f6b229599e88b2ee7d2bf":[4,0,0,0,5,1,29], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a107a93f5ad9b48f874341eaa0141e0f9":[4,0,0,0,5,1,3], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a135fc410a8fc490b3531c355f8c30461":[4,0,0,0,5,1,27], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a16cd466ba03251484ec4e4b1dba364f5":[4,0,0,0,5,1,25], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a180b13250d9cde4f32c7e611c95789db":[4,0,0,0,5,1,39], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a1a86be0290d50e138737e4cc52665468":[4,0,0,0,5,1,14], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a21481cb38ecea41b765ab2d86b594053":[4,0,0,0,5,1,10], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a22e90664663be51d76eb78ba6e964375":[4,0,0,0,5,1,35], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a2b423836b373458d26bdc9da85cfc6a8":[4,0,0,0,5,1,19], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a323d77f58f917d629ad48b5ee2d191c1":[4,0,0,0,5,1,17], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a32d8099d0ff5ab8d8893e6902eeb1ad0":[4,0,0,0,5,1,23], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a3552409a4c6111770f0d160447285b17":[4,0,0,0,5,1,22], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a3557af19581eb994d3e1b9dbc465226d":[4,0,0,0,5,1,21], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a3e095f1fa338dccd7cc239c47593fd7a":[4,0,0,0,5,1,28], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a455a3a357ebc7221085d184c157c13a5":[4,0,0,0,5,1,38], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a48a3a3a046f78d13629f687cc97461a0":[4,0,0,0,5,1,4], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a4bb4fd071cf54bae94ece53fa687b8bf":[4,0,0,0,5,1,5], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5a606ed9e3b82871cb31eb26d467bebf":[4,0,0,0,5,1,6], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5b17c8e23099885736ba8f8d05c32f6c":[4,0,0,0,5,1,11], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5d0744802b24f44a161d350c25d76c7b":[4,0,0,0,5,1,15], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a5e323dba014fd8072bb4a29f3e39db8d":[4,0,0,0,5,1,9], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a636bc5ca1e0ceb3e4c67067618d7ae09":[4,0,0,0,5,1,34], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a781454aa7253a3e54e7a7f7fec293e29":[4,0,0,0,5,1,33], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a7b9735f9f1303453ad41cd38fc3b2b77":[4,0,0,0,5,1,12], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a84decd8ce021a70aef62a2283ea8d559":[4,0,0,0,5,1,37], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a8f36304eeb9e7bd7da166f71d3a5671f":[4,0,0,0,5,1,7], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a98530c9f4969e4a2e2d84a7776a2be2a":[4,0,0,0,5,1,26], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a997ca4ce119685f40f03a9a8a6c5346e":[4,0,0,0,5,1,40], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6a9a93b3012aa094825f11f65e07763bb3":[4,0,0,0,5,1,24], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6aa60852f204ed8028c1c58808b746d115":[4,0,0,0,5,1,0], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6aafbf0897a5a83fdd873dfb032ec695d3":[4,0,0,0,5,1,1], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6ab1af2f31ddaa685b9fabe328f28f3a6f":[4,0,0,0,5,1,13], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6ab5c07ccab2c5b9c7577b777263e692aa":[4,0,0,0,5,1,8], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6acd355ebab3607a35280f24744616fc24":[4,0,0,0,5,1,30], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6acd90a241053a97f8ff283746c8bed63f":[4,0,0,0,5,1,32], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6ad8f78ca9a692a9411afbc7584b69d043":[4,0,0,0,5,1,2], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6adf06605dc40df1fb5461ffb5f83b2eab":[4,0,0,0,5,1,18], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6aec4c088621f5d17412b2d1c55befb5ff":[4,0,0,0,5,1,20], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6af3c0d24a751f6da0fe4f81bb2e10bb19":[4,0,0,0,5,1,16], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6af87a8fba63bf85f0b7f09e4678a7d88f":[4,0,0,0,5,1,31], +"_f_s_d_k_error_8h.html#a811cc08198c8cb908dc856217ef6c4f6afb12ff30441dbc154f6d2591169f012c":[4,0,0,0,5,1,36], +"_f_s_d_k_error_8h_source.html":[4,0,0,0,5], +"_f_s_d_k_version_8h_source.html":[4,0,0,0,6], +"_face_8h_source.html":[4,0,0,0,1,1], +"_face_engine_8h.html":[4,0,0,0,4], +"_face_engine_8h.html#a26a5c21a07c3da43c68260ea0e386776":[4,0,0,0,4,0], +"_face_engine_8h.html#ab3ee7565ad11c7584ca7610bcf4e58a4":[4,0,0,0,4,1], +"_face_engine_8h_source.html":[4,0,0,0,4], +"_face_engine_edition_8h_source.html":[4,0,0,0,1,2], +"_format_8h_source.html":[4,0,0,0,1,3], +"_future_8h_source.html":[4,0,0,0,1,4], +"_human_8h_source.html":[4,0,0,0,1,5], +"_human_landmarks_8h_source.html":[4,0,0,0,1,6], +"_i_a_g_s_estimator_8h_source.html":[4,0,0,0,0,0], +"_i_async_context_8h.html":[4,0,0,0,7], +"_i_async_context_8h_source.html":[4,0,0,0,7], +"_i_best_shot_quality_estimator_8h_source.html":[4,0,0,0,0,1], +"_i_descriptor_8h.html":[4,0,0,0,8], +"_i_descriptor_8h.html#ga1cd2e0e27848b58fe8d39becd00d6186":[4,0,0,0,8,0], +"_i_descriptor_8h.html#ga483d7359d800ae83b6fbda4dabdf086a":[4,0,0,0,8,2], +"_i_descriptor_8h.html#gaa796beff9fb761301be4e46b1a2412ab":[4,0,0,0,8,1], +"_i_descriptor_8h.html#gga1cd2e0e27848b58fe8d39becd00d6186a55aa0ee5f96f43689faa8dc86966340e":[4,0,0,0,8,0,1], +"_i_descriptor_8h.html#gga1cd2e0e27848b58fe8d39becd00d6186adfd064a1bc06eda4ce5ad8cbb32ceb05":[4,0,0,0,8,0,0], +"_i_descriptor_8h.html#gga483d7359d800ae83b6fbda4dabdf086aa2f2c4b298d09076afaf1ce4b262b88f3":[4,0,0,0,8,2,2], +"_i_descriptor_8h.html#gga483d7359d800ae83b6fbda4dabdf086aab372ead6c8a3d98140e26c9b05603fbf":[4,0,0,0,8,2,0], +"_i_descriptor_8h.html#gga483d7359d800ae83b6fbda4dabdf086aaccfd669d40850d6a873556ade7aa880e":[4,0,0,0,8,2,1], +"_i_descriptor_8h.html#ggaa796beff9fb761301be4e46b1a2412aba1dfe29faa054d00d13d992fdfcffaef4":[4,0,0,0,8,1,0], +"_i_descriptor_8h.html#ggaa796beff9fb761301be4e46b1a2412aba663094a3a39d591eca695b631243f71a":[4,0,0,0,8,1,1], +"_i_descriptor_8h_source.html":[4,0,0,0,8], +"_i_detector_8h.html":[4,0,0,0,9], +"_i_detector_8h.html#a2cd10d6257c328c01b7d7296938881f8":[4,0,0,0,9,3], +"_i_detector_8h.html#a2cd10d6257c328c01b7d7296938881f8aac46d1e7cde34e4a9b473eb8a9d8c443":[4,0,0,0,9,3,1], +"_i_detector_8h.html#a2cd10d6257c328c01b7d7296938881f8aec24d78ce33048dc73a2b6b1a0690192":[4,0,0,0,9,3,0], +"_i_detector_8h.html#ga29cb345293d30553e7af41260cede7ad":[4,0,0,0,9,1], +"_i_detector_8h.html#ga57a8fbc0f75d0b8bf26b2d037c14b5ba":[4,0,0,0,9,4], +"_i_detector_8h.html#ga7d021e05a5d867ffe947ffb40aa0923d":[4,0,0,0,9,0], +"_i_detector_8h.html#gab83a85f36a0025dac2b8b6d41b88bd8c":[4,0,0,0,9,2], +"_i_detector_8h.html#gga29cb345293d30553e7af41260cede7ada1be6a902d3612661d3200257c69323fa":[4,0,0,0,9,1,3], +"_i_detector_8h.html#gga29cb345293d30553e7af41260cede7ada3a1cef8a2d392799c66fe948b3cee9f4":[4,0,0,0,9,1,1], +"_i_detector_8h.html#gga29cb345293d30553e7af41260cede7ada508e9b2f679d5758e9bf979610dbb1c5":[4,0,0,0,9,1,2], +"_i_detector_8h.html#gga29cb345293d30553e7af41260cede7adafc1e9f167d5d1be9899f6732bc6f2110":[4,0,0,0,9,1,0], +"_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923da113aa401fd3bbad089894a3cf8fd06b6":[4,0,0,0,9,0,2], +"_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923da763dab49108298d2d502a9749e2628e9":[4,0,0,0,9,0,1], +"_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923da8767054041a6b3288648b7a403ca7b17":[4,0,0,0,9,0,0], +"_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923dab87d650f70c0d623b1419a50c24ce590":[4,0,0,0,9,0,3], +"_i_detector_8h.html#gga7d021e05a5d867ffe947ffb40aa0923dad3309aec6ae701eefdb1dace4b2113f3":[4,0,0,0,9,0,4], +"_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca53e96ce2b5c1880ce5588a4b099eb24b":[4,0,0,0,9,2,4], +"_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca76b25822675d9312e8decb221ca609ec":[4,0,0,0,9,2,1], +"_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca908b2d58b338d34863dc56d21474ffc3":[4,0,0,0,9,2,0], +"_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8caed0da3a5db3f97c5eb927a1696de2d65":[4,0,0,0,9,2,2], +"_i_detector_8h.html#ggab83a85f36a0025dac2b8b6d41b88bd8cafd6028fd9b68847f58ab7a089cedd57d":[4,0,0,0,9,2,3], +"_i_detector_8h_source.html":[4,0,0,0,9], +"_i_eye_estimator_8h_source.html":[4,0,0,0,0,2], +"_i_face_detection_batch_8h_source.html":[4,0,0,0,10], +"_i_face_engine_mobile_8h_source.html":[4,0,0,0,11], +"_i_glasses_estimator_8h_source.html":[4,0,0,0,0,3], +"_i_head_pose_estimator_8h_source.html":[4,0,0,0,0,4], +"_i_human_detection_batch_8h_source.html":[4,0,0,0,12], +"_i_human_detector_8h_source.html":[4,0,0,0,13], +"_i_human_warper_8h.html":[4,0,0,0,14], +"_i_human_warper_8h_source.html":[4,0,0,0,14], +"_i_index_8h_source.html":[4,0,0,0,15], +"_i_license_8h_source.html":[4,0,0,0,16], +"_i_liveness_one_shot_r_g_b_estimator_8h_source.html":[4,0,0,0,0,5], +"_i_medical_mask_estimator_8h_source.html":[4,0,0,0,0,6], +"_i_object_8h.html":[4,0,0,0,17], +"_i_object_8h_source.html":[4,0,0,0,17], +"_i_quality_estimator_8h_source.html":[4,0,0,0,0,7], +"_i_ref_counted_8h.html":[4,0,0,0,18], +"_i_ref_counted_8h_source.html":[4,0,0,0,18], +"_i_result_batch_8h_source.html":[4,0,0,0,19], +"_i_settings_provider_8h.html":[4,0,0,0,20], +"_i_settings_provider_8h.html#gabaa648d3852a1059c82f1d8462e18e9d":[4,0,0,0,20,14], +"_i_settings_provider_8h_source.html":[4,0,0,0,20], +"_i_warper_8h.html":[4,0,0,0,21], +"_i_warper_8h_source.html":[4,0,0,0,21], +"_image_8h_source.html":[4,0,0,0,1,7], +"_landmarks_8h_source.html":[4,0,0,0,1,8], +"_launch_options_8h_source.html":[4,0,0,0,22], +"_log_8h.html":[4,0,0,0,23], +"_log_8h.html#a2513f0c4589afb6021a0a93f03023202":[4,0,0,0,23,6], +"_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ad":[4,0,0,0,23,1], +"_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada0c7e2181976713a29d30a446507379cf":[4,0,0,0,23,1,3], +"_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada5cdd5ba02b03a41e94ddbe516ceac375":[4,0,0,0,23,1,4], +"_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada7930eb19e00606b675d1134fdfae194e":[4,0,0,0,23,1,1], +"_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8ada8cc15ff64a6c56392ce57f74fd21ebd3":[4,0,0,0,23,1,2], +"_log_8h.html#a3221e435013d701a0b34a8fe5ba3d8adae8c889d368284706aaf4ff25f6ca10a5":[4,0,0,0,23,1,0], +"_log_8h.html#a3b95bf4e62d62b8a23c3870158e6cda6":[4,0,0,0,23,2], +"_log_8h.html#a4feee1207af3723856efe93af4149a05":[4,0,0,0,23,7], +"_log_8h.html#a7749b5803f17a0b6bf051e9962c90be2":[4,0,0,0,23,5], +"_log_8h.html#abb8db6df96f6da80a86bc042ac48b849":[4,0,0,0,23,3], +"_log_8h.html#ac9865211f90c8279da5c4027af553649":[4,0,0,0,23,0], +"_log_8h.html#ad5bb49e0d3487a9b4ba00f21c9590274":[4,0,0,0,23,4], +"_log_8h_source.html":[4,0,0,0,23], +"_multi_error_8h_source.html":[4,0,0,0,1,9], +"_optional_8h_source.html":[4,0,0,0,24], +"_orientation_type_8h_source.html":[4,0,0,0,1,10], +"_rect_8h_source.html":[4,0,0,0,1,11], +"_ref_8h_source.html":[4,0,0,0,1,12], +"_ref_base_8h_source.html":[4,0,0,0,1,13], +"_result_8h_source.html":[4,0,0,0,1,14], +"_result_value_8h_source.html":[4,0,0,0,1,15], +"_sizer_8h_source.html":[4,0,0,0,1,16], +"_span_8h_source.html":[4,0,0,0,1,17], +"_sub_image_8h_source.html":[4,0,0,0,1,18], +"_types_8h.html":[4,0,0,0,25], +"_types_8h_source.html":[4,0,0,0,25], +"_vector2_8h_source.html":[4,0,0,0,1,19], +"_version_8h.html":[4,0,0,0,26], +"_version_8h.html#ga34ebbd7511e7bda7ace0f6a65d8cea12":[4,0,0,0,26,3], +"_version_8h.html#ga525b65b20d219073604d14d7d845bf14":[4,0,0,0,26,4], +"_version_8h.html#gaa1f550339ca96028e8c0115d201e02a0":[4,0,0,0,26,6], +"_version_8h.html#gac221ff93065b829ca0e059f0dfa248e3":[4,0,0,0,26,0], +"_version_8h.html#gad429c6eae9f032debb9416947550009b":[4,0,0,0,26,5], +"_version_8h.html#gadc959b5a3e56b4c12f7c19e01c8091c7":[4,0,0,0,26,2], +"_version_8h.html#gadf18bd918c6a2390201ce2110ef17717":[4,0,0,0,26,1], +"_version_8h_source.html":[4,0,0,0,26], +"_weak_ref_8h_source.html":[4,0,0,0,1,20], +"annotated.html":[3,0], +"classes.html":[3,1], +"classfsdk_1_1_function_detection_comparer.html":[1,1,1], +"classfsdk_1_1_function_detection_comparer.html#a1c9bf99a56409e8fce5f18ccd401aea0":[1,1,1,0], +"classfsdk_1_1_function_detection_comparer.html#a435c6427c6ae2eaf48306d07ccf40d4d":[1,1,1,2], +"classfsdk_1_1_function_detection_comparer.html#ad62076ff1b12d50971f8f636546d864b":[1,1,1,1], +"classfsdk_1_1_future.html":[3,0,0,58], +"classfsdk_1_1_future.html#a2b52e6264dc9fb54d143712efdb783b8":[3,0,0,58,8], +"classfsdk_1_1_future.html#a38f572195de92595cbc6c847fb7470ec":[3,0,0,58,0], +"classfsdk_1_1_future.html#a7af716e65c7061f09357215bb6227893":[3,0,0,58,5], +"classfsdk_1_1_future.html#a7e85628150597362aad032ea8029dcf9":[3,0,0,58,10], +"classfsdk_1_1_future.html#a88569ef592c8f9793067cb1139123aaf":[3,0,0,58,3], +"classfsdk_1_1_future.html#a942829f2284cae1feebbdeae05e9041d":[3,0,0,58,7], +"classfsdk_1_1_future.html#a9a5efae2498601862b9514b6d58661c6":[3,0,0,58,1], +"classfsdk_1_1_future.html#aaaed4d6e1ad65c21ac4ac4e547e93f53":[3,0,0,58,6], +"classfsdk_1_1_future.html#aad456b58442c956f349975302ebf9c8e":[3,0,0,58,4], +"classfsdk_1_1_future.html#ab1da1098643943411046bbe6a718fe74":[3,0,0,58,11], +"classfsdk_1_1_future.html#ab792dd0d1b8eac18d3a0d875d215575f":[3,0,0,58,2], +"classfsdk_1_1_future.html#ac30c21fa31a1d66e732bfffada32e03a":[3,0,0,58,9], +"classfsdk_1_1_i_detection_comparer.html":[1,1,0], +"classfsdk_1_1_i_detection_comparer.html#a4d4a586c4ec2d4d1277c4f80a593fc62":[1,1,0,1], +"classfsdk_1_1_i_detection_comparer.html#a51f3eb717603448dc4429735ad08b738":[1,1,0,0], +"classfsdk_1_1_noncopyable.html":[3,0,0,56], +"classfsdk_1_1_noncopyable.html#a24ef5947c407909c3204afa05a8cb4a3":[3,0,0,56,1], +"classfsdk_1_1_noncopyable.html#a68197eb84f8a92fe7501b4b3489b41ba":[3,0,0,56,0], +"classfsdk_1_1_promise.html":[3,0,0,57], +"classfsdk_1_1_promise.html#a0c73e4d84c3e6487d5a7e1f7b0c13ba0":[3,0,0,57,6], +"classfsdk_1_1_promise.html#a11a4723bb75f234e2e281f8d0c6177b1":[3,0,0,57,3], +"classfsdk_1_1_promise.html#a22617556e5adc142030df7ef45e829d4":[3,0,0,57,9], +"classfsdk_1_1_promise.html#a26f2ff77af845a32921508ac26184217":[3,0,0,57,2], +"classfsdk_1_1_promise.html#a289da90b035b98d71ff87b366523d970":[3,0,0,57,0], +"classfsdk_1_1_promise.html#a379829f59f04b7694423b3e82d501766":[3,0,0,57,7], +"classfsdk_1_1_promise.html#a6090be005ea468c04f8e6ccb22b6db17":[3,0,0,57,4], +"classfsdk_1_1_promise.html#a7a178efaed788e336ed5305580737e4a":[3,0,0,57,5], +"classfsdk_1_1_promise.html#acb099562ad549c712fcdca295b379f5d":[3,0,0,57,10], +"classfsdk_1_1_promise.html#accb944e8905435482b8604dfb805d690":[3,0,0,57,8], +"classfsdk_1_1_promise.html#ae3660c93bae2da9120c11546f132a87e":[3,0,0,57,1], +"classfsdk_1_1_span.html":[3,0,0,79], +"classfsdk_1_1_span.html#a095a8f1430c6ba5f9c596af9fa88c3e6":[3,0,0,79,16], +"classfsdk_1_1_span.html#a0b0e712e9c42cbf28074f07e1adbff49":[3,0,0,79,8], +"classfsdk_1_1_span.html#a1371c55fe46de7880cafc8836e8f5043":[3,0,0,79,23], +"classfsdk_1_1_span.html#a15ed0b927c4c6ef86e9468a05d983938":[3,0,0,79,21], +"classfsdk_1_1_span.html#a16429259247be701ed06e956e4e423b3":[3,0,0,79,18], +"classfsdk_1_1_span.html#a16e587f201014a10a13a04a72c2a4939":[3,0,0,79,24], +"classfsdk_1_1_span.html#a1d2df65eb3624affd20da91cd8075d01":[3,0,0,79,10], +"classfsdk_1_1_span.html#a1fcb99423267eb25a11f87bc069cb97e":[3,0,0,79,27], +"classfsdk_1_1_span.html#a2a116aa0f21d8868d51f40cf85d94403":[3,0,0,79,2], +"classfsdk_1_1_span.html#a4cebcd965f5b95696aa728d73a9bc9dc":[3,0,0,79,9], +"classfsdk_1_1_span.html#a4ff1cfe464f87e22ba38ffdee05b2247":[3,0,0,79,14], +"classfsdk_1_1_span.html#a55f6a9fc7fa9f503d13d4f5cb30023b8":[3,0,0,79,19], +"classfsdk_1_1_span.html#a5d56ebed8442593f2f9fded9c88ebbb6":[3,0,0,79,4], +"classfsdk_1_1_span.html#a6dd554d60d4ad6c1b9d383b92d306d4d":[3,0,0,79,13], +"classfsdk_1_1_span.html#a75d776c2cd247ee09dca89c7b76ef95e":[3,0,0,79,15], +"classfsdk_1_1_span.html#a81e49d52e6329452a8badab0b8a29595":[3,0,0,79,5], +"classfsdk_1_1_span.html#a9fbe74fd5fd064ed81d7c108c28dfaeb":[3,0,0,79,1], +"classfsdk_1_1_span.html#aaa0b61e529461b7a741efb5efb895c85":[3,0,0,79,7], +"classfsdk_1_1_span.html#ab1575087c09d7d055cad79a1833f88c6":[3,0,0,79,25], +"classfsdk_1_1_span.html#ac0371b94f536df818bbe922147d2ac03":[3,0,0,79,22], +"classfsdk_1_1_span.html#ac6eff7f7e3d1fedb1673b4411d9a3de9":[3,0,0,79,26], +"classfsdk_1_1_span.html#ad269a8eb69d0d90e34d8eab02d575cc6":[3,0,0,79,12], +"classfsdk_1_1_span.html#ae52e826225cb124e859101fc19877b15":[3,0,0,79,3], +"classfsdk_1_1_span.html#ae984b657d4947a6adb3e1d0b4ddce297":[3,0,0,79,11], +"classfsdk_1_1_span.html#af983e470cc40648ca32aa470312b6bb0":[3,0,0,79,20], +"classfsdk_1_1_span.html#afb750480f6d63afa1bd5607bb820f03f":[3,0,0,79,17], +"classfsdk_1_1_span.html#afc98bf84b1455a236329ef684970e65f":[3,0,0,79,6], +"classfsdk_1_1_span.html#affd681ecb9f1086f6a3b5c6ad2ddc93f":[3,0,0,79,0], +"dir_104afe3ef84f31716f380b8a9fe62f28.html":[4,0,0,0,1], +"dir_96470401125dcf7b94020a7d1057712f.html":[4,0,0,0,0], +"dir_d44c64559bbebec7f509842c48db8b23.html":[4,0,0], +"dir_f55a93227fda83d5dd4a3d796702467d.html":[4,0,0,0], +"files.html":[4,0], +"functions.html":[3,3,0], +"functions.html":[3,3,0,0], +"functions_0x62.html":[3,3,0,1], +"functions_0x63.html":[3,3,0,2], +"functions_0x64.html":[3,3,0,3], +"functions_0x65.html":[3,3,0,4] +}; diff --git a/doc/fsdk/html/navtreeindex1.js b/doc/fsdk/html/navtreeindex1.js new file mode 100644 index 0000000..e815514 --- /dev/null +++ b/doc/fsdk/html/navtreeindex1.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX1 = +{ +"functions_0x66.html":[3,3,0,5], +"functions_0x67.html":[3,3,0,6], +"functions_0x68.html":[3,3,0,7], +"functions_0x69.html":[3,3,0,8], +"functions_0x6b.html":[3,3,0,9], +"functions_0x6c.html":[3,3,0,10], +"functions_0x6d.html":[3,3,0,11], +"functions_0x6e.html":[3,3,0,12], +"functions_0x6f.html":[3,3,0,13], +"functions_0x70.html":[3,3,0,14], +"functions_0x71.html":[3,3,0,15], +"functions_0x72.html":[3,3,0,16], +"functions_0x73.html":[3,3,0,17], +"functions_0x74.html":[3,3,0,18], +"functions_0x75.html":[3,3,0,19], +"functions_0x76.html":[3,3,0,20], +"functions_0x77.html":[3,3,0,21], +"functions_0x78.html":[3,3,0,22], +"functions_0x79.html":[3,3,0,23], +"functions_0x7e.html":[3,3,0,24], +"functions_enum.html":[3,3,4], +"functions_eval.html":[3,3,5], +"functions_func.html":[3,3,1], +"functions_func.html":[3,3,1,0], +"functions_func_0x62.html":[3,3,1,1], +"functions_func_0x63.html":[3,3,1,2], +"functions_func_0x64.html":[3,3,1,3], +"functions_func_0x65.html":[3,3,1,4], +"functions_func_0x66.html":[3,3,1,5], +"functions_func_0x67.html":[3,3,1,6], +"functions_func_0x69.html":[3,3,1,7], +"functions_func_0x6b.html":[3,3,1,8], +"functions_func_0x6c.html":[3,3,1,9], +"functions_func_0x6d.html":[3,3,1,10], +"functions_func_0x6f.html":[3,3,1,11], +"functions_func_0x70.html":[3,3,1,12], +"functions_func_0x72.html":[3,3,1,13], +"functions_func_0x73.html":[3,3,1,14], +"functions_func_0x74.html":[3,3,1,15], +"functions_func_0x75.html":[3,3,1,16], +"functions_func_0x76.html":[3,3,1,17], +"functions_func_0x77.html":[3,3,1,18], +"functions_func_0x7e.html":[3,3,1,19], +"functions_type.html":[3,3,3], +"functions_vars.html":[3,3,2], +"globals.html":[4,1,0], +"globals_defs.html":[4,1,1], +"group___core_group.html":[1,2], +"group___core_group.html#ga217e0e83b975735419e174ee80ba36fb":[1,2,0,15], +"group___core_group.html#ga217e0e83b975735419e174ee80ba36fb":[1,2,30], +"group___core_group.html#ga297a0bb88bf7d2a79939e4936067d5d3":[1,2,0,20], +"group___core_group.html#ga297a0bb88bf7d2a79939e4936067d5d3":[1,2,35], +"group___core_group.html#ga41f0baf2fca639d9cb25be1b9e03e335":[1,2,10], +"group___core_group.html#ga48d0e10395506ba4632304c49d0e076a":[1,2,0,13], +"group___core_group.html#ga48d0e10395506ba4632304c49d0e076a":[1,2,27], +"group___core_group.html#ga4d091c486f5157e8f0f42630fa4c7d78":[1,2,0,21], +"group___core_group.html#ga4d091c486f5157e8f0f42630fa4c7d78":[1,2,36], +"group___core_group.html#ga4f583287b3fe2c550aec979adc633fa6":[1,2,0,10], +"group___core_group.html#ga4f583287b3fe2c550aec979adc633fa6":[1,2,24], +"group___core_group.html#ga53c35949048b783d461b35d554b8f6d0":[1,2,11], +"group___core_group.html#ga6566961928a6f4baa9894df55e1c7c42":[1,2,0,9], +"group___core_group.html#ga6566961928a6f4baa9894df55e1c7c42":[1,2,23], +"group___core_group.html#ga6d171cca36e4bad1c168446af23bc1f7":[1,2,19], +"group___core_group.html#ga6d171cca36e4bad1c168446af23bc1f7":[1,2,0,6], +"group___core_group.html#ga6df1d22fb5f09eccc23b9f399670cfd7":[1,2,9], +"group___core_group.html#ga7201c2b88cc0ea2c205984980b15d907":[1,2,0,11], +"group___core_group.html#ga7201c2b88cc0ea2c205984980b15d907":[1,2,25], +"group___core_group.html#ga74540f3cf43d5a029db8f4875744557f":[1,2,0,16], +"group___core_group.html#ga74540f3cf43d5a029db8f4875744557f":[1,2,31], +"group___core_group.html#ga7a8dada6aaffd748670b10af9b046a18":[1,2,13], +"group___core_group.html#ga7a8dada6aaffd748670b10af9b046a18":[1,2,0,0], +"group___core_group.html#ga7c21f0d0ebda0e2781587c4997d2a074":[1,2,16], +"group___core_group.html#ga7c21f0d0ebda0e2781587c4997d2a074":[1,2,0,3], +"group___core_group.html#ga807383acfa6e302fce4fdc6254884735":[1,2,0,22], +"group___core_group.html#ga807383acfa6e302fce4fdc6254884735":[1,2,37], +"group___core_group.html#ga82e87dfd7117d3763343ae6078009efb":[1,2,14], +"group___core_group.html#ga82e87dfd7117d3763343ae6078009efb":[1,2,0,1], +"group___core_group.html#ga8f4b3b0e8896608c769e841fca849e3d":[1,2,0,14], +"group___core_group.html#ga8f4b3b0e8896608c769e841fca849e3d":[1,2,29], +"group___core_group.html#ga94b00826d57a09e377fb6c1129b495e9":[1,2,0,8], +"group___core_group.html#ga94b00826d57a09e377fb6c1129b495e9":[1,2,22], +"group___core_group.html#gaa34107647b69d70c58a3af02e0048c12":[1,2,0,7], +"group___core_group.html#gaa34107647b69d70c58a3af02e0048c12":[1,2,20], +"group___core_group.html#gaaaf25fb20c78b3252073b7789e45769c":[1,2,0,17], +"group___core_group.html#gaaaf25fb20c78b3252073b7789e45769c":[1,2,32], +"group___core_group.html#gaabd68d9f71a2fec2fbf5dce797f3f73f":[1,2,17], +"group___core_group.html#gaabd68d9f71a2fec2fbf5dce797f3f73f":[1,2,0,4], +"group___core_group.html#gab4e15bad5b0652a07740dd42c3f94b0e":[1,2,18], +"group___core_group.html#gab4e15bad5b0652a07740dd42c3f94b0e":[1,2,0,5], +"group___core_group.html#gabaa648d3852a1059c82f1d8462e18e9d":[1,2,28], +"group___core_group.html#gac4832e274cc0ba20ce33c3e34503a063":[1,2,8], +"group___core_group.html#gac6fffdb9d8e070ac8bc8a0515a0fde27":[1,2,12], +"group___core_group.html#gadbdeae1a7389e47b9306ab1101602e5f":[1,2,21], +"group___core_group.html#gae1c6db8b544293bc9d766179e60e1c9a":[1,2,15], +"group___core_group.html#gae1c6db8b544293bc9d766179e60e1c9a":[1,2,0,2], +"group___core_group.html#gaea8316288bbea8bde5fe36dd6909356e":[1,2,0,19], +"group___core_group.html#gaea8316288bbea8bde5fe36dd6909356e":[1,2,34], +"group___core_group.html#gaf71707f01d6c22abce1c3b04c58e698d":[1,2,26], +"group___core_group.html#gaf71707f01d6c22abce1c3b04c58e698d":[1,2,0,12], +"group___core_group.html#gaf750282898a3426064f2911ad82a3caf":[1,2,0,18], +"group___core_group.html#gaf750282898a3426064f2911ad82a3caf":[1,2,33], +"group___descriptor_processing_group.html":[1,0], +"group___descriptor_processing_group.html#ga1cd2e0e27848b58fe8d39becd00d6186":[1,0,6], +"group___descriptor_processing_group.html#ga483d7359d800ae83b6fbda4dabdf086a":[1,0,8], +"group___descriptor_processing_group.html#gaa796beff9fb761301be4e46b1a2412ab":[1,0,7], +"group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186a55aa0ee5f96f43689faa8dc86966340e":[1,0,6,1], +"group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186adfd064a1bc06eda4ce5ad8cbb32ceb05":[1,0,6,0], +"group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aa2f2c4b298d09076afaf1ce4b262b88f3":[1,0,8,2], +"group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aab372ead6c8a3d98140e26c9b05603fbf":[1,0,8,0], +"group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aaccfd669d40850d6a873556ade7aa880e":[1,0,8,1], +"group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba1dfe29faa054d00d13d992fdfcffaef4":[1,0,7,0], +"group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba663094a3a39d591eca695b631243f71a":[1,0,7,1], +"group___detector_group.html":[1,1], +"group___detector_group.html#ga29cb345293d30553e7af41260cede7ad":[1,1,5], +"group___detector_group.html#ga7d021e05a5d867ffe947ffb40aa0923d":[1,1,4], +"group___detector_group.html#gaab9078e2636634d9f46c2b6616d89655":[1,1,6], +"group___detector_group.html#gab83a85f36a0025dac2b8b6d41b88bd8c":[1,1,7], +"group___detector_group.html#gga29cb345293d30553e7af41260cede7ada1be6a902d3612661d3200257c69323fa":[1,1,5,3], +"group___detector_group.html#gga29cb345293d30553e7af41260cede7ada3a1cef8a2d392799c66fe948b3cee9f4":[1,1,5,1], +"group___detector_group.html#gga29cb345293d30553e7af41260cede7ada508e9b2f679d5758e9bf979610dbb1c5":[1,1,5,2], +"group___detector_group.html#gga29cb345293d30553e7af41260cede7adafc1e9f167d5d1be9899f6732bc6f2110":[1,1,5,0], +"group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da113aa401fd3bbad089894a3cf8fd06b6":[1,1,4,2], +"group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da763dab49108298d2d502a9749e2628e9":[1,1,4,1], +"group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da8767054041a6b3288648b7a403ca7b17":[1,1,4,0], +"group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923dab87d650f70c0d623b1419a50c24ce590":[1,1,4,3], +"group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a68c684c9f61fe9e2ac96d86fc7b52fc5":[1,1,6,2], +"group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a716d7d6139b785910a90c72107445098":[1,1,6,0], +"group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655ae80b512594911338293f4831de45136d":[1,1,6,1], +"group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca53e96ce2b5c1880ce5588a4b099eb24b":[1,1,7,4], +"group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca76b25822675d9312e8decb221ca609ec":[1,1,7,1], +"group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca908b2d58b338d34863dc56d21474ffc3":[1,1,7,0], +"group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8caed0da3a5db3f97c5eb927a1696de2d65":[1,1,7,2], +"group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8cafd6028fd9b68847f58ab7a089cedd57d":[1,1,7,3], +"group___version_group.html":[1,3], +"group___version_group.html#ga34ebbd7511e7bda7ace0f6a65d8cea12":[1,3,4], +"group___version_group.html#ga525b65b20d219073604d14d7d845bf14":[1,3,5], +"group___version_group.html#gaa1f550339ca96028e8c0115d201e02a0":[1,3,7], +"group___version_group.html#gac221ff93065b829ca0e059f0dfa248e3":[1,3,1], +"group___version_group.html#gad429c6eae9f032debb9416947550009b":[1,3,6], +"group___version_group.html#gadc959b5a3e56b4c12f7c19e01c8091c7":[1,3,3], +"group___version_group.html#gadf18bd918c6a2390201ce2110ef17717":[1,3,2], +"hierarchy.html":[3,2], +"index.html":[], +"index.html":[0], +"index.html#IntroSection":[0,0], +"index.html#StructureSection":[0,1], +"modules.html":[1], +"namespacefsdk.html":[2,0,0], +"namespacefsdk.html":[3,0,0], +"namespacemembers.html":[2,1,0], +"namespacemembers_enum.html":[2,1,3], +"namespacemembers_eval.html":[2,1,4], +"namespacemembers_func.html":[2,1,1], +"namespacemembers_type.html":[2,1,2], +"namespaces.html":[2,0], +"pages.html":[], +"structfsdk_1_1_base_rect.html":[3,0,0,70], +"structfsdk_1_1_base_rect.html#a0a1f9d70440c9d3bce3c9619aae5fa8d":[3,0,0,70,5], +"structfsdk_1_1_base_rect.html#a0cd90fea55248ecf80cfaec5df89b580":[3,0,0,70,4], +"structfsdk_1_1_base_rect.html#a0fd42ac0445103c0ecf26c490d2260b8":[3,0,0,70,12], +"structfsdk_1_1_base_rect.html#a0fe0fbffc55a569c9ce784a78060c1da":[3,0,0,70,0], +"structfsdk_1_1_base_rect.html#a137f59a19b449cee39e36e9b68bca4e2":[3,0,0,70,30], +"structfsdk_1_1_base_rect.html#a1e230d4202410675172acfe42e565ee0":[3,0,0,70,10], +"structfsdk_1_1_base_rect.html#a1f55e47d552e914b58061632cb35e20f":[3,0,0,70,31], +"structfsdk_1_1_base_rect.html#a270bd8113a22c7f5cc553a1baa362ba3":[3,0,0,70,32], +"structfsdk_1_1_base_rect.html#a3699859a25f6bcb74baad0d20973447e":[3,0,0,70,2], +"structfsdk_1_1_base_rect.html#a3ce12a4e41011abe8e786c0fbc8ce21d":[3,0,0,70,27], +"structfsdk_1_1_base_rect.html#a404b127223e95fb588a63a513d613117":[3,0,0,70,16], +"structfsdk_1_1_base_rect.html#a436384ddd3d32de0eb88ece21afa766f":[3,0,0,70,17], +"structfsdk_1_1_base_rect.html#a4655fc1f9639d70c24cc9bcf6bf28f89":[3,0,0,70,25], +"structfsdk_1_1_base_rect.html#a4a55ea050c7506e3e9c9540e010285e4":[3,0,0,70,1], +"structfsdk_1_1_base_rect.html#a4b293834cd31533ac8a0a3ddfd1e1329":[3,0,0,70,28], +"structfsdk_1_1_base_rect.html#a67f3227a6256c5479e432c868e962652":[3,0,0,70,26], +"structfsdk_1_1_base_rect.html#a6d59d105993f94fedaf00f9473ec3b91":[3,0,0,70,21], +"structfsdk_1_1_base_rect.html#a74d5f846df716d64c472917658a5e96f":[3,0,0,70,20], +"structfsdk_1_1_base_rect.html#a7fff6bef1a63625bd8142f7be10b205b":[3,0,0,70,33], +"structfsdk_1_1_base_rect.html#a807dfcdd611eaf57a2aa2c3f3881ef27":[3,0,0,70,22], +"structfsdk_1_1_base_rect.html#a91c49a941f8282f45b1ccb46190968b3":[3,0,0,70,11], +"structfsdk_1_1_base_rect.html#a98b63fedf0ccd2954ee2d27a6253e9af":[3,0,0,70,35], +"structfsdk_1_1_base_rect.html#aa7a7d623d0d0b9a73e040b8753014782":[3,0,0,70,24], +"structfsdk_1_1_base_rect.html#aaa49c9b78371e0d6d4fe1103cbf6bca9":[3,0,0,70,34], +"structfsdk_1_1_base_rect.html#aac4bc603363b0422f5a659dd50cd087e":[3,0,0,70,14], +"structfsdk_1_1_base_rect.html#ab32180fa6aade99344da7af901f54a50":[3,0,0,70,19], +"structfsdk_1_1_base_rect.html#ab4466df98371077db3f9184894d7af32":[3,0,0,70,29], +"structfsdk_1_1_base_rect.html#ab49e0cf0bf9f89093e589466036dc275":[3,0,0,70,3], +"structfsdk_1_1_base_rect.html#ab4e3ab3f98baad640c21840425c403d7":[3,0,0,70,15], +"structfsdk_1_1_base_rect.html#ab53516b12c364e4304a8c0db4f7fedeb":[3,0,0,70,23], +"structfsdk_1_1_base_rect.html#ab87b40ffe339e5f9f1140a17f3d102bf":[3,0,0,70,6], +"structfsdk_1_1_base_rect.html#ab984f957869ca6d59810885178e42a25":[3,0,0,70,7], +"structfsdk_1_1_base_rect.html#ac2cf58738615562a5e20529b6aa72269":[3,0,0,70,37], +"structfsdk_1_1_base_rect.html#ad547735b6c914c1ccffdc453b4b60e16":[3,0,0,70,9], +"structfsdk_1_1_base_rect.html#ad8539de95d7316678af7803170ef1095":[3,0,0,70,18], +"structfsdk_1_1_base_rect.html#adb5b7dfdecd356b2b0d8353279288020":[3,0,0,70,13], +"structfsdk_1_1_base_rect.html#adf33ed349c426a71e849209ecd1f8fae":[3,0,0,70,36], +"structfsdk_1_1_base_rect.html#ae8d23be3be32108e017d4d309ea94ba7":[3,0,0,70,38], +"structfsdk_1_1_base_rect.html#aeaa8815528ba0d03fa21e3b7e77f1bd1":[3,0,0,70,8], +"structfsdk_1_1_detection.html":[3,0,0,53], +"structfsdk_1_1_detection.html#a11f6159ee525572a4d4d1ec4e976cc68":[3,0,0,53,0], +"structfsdk_1_1_detection.html#a223af77155d7a4d1f2a9cf67abfb612d":[3,0,0,53,1], +"structfsdk_1_1_detection.html#a61cc169cc9584adda10e9670dd3db96b":[3,0,0,53,2], +"structfsdk_1_1_detection.html#a63d72cc33b96c33a078961b5f0b23ac5":[3,0,0,53,11], +"structfsdk_1_1_detection.html#a6425f5f8ddc50c94df035378bb3d5aee":[3,0,0,53,10], +"structfsdk_1_1_detection.html#a67ccb4d95bba7cdfd5f9b4d73260ead0":[3,0,0,53,4], +"structfsdk_1_1_detection.html#a69b29a97fe418bd6eae5523fb76c8b0f":[3,0,0,53,3], +"structfsdk_1_1_detection.html#a98b0b9ed7c50a0e0ce911c75e0018e30":[3,0,0,53,7], +"structfsdk_1_1_detection.html#a9edbafdc61e0021d1d5ff499be8ea3c6":[3,0,0,53,6], +"structfsdk_1_1_detection.html#a9fdabbc6e25562ef5d359f7e77b967a2":[3,0,0,53,5], +"structfsdk_1_1_detection.html#ab6ae99522686f4c2d555b040d95556c1":[3,0,0,53,8], +"structfsdk_1_1_detection.html#aef6215ee1e8d8a14ef70e586f40572f4":[3,0,0,53,9], +"structfsdk_1_1_error_traits.html":[3,0,0,73], +"structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html":[3,0,0,17], +"structfsdk_1_1_error_traits_3_01_future_error_01_4.html":[3,0,0,59], +"structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html":[1,0,3], +"structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html":[1,2,3], +"structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html":[1,2,7], +"structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html":[3,0,0,65], +"structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html":[3,0,0,69], +"structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html#ad01cb13c59e4bb7f3d6f43016a32b4d0":[3,0,0,69,0], +"structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html#ada0fbe9e023efcf4bb81cf257bf06154":[3,0,0,69,1], +"structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html#afa4247d3b4737b5a071f4fc5079bead2":[3,0,0,69,2], +"structfsdk_1_1_error_traits_3_01_promise_error_01_4.html":[3,0,0,60], +"structfsdk_1_1_exception.html":[3,0,0,16], +"structfsdk_1_1_exception.html#a19b452e103ba86d629c923735414599c":[3,0,0,16,2], +"structfsdk_1_1_exception.html#a8fc5a1ce7cd7b185e0a4087118fcc459":[3,0,0,16,0], +"structfsdk_1_1_exception.html#a90965355d264201e72901a154ebd7aa4":[3,0,0,16,1], +"structfsdk_1_1_eye_cropper.html":[3,0,0,3], +"structfsdk_1_1_eye_cropper.html#a5a9e537f0b1bc515fd9c1879c38f79e2":[3,0,0,3,1], +"structfsdk_1_1_eye_cropper.html#a909902a2d4eafcabdfacc1db52f9ebd4":[3,0,0,3,2], +"structfsdk_1_1_eye_cropper_1_1_eyes_rects.html":[3,0,0,3,0], +"structfsdk_1_1_eye_cropper_1_1_eyes_rects.html#a1500a412e66c586376ed0a3407a5bc37":[3,0,0,3,0,0], +"structfsdk_1_1_eye_cropper_1_1_eyes_rects.html#a517d4cd2edcb66abd47449f35b1afef6":[3,0,0,3,0,1], +"structfsdk_1_1_eyes_estimation.html":[3,0,0,2], +"structfsdk_1_1_eyes_estimation.html#a8d8d8aeeba833fdc9e92cc191999a4e0":[3,0,0,2,2], +"structfsdk_1_1_eyes_estimation.html#ade7c195977cbdd07a125a06450ef3987":[3,0,0,2,1], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html":[3,0,0,2,0], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a085c2eba493874a622cb58249534fc5b":[3,0,0,2,0,4], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a2dd36e58e1788352fa5f668c25403b34":[3,0,0,2,0,1], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a377631250d385dd4620cff0c265dc02c":[3,0,0,2,0,0], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a507fc6337b07a0e73d0d1bda084ebf2c":[3,0,0,2,0,3], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a53ed592dc7a11f3c5061286d8c582e5e":[3,0,0,2,0,5], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003":[3,0,0,2,0,2], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a03f4a47830f97377a35321051685071e":[3,0,0,2,0,2,0], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a40deec4b6f036b28681fc864b1e31de3":[3,0,0,2,0,2,2], +"structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003ac3bf447eabe632720a3aa1a7ce401274":[3,0,0,2,0,2,1], +"structfsdk_1_1_face.html":[3,0,0,54], +"structfsdk_1_1_face.html#a0d156a767390468afe77c760a229cfbb":[3,0,0,54,3], +"structfsdk_1_1_face.html#a1e761c7485a22f0ee3ac98120bf499a8":[3,0,0,54,5], +"structfsdk_1_1_face.html#a35a1a36f7c0b238c1e0d13749d74be85":[3,0,0,54,8], +"structfsdk_1_1_face.html#a4e9e75960e26bfba22dc06f7142e92f2":[3,0,0,54,4], +"structfsdk_1_1_face.html#a4f695145672bb94754089dfab2e85ebe":[3,0,0,54,2] +}; diff --git a/doc/fsdk/html/navtreeindex2.js b/doc/fsdk/html/navtreeindex2.js new file mode 100644 index 0000000..5d63f02 --- /dev/null +++ b/doc/fsdk/html/navtreeindex2.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX2 = +{ +"structfsdk_1_1_face.html#a9c829216cf178ece188aee1afa78af8f":[3,0,0,54,6], +"structfsdk_1_1_face.html#aed67efccf2c8f5532106257edc3a2634":[3,0,0,54,1], +"structfsdk_1_1_face.html#afa3ad649516e4d616fac9cd6ad1ed347":[3,0,0,54,7], +"structfsdk_1_1_face.html#afdfd7428b07208360bc6e31501a2ef62":[3,0,0,54,0], +"structfsdk_1_1_format.html":[3,0,0,55], +"structfsdk_1_1_format.html#a0cebf5379f7e7f173ae64d35f0ab9670":[3,0,0,55,12], +"structfsdk_1_1_format.html#a1ed1e226b132c165793edfe88c21a4ee":[3,0,0,55,7], +"structfsdk_1_1_format.html#a43ca12b83363226c0459e6a1b5073550":[3,0,0,55,11], +"structfsdk_1_1_format.html#a46d028b666e796b8021e8cce7bc90c9e":[3,0,0,55,10], +"structfsdk_1_1_format.html#a4f1a89d82820cc5461d983700d2191d1":[3,0,0,55,9], +"structfsdk_1_1_format.html#a5654c8e7485f5821a0b77c40150144ea":[3,0,0,55,6], +"structfsdk_1_1_format.html#a708cc1ef87c456417c678e7720a52159":[3,0,0,55,15], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1":[3,0,0,55,0], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a1531807037bb455d89b70ff0d6ff05fe":[3,0,0,55,0,2], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a28e996e86d8357a023f9b14fa4da9f1f":[3,0,0,55,0,0], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a2c186c232b67f3d47add72abea686242":[3,0,0,55,0,1], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a64d817782ee8b40de7073acc65267e76":[3,0,0,55,0,4], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a7acff06144acdfb863cfe120628e9d56":[3,0,0,55,0,9], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a86ae1133449f6210391a331405d7ea4e":[3,0,0,55,0,8], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a9bda0cc528d54cecc7f8ec2a3b3ad5c8":[3,0,0,55,0,3], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1ae6596410cdfb3e164d3114d7275c01a4":[3,0,0,55,0,6], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1af4ca5a5a1ea5b7005c89a9cd0911d0b4":[3,0,0,55,0,7], +"structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1afd28eabff68ce04d89a4a445c8774f11":[3,0,0,55,0,5], +"structfsdk_1_1_format.html#a9774699a7b4642bf36ce9f42032a5cb9":[3,0,0,55,13], +"structfsdk_1_1_format.html#a9fae615ad7c67630f9546abd6d568175":[3,0,0,55,2], +"structfsdk_1_1_format.html#aa45f2da762d2fce103d97aa803078d84":[3,0,0,55,1], +"structfsdk_1_1_format.html#ad18bb21ae3c7577a0ebd3eca67fc26a9":[3,0,0,55,8], +"structfsdk_1_1_format.html#ad603c8ad2250b23f3cbaa04fa69e9d29":[3,0,0,55,14], +"structfsdk_1_1_format.html#ae3136cd08cf4395b3250950eb820bc74":[3,0,0,55,4], +"structfsdk_1_1_format.html#aea650b3b3a3256b34cf1284c53262899":[3,0,0,55,3], +"structfsdk_1_1_format.html#afd04839a40f2a3b875038ec233b4a8eb":[3,0,0,55,5], +"structfsdk_1_1_head_pose_estimation.html":[3,0,0,6], +"structfsdk_1_1_head_pose_estimation.html#a37c44c6f403d866d48611784b1d548ce":[3,0,0,6,2], +"structfsdk_1_1_head_pose_estimation.html#a8c27c471703b619567540389bf5ddd94":[3,0,0,6,4], +"structfsdk_1_1_head_pose_estimation.html#a9356964811575052d2d681e275ce4ecd":[3,0,0,6,1], +"structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7":[3,0,0,6,0], +"structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a24492e9ec0700fa260acd0c5c15f22d1":[3,0,0,6,0,0], +"structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a4db45576db7f96e820b1388d1c522aff":[3,0,0,6,0,2], +"structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7ac68c59f721bd43286d68df8fd1ff15e7":[3,0,0,6,0,1], +"structfsdk_1_1_head_pose_estimation.html#af380243a75d2fbc23a3504014f2998ce":[3,0,0,6,3], +"structfsdk_1_1_human.html":[3,0,0,61], +"structfsdk_1_1_human.html#a0ef81e4acd78ee7efd8ad882660d88ed":[3,0,0,61,1], +"structfsdk_1_1_human.html#a223743815b732610505f48fe374ac11f":[3,0,0,61,2], +"structfsdk_1_1_human.html#a4ee464ec4ee76be4bea120d3532a8a27":[3,0,0,61,3], +"structfsdk_1_1_human.html#a75675247868daa3b1dcf84c3897a1eba":[3,0,0,61,5], +"structfsdk_1_1_human.html#a8a16bdaacd1439a0457d9aa065455b5a":[3,0,0,61,0], +"structfsdk_1_1_human.html#ab1e76e270ff9eecc16ed0657235fd298":[3,0,0,61,4], +"structfsdk_1_1_human_landmark.html":[3,0,0,62], +"structfsdk_1_1_human_landmark.html#a4e2a2feba695d5e7f9fdd619bf41855a":[3,0,0,62,1], +"structfsdk_1_1_human_landmark.html#a56402856056aed0b4b87ef66798ee92a":[3,0,0,62,2], +"structfsdk_1_1_human_landmark.html#aba46b4362e327fe9bd35503fb11d4a0b":[3,0,0,62,0], +"structfsdk_1_1_human_landmark.html#aea7582c90d90401c1ad156c26b697a8e":[3,0,0,62,4], +"structfsdk_1_1_human_landmark.html#afbe027ef46796ecfa9e86d9c0f361159":[3,0,0,62,3], +"structfsdk_1_1_human_landmarks.html":[3,0,0,63], +"structfsdk_1_1_human_landmarks.html#a410b4ef2b85634118ab98022908257b1":[3,0,0,63,0], +"structfsdk_1_1_human_landmarks.html#a741e7a426c0d1dad5405b7e703946d47":[3,0,0,63,2], +"structfsdk_1_1_human_landmarks.html#aa93c5f00c05b8b71126d2be79a3d1277":[3,0,0,63,1], +"structfsdk_1_1_i_a_g_s_estimator.html":[3,0,0,0], +"structfsdk_1_1_i_a_g_s_estimator.html#a45dea130e106e6a8551006bbb9c1a165":[3,0,0,0,1], +"structfsdk_1_1_i_a_g_s_estimator.html#a771c4b021790e85aa9bde0e1b13b26f7":[3,0,0,0,2], +"structfsdk_1_1_i_a_g_s_estimator.html#aa4a35eaf70d50cc4b1783546ed6a4b87":[3,0,0,0,0], +"structfsdk_1_1_i_archive.html":[1,2,1], +"structfsdk_1_1_i_archive.html#a7f1fe72083db24c7b6620d4a9a657612":[1,2,1,2], +"structfsdk_1_1_i_archive.html#a8c48b5099bee7f93b069cc7a9901ba3e":[1,2,1,3], +"structfsdk_1_1_i_archive.html#ab8e4a2c51e99971fd67345b31ddfab9e":[1,2,1,0], +"structfsdk_1_1_i_archive.html#af27d2a846518cb22b709a40c88601b7b":[1,2,1,1], +"structfsdk_1_1_i_async_context.html":[3,0,0,18], +"structfsdk_1_1_i_async_context.html#a2ecda0d4f935a7fe477f68bd5d90f5a7":[3,0,0,18,1], +"structfsdk_1_1_i_async_context.html#a819aef0e6c25bade404db1e1e0cde11e":[3,0,0,18,4], +"structfsdk_1_1_i_async_context.html#a8db1ec0dbf3c38ea731a76524208f8f9":[3,0,0,18,0], +"structfsdk_1_1_i_async_context.html#ac73acb108a28097493dc33a32383405d":[3,0,0,18,3], +"structfsdk_1_1_i_async_context.html#af9133106ddd66cfc4bbb48d390e48f2c":[3,0,0,18,2], +"structfsdk_1_1_i_best_shot_quality_estimator.html":[3,0,0,1], +"structfsdk_1_1_i_best_shot_quality_estimator.html#a290da1a78d37eafc2b4d7bb30f30ea46":[3,0,0,1,5], +"structfsdk_1_1_i_best_shot_quality_estimator.html#a5519ff5a754a1d0040cf1953f830c8a4":[3,0,0,1,4], +"structfsdk_1_1_i_best_shot_quality_estimator.html#a62415905ea9018bc3f6696652837cfc1":[3,0,0,1,6], +"structfsdk_1_1_i_best_shot_quality_estimator.html#a8a8235d79f299897ea594055891b6c55":[3,0,0,1,1], +"structfsdk_1_1_i_best_shot_quality_estimator.html#a9278fd5a0b49f6eb6b5860bc04a0aa1e":[3,0,0,1,7], +"structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdf":[3,0,0,1,3], +"structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa027444bb21a0391ad968200b23d29ad6":[3,0,0,1,3,1], +"structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa0a22c4c7f110c98d9f93506465cc8402":[3,0,0,1,3,2], +"structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfac7f36c8245ae1f8416743d0d26fa3845":[3,0,0,1,3,0], +"structfsdk_1_1_i_best_shot_quality_estimator.html#ae22604973accf4ec35ad5890760c1591":[3,0,0,1,2], +"structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html":[3,0,0,1,0], +"structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#a873c696da443a1761142d0b2be038d1f":[3,0,0,1,0,1], +"structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#ad62dfcec240364328eff4eb65b75ba72":[3,0,0,1,0,0], +"structfsdk_1_1_i_data_storage_object.html":[1,2,4], +"structfsdk_1_1_i_data_storage_object.html#a76dd0aaf5ac83187635a9161ceae8237":[1,2,4,1], +"structfsdk_1_1_i_data_storage_object.html#addfae1943b82b44900f1c2f318a05d53":[1,2,4,0], +"structfsdk_1_1_i_dense_index.html":[3,0,0,37], +"structfsdk_1_1_i_descriptor.html":[1,0,1], +"structfsdk_1_1_i_descriptor.html#a1a0c8122a9c7f0fcefa94d48d4144b4f":[1,0,1,1], +"structfsdk_1_1_i_descriptor.html#a1c13db8168c4fb3102ac9f5ab8064722":[1,0,1,2], +"structfsdk_1_1_i_descriptor.html#a430f0098d482b8f235f0b0282184c864":[1,0,1,4], +"structfsdk_1_1_i_descriptor.html#a69cd5752c0de1981d0eae131492ea5e7":[1,0,1,3], +"structfsdk_1_1_i_descriptor.html#ab5512a2e46ca8b3b9f791bc620855e4c":[1,0,1,0], +"structfsdk_1_1_i_descriptor_batch.html":[1,0,2], +"structfsdk_1_1_i_descriptor_batch.html#a1e40e982bc2bd2fe5a18e8a7f43cbf99":[1,0,2,11], +"structfsdk_1_1_i_descriptor_batch.html#a48090c46fcc1613d4d08c082f21b40ce":[1,0,2,9], +"structfsdk_1_1_i_descriptor_batch.html#a4e0a961f7736f00dae3327dd58d39f68":[1,0,2,5], +"structfsdk_1_1_i_descriptor_batch.html#a61596b9c2071cf35b9f7b36f78338b31":[1,0,2,2], +"structfsdk_1_1_i_descriptor_batch.html#a61d0c7378db1a1a4e336c0b12f9af7e5":[1,0,2,7], +"structfsdk_1_1_i_descriptor_batch.html#a786779cf2e2c286ce80f95907c23ff1d":[1,0,2,4], +"structfsdk_1_1_i_descriptor_batch.html#a7cf7c4ae4d831ff0bc9b7187eb866e9e":[1,0,2,6], +"structfsdk_1_1_i_descriptor_batch.html#a88c11b85fc5a8b3eede0d7a2c6f251d6":[1,0,2,10], +"structfsdk_1_1_i_descriptor_batch.html#a8f32454a4158e732938e6b9812b6ceb5":[1,0,2,12], +"structfsdk_1_1_i_descriptor_batch.html#ab13b6d9a8bc83a2319a2df12ea8fb385":[1,0,2,3], +"structfsdk_1_1_i_descriptor_batch.html#ac044ea615c32aa4433c60e0491e8c958":[1,0,2,8], +"structfsdk_1_1_i_descriptor_batch.html#ac98c97ca906f99236c7065d51f82c65a":[1,0,2,13], +"structfsdk_1_1_i_descriptor_batch.html#acdebdf5cd4b73082fb1f69b7c3673b3e":[1,0,2,1], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93":[1,0,2,0], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a04b15c03f3f8d523b85b4698e1bc56cb":[1,0,2,0,2], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a2a208768bc7995cc26b7f3797d24b0b1":[1,0,2,0,3], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a365b2699d38b61ef4b4c8a1066c8468f":[1,0,2,0,6], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aa60852f204ed8028c1c58808b746d115":[1,0,2,0,0], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aafbf0897a5a83fdd873dfb032ec695d3":[1,0,2,0,4], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93ad8f78ca9a692a9411afbc7584b69d043":[1,0,2,0,1], +"structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93af05cfcbf5123775f7c73e520a8d861e1":[1,0,2,0,5], +"structfsdk_1_1_i_descriptor_extractor.html":[1,0,4], +"structfsdk_1_1_i_descriptor_extractor.html#a02a1049adb8088b270111afb8cb438da":[1,0,4,7], +"structfsdk_1_1_i_descriptor_extractor.html#a3bdb3f914db81bef8b849e4973566f88":[1,0,4,2], +"structfsdk_1_1_i_descriptor_extractor.html#a5c1d36e3c3362aa8160bcc89933bcf1b":[1,0,4,3], +"structfsdk_1_1_i_descriptor_extractor.html#a99a4f2d66cd4fc28a69cd02b9348817c":[1,0,4,0], +"structfsdk_1_1_i_descriptor_extractor.html#ad1e6f85a654cc0d5b7e61e1a5caad36d":[1,0,4,6], +"structfsdk_1_1_i_descriptor_extractor.html#ae6fdfb87662991d62af362b06982728e":[1,0,4,1], +"structfsdk_1_1_i_descriptor_extractor.html#af35cadc879d6ceb1429a95c4fee6509d":[1,0,4,4], +"structfsdk_1_1_i_descriptor_extractor.html#afdd1464778a55727acaef93b9fc5d443":[1,0,4,5], +"structfsdk_1_1_i_descriptor_matcher.html":[1,0,5], +"structfsdk_1_1_i_descriptor_matcher.html#a5f0fa94452bc1690b1f687c0ddd80c98":[1,0,5,1], +"structfsdk_1_1_i_descriptor_matcher.html#a686369ae167cf3a4829845a37abfa620":[1,0,5,0], +"structfsdk_1_1_i_descriptor_matcher.html#ac18bfe74c35189d18c4ae0d9c6757e11":[1,0,5,2], +"structfsdk_1_1_i_descriptor_matcher.html#ae6a1c205c90fc302ac60888500b751ba":[1,0,5,3], +"structfsdk_1_1_i_descriptor_matcher.html#af8ca338dac43b61892815153c2eb960f":[1,0,5,4], +"structfsdk_1_1_i_detector.html":[1,1,2], +"structfsdk_1_1_i_detector.html#a19a8d0891929e7e922a2f1282076d8a9":[1,1,2,10], +"structfsdk_1_1_i_detector.html#a2b7b9a113d7f80fc6e6613d642b3943d":[1,1,2,6], +"structfsdk_1_1_i_detector.html#a31069412a8be899db49866d9651aa35b":[1,1,2,7], +"structfsdk_1_1_i_detector.html#a407bdaacb3a35f11a6b41c2bdf2d3949":[1,1,2,4], +"structfsdk_1_1_i_detector.html#a46857380f1a9b542b99eed236d32c29c":[1,1,2,3], +"structfsdk_1_1_i_detector.html#a57282cf9f0556a17670fc2274710863a":[1,1,2,12], +"structfsdk_1_1_i_detector.html#a6c671781f42357e244a74e23bb9f3571":[1,1,2,11], +"structfsdk_1_1_i_detector.html#aad8aeff6c35f03740fc018a9b295a157":[1,1,2,8], +"structfsdk_1_1_i_detector.html#aaf4ac12ce269c0cc293f9348f9ef1c3d":[1,1,2,9], +"structfsdk_1_1_i_detector.html#abc50559be5a5f781d515ff37c0569672":[1,1,2,2], +"structfsdk_1_1_i_detector.html#ac0600108abda046570741ed6cac302c1":[1,1,2,13], +"structfsdk_1_1_i_detector.html#ad1a6d103e55a64c4e0b4eb02478e64cd":[1,1,2,1], +"structfsdk_1_1_i_detector.html#adbb9c77a4c0ca459733b84b74a658ffe":[1,1,2,0], +"structfsdk_1_1_i_detector.html#ae95fa3fe533fe5f3a15a7359446502d4":[1,1,2,5], +"structfsdk_1_1_i_dynamic_descriptor_storage.html":[3,0,0,35], +"structfsdk_1_1_i_dynamic_descriptor_storage.html#a67d89300f3cfc098aac035d446c395f8":[3,0,0,35,2], +"structfsdk_1_1_i_dynamic_descriptor_storage.html#a78a1d8242a8574bcde70c070602bc1fa":[3,0,0,35,1], +"structfsdk_1_1_i_dynamic_descriptor_storage.html#acee6a3d1822e97dad564278715b3a596":[3,0,0,35,0], +"structfsdk_1_1_i_dynamic_index.html":[3,0,0,38], +"structfsdk_1_1_i_dynamic_index.html#a39700ae4d6cd22ea3d8c8b4e94af0f3b":[3,0,0,38,0], +"structfsdk_1_1_i_dynamic_index.html#a589098df084d6e99c80574726fc4bca7":[3,0,0,38,2], +"structfsdk_1_1_i_dynamic_index.html#af7c7947059b6876546e0a712cf32d5bb":[3,0,0,38,1], +"structfsdk_1_1_i_eye_estimator.html":[3,0,0,4], +"structfsdk_1_1_i_eye_estimator.html#a4534d4ee1854c38b89238ff294a1a0cb":[3,0,0,4,2], +"structfsdk_1_1_i_eye_estimator.html#ae44bc0302755581d81733c5bc7ed83ef":[3,0,0,4,1], +"structfsdk_1_1_i_eye_estimator.html#aecb52fbe13f80a38b9c48e760d42d243":[3,0,0,4,0], +"structfsdk_1_1_i_face_detection_batch.html":[3,0,0,28], +"structfsdk_1_1_i_face_detection_batch.html#a2cc9d8ceb774e6d2c8cdcc061efb2ed8":[3,0,0,28,3], +"structfsdk_1_1_i_face_detection_batch.html#a9899fff6f6d701762674c01bdce558a3":[3,0,0,28,4], +"structfsdk_1_1_i_face_detection_batch.html#a9e870513feb39ea2a28ee3ae5a932585":[3,0,0,28,5], +"structfsdk_1_1_i_face_detection_batch.html#aa09422deb3ce7aa52e2cd12c59b067df":[3,0,0,28,2], +"structfsdk_1_1_i_face_detection_batch.html#ab6887616ae757035b33d1e2ac49dcc8f":[3,0,0,28,1], +"structfsdk_1_1_i_face_detection_batch.html#ac0796f34dff278d15e0e43d0b0e7bbd5":[3,0,0,28,0], +"structfsdk_1_1_i_face_engine_mobile.html":[1,2,0], +"structfsdk_1_1_i_glasses_estimator.html":[3,0,0,5], +"structfsdk_1_1_i_glasses_estimator.html#a56e29006f163d67139790002d020e952":[3,0,0,5,2], +"structfsdk_1_1_i_glasses_estimator.html#aecd2ff74057c6d5e1e587080b5981eed":[3,0,0,5,1], +"structfsdk_1_1_i_glasses_estimator.html#af53d83b93974db797a78623420369f3c":[3,0,0,5,0], +"structfsdk_1_1_i_head_pose_estimator.html":[3,0,0,7], +"structfsdk_1_1_i_head_pose_estimator.html#a235406bf3e8aa9bf8b89e06b72f21a50":[3,0,0,7,2], +"structfsdk_1_1_i_head_pose_estimator.html#a934b364e035980966cb7f09faf0b9a7b":[3,0,0,7,3], +"structfsdk_1_1_i_head_pose_estimator.html#aed7809cea5e183b63ac017e48fc7885c":[3,0,0,7,0], +"structfsdk_1_1_i_head_pose_estimator.html#af943ad9ab70f158a03624c3cec6de47e":[3,0,0,7,1], +"structfsdk_1_1_i_human_detection_batch.html":[3,0,0,30], +"structfsdk_1_1_i_human_detection_batch.html#a09fa3881045e629773e79e41deb5831e":[3,0,0,30,4], +"structfsdk_1_1_i_human_detection_batch.html#a142181747d516561d1bd15e55f269c70":[3,0,0,30,3], +"structfsdk_1_1_i_human_detection_batch.html#a3222f0a8c14c75838a99266429df3674":[3,0,0,30,1], +"structfsdk_1_1_i_human_detection_batch.html#a5511e8e94005c3b0c6c24d30ff29ef8b":[3,0,0,30,0], +"structfsdk_1_1_i_human_detection_batch.html#a80e43b927498b58505b123e546ed49c4":[3,0,0,30,2], +"structfsdk_1_1_i_human_detector.html":[1,1,3], +"structfsdk_1_1_i_human_detector.html#a1a427579c96e2df17d7b445235a3f8fe":[1,1,3,3], +"structfsdk_1_1_i_human_detector.html#a4f7351750b7ec8547778511a9129af60":[1,1,3,4], +"structfsdk_1_1_i_human_detector.html#a68b933f48f92ea3b1aa1986e3d8b30d8":[1,1,3,1], +"structfsdk_1_1_i_human_detector.html#a6be4169b418fb07ccc9d6c6bb6721570":[1,1,3,7], +"structfsdk_1_1_i_human_detector.html#a727b86aedb5fc1b9b614c57d2a0b0a3a":[1,1,3,5], +"structfsdk_1_1_i_human_detector.html#a7a47983761d58676a373231521a8181b":[1,1,3,6], +"structfsdk_1_1_i_human_detector.html#a8f7c76c7487445b59e498b49a1e3b216":[1,1,3,0], +"structfsdk_1_1_i_human_detector.html#aa646c7b7ae2dda414b967a24092f3948":[1,1,3,2], +"structfsdk_1_1_i_human_warper.html":[3,0,0,32], +"structfsdk_1_1_i_human_warper.html#a9b838530778bb1133fef48b524ce3770":[3,0,0,32,0], +"structfsdk_1_1_i_human_warper.html#af7340f0338893b20f3559543c94fc8b9":[3,0,0,32,1], +"structfsdk_1_1_i_index.html":[3,0,0,36], +"structfsdk_1_1_i_index.html#a0f14bf62346477137a85525c03cbf1e5":[3,0,0,36,0], +"structfsdk_1_1_i_index_builder.html":[3,0,0,40], +"structfsdk_1_1_i_index_builder.html#a7416163824700dcead008ac25011a80f":[3,0,0,40,0], +"structfsdk_1_1_i_index_builder.html#a9893a17a91bba8a2f19d3745b6757528":[3,0,0,40,1], +"structfsdk_1_1_i_license.html":[3,0,0,41], +"structfsdk_1_1_i_license.html#a0d6ceffe612d0f87dc6ae96bfb4bdb9f":[3,0,0,41,5], +"structfsdk_1_1_i_license.html#a2909d1bc7946cc82772cfafa2d22c32e":[3,0,0,41,1], +"structfsdk_1_1_i_license.html#a66238b1c9c5bf349a27a20676f278f3b":[3,0,0,41,4], +"structfsdk_1_1_i_license.html#a7d8127d5ba3a36e37ae985f6ad5ab62a":[3,0,0,41,3], +"structfsdk_1_1_i_license.html#adbf5141e706837b4ba738a82386e94e1":[3,0,0,41,2], +"structfsdk_1_1_i_license.html#aec5f52e8c189d5cfd99cc13ea1badb51":[3,0,0,41,0], +"structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html":[3,0,0,9], +"structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a1c4668c9963ceb1fb7db01b688968688":[3,0,0,9,1], +"structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a540933fe78bc701f7762b3422e8bb499":[3,0,0,9,2], +"structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a6b38d2e4cd89f319b1a21a3ada06f07c":[3,0,0,9,0], +"structfsdk_1_1_i_medical_mask_estimator.html":[3,0,0,12], +"structfsdk_1_1_i_medical_mask_estimator.html#a2d09801e30812ea464f897cef0e4c4a9":[3,0,0,12,9], +"structfsdk_1_1_i_medical_mask_estimator.html#a3b1b2079ddd9fcb2ba4214786672f2ad":[3,0,0,12,0], +"structfsdk_1_1_i_medical_mask_estimator.html#a44bd4605cbb30233f9917e39abcf0683":[3,0,0,12,1], +"structfsdk_1_1_i_medical_mask_estimator.html#a486ff6fc49bf7575114abb6ff0627ec4":[3,0,0,12,6], +"structfsdk_1_1_i_medical_mask_estimator.html#a6b4ea30e87d87c91993ff44c32d14ab8":[3,0,0,12,4], +"structfsdk_1_1_i_medical_mask_estimator.html#a73dde47ed832da47eedf47921af4e42d":[3,0,0,12,8], +"structfsdk_1_1_i_medical_mask_estimator.html#ac923e26a07ddf1c26370d36f0acd2e56":[3,0,0,12,7], +"structfsdk_1_1_i_medical_mask_estimator.html#ad3c72d0d6cf3eb3e72790e19f201cbc7":[3,0,0,12,2], +"structfsdk_1_1_i_medical_mask_estimator.html#ae05d68e52524bbddb94a71bb22c1a547":[3,0,0,12,5], +"structfsdk_1_1_i_medical_mask_estimator.html#af4f0b22091b8425dad74219839283d51":[3,0,0,12,3], +"structfsdk_1_1_i_progress_tracker.html":[3,0,0,39], +"structfsdk_1_1_i_progress_tracker.html#a79ab3dfe56481122e2d9540279c55abc":[3,0,0,39,0], +"structfsdk_1_1_i_quality_estimator.html":[3,0,0,15], +"structfsdk_1_1_i_quality_estimator.html#a2b512a5f2af69901f10124f3af55d73c":[3,0,0,15,3], +"structfsdk_1_1_i_quality_estimator.html#a76dbb486ab7b5c2a8bf7e632aacb1aeb":[3,0,0,15,2], +"structfsdk_1_1_i_quality_estimator.html#aae851d39ce2253e18d0a8ccbc45f6d15":[3,0,0,15,1], +"structfsdk_1_1_i_quality_estimator.html#adf7141013baf6da3881d901339064180":[3,0,0,15,4], +"structfsdk_1_1_i_quality_estimator.html#afe1b7b67b42d2cbac44f2ac244620ef0":[3,0,0,15,0], +"structfsdk_1_1_i_ref_counted.html":[1,2,5], +"structfsdk_1_1_i_ref_counted.html#a0e9c300055d88ac0ef739d1e424c8634":[1,2,5,0], +"structfsdk_1_1_i_ref_counted.html#a1b045b30c43c70150e553b7bd796e92a":[1,2,5,2], +"structfsdk_1_1_i_ref_counted.html#a230ba9c884c16e9e316344b9b901a480":[1,2,5,1], +"structfsdk_1_1_i_ref_counted.html#a7362292166bdff4b2463e25f8003671a":[1,2,5,5], +"structfsdk_1_1_i_ref_counted.html#a89a2ad867e5ded45c0b3764a48fc6ff3":[1,2,5,3], +"structfsdk_1_1_i_ref_counted.html#a8cb7a6ecf064e4b8a99038cf08a29e7f":[1,2,5,4], +"structfsdk_1_1_i_ref_counted.html#aaea14dbe2f8eee5deefced4ef3a126b5":[1,2,5,6], +"structfsdk_1_1_i_result_batch.html":[3,0,0,47], +"structfsdk_1_1_i_result_batch.html#a6135908320f68c471f729bded8035d77":[3,0,0,47,1], +"structfsdk_1_1_i_result_batch.html#a8b8d4eea77368cbf5e38c4d36c237f3d":[3,0,0,47,0], +"structfsdk_1_1_i_serializable_object.html":[1,2,2], +"structfsdk_1_1_i_serializable_object.html#a22ce2c43e668e4d5dbd79dc0056e2032":[1,2,2,2], +"structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0":[1,2,2,0], +"structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a475e42b82c23aaaa94f66c43f80a14d1":[1,2,2,0,3], +"structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a5b9364e023e7cee301db9754a421d258":[1,2,2,0,5], +"structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a6f6cb72d544962fa333e2e34ce64f719":[1,2,2,0,1], +"structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a8c09001c99ecb6fdd8d6023fcf039054":[1,2,2,0,2], +"structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0aa60852f204ed8028c1c58808b746d115":[1,2,2,0,0], +"structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0af7d6ea2b343a99ac0a2cd306ed96b5c7":[1,2,2,0,4] +}; diff --git a/doc/fsdk/html/navtreeindex3.js b/doc/fsdk/html/navtreeindex3.js new file mode 100644 index 0000000..efe7106 --- /dev/null +++ b/doc/fsdk/html/navtreeindex3.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX3 = +{ +"structfsdk_1_1_i_serializable_object.html#a5171a97d79c639d613ec9d6ee694c8e1":[1,2,2,4], +"structfsdk_1_1_i_serializable_object.html#a9217958c8ff2aeb970db02c3324a017b":[1,2,2,3], +"structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79":[1,2,2,1], +"structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79a6e4800456cd37d67c1cdcfecaac8afab":[1,2,2,1,0], +"structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79abe2164cbc91b390163c0c9af3448acf6":[1,2,2,1,1], +"structfsdk_1_1_i_settings_provider.html":[1,2,6], +"structfsdk_1_1_i_settings_provider.html#a24483db5f2e2b8434cb226d23e8f767d":[1,2,6,17], +"structfsdk_1_1_i_settings_provider.html#a24c6329c41291b32cdecf5d10cb90a90":[1,2,6,14], +"structfsdk_1_1_i_settings_provider.html#a40af7f105aed6ee83863bda1f0f2219e":[1,2,6,7], +"structfsdk_1_1_i_settings_provider.html#a44255bcd4c2f6697782082033f1c062e":[1,2,6,19], +"structfsdk_1_1_i_settings_provider.html#a49a4727e0cf0a90cc1536440a049cc07":[1,2,6,8], +"structfsdk_1_1_i_settings_provider.html#a5f5381f466e214ba4a2c7565bc89dba2":[1,2,6,11], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5":[1,2,6,4], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a17b7fccdd65da9c5a54552c3685041a4":[1,2,6,4,17], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a20c6429b7ff545070b48df0668d686fe":[1,2,6,4,6], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a2767828026039e8ba7b38973cbb701f2":[1,2,6,4,7], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a29ebf8fe305fd42de0b208c9dc226559":[1,2,6,4,14], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a37a5f254c366f6c4dcba8bfd75f1070e":[1,2,6,4,10], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a4789f23283b3a61f858b641a1bef19a3":[1,2,6,4,2], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a49069827e26a70a158193ed0595b485b":[1,2,6,4,12], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a491cc2103be52c3b503686a792baf206":[1,2,6,4,16], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a5206bd7472156351d2d9a99633ac9580":[1,2,6,4,1], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a655f7706c6b80b169803c2854e43f207":[1,2,6,4,15], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a65d83fd76501c29718cc8fde8b8f33db":[1,2,6,4,8], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a811a6b500aa2374e3a70057141dccbbf":[1,2,6,4,13], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a93650de0861d0516977f25b86ee42e5a":[1,2,6,4,9], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a96fe5a2a900fba7e5dd6fe5519f09e90":[1,2,6,4,4], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aa60852f204ed8028c1c58808b746d115":[1,2,6,4,0], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aafbf0897a5a83fdd873dfb032ec695d3":[1,2,6,4,3], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5ac51b09d66c17f113d52d2822fb71a757":[1,2,6,4,11], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5accc756faa9c309bf0bd9ed5e43dee2a0":[1,2,6,4,18], +"structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5af155a86534ba8c83bd9ced7c8f510b4c":[1,2,6,4,5], +"structfsdk_1_1_i_settings_provider.html#a6472ad96f6b21bbf36fbbd4e4473bb50":[1,2,6,21], +"structfsdk_1_1_i_settings_provider.html#a6c0a658442e821b9f8f7dfd77d1efcb7":[1,2,6,6], +"structfsdk_1_1_i_settings_provider.html#a80367779f65239e656e0a20a6204224a":[1,2,6,5], +"structfsdk_1_1_i_settings_provider.html#a882a7671cc283d81028ddeeae9da1a23":[1,2,6,13], +"structfsdk_1_1_i_settings_provider.html#a98efbcbf26e39e5cf70b3215514d5975":[1,2,6,20], +"structfsdk_1_1_i_settings_provider.html#aabb9a7e6bd022bc5fd89d019a74628d0":[1,2,6,16], +"structfsdk_1_1_i_settings_provider.html#abedbf12597aee1d33e7f42c47fa9b18a":[1,2,6,18], +"structfsdk_1_1_i_settings_provider.html#ac9dd8729888381082f1fd9ec46734db2":[1,2,6,15], +"structfsdk_1_1_i_settings_provider.html#acd929b0985eb547bf1c40e494e36e1f8":[1,2,6,10], +"structfsdk_1_1_i_settings_provider.html#acedb7b69472de81a44c6d69511c9e908":[1,2,6,12], +"structfsdk_1_1_i_settings_provider.html#af4b9a97e6472e46ba644f7a41418e5d8":[1,2,6,9], +"structfsdk_1_1_i_settings_provider_1_1_desc.html":[1,2,6,0], +"structfsdk_1_1_i_settings_provider_1_1_desc.html#a5f4b610fa970c3719789a0413c9eab4a":[1,2,6,0,1], +"structfsdk_1_1_i_settings_provider_1_1_desc.html#a8a848bcc48f7ede8a50f46c5c811fb48":[1,2,6,0,2], +"structfsdk_1_1_i_settings_provider_1_1_desc.html#ac5b3c770ae3ec11839e56ba4b5bb1270":[1,2,6,0,0], +"structfsdk_1_1_i_settings_provider_1_1_desc.html#acca51618f5f65a44723b8396207535be":[1,2,6,0,4], +"structfsdk_1_1_i_settings_provider_1_1_desc.html#af5c231731f8657154468cfc4ba7e3096":[1,2,6,0,3], +"structfsdk_1_1_i_settings_provider_1_1_entry.html":[1,2,6,1], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a00387b57774580fd07bc4c2bc2ae16ed":[1,2,6,1,5], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a0b98e0168b42f322a92c912529b450ec":[1,2,6,1,3], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a0f18fe3e34e0546f8bb7e8ec89ac2b7f":[1,2,6,1,7], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a12378000c5e82a764cc23ba0ced3b0aa":[1,2,6,1,8], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a2a436c5de00e2ae0972f2678d6e1d35c":[1,2,6,1,0], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a462b8686b4b770c5204a4a5031514fb9":[1,2,6,1,6], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a673ccd7aa4e1ceed022216588cfff06c":[1,2,6,1,4], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#a76c3a1fc463fc29c392d0a5b25e50b0c":[1,2,6,1,1], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#aa56d52bb2b36a95778b68f9ef3d5f37d":[1,2,6,1,2], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#ab62a7d512a201be88694b03f89a4f44a":[1,2,6,1,9], +"structfsdk_1_1_i_settings_provider_1_1_entry.html#ac2bba965cd886b1f53b60ddf24f35df3":[1,2,6,1,10], +"structfsdk_1_1_i_settings_provider_1_1_key.html":[1,2,6,2], +"structfsdk_1_1_i_settings_provider_1_1_key.html#a09f319d67c581d9eab31d16bb20062db":[1,2,6,2,4], +"structfsdk_1_1_i_settings_provider_1_1_key.html#a3b0d1a48c5eb2e6255fd51fcc3d28df4":[1,2,6,2,3], +"structfsdk_1_1_i_settings_provider_1_1_key.html#a47c4fb20308ffab842f8c6b8771482c2":[1,2,6,2,8], +"structfsdk_1_1_i_settings_provider_1_1_key.html#a4806cf422efe957999b8b1578f716d4b":[1,2,6,2,5], +"structfsdk_1_1_i_settings_provider_1_1_key.html#a4a9ac00ecf0318698499bc7ca5a3dd6d":[1,2,6,2,7], +"structfsdk_1_1_i_settings_provider_1_1_key.html#a67d333ee0b4c658d8ebe9cd6b2f293f8":[1,2,6,2,0], +"structfsdk_1_1_i_settings_provider_1_1_key.html#a8119c6cd5cc92e235c39f333abdfc5ad":[1,2,6,2,1], +"structfsdk_1_1_i_settings_provider_1_1_key.html#ac2c40cfd491b56908d2f90e71da997f7":[1,2,6,2,2], +"structfsdk_1_1_i_settings_provider_1_1_key.html#acb298366c5ad703f47add965f31420ed":[1,2,6,2,6], +"structfsdk_1_1_i_settings_provider_1_1_value.html":[1,2,6,3], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a0712a27f674f611a777f8067bb6c9c5e":[1,2,6,3,41], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a1fbb01df32dceb4539a852113a27c752":[1,2,6,3,39], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a253a8ea6fa125871c60351d1488a8ef7":[1,2,6,3,15], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a2a6a2b04795f4be07002b554877951b0":[1,2,6,3,55], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a2b853c76f9e36682a6955399565855d3":[1,2,6,3,60], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a2eacc17be55f5b7c45b0b14dae8dabed":[1,2,6,3,61], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a320c5395ac81284ee738283ef07f6f32":[1,2,6,3,24], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a33745b6b63863e2153867c888257a373":[1,2,6,3,56], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a351856d77b04742d7c62bb4a3fa1dd9e":[1,2,6,3,18], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a35b338eaba92786d687532a27101fe89":[1,2,6,3,59], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a35cc96b6aae0ecbbc0c1079ea3142899":[1,2,6,3,29], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a3b53f8c1e07a0403aaadde5e9bac69ae":[1,2,6,3,37], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a3ff3a44e47d48d850e79e32602ec2998":[1,2,6,3,5], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a44bd12725bb7ead2c5c8dfbd53001fd5":[1,2,6,3,14], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a4b8b66e59cbdc206fc389f486ac9da69":[1,2,6,3,51], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a4e86e07ec3d3dd9fa6df83af423b147e":[1,2,6,3,46], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a5720f7b47ca5264c9da56cb8659fff40":[1,2,6,3,47], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947":[1,2,6,3,1], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a95a8d18f7debfc437b1669849e7dd925":[1,2,6,3,1,1], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a96cf9d7a2ede9c47b110b3a4178f3401":[1,2,6,3,1,8], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a99ad8e5a64bab96bf5f777dc1b51d88f":[1,2,6,3,1,0], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ab6b18a107e12ec3a414343d93b4d69ec":[1,2,6,3,1,3], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac1e9d375777e2ca4631b5e4851a8e70c":[1,2,6,3,1,7], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac4b020c2b070595a491d27e82c03ab5d":[1,2,6,3,1,4], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac62a83138afcfe41b9c64a6e6026f5fb":[1,2,6,3,1,9], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947acab9b95fc0f8e22586956c7b2831c742":[1,2,6,3,1,6], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947adf23e4f8136317e83ee4579ba2a5e066":[1,2,6,3,1,2], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947afce0cbbaf3da4fd239865223a2cafd2d":[1,2,6,3,1,5], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a5ac724fe6b158f9f22e0e5cebad63a1d":[1,2,6,3,8], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a5b698f499b70e5d43fce29e0d9aaec45":[1,2,6,3,3], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a5c4c474afda291a09a19f69f43c43abc":[1,2,6,3,30], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a6070b50e16d3cbcd5a49c018b6d631c8":[1,2,6,3,20], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a62b3eff07e0687047a65e18939f4a1af":[1,2,6,3,23], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a637a0f66f4f6449c868e1fd51d844387":[1,2,6,3,7], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a65ad04619431c95aff284087f1a5c23d":[1,2,6,3,16], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a681b8d01c5a5112fae15ec244f97ee84":[1,2,6,3,31], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a730243dec9aa8addb47d58b11806dafa":[1,2,6,3,58], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a7dc84becec0ff1614a11c85c268b2571":[1,2,6,3,27], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a81865a1f56ef1450a47de5d8e8866c6d":[1,2,6,3,19], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a89993c2d966d24f4d8f1800d25af4071":[1,2,6,3,22], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a8dcc7bc3027a4462188342bf0fb1fbc9":[1,2,6,3,36], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a8ffc8d4baa19ff98c25b3ca1cdec419d":[1,2,6,3,50], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a97c411b847afda41ec7b64a0e646e6e6":[1,2,6,3,54], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a98e8b1488035f0329ffc81180143398e":[1,2,6,3,57], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a999198508b6f0f7ec19daff50424343b":[1,2,6,3,53], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a9a2643462aaff211e15a57fd5c6e348e":[1,2,6,3,32], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a9b264cc5dd478ec7e113819addd0d807":[1,2,6,3,34], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a9b2d860be94b53a84331ca5351f28685":[1,2,6,3,17], +"structfsdk_1_1_i_settings_provider_1_1_value.html#a9dc95a2a7f10e8860915a14565a86f73":[1,2,6,3,21], +"structfsdk_1_1_i_settings_provider_1_1_value.html#aa0d8c8295aa8659f811339346676afda":[1,2,6,3,11], +"structfsdk_1_1_i_settings_provider_1_1_value.html#aac66334b8d4bb178545ae4821d2451a6":[1,2,6,3,13], +"structfsdk_1_1_i_settings_provider_1_1_value.html#ab99aac88b065b701b60fa4fbe2ec0b72":[1,2,6,3,12], +"structfsdk_1_1_i_settings_provider_1_1_value.html#abf9c6a2457cf1f7cc856533aefd85d9d":[1,2,6,3,52], +"structfsdk_1_1_i_settings_provider_1_1_value.html#ac401f96faea0d11e79f92e66416e560d":[1,2,6,3,25], +"structfsdk_1_1_i_settings_provider_1_1_value.html#ac5551406db04db1db8f54279c737fff3":[1,2,6,3,40], +"structfsdk_1_1_i_settings_provider_1_1_value.html#acbe915c78434291060b0a4159405ec45":[1,2,6,3,38], +"structfsdk_1_1_i_settings_provider_1_1_value.html#acd744c00433c524a120bb97fcb0694e9":[1,2,6,3,10], +"structfsdk_1_1_i_settings_provider_1_1_value.html#acf068436955aef306ffe0ca7eb2d5eaa":[1,2,6,3,4], +"structfsdk_1_1_i_settings_provider_1_1_value.html#acf75100534bf1b7c7d9536ace5b8dca8":[1,2,6,3,26], +"structfsdk_1_1_i_settings_provider_1_1_value.html#ad4524374bafcce36a1349f0648dbefd4":[1,2,6,3,9], +"structfsdk_1_1_i_settings_provider_1_1_value.html#ad741f2aa88c7982c302fe2fe66bb6471":[1,2,6,3,44], +"structfsdk_1_1_i_settings_provider_1_1_value.html#ade18ca8709878512682fa7b69fc0cfc1":[1,2,6,3,28], +"structfsdk_1_1_i_settings_provider_1_1_value.html#ade9870a88b9fa5247d9f82c943001100":[1,2,6,3,2], +"structfsdk_1_1_i_settings_provider_1_1_value.html#aeb4a8584bac9b97ee89ddc67ec1ac288":[1,2,6,3,43], +"structfsdk_1_1_i_settings_provider_1_1_value.html#aee7766a54dfb9dce2606aef1f88f2b3c":[1,2,6,3,42], +"structfsdk_1_1_i_settings_provider_1_1_value.html#aefc7af5a886571f1e510c1eb51558c06":[1,2,6,3,49], +"structfsdk_1_1_i_settings_provider_1_1_value.html#af6de22e8a4956661ef47b65adbc7684f":[1,2,6,3,48], +"structfsdk_1_1_i_settings_provider_1_1_value.html#af9f2f9595e49580129d8502768fdc080":[1,2,6,3,33], +"structfsdk_1_1_i_settings_provider_1_1_value.html#afbdabfa895b18e2ae63429b99accb87b":[1,2,6,3,45], +"structfsdk_1_1_i_settings_provider_1_1_value.html#aff30902febdfdfd0d643f8610b68de9f":[1,2,6,3,6], +"structfsdk_1_1_i_settings_provider_1_1_value.html#affa5d3f08168c5ffa1fcf815b32d4513":[1,2,6,3,35], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html":[1,2,6,3,0,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html#ae63a9c7288b98e3ee010a0d71ddf66b0":[1,2,6,3,0,0,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html":[1,2,6,3,0,1], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html#a54ef03e3764f6c9d717428f00d7dcac0":[1,2,6,3,0,1,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html":[1,2,6,3,0,2], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html#a2c65cd019d53b98e9c7228b0728b0672":[1,2,6,3,0,2,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html":[1,2,6,3,0,3], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html#ae56a2030465c842ae2cf680ed000e9f5":[1,2,6,3,0,3,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html":[1,2,6,3,0,4], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html#ac1c85d9f4a766988ba3e44895851e3d2":[1,2,6,3,0,4,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html":[1,2,6,3,0,5], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html#a4c55e81f7dea9e29a0021985ee3858bd":[1,2,6,3,0,5,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html":[1,2,6,3,0,6], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html#ab4ead299cf9fdf2e8a88d3837f0e4637":[1,2,6,3,0,6,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html":[1,2,6,3,0,7], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html#a4a066c64f5fa448328eaa181e4a9b650":[1,2,6,3,0,7,0], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html":[1,2,6,3,0,8], +"structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html#aef4bb8f9515dc54644cd37ee57c46a05":[1,2,6,3,0,8,0], +"structfsdk_1_1_i_static_descriptor_storage.html":[3,0,0,34], +"structfsdk_1_1_i_static_descriptor_storage.html#a9ca188c040ecfae3b940589dcd8e8998":[3,0,0,34,1], +"structfsdk_1_1_i_static_descriptor_storage.html#ad7b5bde8ec689c73656628920b8aebad":[3,0,0,34,0], +"structfsdk_1_1_i_static_descriptor_storage.html#aee1e7ce2800e384e546d7d99de7ca586":[3,0,0,34,2], +"structfsdk_1_1_i_warper.html":[3,0,0,51], +"structfsdk_1_1_i_warper.html#a20355c3fc081074b92b2a6d7f25523ab":[3,0,0,51,4], +"structfsdk_1_1_i_warper.html#a32bf26ffe79f9910f495eba4778d5c81":[3,0,0,51,8], +"structfsdk_1_1_i_warper.html#a384238fd902cbf424f1ec141e81b6927":[3,0,0,51,11], +"structfsdk_1_1_i_warper.html#a3c896d2a8f1ad3deaf1ff12c6f8a35d8":[3,0,0,51,5], +"structfsdk_1_1_i_warper.html#a3fdd8dd219fb6fdbe5dfd71e5833893d":[3,0,0,51,9], +"structfsdk_1_1_i_warper.html#a84d916dc3296244f29270128f77b6536":[3,0,0,51,3], +"structfsdk_1_1_i_warper.html#a8c4565064f4ff437b90d3784bcf256ca":[3,0,0,51,2], +"structfsdk_1_1_i_warper.html#ab13e3ac4b4ae69fafe86d10f94de8e64":[3,0,0,51,0], +"structfsdk_1_1_i_warper.html#ac1445d1b93d7f5713907839abdc990b1":[3,0,0,51,7], +"structfsdk_1_1_i_warper.html#af0de23380b963ea58c0ae1dadf199618":[3,0,0,51,6], +"structfsdk_1_1_i_warper.html#afa16f59973b79e9c3f237b16485d4917":[3,0,0,51,1], +"structfsdk_1_1_i_warper.html#afff8929ae7ea37b52d2a3e2b2d27efb7":[3,0,0,51,10], +"structfsdk_1_1_image.html":[3,0,0,64], +"structfsdk_1_1_image.html#a01e37e8244745a1645c7f44356c98cfa":[3,0,0,64,28], +"structfsdk_1_1_image.html#a021abfa7a95a7d6a1e9f4edabf2043a2":[3,0,0,64,9], +"structfsdk_1_1_image.html#a02d33587be44369699ff0c77bf918f7e":[3,0,0,64,42], +"structfsdk_1_1_image.html#a10e36f6ea8f5e293f7bd58658ecb1653":[3,0,0,64,18], +"structfsdk_1_1_image.html#a1596737bcf2aea4a1c8fc336f6f1b182":[3,0,0,64,19], +"structfsdk_1_1_image.html#a177197485010936725923806ed693187":[3,0,0,64,30], +"structfsdk_1_1_image.html#a22f36f59a67cc867a96686dcf18b8f6d":[3,0,0,64,23], +"structfsdk_1_1_image.html#a25d4c97bcd4ef0e980e195b51c1c7277":[3,0,0,64,12], +"structfsdk_1_1_image.html#a265dd8891566653b2bc83fc6de58f568":[3,0,0,64,36], +"structfsdk_1_1_image.html#a27b9eae4a7a4bf22182bb98debf8c45d":[3,0,0,64,55], +"structfsdk_1_1_image.html#a28a2f942184d21b0e4270c30adef7916":[3,0,0,64,29], +"structfsdk_1_1_image.html#a2ffa58c82ae839a8804721def179ccb6":[3,0,0,64,33], +"structfsdk_1_1_image.html#a32c6a6ef3700e9babb0943ce4aac6155":[3,0,0,64,86], +"structfsdk_1_1_image.html#a32f3e84a17a9e47a516d2f9cef50c040":[3,0,0,64,67], +"structfsdk_1_1_image.html#a33771e3d4141977d08be1302020ff6cd":[3,0,0,64,50], +"structfsdk_1_1_image.html#a348af5fca41e5b170c0487a055f6ebbb":[3,0,0,64,7], +"structfsdk_1_1_image.html#a378b11d6fc5fe3baa1f2e1a6fc0c7e68":[3,0,0,64,80], +"structfsdk_1_1_image.html#a386e2313d25f5f3107e1a47a347e04d8":[3,0,0,64,24], +"structfsdk_1_1_image.html#a394ec678da307c9f6f73b673567bc9ae":[3,0,0,64,73], +"structfsdk_1_1_image.html#a39ddccc55b57eb96c8140cd6e869aab4":[3,0,0,64,85], +"structfsdk_1_1_image.html#a3a096c49b65cb9b3ddc864a1fe0bbc5f":[3,0,0,64,37], +"structfsdk_1_1_image.html#a3ddea03d5ee948a5c2d0aa81a4fe8027":[3,0,0,64,16], +"structfsdk_1_1_image.html#a3f9f9c61324959b028b645b0a873ae21":[3,0,0,64,26], +"structfsdk_1_1_image.html#a4031cca84864d83a5361968eaec0809e":[3,0,0,64,74], +"structfsdk_1_1_image.html#a42bb8bc044a084b7779760c20701fa0d":[3,0,0,64,51], +"structfsdk_1_1_image.html#a4309931e1a59c9b88469a5633df36769":[3,0,0,64,84], +"structfsdk_1_1_image.html#a48773dce5d77377aa6415084ff2a612f":[3,0,0,64,41], +"structfsdk_1_1_image.html#a494e5a70e35f8a9965c9c655faf71694":[3,0,0,64,35], +"structfsdk_1_1_image.html#a4cd2e1c9c500087bcfb65f750cef09e4":[3,0,0,64,27], +"structfsdk_1_1_image.html#a50d05981de264e977f4fbd90990f084a":[3,0,0,64,53], +"structfsdk_1_1_image.html#a523b0c28a4003c75c3907d0c93110493":[3,0,0,64,13], +"structfsdk_1_1_image.html#a566dd9391571379fed5e1da2ed9975c8":[3,0,0,64,15], +"structfsdk_1_1_image.html#a5841db4b37f8e3f633f9ee31e29e28b6":[3,0,0,64,40], +"structfsdk_1_1_image.html#a5e5e5885d7e3e85d8d07b2c5a84937c5":[3,0,0,64,61], +"structfsdk_1_1_image.html#a62466dd45bd37cdd3c73bdeb7b268b20":[3,0,0,64,78], +"structfsdk_1_1_image.html#a624947f81acd14120076f42860e51611":[3,0,0,64,6], +"structfsdk_1_1_image.html#a6c85de74e85305f06232bdfb49331e0e":[3,0,0,64,11], +"structfsdk_1_1_image.html#a6cb445da4dc6f7949c992f6bdcd6787f":[3,0,0,64,48], +"structfsdk_1_1_image.html#a6cc848e22d99f4d2d8b34d240c0bba47":[3,0,0,64,79], +"structfsdk_1_1_image.html#a6e64bb21715b54c2b208c370d4c6bb2d":[3,0,0,64,63], +"structfsdk_1_1_image.html#a6ed2d1d79094102bed624f40f14f4acb":[3,0,0,64,68], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936":[3,0,0,64,0], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a014e56b039fd19b57e203c1fb371f5ce":[3,0,0,64,0,18], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a023fe093cb8dbc5a80d2a2259d4c97a5":[3,0,0,64,0,16], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a0a86fcdcc2094e925e3166b9710f8d82":[3,0,0,64,0,4], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a107a93f5ad9b48f874341eaa0141e0f9":[3,0,0,64,0,5], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a2a7695a194a2f785215c4ed058e2bf7b":[3,0,0,64,0,13], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a3634e01cc1296daece9832c5396808c2":[3,0,0,64,0,14], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a538273d971a3da3f944bfb95091df5d8":[3,0,0,64,0,6], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a588c80ae8885b51a5f0700894da5affe":[3,0,0,64,0,3], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a5d0744802b24f44a161d350c25d76c7b":[3,0,0,64,0,7], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a6518a24cb2d8166f5c57016e65e3f419":[3,0,0,64,0,1], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a70fa83b68f2d20d1c607a2864627f13d":[3,0,0,64,0,15], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a83fe3c82514cc399b416bbb9d25ac9a9":[3,0,0,64,0,11], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aa60852f204ed8028c1c58808b746d115":[3,0,0,64,0,0], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaf9d45225e9d3edf59f2fd40d4b9f157":[3,0,0,64,0,12], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaff424fc1ea568827830b838a80cd934":[3,0,0,64,0,2], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936abcdbc5068527815bd978d3cbba5e7deb":[3,0,0,64,0,10], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ac85f85f7c13ed006eed130ec183aa810":[3,0,0,64,0,8], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade236a235b4e8ffc9141676624753b2d":[3,0,0,64,0,9], +"structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade906b82a6f70f5f75ea0a11da932a36":[3,0,0,64,0,17], +"structfsdk_1_1_image.html#a7d560518bf9a96c0fc8795edb4374a31":[3,0,0,64,56], +"structfsdk_1_1_image.html#a7df80646fa1526cfdb4d767a84acf6a0":[3,0,0,64,39], +"structfsdk_1_1_image.html#a81b837c8ebacc00461ced25cc6299176":[3,0,0,64,43], +"structfsdk_1_1_image.html#a824376f7ac69c83fc8026cf38a235806":[3,0,0,64,54], +"structfsdk_1_1_image.html#a8435a72e723aa1b3c818867457276c9a":[3,0,0,64,81], +"structfsdk_1_1_image.html#a85ddf384c606013f7c2aa2815eaeccf4":[3,0,0,64,76], +"structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4":[3,0,0,64,3], +"structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4a06ffe3e2e31d93153e443e4161294b99":[3,0,0,64,3,2], +"structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4a2b55387dd066c5bac646ac61543d152d":[3,0,0,64,3,0], +"structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4a52f9ec21735243ad9917cda3ca077d32":[3,0,0,64,3,1] +}; diff --git a/doc/fsdk/html/navtreeindex4.js b/doc/fsdk/html/navtreeindex4.js new file mode 100644 index 0000000..c6affec --- /dev/null +++ b/doc/fsdk/html/navtreeindex4.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX4 = +{ +"structfsdk_1_1_image.html#a8bce66953fc250acf5c729d5168d6310":[3,0,0,64,66], +"structfsdk_1_1_image.html#a8f17c7659871533d5eed712b3967944b":[3,0,0,64,52], +"structfsdk_1_1_image.html#a935733a13b5a2d62758f63a0fa2580e9":[3,0,0,64,49], +"structfsdk_1_1_image.html#a94659c183621f3be301832e3673936c6":[3,0,0,64,62], +"structfsdk_1_1_image.html#a9551bec72e3e4798bce2ddd116b53f6e":[3,0,0,64,72], +"structfsdk_1_1_image.html#a99fd0c30cf7d2fd3c26ff6f1771a356b":[3,0,0,64,21], +"structfsdk_1_1_image.html#a9a8a6abf162c095d6f1e62919cf4dabf":[3,0,0,64,17], +"structfsdk_1_1_image.html#aa4c32526ccd387fb89500e766ae3ce7f":[3,0,0,64,60], +"structfsdk_1_1_image.html#aa4dee2d753540eb26aac388ed8d94ce9":[3,0,0,64,83], +"structfsdk_1_1_image.html#aac20796ff887ec564cee62c826374384":[3,0,0,64,10], +"structfsdk_1_1_image.html#aadc0669fe4f2632fb259d2cba1a06738":[3,0,0,64,70], +"structfsdk_1_1_image.html#aae4044994b8cebfdd3f94e13606b9b07":[3,0,0,64,69], +"structfsdk_1_1_image.html#aaf7e663816bd542c1f80d42e29c22014":[3,0,0,64,44], +"structfsdk_1_1_image.html#aafa5e102bd9b4ccda1f827f1a12499db":[3,0,0,64,20], +"structfsdk_1_1_image.html#ab0c8024817b8e634f5ec18f1a0f08916":[3,0,0,64,14], +"structfsdk_1_1_image.html#ab0f6a417fa00693acfc22af05fdaddaf":[3,0,0,64,32], +"structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07":[3,0,0,64,2], +"structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a1359bce90afb193bac4435d19c8864dd":[3,0,0,64,2,3], +"structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a2795bef6531632efb72ad70348fb5993":[3,0,0,64,2,0], +"structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a40657ac0e763be1c1a745957006c3555":[3,0,0,64,2,2], +"structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07af9b0ab7ae4fae4c4b922abbce4b9bebf":[3,0,0,64,2,1], +"structfsdk_1_1_image.html#ac085efbd15cc73fea521d9067d551d61":[3,0,0,64,59], +"structfsdk_1_1_image.html#ac38de3f8f7136d3011bc49b399efcd5a":[3,0,0,64,47], +"structfsdk_1_1_image.html#ac4d7421e28a9d81fed4de88dcc3fecf4":[3,0,0,64,8], +"structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5d":[3,0,0,64,1], +"structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5da60cdeb7647e393444a05d358810293f5":[3,0,0,64,1,3], +"structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dab75738e569f17ad386d0ff4cb90eabb9":[3,0,0,64,1,0], +"structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daccd72f086a3257b06c12b790a683f2d6":[3,0,0,64,1,4], +"structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dae811dec1e75f575972a667e83a23bd34":[3,0,0,64,1,1], +"structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daf526f9c09cd1a065f528dc6518895615":[3,0,0,64,1,2], +"structfsdk_1_1_image.html#acbc748fe0bdd194deb00b26e06a51ed9":[3,0,0,64,64], +"structfsdk_1_1_image.html#ad208540be1ae2fa9ca0ed192aee75182":[3,0,0,64,5], +"structfsdk_1_1_image.html#ad5823d56f2b75a94424adef45c9d23c2":[3,0,0,64,38], +"structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7":[3,0,0,64,4], +"structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a4bb1ebdeeb70354069bc644b9c94ee5f":[3,0,0,64,4,3], +"structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a55505ba281b015ec31f03ccb151b2a34":[3,0,0,64,4,2], +"structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a88183b946cc5f0e8c96b2e66e1c74a7e":[3,0,0,64,4,5], +"structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a92769fe7c40229f4301d6125e0a9e928":[3,0,0,64,4,1], +"structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7aa5d5ca1447586e23dc011f8c0cc0a6db":[3,0,0,64,4,0], +"structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7ace0dbe5045edda1a0e9686ce899798ea":[3,0,0,64,4,4], +"structfsdk_1_1_image.html#ad7702083887209a2c4e188b500215e96":[3,0,0,64,34], +"structfsdk_1_1_image.html#adb2d3b84e0b3c81a8f1528e884fa655a":[3,0,0,64,46], +"structfsdk_1_1_image.html#adb87ac4315e08d3474b87dd1819748d5":[3,0,0,64,31], +"structfsdk_1_1_image.html#add9bb121cb86eb35e669b6321a267926":[3,0,0,64,25], +"structfsdk_1_1_image.html#adf5ed625bd338c55677dee58043de494":[3,0,0,64,65], +"structfsdk_1_1_image.html#ae05f21724f71ad844532ec46310bd252":[3,0,0,64,58], +"structfsdk_1_1_image.html#ae3bd0f9b7e1dd8871e7110d566c0eb3b":[3,0,0,64,71], +"structfsdk_1_1_image.html#ae43bcd728b9b3389a5d45e20dee1205d":[3,0,0,64,75], +"structfsdk_1_1_image.html#ae7015b5e7e8c21af7fb23a93a1235301":[3,0,0,64,57], +"structfsdk_1_1_image.html#aeb3e38807e56a77419a073eea1e6d2ec":[3,0,0,64,22], +"structfsdk_1_1_image.html#aefe4793bcc5d38d828d5ead04cb4f75e":[3,0,0,64,82], +"structfsdk_1_1_image.html#af449e5eaada6b033205fec916c758aff":[3,0,0,64,77], +"structfsdk_1_1_image.html#afb6c77133c3cbe2f5f7825286096ec46":[3,0,0,64,45], +"structfsdk_1_1_landmarks.html":[3,0,0,66], +"structfsdk_1_1_landmarks.html#a0d1913c01d8366233bcb3087517c9228":[3,0,0,66,4], +"structfsdk_1_1_landmarks.html#a4335bbf6079c27b2d33623959e8e4e68":[3,0,0,66,3], +"structfsdk_1_1_landmarks.html#a4906dfbf4268044bda3d79a1e2ea1e5b":[3,0,0,66,2], +"structfsdk_1_1_landmarks.html#a871cb01ce3bfa0389ed0b7a7c84c8670":[3,0,0,66,0], +"structfsdk_1_1_landmarks.html#a96d14717c8f959aabaf27520f231a0c4":[3,0,0,66,1], +"structfsdk_1_1_landmarks.html#a9ef9034a3e49efa99333b0b01d707fd7":[3,0,0,66,6], +"structfsdk_1_1_landmarks.html#aef2cf9531163b1a4d6b86300f1b4d892":[3,0,0,66,5], +"structfsdk_1_1_landmarks5_indexes.html":[3,0,0,67], +"structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a572a622e295b81f5ee4578e7e290aa39":[3,0,0,67,2], +"structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a69e618c0af0d1130966997ad32b5e4b0":[3,0,0,67,4], +"structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a8e22313b8661da3a61347417a8e61ca6":[3,0,0,67,3], +"structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aca84a9be871065c03172c26db6fc025c":[3,0,0,67,1], +"structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7ad3566c44c6de999dfc157bc178093e94":[3,0,0,67,0], +"structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aec5fb21288f98e092c4fb19e9fd9dc3c":[3,0,0,67,5], +"structfsdk_1_1_launch_options.html":[3,0,0,52], +"structfsdk_1_1_launch_options.html#a46de29df294360c9e7b278129b8d9c02":[3,0,0,52,2], +"structfsdk_1_1_launch_options.html#adfdb2abd6bba22487bfe98e441961457":[3,0,0,52,0], +"structfsdk_1_1_launch_options.html#af1078c0dbfdb3d6e1ff1686feea2c589":[3,0,0,52,1], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html":[3,0,0,8], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56":[3,0,0,8,0], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a52a96508c39536f0c2ef43b19a0a1e0e":[3,0,0,8,0,1], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a88183b946cc5f0e8c96b2e66e1c74a7e":[3,0,0,8,0,2], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56abd9f7c5d6ab4201b138a3e51dab7056f":[3,0,0,8,0,0], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a2454222f5dc14f519d571798ad0311a8":[3,0,0,8,1], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#ab04c44ea4803007fed4af1267fb5b729":[3,0,0,8,2], +"structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#aeced46122e807a731b03b28f345f211f":[3,0,0,8,3], +"structfsdk_1_1_matching_result.html":[1,0,0], +"structfsdk_1_1_matching_result.html#a225957f44be2294e809c2dd59ad728ed":[1,0,0,0], +"structfsdk_1_1_matching_result.html#a51e3137806e9938aa3b70557cbf1628b":[1,0,0,2], +"structfsdk_1_1_matching_result.html#a913ed5d074a8c817b3a1c59e7759e526":[1,0,0,1], +"structfsdk_1_1_matching_result.html#ae8b080ed7da80dd6848de80be9ffce51":[1,0,0,3], +"structfsdk_1_1_medical_mask_estimation.html":[3,0,0,10], +"structfsdk_1_1_medical_mask_estimation.html#a54b478e726656c252899b14719266dff":[3,0,0,10,2], +"structfsdk_1_1_medical_mask_estimation.html#a5e6d266d2125862f965e1067e92b7b90":[3,0,0,10,5], +"structfsdk_1_1_medical_mask_estimation.html#aaeaee6d859c996eaf743b6bd79a0309d":[3,0,0,10,3], +"structfsdk_1_1_medical_mask_estimation.html#aaf03553b09b66a4fc9623c85246d6d26":[3,0,0,10,0], +"structfsdk_1_1_medical_mask_estimation.html#acc4a4f5b380c5e6fb2bfcc7081a60c49":[3,0,0,10,4], +"structfsdk_1_1_medical_mask_estimation.html#ad47aa0e8d3c14f07771adf4c6eb72624":[3,0,0,10,1], +"structfsdk_1_1_medical_mask_estimation.html#add99f3ecb4dbac4955949273cc9aa31a":[3,0,0,10,6], +"structfsdk_1_1_medical_mask_estimation_extended.html":[3,0,0,11], +"structfsdk_1_1_medical_mask_estimation_extended.html#a03c165564de35173c4ff7f861ab52df4":[3,0,0,11,2], +"structfsdk_1_1_medical_mask_estimation_extended.html#a2934d2e1c5106b25b2b58495016afc3e":[3,0,0,11,4], +"structfsdk_1_1_medical_mask_estimation_extended.html#a6c75dab32127e86880e8dd9726a9cd7f":[3,0,0,11,1], +"structfsdk_1_1_medical_mask_estimation_extended.html#aa6a5ed18f25e9998ad1dd2fc280a3121":[3,0,0,11,0], +"structfsdk_1_1_medical_mask_estimation_extended.html#ad7e48aec06e8b0b3d7ebdced0451ff59":[3,0,0,11,3], +"structfsdk_1_1_multi_error.html":[3,0,0,68], +"structfsdk_1_1_multi_error.html#a3586c7e6ebbd127dfd608cda93dbd089":[3,0,0,68,2], +"structfsdk_1_1_multi_error.html#a996686c502812882193802a8febe652e":[3,0,0,68,0], +"structfsdk_1_1_multi_error.html#aa8b576ddabb79c9ea03ea71914366a34":[3,0,0,68,3], +"structfsdk_1_1_multi_error.html#af1c36dc424f0b5ff4555dc45fca0e5a4":[3,0,0,68,1], +"structfsdk_1_1_quality.html":[3,0,0,13], +"structfsdk_1_1_quality.html#a4f47d64e029eb530eca15364973efe69":[3,0,0,13,1], +"structfsdk_1_1_quality.html#a559e50382a6d41b92b4634d602e12ab7":[3,0,0,13,3], +"structfsdk_1_1_quality.html#a5f2db7a08a31404d5c96f3d0424de789":[3,0,0,13,0], +"structfsdk_1_1_quality.html#a6749af7478c92099f878034c49834fab":[3,0,0,13,4], +"structfsdk_1_1_quality.html#aa1af5a8820579a94eb9f15836918e9b8":[3,0,0,13,2], +"structfsdk_1_1_ref.html":[3,0,0,71], +"structfsdk_1_1_ref.html#a04c673df1f8297ed0330b56be72218f2":[3,0,0,71,4], +"structfsdk_1_1_ref.html#a24015b4f52310246a88e40ffd1e81030":[3,0,0,71,18], +"structfsdk_1_1_ref.html#a2b302d028bf41a3299ad1a75d3078b08":[3,0,0,71,1], +"structfsdk_1_1_ref.html#a3fdf807e4c01d6f07e8d67f920537022":[3,0,0,71,3], +"structfsdk_1_1_ref.html#a4481cd13013a52fe8ff42cf8cbd25075":[3,0,0,71,9], +"structfsdk_1_1_ref.html#a46bde60641331c01f9804db22cad3ed9":[3,0,0,71,10], +"structfsdk_1_1_ref.html#a4828c89609b91ef396295d9338a3966a":[3,0,0,71,13], +"structfsdk_1_1_ref.html#a58e4acb99a8a874754a23e6e4f7b2251":[3,0,0,71,0], +"structfsdk_1_1_ref.html#a5d1295bb45a634e8907e6f3ce891e93b":[3,0,0,71,6], +"structfsdk_1_1_ref.html#a672bfe4b1b07aa8200e0c179323ffc81":[3,0,0,71,12], +"structfsdk_1_1_ref.html#a70f2e2f6d93a448c088311e65c17e29f":[3,0,0,71,17], +"structfsdk_1_1_ref.html#a74485eedefcd2c2f032a61bce36a2492":[3,0,0,71,7], +"structfsdk_1_1_ref.html#a845904eb499a34c81fad27567bd284f2":[3,0,0,71,14], +"structfsdk_1_1_ref.html#a9c64ce15d1f45608206576a704208a26":[3,0,0,71,11], +"structfsdk_1_1_ref.html#aa1d9bbc7d476649947142015f22fa7c7":[3,0,0,71,5], +"structfsdk_1_1_ref.html#aa7673c14c03a88a443a5497497af5146":[3,0,0,71,2], +"structfsdk_1_1_ref.html#aacf7b3a1eb1afe796743ef8c9390a41c":[3,0,0,71,15], +"structfsdk_1_1_ref.html#ac7b437683b2898eb84a2eb12f900b641":[3,0,0,71,16], +"structfsdk_1_1_ref.html#aed37366a7149bed9a7d7c322bd7bef91":[3,0,0,71,8], +"structfsdk_1_1_ref_base.html":[3,0,0,72], +"structfsdk_1_1_ref_base.html#a1f4e70a1252dce29ced35e396c0a1d87":[3,0,0,72,5], +"structfsdk_1_1_ref_base.html#a3c132b113b08dc44bc8a9150fd007d19":[3,0,0,72,9], +"structfsdk_1_1_ref_base.html#a53e524dddc5f820708d0db6c99069d64":[3,0,0,72,0], +"structfsdk_1_1_ref_base.html#a5f5a390a37bc52d7483049069ecc89a0":[3,0,0,72,8], +"structfsdk_1_1_ref_base.html#a65eb00c69769063de70515387aaf7d71":[3,0,0,72,4], +"structfsdk_1_1_ref_base.html#a7b102e6ffd4ea5e393f283169f826f6f":[3,0,0,72,3], +"structfsdk_1_1_ref_base.html#a7e3a0a80186484fe19eec757ab9546d9":[3,0,0,72,6], +"structfsdk_1_1_ref_base.html#a7ea44dfe520bbe2ced2fe2c023809288":[3,0,0,72,2], +"structfsdk_1_1_ref_base.html#a87fa2d42cdd5da50ad56c9fcc056099b":[3,0,0,72,7], +"structfsdk_1_1_ref_base.html#a8a7d5f145b0709c08a5faf1741fafbe4":[3,0,0,72,10], +"structfsdk_1_1_ref_base.html#a9baae9b19a0723e049bce5d641889662":[3,0,0,72,11], +"structfsdk_1_1_ref_base.html#aac9bb6fcbf9b720a6b5e7a4907cc80c1":[3,0,0,72,1], +"structfsdk_1_1_ref_base.html#ab57bc3fc17e734e742c0b47ec60573ba":[3,0,0,72,12], +"structfsdk_1_1_result.html":[3,0,0,74], +"structfsdk_1_1_result.html#a06a734e30ac4eece206f4733b7a5d012":[3,0,0,74,2], +"structfsdk_1_1_result.html#a22fbfc59e9daa711b5f3d91a0976f5ab":[3,0,0,74,5], +"structfsdk_1_1_result.html#a38653c59ecb8bfaa04caa5a77f4df3f0":[3,0,0,74,0], +"structfsdk_1_1_result.html#a41988070a3ccb7478b18f6c4fb4779f5":[3,0,0,74,8], +"structfsdk_1_1_result.html#a75f966aa5f2402b66f000dacd18128f5":[3,0,0,74,4], +"structfsdk_1_1_result.html#a7e12d3d63d36a0551279b15c0a8176ac":[3,0,0,74,7], +"structfsdk_1_1_result.html#aa3167e68bcb821500440dd076a6b42f3":[3,0,0,74,3], +"structfsdk_1_1_result.html#ac2c5fe6ec18db9b9cb5507ad18490943":[3,0,0,74,1], +"structfsdk_1_1_result.html#aea4380f5ed3f6c3e71ab70d0c0d422b0":[3,0,0,74,6], +"structfsdk_1_1_result_value.html":[3,0,0,75], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html":[3,0,0,76], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a0e427b8b97b5b4812e982891ff390437":[3,0,0,76,6], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a35a0a5551c5758edc7734354ca82b531":[3,0,0,76,0], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a56653ed758a6407bb25489a58b348e0c":[3,0,0,76,3], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a7f9e57a741817e165526a4b7d62fa65c":[3,0,0,76,5], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ac955e75bbf5fb02d839769d9fb2ba664":[3,0,0,76,2], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ad45cf40fedbe9fec64aa87810f8654c2":[3,0,0,76,1], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ade19468195453a80c350071fa4f10854":[3,0,0,76,7], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#adf265f066cbc9f58b26a480accdb1c27":[3,0,0,76,4], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#afef4906788a7f335f4b5a2a372551f8d":[3,0,0,76,8], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html":[3,0,0,77], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a046c9b256bd86bc479c39e6d731435bc":[3,0,0,77,3], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a26f358e8c2c64299a59d98c6feaf4dd1":[3,0,0,77,2], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a33e437fb19c5c9e37e5a2086c6b6a275":[3,0,0,77,5], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a48cc288d6f34cf1f653b309d1451bd94":[3,0,0,77,0], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aa0af562d57def46e9945664991cabb73":[3,0,0,77,7], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#abc5413378343e1ebd6669322f23c7a6c":[3,0,0,77,4], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#ada51f8afb1de2cb66197e010831199db":[3,0,0,77,6], +"structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aed241c8fb37877f331a4a225090dd2db":[3,0,0,77,1], +"structfsdk_1_1_search_result.html":[3,0,0,33], +"structfsdk_1_1_search_result.html#a01dc475d417c24d5a5d21f3d5b4fd4bb":[3,0,0,33,2], +"structfsdk_1_1_search_result.html#a22fc4965d8484ef9ecd8540d2bc86bc8":[3,0,0,33,0], +"structfsdk_1_1_search_result.html#aef457bbb7044f31b2d8d7e788468d2d2":[3,0,0,33,1], +"structfsdk_1_1_sizer.html":[3,0,0,78], +"structfsdk_1_1_sizer.html#a1ad20aaecf643c77e32067ac7619e59a":[3,0,0,78,18], +"structfsdk_1_1_sizer.html#a264b497e04eee49c4b401a3dac00cf54":[3,0,0,78,11], +"structfsdk_1_1_sizer.html#a43e5787f073a4e54efe7b714269d31ff":[3,0,0,78,14], +"structfsdk_1_1_sizer.html#a491defed47cfaeaf38dd29074c8b7d89":[3,0,0,78,1], +"structfsdk_1_1_sizer.html#a5aeab8578a151d6aac54fd262c5b00fc":[3,0,0,78,13], +"structfsdk_1_1_sizer.html#a72d205c5b3b4347d8a0a0ae76f8f1557":[3,0,0,78,6], +"structfsdk_1_1_sizer.html#a81710ba2c9c46ef82255d8f3a6aaf092":[3,0,0,78,15], +"structfsdk_1_1_sizer.html#a9cd97626466e7e07a63fe9ff896352dc":[3,0,0,78,0], +"structfsdk_1_1_sizer.html#aa3b8734b6b784a5e080e02ee4a10dfa6":[3,0,0,78,8], +"structfsdk_1_1_sizer.html#aa7aaa2a28d8d8e329b5f0ea1221c61a8":[3,0,0,78,5], +"structfsdk_1_1_sizer.html#aa93c5b0d4094955935f021e7c1381998":[3,0,0,78,9], +"structfsdk_1_1_sizer.html#aaac05d63b4fbe6c2861e971da901d1be":[3,0,0,78,4], +"structfsdk_1_1_sizer.html#ab278930212c03f5f2dba82281b2b8a63":[3,0,0,78,3], +"structfsdk_1_1_sizer.html#ac8305e92c055dd645536ea0103f47308":[3,0,0,78,12], +"structfsdk_1_1_sizer.html#ad6aaf8b58724a50c2ee30f462f68aca4":[3,0,0,78,7], +"structfsdk_1_1_sizer.html#ad766a4340ba8302b07454756c0c28f5f":[3,0,0,78,10], +"structfsdk_1_1_sizer.html#adc34d459d74906d4e2a8e8efeffe1339":[3,0,0,78,2], +"structfsdk_1_1_sizer.html#aea7fc0320b954ae96fe7454135aafbe8":[3,0,0,78,16], +"structfsdk_1_1_sizer.html#af49cc6ba59d47f9fd71a461260231a4e":[3,0,0,78,17], +"structfsdk_1_1_sub_image.html":[3,0,0,80], +"structfsdk_1_1_sub_image.html#a0ae68ea83ca66e4f8db15ee4c700c811":[3,0,0,80,3], +"structfsdk_1_1_sub_image.html#a1ccb24d83a92805fad4aa5c18f43b114":[3,0,0,80,0], +"structfsdk_1_1_sub_image.html#a5355e143c9d18bfad08247d86c15db3a":[3,0,0,80,8], +"structfsdk_1_1_sub_image.html#a57c6dadf79686b6fa00164d7541b84d4":[3,0,0,80,11], +"structfsdk_1_1_sub_image.html#a5a08fac1419183559472faab4ca2534e":[3,0,0,80,10], +"structfsdk_1_1_sub_image.html#a5c5456311bab989a15351104f1ed13b2":[3,0,0,80,12], +"structfsdk_1_1_sub_image.html#a60484aef73eab8df8b2fc8c20ef5f9fe":[3,0,0,80,6], +"structfsdk_1_1_sub_image.html#a681a9ea2fc9157250c0d08b50a0ee90a":[3,0,0,80,4], +"structfsdk_1_1_sub_image.html#a9aa3c100a4eb5d337873149991752d93":[3,0,0,80,1], +"structfsdk_1_1_sub_image.html#abe52716506d7e423d133507007d52a89":[3,0,0,80,7], +"structfsdk_1_1_sub_image.html#ac7b1e40c980a97e6eff3fb63d1823b6f":[3,0,0,80,9], +"structfsdk_1_1_sub_image.html#ac8122856a65d0d4e30485aee798ccb69":[3,0,0,80,2], +"structfsdk_1_1_sub_image.html#ad896ef4de97a4f7a74582fde66074cdc":[3,0,0,80,5], +"structfsdk_1_1_subjective_quality.html":[3,0,0,14], +"structfsdk_1_1_subjective_quality.html#a0664ef03eaaff2823e05459308e1afcd":[3,0,0,14,2], +"structfsdk_1_1_subjective_quality.html#a1fcc037831b275853f927256b1a73437":[3,0,0,14,3], +"structfsdk_1_1_subjective_quality.html#a33b5854398112f5d90380b8f4c97ccec":[3,0,0,14,4], +"structfsdk_1_1_subjective_quality.html#a4f476b8f88a3e7db3ec85cea02e5bd91":[3,0,0,14,9], +"structfsdk_1_1_subjective_quality.html#a530622210217527532267f65b97c51a4":[3,0,0,14,7], +"structfsdk_1_1_subjective_quality.html#a6c0ffcd0a4851eb3603929c243711ba5":[3,0,0,14,8], +"structfsdk_1_1_subjective_quality.html#a7de917121f7318bdd74dbe19e46d7bf4":[3,0,0,14,5], +"structfsdk_1_1_subjective_quality.html#aa29edbac8dc25efac2dec18ca0a54d20":[3,0,0,14,6], +"structfsdk_1_1_subjective_quality.html#aa93616076c40581d9ee7dc4ad3b27c68":[3,0,0,14,1], +"structfsdk_1_1_subjective_quality.html#ab0172938c088ddb1cf55a912aadd3824":[3,0,0,14,10], +"structfsdk_1_1_subjective_quality.html#aef4e078366ce04c34f82502014a14f36":[3,0,0,14,0], +"structfsdk_1_1_transformation.html":[3,0,0,50], +"structfsdk_1_1_transformation.html#a1aa41bade0699914dc3e0e79f1901698":[3,0,0,50,2], +"structfsdk_1_1_transformation.html#a2d5d4812f60ef02f39467941845cb857":[3,0,0,50,4], +"structfsdk_1_1_transformation.html#a447a7086c9bd6fa86fb739c5cda69a45":[3,0,0,50,0], +"structfsdk_1_1_transformation.html#a6db82eb0dd7bed0e2518474652f3ddec":[3,0,0,50,3], +"structfsdk_1_1_transformation.html#aca1a89d8386b615db1dd029a7f897bb8":[3,0,0,50,1], +"structfsdk_1_1_vector2.html":[3,0,0,81], +"structfsdk_1_1_vector2.html#a04a185c2ceddc611bea5c939c2124898":[3,0,0,81,24], +"structfsdk_1_1_vector2.html#a07d0a831616016167cfecb63afa91879":[3,0,0,81,29], +"structfsdk_1_1_vector2.html#a099d2a886cd88ae652fcb1ba4aa560b8":[3,0,0,81,23], +"structfsdk_1_1_vector2.html#a11766eb4a861ba0893b9a54e654ad426":[3,0,0,81,9], +"structfsdk_1_1_vector2.html#a15132224488f37333baf143bf522f863":[3,0,0,81,28], +"structfsdk_1_1_vector2.html#a1901f162f6d81353a3df86e3611f50ab":[3,0,0,81,11], +"structfsdk_1_1_vector2.html#a34f9f070bb21a4c86ae186af3ea70c0e":[3,0,0,81,30], +"structfsdk_1_1_vector2.html#a3772de7cc691c6d62544939ada5f741f":[3,0,0,81,8], +"structfsdk_1_1_vector2.html#a3776a6caebaa364cd55f817618abbfdf":[3,0,0,81,21], +"structfsdk_1_1_vector2.html#a3d0c0ec312b76c2915b4c6abcfc52eb4":[3,0,0,81,14], +"structfsdk_1_1_vector2.html#a46e85141a5bb78673cfe23bb3ca4db41":[3,0,0,81,20], +"structfsdk_1_1_vector2.html#a4c82f3241e2d679d3162e7c53ad1afb7":[3,0,0,81,18], +"structfsdk_1_1_vector2.html#a4f175def8e52677a34f4ec2387e7e0e8":[3,0,0,81,16], +"structfsdk_1_1_vector2.html#a57e66b5d143530872dd97cebf9d4f612":[3,0,0,81,0], +"structfsdk_1_1_vector2.html#a58e43c916ff907d4733b091dc75021e8":[3,0,0,81,5], +"structfsdk_1_1_vector2.html#a5cbac5fcdaafba36e50105912b15e046":[3,0,0,81,4], +"structfsdk_1_1_vector2.html#a86cefdf00bbc408525a5cb93fb6aa132":[3,0,0,81,26], +"structfsdk_1_1_vector2.html#a917588f75f38aae344e68dc2716d4d1f":[3,0,0,81,2], +"structfsdk_1_1_vector2.html#a92c46ca31baaa100454fc2e784d67468":[3,0,0,81,15] +}; diff --git a/doc/fsdk/html/navtreeindex5.js b/doc/fsdk/html/navtreeindex5.js new file mode 100644 index 0000000..b56b33c --- /dev/null +++ b/doc/fsdk/html/navtreeindex5.js @@ -0,0 +1,30 @@ +var NAVTREEINDEX5 = +{ +"structfsdk_1_1_vector2.html#a956df0b0a02e8a0a2129749129c97676":[3,0,0,81,12], +"structfsdk_1_1_vector2.html#a9d255e944558f53656e8e689e82fe6b2":[3,0,0,81,22], +"structfsdk_1_1_vector2.html#a9d794b42a1325f714bfec2433824e0e9":[3,0,0,81,13], +"structfsdk_1_1_vector2.html#aa07680773448e02a42ce2732888bc695":[3,0,0,81,3], +"structfsdk_1_1_vector2.html#aaa3f5f7de83b0c7063a36c67cd2ae9ce":[3,0,0,81,27], +"structfsdk_1_1_vector2.html#aae171d417781b18c1364475616bd299c":[3,0,0,81,17], +"structfsdk_1_1_vector2.html#ab3c0e3b1d901a7b2ce1c6adca6ea52ef":[3,0,0,81,1], +"structfsdk_1_1_vector2.html#abff546b10f081f4cb170e10ee9fbac53":[3,0,0,81,7], +"structfsdk_1_1_vector2.html#ae10a702fcc91d74d442734bb050e6763":[3,0,0,81,31], +"structfsdk_1_1_vector2.html#ae8a5c741804ce2fd3c0feb7a7897fc90":[3,0,0,81,25], +"structfsdk_1_1_vector2.html#af311eb73a9da48a6535898971a2eec8c":[3,0,0,81,19], +"structfsdk_1_1_vector2.html#af723d6081a9e7c0275d59dfd8d99a515":[3,0,0,81,10], +"structfsdk_1_1_vector2.html#af7537f9258b5bab68b965aa8334319eb":[3,0,0,81,6], +"structfsdk_1_1_version.html":[1,3,0], +"structfsdk_1_1_version.html#a6ac214dbaed6cb0c9af597a0ce45fa73":[1,3,0,1], +"structfsdk_1_1_version.html#a720d91d998895868039802a5e26f0df2":[1,3,0,2], +"structfsdk_1_1_version.html#aa51eaf974da4d0a2fdc3bd41bd43df36":[1,3,0,0], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html":[1,2,6,3,0], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a19bebc0b9e17e194c981355ce0bfa90a":[1,2,6,3,0,13], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a3e4b62bfb96be90b38126d7af628fef5":[1,2,6,3,0,16], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a5ec6030828e645853be71394e3d22e8e":[1,2,6,3,0,11], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a77dc14765597fe4cf65da827a2c36d01":[1,2,6,3,0,9], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a9b685dfe0da1654cdbc72215f2db04ed":[1,2,6,3,0,14], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#ab756fa69de93422f525aede6fd4d5dcb":[1,2,6,3,0,10], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aea8dd6b42c5e9ffa5ffebfb8e31e5b23":[1,2,6,3,0,17], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aec1196921ed7470f8869d930160883cf":[1,2,6,3,0,12], +"unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#afa87698cc37557d1cae0bdafb2663ec4":[1,2,6,3,0,15] +}; diff --git a/doc/fsdk/html/open.png b/doc/fsdk/html/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/doc/fsdk/html/open.png differ diff --git a/doc/fsdk/html/resize.js b/doc/fsdk/html/resize.js new file mode 100644 index 0000000..a80dece --- /dev/null +++ b/doc/fsdk/html/resize.js @@ -0,0 +1,93 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + }); +} + + diff --git a/doc/fsdk/html/search/all_61.html b/doc/fsdk/html/search/all_61.html new file mode 100644 index 0000000..b8328c6 --- /dev/null +++ b/doc/fsdk/html/search/all_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_61.js b/doc/fsdk/html/search/all_61.js new file mode 100644 index 0000000..4e61f95 --- /dev/null +++ b/doc/fsdk/html/search/all_61.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['acquire',['acquire',['../structfsdk_1_1_ref.html#a5d1295bb45a634e8907e6f3ce891e93b',1,'fsdk::Ref::acquire()'],['../namespacefsdk.html#a95e1cb77fe5e1fb43f0f0d671f049234',1,'fsdk::acquire()']]], + ['acquire_5fas',['acquire_as',['../namespacefsdk.html#a6d4392e13b71ae10f59aa4173a5f449b',1,'fsdk']]], + ['activatelicense',['activateLicense',['../group___core_group.html#ga53c35949048b783d461b35d554b8f6d0',1,'fsdk::activateLicense(ILicense *license, const char *configPath) noexcept'],['../group___core_group.html#gac6fffdb9d8e070ac8bc8a0515a0fde27',1,'fsdk::activateLicense(ILicense *license, ISettingsProvider *settings) noexcept']]], + ['add',['add',['../structfsdk_1_1_i_descriptor_batch.html#acdebdf5cd4b73082fb1f69b7c3673b3e',1,'fsdk::IDescriptorBatch::add(IDescriptor *descriptor) noexcept=0'],['../structfsdk_1_1_i_descriptor_batch.html#a61596b9c2071cf35b9f7b36f78338b31',1,'fsdk::IDescriptorBatch::add(IDescriptorBatch *batch, uint32_t offset=0) noexcept=0'],['../structfsdk_1_1_i_descriptor_batch.html#ab13b6d9a8bc83a2319a2df12ea8fb385',1,'fsdk::IDescriptorBatch::add(IDescriptorBatch *batch, uint32_t offset, uint32_t count) noexcept=0']]], + ['adjust',['adjust',['../structfsdk_1_1_base_rect.html#ab87b40ffe339e5f9f1140a17f3d102bf',1,'fsdk::BaseRect']]], + ['adjusted',['adjusted',['../structfsdk_1_1_base_rect.html#ab984f957869ca6d59810885178e42a25',1,'fsdk::BaseRect']]], + ['ags',['ags',['../structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#ad62dfcec240364328eff4eb65b75ba72',1,'fsdk::IBestShotQualityEstimator::EstimationResult']]], + ['alive',['Alive',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56abd9f7c5d6ab4201b138a3e51dab7056f',1,'fsdk::LivenessOneShotRGBEstimation']]], + ['allocate',['allocate',['../structfsdk_1_1_image.html#aef4ba8f782d69628ffaffc4da6ed970f',1,'fsdk::Image']]], + ['append',['append',['../structfsdk_1_1_sizer.html#adc34d459d74906d4e2a8e8efeffe1339',1,'fsdk::Sizer::append(size_t bytes) noexcept'],['../structfsdk_1_1_sizer.html#ab278930212c03f5f2dba82281b2b8a63',1,'fsdk::Sizer::append(const Sizer &other) noexcept']]], + ['appendbatch',['appendBatch',['../structfsdk_1_1_i_dynamic_descriptor_storage.html#acee6a3d1822e97dad564278715b3a596',1,'fsdk::IDynamicDescriptorStorage']]], + ['appenddescriptor',['appendDescriptor',['../structfsdk_1_1_i_dynamic_descriptor_storage.html#a78a1d8242a8574bcde70c070602bc1fa',1,'fsdk::IDynamicDescriptorStorage']]], + ['appendinvalidroot',['AppendInvalidRoot',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a29ebf8fe305fd42de0b208c9dc226559',1,'fsdk::ISettingsProvider']]], + ['archiveread',['ArchiveRead',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a475e42b82c23aaaa94f66c43f80a14d1',1,'fsdk::ISerializableObject']]], + ['archivewrite',['ArchiveWrite',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a5b9364e023e7cee301db9754a421d258',1,'fsdk::ISerializableObject']]], + ['as',['as',['../structfsdk_1_1_ref.html#a74485eedefcd2c2f032a61bce36a2492',1,'fsdk::Ref']]], + ['asbool',['asBool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a81865a1f56ef1450a47de5d8e8866c6d',1,'fsdk::ISettingsProvider::Value']]], + ['asfloat',['asFloat',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a6070b50e16d3cbcd5a49c018b6d631c8',1,'fsdk::ISettingsProvider::Value']]], + ['asint',['asInt',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a9dc95a2a7f10e8860915a14565a86f73',1,'fsdk::ISettingsProvider::Value']]], + ['aspoint2f',['asPoint2f',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a89993c2d966d24f4d8f1800d25af4071',1,'fsdk::ISettingsProvider::Value']]], + ['aspoint2i',['asPoint2i',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a62b3eff07e0687047a65e18939f4a1af',1,'fsdk::ISettingsProvider::Value']]], + ['asrect',['asRect',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a320c5395ac81284ee738283ef07f6f32',1,'fsdk::ISettingsProvider::Value']]], + ['assign',['assign',['../structfsdk_1_1_ref.html#aed37366a7149bed9a7d7c322bd7bef91',1,'fsdk::Ref']]], + ['assize',['asSize',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ac401f96faea0d11e79f92e66416e560d',1,'fsdk::ISettingsProvider::Value']]], + ['asstring',['asString',['../structfsdk_1_1_i_settings_provider_1_1_value.html#acf75100534bf1b7c7d9536ace5b8dca8',1,'fsdk::ISettingsProvider::Value']]], + ['async',['Async',['../namespacefsdk.html#a0f4cbbc8c61f0127bd75695e76869860a24aa4117da86c41684ad25742832dfa6',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/all_62.html b/doc/fsdk/html/search/all_62.html new file mode 100644 index 0000000..281723e --- /dev/null +++ b/doc/fsdk/html/search/all_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_62.js b/doc/fsdk/html/search/all_62.js new file mode 100644 index 0000000..8b80699 --- /dev/null +++ b/doc/fsdk/html/search/all_62.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['b8g8r8',['B8G8R8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a9bda0cc528d54cecc7f8ec2a3b3ad5c8',1,'fsdk::Format']]], + ['b8g8r8x8',['B8G8R8X8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a2c186c232b67f3d47add72abea686242',1,'fsdk::Format']]], + ['baserect',['BaseRect',['../structfsdk_1_1_base_rect.html',1,'fsdk']]], + ['baserect',['BaseRect',['../structfsdk_1_1_base_rect.html#a4a55ea050c7506e3e9c9540e010285e4',1,'fsdk::BaseRect::BaseRect() noexcept'],['../structfsdk_1_1_base_rect.html#a3699859a25f6bcb74baad0d20973447e',1,'fsdk::BaseRect::BaseRect(Type x_, Type y_, Type w_, Type h_) noexcept'],['../structfsdk_1_1_base_rect.html#ab49e0cf0bf9f89093e589466036dc275',1,'fsdk::BaseRect::BaseRect(const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexcept'],['../structfsdk_1_1_base_rect.html#a0cd90fea55248ecf80cfaec5df89b580',1,'fsdk::BaseRect::BaseRect(const BaseRect &other) noexcept']]], + ['baserect_3c_20float_20_3e',['BaseRect< float >',['../structfsdk_1_1_base_rect.html',1,'fsdk']]], + ['baserect_3c_20int_20_3e',['BaseRect< int >',['../structfsdk_1_1_base_rect.html',1,'fsdk']]], + ['batchedinternalerror',['BatchedInternalError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a06ac3f10514f6b229599e88b2ee7d2bf',1,'fsdk']]], + ['batchfull',['BatchFull',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a04b15c03f3f8d523b85b4698e1bc56cb',1,'fsdk::IDescriptorBatch']]], + ['begin',['begin',['../classfsdk_1_1_span.html#a6dd554d60d4ad6c1b9d383b92d306d4d',1,'fsdk::Span::begin()'],['../classfsdk_1_1_span.html#a4ff1cfe464f87e22ba38ffdee05b2247',1,'fsdk::Span::begin() const ']]], + ['bottom',['bottom',['../structfsdk_1_1_base_rect.html#aeaa8815528ba0d03fa21e3b7e77f1bd1',1,'fsdk::BaseRect']]], + ['bottomright',['bottomRight',['../structfsdk_1_1_base_rect.html#ad547735b6c914c1ccffdc453b4b60e16',1,'fsdk::BaseRect']]], + ['broken',['Broken',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82bac98dbc22f49f1b4a644307551924f8da',1,'fsdk']]], + ['bufferisempty',['BufferIsEmpty',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a3552409a4c6111770f0d160447285b17',1,'fsdk']]], + ['bufferisfull',['BufferIsFull',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a3557af19581eb994d3e1b9dbc465226d',1,'fsdk']]], + ['bufferisnull',['BufferIsNull',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6aec4c088621f5d17412b2d1c55befb5ff',1,'fsdk']]], + ['buildindex',['buildIndex',['../structfsdk_1_1_i_index_builder.html#a7416163824700dcead008ac25011a80f',1,'fsdk::IIndexBuilder']]], + ['buildindexasync',['buildIndexAsync',['../structfsdk_1_1_i_index_builder.html#a9893a17a91bba8a2f19d3745b6757528',1,'fsdk::IIndexBuilder']]] +]; diff --git a/doc/fsdk/html/search/all_63.html b/doc/fsdk/html/search/all_63.html new file mode 100644 index 0000000..a8fe36d --- /dev/null +++ b/doc/fsdk/html/search/all_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_63.js b/doc/fsdk/html/search/all_63.js new file mode 100644 index 0000000..6c84de3 --- /dev/null +++ b/doc/fsdk/html/search/all_63.js @@ -0,0 +1,42 @@ +var searchData= +[ + ['calcdistance',['calcDistance',['../structfsdk_1_1_i_descriptor_matcher.html#a686369ae167cf3a4829845a37abfa620',1,'fsdk::IDescriptorMatcher']]], + ['calcsimilarity',['calcSimilarity',['../structfsdk_1_1_i_descriptor_matcher.html#a5f0fa94452bc1690b1f687c0ddd80c98',1,'fsdk::IDescriptorMatcher']]], + ['cancel',['cancel',['../classfsdk_1_1_future.html#aaaed4d6e1ad65c21ac4ac4e547e93f53',1,'fsdk::Future::cancel()'],['../classfsdk_1_1_promise.html#a7a178efaed788e336ed5305580737e4a',1,'fsdk::Promise::cancel()']]], + ['canceled',['Canceled',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82ba0e22fe7d45f8e5632a4abf369b24e29c',1,'fsdk']]], + ['cancelrequested',['CancelRequested',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82badc5498d31e5fd9e499391ff2b26bfff8',1,'fsdk']]], + ['cbegin',['cbegin',['../classfsdk_1_1_span.html#a75d776c2cd247ee09dca89c7b76ef95e',1,'fsdk::Span']]], + ['cend',['cend',['../classfsdk_1_1_span.html#a095a8f1430c6ba5f9c596af9fa88c3e6',1,'fsdk::Span']]], + ['center',['center',['../structfsdk_1_1_base_rect.html#a1e230d4202410675172acfe42e565ee0',1,'fsdk::BaseRect']]], + ['centerscale',['centerScale',['../namespacefsdk.html#abdc45b750210653e21f98c9f2ec54f6f',1,'fsdk']]], + ['checkfeatureid',['checkFeatureId',['../structfsdk_1_1_i_license.html#aec5f52e8c189d5cfd99cc13ea1badb51',1,'fsdk::ILicense']]], + ['clear',['clear',['../structfsdk_1_1_i_data_storage_object.html#addfae1943b82b44900f1c2f318a05d53',1,'fsdk::IDataStorageObject::clear()'],['../structfsdk_1_1_i_settings_provider.html#a80367779f65239e656e0a20a6204224a',1,'fsdk::ISettingsProvider::clear()']]], + ['clearface',['ClearFace',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a3089c16be9e8c5e87438a2ceb8d10a91',1,'fsdk']]], + ['clearfacewithmaskunderchin',['ClearFaceWithMaskUnderChin',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0aca01855f627a6f084bb16fbbf1571021',1,'fsdk']]], + ['cleartaskqueue',['clearTaskQueue',['../structfsdk_1_1_i_async_context.html#a8db1ec0dbf3c38ea731a76524208f8f9',1,'fsdk::IAsyncContext']]], + ['clone',['clone',['../structfsdk_1_1_image.html#a523b0c28a4003c75c3907d0c93110493',1,'fsdk::Image']]], + ['closed',['Closed',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a03f4a47830f97377a35321051685071e',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['computepitch',['computePitch',['../structfsdk_1_1_format.html#aea650b3b3a3256b34cf1284c53262899',1,'fsdk::Format']]], + ['convert',['convert',['../structfsdk_1_1_image.html#ab0c8024817b8e634f5ec18f1a0f08916',1,'fsdk::Image::convert(Image &dest, int x, int y, int width, int height, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a566dd9391571379fed5e1da2ed9975c8',1,'fsdk::Image::convert(Image &dest, const Point2i &origin, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a3ddea03d5ee948a5c2d0aa81a4fe8027',1,'fsdk::Image::convert(Image &dest, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a9a8a6abf162c095d6f1e62919cf4dabf',1,'fsdk::Image::convert(Image &dest, const Rect &rect, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a10e36f6ea8f5e293f7bd58658ecb1653',1,'fsdk::Image::convert(Image &dest, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../namespacefsdk.html#a49f021ac48d9fd75d78f11c14461da3e',1,'fsdk::convert()']]], + ['coords',['coords',['../structfsdk_1_1_base_rect.html#a89f1a981d17f0059a2ca91e7ea09c534',1,'fsdk::BaseRect']]], + ['correctmask',['CorrectMask',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0ad2c57890c7be3050514156461fed700d',1,'fsdk']]], + ['countofindexeddescriptors',['countOfIndexedDescriptors',['../structfsdk_1_1_i_dynamic_index.html#a39700ae4d6cd22ea3d8c8b4e94af0f3b',1,'fsdk::IDynamicIndex']]], + ['create',['create',['../structfsdk_1_1_image.html#a1596737bcf2aea4a1c8fc336f6f1b182',1,'fsdk::Image::create(int width, int height, Format format, bool cleanup=true, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#aafa5e102bd9b4ccda1f827f1a12499db',1,'fsdk::Image::create(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a99fd0c30cf7d2fd3c26ff6f1771a356b',1,'fsdk::Image::create(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#aeb3e38807e56a77419a073eea1e6d2ec',1,'fsdk::Image::create(const fsdk::Image &source, MemoryResidence residence, int deviceId=0) noexcept']]], + ['createagsestimator',['createAGSEstimator',['../group___core_group.html#ga7a8dada6aaffd748670b10af9b046a18',1,'fsdk::IFaceEngineMobile']]], + ['createbestshotqualityestimator',['createBestShotQualityEstimator',['../group___core_group.html#ga82e87dfd7117d3763343ae6078009efb',1,'fsdk::IFaceEngineMobile']]], + ['createdescriptor',['createDescriptor',['../group___core_group.html#gae1c6db8b544293bc9d766179e60e1c9a',1,'fsdk::IFaceEngineMobile::createDescriptor(uint32_t version=0) noexcept=0'],['../group___core_group.html#ga7c21f0d0ebda0e2781587c4997d2a074',1,'fsdk::IFaceEngineMobile::createDescriptor(IArchive *archive, uint32_t flags=0) noexcept=0']]], + ['createdescriptorbatch',['createDescriptorBatch',['../group___core_group.html#gaabd68d9f71a2fec2fbf5dce797f3f73f',1,'fsdk::IFaceEngineMobile']]], + ['createdetector',['createDetector',['../group___core_group.html#gab4e15bad5b0652a07740dd42c3f94b0e',1,'fsdk::IFaceEngineMobile']]], + ['createextractor',['createExtractor',['../group___core_group.html#ga6d171cca36e4bad1c168446af23bc1f7',1,'fsdk::IFaceEngineMobile']]], + ['createeyeestimator',['createEyeEstimator',['../group___core_group.html#gaa34107647b69d70c58a3af02e0048c12',1,'fsdk::IFaceEngineMobile']]], + ['createfaceenginemobile',['createFaceEngineMobile',['../group___core_group.html#gadbdeae1a7389e47b9306ab1101602e5f',1,'fsdk']]], + ['createglassesestimator',['createGlassesEstimator',['../group___core_group.html#ga94b00826d57a09e377fb6c1129b495e9',1,'fsdk::IFaceEngineMobile']]], + ['createheadposeestimator',['createHeadPoseEstimator',['../group___core_group.html#ga6566961928a6f4baa9894df55e1c7c42',1,'fsdk::IFaceEngineMobile']]], + ['createlivenessoneshotrgbestimator',['createLivenessOneShotRGBEstimator',['../group___core_group.html#ga4f583287b3fe2c550aec979adc633fa6',1,'fsdk::IFaceEngineMobile']]], + ['creatematcher',['createMatcher',['../group___core_group.html#ga7201c2b88cc0ea2c205984980b15d907',1,'fsdk::IFaceEngineMobile']]], + ['createmedicalmaskestimator',['createMedicalMaskEstimator',['../group___core_group.html#gaf71707f01d6c22abce1c3b04c58e698d',1,'fsdk::IFaceEngineMobile']]], + ['createqualityestimator',['createQualityEstimator',['../group___core_group.html#ga48d0e10395506ba4632304c49d0e076a',1,'fsdk::IFaceEngineMobile']]], + ['createsettingsprovider',['createSettingsProvider',['../group___core_group.html#gabaa648d3852a1059c82f1d8462e18e9d',1,'fsdk']]], + ['createtransformation',['createTransformation',['../structfsdk_1_1_i_warper.html#a8c4565064f4ff437b90d3784bcf256ca',1,'fsdk::IWarper']]], + ['createwarper',['createWarper',['../group___core_group.html#ga8f4b3b0e8896608c769e841fca849e3d',1,'fsdk::IFaceEngineMobile']]] +]; diff --git a/doc/fsdk/html/search/all_64.html b/doc/fsdk/html/search/all_64.html new file mode 100644 index 0000000..b415c0e --- /dev/null +++ b/doc/fsdk/html/search/all_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_64.js b/doc/fsdk/html/search/all_64.js new file mode 100644 index 0000000..dfa405b --- /dev/null +++ b/doc/fsdk/html/search/all_64.js @@ -0,0 +1,39 @@ +var searchData= +[ + ['data',['Data',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html',1,'fsdk::ISettingsProvider::Value']]], + ['data',['data',['../structfsdk_1_1_sub_image.html#a60484aef73eab8df8b2fc8c20ef5f9fe',1,'fsdk::SubImage::data()'],['../classfsdk_1_1_span.html#afb750480f6d63afa1bd5607bb820f03f',1,'fsdk::Span::data()']]], + ['datatype',['DataType',['../classfsdk_1_1_future.html#a38f572195de92595cbc6c847fb7470ec',1,'fsdk::Future::DataType()'],['../classfsdk_1_1_promise.html#a289da90b035b98d71ff87b366523d970',1,'fsdk::Promise::DataType()']]], + ['dct_5fcenter',['DCT_CENTER',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da763dab49108298d2d502a9749e2628e9',1,'fsdk']]], + ['dct_5fcenter_5fand_5fconfidence',['DCT_CENTER_AND_CONFIDENCE',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da113aa401fd3bbad089894a3cf8fd06b6',1,'fsdk']]], + ['dct_5fconfidence',['DCT_CONFIDENCE',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da8767054041a6b3288648b7a403ca7b17',1,'fsdk']]], + ['dct_5fsize',['DCT_SIZE',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923dab87d650f70c0d623b1419a50c24ce590',1,'fsdk']]], + ['deallocate',['deallocate',['../structfsdk_1_1_image.html#a750cb313b381b4245a1e51e34b18ae44',1,'fsdk::Image']]], + ['declare_5fsmartptr',['DECLARE_SMARTPTR',['../group___core_group.html#gac4832e274cc0ba20ce33c3e34503a063',1,'Def.h']]], + ['def_2eh',['Def.h',['../_def_8h.html',1,'']]], + ['default',['Default',['../structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79a6e4800456cd37d67c1cdcfecaac8afab',1,'fsdk::ISerializableObject']]], + ['desc',['Desc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html',1,'fsdk::ISettingsProvider']]], + ['desc',['Desc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#ac5b3c770ae3ec11839e56ba4b5bb1270',1,'fsdk::ISettingsProvider::Desc::Desc() noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_desc.html#a5f4b610fa970c3719789a0413c9eab4a',1,'fsdk::ISettingsProvider::Desc::Desc(const char *desc) noexcept']]], + ['descriptorbyindex',['descriptorByIndex',['../structfsdk_1_1_i_static_descriptor_storage.html#ad7b5bde8ec689c73656628920b8aebad',1,'fsdk::IStaticDescriptorStorage']]], + ['descriptorid',['DescriptorId',['../namespacefsdk.html#a26299f35531f7c5d4713b627c70248cb',1,'fsdk']]], + ['descriptor_20extractor',['Descriptor extractor',['../group___descriptor_processing_group.html',1,'']]], + ['descriptortype',['DescriptorType',['../group___descriptor_processing_group.html#ga1cd2e0e27848b58fe8d39becd00d6186',1,'fsdk']]], + ['descriptorversion',['DescriptorVersion',['../group___descriptor_processing_group.html#gaa796beff9fb761301be4e46b1a2412ab',1,'fsdk']]], + ['detailedmasktype',['DetailedMaskType',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0',1,'fsdk']]], + ['detect',['detect',['../structfsdk_1_1_i_detector.html#abc50559be5a5f781d515ff37c0569672',1,'fsdk::IDetector::detect()'],['../structfsdk_1_1_i_human_detector.html#a8f7c76c7487445b59e498b49a1e3b216',1,'fsdk::IHumanDetector::detect()']]], + ['detectasync',['detectAsync',['../structfsdk_1_1_i_detector.html#a46857380f1a9b542b99eed236d32c29c',1,'fsdk::IDetector']]], + ['detection',['Detection',['../structfsdk_1_1_detection.html',1,'fsdk']]], + ['detection',['Detection',['../structfsdk_1_1_detection.html#a11f6159ee525572a4d4d1ec4e976cc68',1,'fsdk::Detection::Detection() noexcept'],['../structfsdk_1_1_detection.html#a223af77155d7a4d1f2a9cf67abfb612d',1,'fsdk::Detection::Detection(FloatRect rect, float score=1.f) noexcept'],['../structfsdk_1_1_detection.html#a61cc169cc9584adda10e9670dd3db96b',1,'fsdk::Detection::Detection(FloatRect rect, int width, int height, float score=1.f) noexcept'],['../structfsdk_1_1_detection.html#a69b29a97fe418bd6eae5523fb76c8b0f',1,'fsdk::Detection::Detection(FloatRect rect, Rect imageRect, float score=1.f) noexcept']]], + ['detectioncomparertype',['DetectionComparerType',['../group___detector_group.html#ga7d021e05a5d867ffe947ffb40aa0923d',1,'fsdk']]], + ['detectiontype',['DetectionType',['../group___detector_group.html#ga29cb345293d30553e7af41260cede7ad',1,'fsdk']]], + ['detectone',['detectOne',['../structfsdk_1_1_i_detector.html#a407bdaacb3a35f11a6b41c2bdf2d3949',1,'fsdk::IDetector::detectOne()'],['../structfsdk_1_1_i_human_detector.html#a68b933f48f92ea3b1aa1986e3d8b30d8',1,'fsdk::IHumanDetector::detectOne()']]], + ['deviceclass',['DeviceClass',['../namespacefsdk.html#a3264388e1c930c89a6679c81b63ad0be',1,'fsdk']]], + ['distance',['distance',['../structfsdk_1_1_matching_result.html#a51e3137806e9938aa3b70557cbf1628b',1,'fsdk::MatchingResult']]], + ['dt_5fall',['DT_ALL',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7ada1be6a902d3612661d3200257c69323fa',1,'fsdk']]], + ['dt_5fbbox',['DT_BBOX',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7adafc1e9f167d5d1be9899f6732bc6f2110',1,'fsdk']]], + ['dt_5fface',['DT_FACE',['../group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186adfd064a1bc06eda4ce5ad8cbb32ceb05',1,'fsdk']]], + ['dt_5fhuman',['DT_HUMAN',['../group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186a55aa0ee5f96f43689faa8dc86966340e',1,'fsdk']]], + ['dt_5flandmarks5',['DT_LANDMARKS5',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7ada3a1cef8a2d392799c66fe948b3cee9f4',1,'fsdk']]], + ['dt_5flandmarks68',['DT_LANDMARKS68',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7ada508e9b2f679d5758e9bf979610dbb1c5',1,'fsdk']]], + ['dv_5fmin_5fface_5fdescriptor_5fversion',['DV_MIN_FACE_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba1dfe29faa054d00d13d992fdfcffaef4',1,'fsdk']]], + ['dv_5fmin_5fhuman_5fdescriptor_5fversion',['DV_MIN_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba663094a3a39d591eca695b631243f71a',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/all_65.html b/doc/fsdk/html/search/all_65.html new file mode 100644 index 0000000..49e2cae --- /dev/null +++ b/doc/fsdk/html/search/all_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_65.js b/doc/fsdk/html/search/all_65.js new file mode 100644 index 0000000..5a705c6 --- /dev/null +++ b/doc/fsdk/html/search/all_65.js @@ -0,0 +1,46 @@ +var searchData= +[ + ['empty',['empty',['../classfsdk_1_1_span.html#a16429259247be701ed06e956e4e423b3',1,'fsdk::Span::empty()'],['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82bace2c8aed9c2fa0cfbed56cbda4d8bf07',1,'fsdk::Empty()']]], + ['enablejustinbetamode',['EnableJustInBetaMode',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a135fc410a8fc490b3531c355f8c30461',1,'fsdk']]], + ['end',['end',['../classfsdk_1_1_span.html#a55f6a9fc7fa9f503d13d4f5cb30023b8',1,'fsdk::Span::end()'],['../classfsdk_1_1_span.html#af983e470cc40648ca32aa470312b6bb0',1,'fsdk::Span::end() const ']]], + ['endelementmismatch',['EndElementMismatch',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a491cc2103be52c3b503686a792baf206',1,'fsdk::ISettingsProvider']]], + ['entry',['Entry',['../structfsdk_1_1_i_settings_provider_1_1_entry.html',1,'fsdk::ISettingsProvider']]], + ['entry',['Entry',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a2a436c5de00e2ae0972f2678d6e1d35c',1,'fsdk::ISettingsProvider::Entry::Entry() noexcept=default'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#aa56d52bb2b36a95778b68f9ef3d5f37d',1,'fsdk::ISettingsProvider::Entry::Entry(const Desc &desc, Value &&value) noexcept']]], + ['enumtype',['EnumType',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a35a0a5551c5758edc7734354ca82b531',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::EnumType()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a48cc288d6f34cf1f653b309d1451bd94',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::EnumType()']]], + ['equalstrong',['equalStrong',['../structfsdk_1_1_image.html#a22f36f59a67cc867a96686dcf18b8f6d',1,'fsdk::Image']]], + ['equalweak',['equalWeak',['../structfsdk_1_1_image.html#a386e2313d25f5f3107e1a47a347e04d8',1,'fsdk::Image']]], + ['error',['Error',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93',1,'fsdk::IDescriptorBatch::Error()'],['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0',1,'fsdk::ISerializableObject::Error()'],['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5',1,'fsdk::ISettingsProvider::Error()'],['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936',1,'fsdk::Image::Error()'],['../classfsdk_1_1_future.html#a9a5efae2498601862b9514b6d58661c6',1,'fsdk::Future::Error()'],['../classfsdk_1_1_promise.html#ae3660c93bae2da9120c11546f132a87e',1,'fsdk::Promise::Error()']]], + ['errortraits',['ErrorTraits',['../structfsdk_1_1_error_traits.html',1,'fsdk']]], + ['errortraits_3c_20fsdkerror_20_3e',['ErrorTraits< FSDKError >',['../structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20futureerror_20_3e',['ErrorTraits< FutureError >',['../structfsdk_1_1_error_traits_3_01_future_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20idescriptorbatch_3a_3aerror_20_3e',['ErrorTraits< IDescriptorBatch::Error >',['../structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20image_3a_3aerror_20_3e',['ErrorTraits< Image::Error >',['../structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20iserializableobject_3a_3aerror_20_3e',['ErrorTraits< ISerializableObject::Error >',['../structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20isettingsprovider_3a_3aerror_20_3e',['ErrorTraits< ISettingsProvider::Error >',['../structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20multierror_3c_20e0_2c_20e1_20_3e_20_3e',['ErrorTraits< MultiError< E0, E1 > >',['../structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html',1,'fsdk']]], + ['errortraits_3c_20promiseerror_20_3e',['ErrorTraits< PromiseError >',['../structfsdk_1_1_error_traits_3_01_promise_error_01_4.html',1,'fsdk']]], + ['errortype',['ErrorType',['../structfsdk_1_1_result.html#a38653c59ecb8bfaa04caa5a77f4df3f0',1,'fsdk::Result']]], + ['estimate',['estimate',['../structfsdk_1_1_i_a_g_s_estimator.html#aa4a35eaf70d50cc4b1783546ed6a4b87',1,'fsdk::IAGSEstimator::estimate(const Image &image, const Detection &detection) const noexcept=0'],['../structfsdk_1_1_i_a_g_s_estimator.html#a45dea130e106e6a8551006bbb9c1a165',1,'fsdk::IAGSEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< float > out) const noexcept=0'],['../structfsdk_1_1_i_best_shot_quality_estimator.html#a5519ff5a754a1d0040cf1953f830c8a4',1,'fsdk::IBestShotQualityEstimator::estimate(const Image &image, const Detection &detection, const EstimationRequest request, EstimationResult &result) const noexcept=0'],['../structfsdk_1_1_i_best_shot_quality_estimator.html#a290da1a78d37eafc2b4d7bb30f30ea46',1,'fsdk::IBestShotQualityEstimator::estimate(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< EstimationResult > results) const noexcept=0'],['../structfsdk_1_1_i_eye_estimator.html#aecb52fbe13f80a38b9c48e760d42d243',1,'fsdk::IEyeEstimator::estimate(const Image &warp, const EyeCropper::EyesRects &eyeRects, EyesEstimation &eyesEstimation) const noexcept=0'],['../structfsdk_1_1_i_eye_estimator.html#ae44bc0302755581d81733c5bc7ed83ef',1,'fsdk::IEyeEstimator::estimate(Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< EyesEstimation > eyesEstimations) const noexcept=0'],['../structfsdk_1_1_i_glasses_estimator.html#af53d83b93974db797a78623420369f3c',1,'fsdk::IGlassesEstimator::estimate(const Image &warp) const noexcept=0'],['../structfsdk_1_1_i_glasses_estimator.html#aecd2ff74057c6d5e1e587080b5981eed',1,'fsdk::IGlassesEstimator::estimate(Span< const Image > warps, Span< GlassesEstimation > glassesEstimations) const noexcept=0'],['../structfsdk_1_1_i_head_pose_estimator.html#aed7809cea5e183b63ac017e48fc7885c',1,'fsdk::IHeadPoseEstimator::estimate(const Landmarks68 &landmarks, HeadPoseEstimation &out) const noexcept=0'],['../structfsdk_1_1_i_head_pose_estimator.html#af943ad9ab70f158a03624c3cec6de47e',1,'fsdk::IHeadPoseEstimator::estimate(const Image &image, const Detection &detection, HeadPoseEstimation &out) const noexcept=0'],['../structfsdk_1_1_i_head_pose_estimator.html#a235406bf3e8aa9bf8b89e06b72f21a50',1,'fsdk::IHeadPoseEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< HeadPoseEstimation > out) const noexcept=0'],['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a6b38d2e4cd89f319b1a21a3ada06f07c',1,'fsdk::ILivenessOneShotRGBEstimator::estimate(const Image &image, const Detection &detection, const Landmarks5 &landmarks5, LivenessOneShotRGBEstimation &estimation, const float qualityThreshold=-1.f) const noexcept=0'],['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a1c4668c9963ceb1fb7db01b688968688',1,'fsdk::ILivenessOneShotRGBEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< const Landmarks5 > landmarks5, Span< LivenessOneShotRGBEstimation > estimations, const float qualityThreshold=-1.f, LivenessOneShotRGBEstimation *aggregation=nullptr) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a3b1b2079ddd9fcb2ba4214786672f2ad',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &warp, MedicalMaskEstimation &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a44bd4605cbb30233f9917e39abcf0683',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &warp, MedicalMaskEstimationExtended &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#ad3c72d0d6cf3eb3e72790e19f201cbc7',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &image, const Detection &detection, MedicalMaskEstimation &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#af4f0b22091b8425dad74219839283d51',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &image, const Detection &detection, MedicalMaskEstimationExtended &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a6b4ea30e87d87c91993ff44c32d14ab8',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > warps, Span< MedicalMaskEstimation > estimations) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#ae05d68e52524bbddb94a71bb22c1a547',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > warps, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a486ff6fc49bf7575114abb6ff0627ec4',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimation > estimations) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#ac923e26a07ddf1c26370d36f0acd2e56',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#afe1b7b67b42d2cbac44f2ac244620ef0',1,'fsdk::IQualityEstimator::estimate(const Image &warp, Quality &quality) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#aae851d39ce2253e18d0a8ccbc45f6d15',1,'fsdk::IQualityEstimator::estimate(Span< const Image > warps, Span< Quality > quality) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#a76dbb486ab7b5c2a8bf7e632aacb1aeb',1,'fsdk::IQualityEstimator::estimate(const Image &warp, SubjectiveQuality &quality) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#a2b512a5f2af69901f10124f3af55d73c',1,'fsdk::IQualityEstimator::estimate(Span< const Image > warps, Span< SubjectiveQuality > quality) const noexcept=0']]], + ['estimateags',['estimateAGS',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfac7f36c8245ae1f8416743d0d26fa3845',1,'fsdk::IBestShotQualityEstimator']]], + ['estimateall',['estimateAll',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa0a22c4c7f110c98d9f93506465cc8402',1,'fsdk::IBestShotQualityEstimator']]], + ['estimateasync',['estimateAsync',['../structfsdk_1_1_i_best_shot_quality_estimator.html#a62415905ea9018bc3f6696652837cfc1',1,'fsdk::IBestShotQualityEstimator']]], + ['estimateheadpose',['estimateHeadPose',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa027444bb21a0391ad968200b23d29ad6',1,'fsdk::IBestShotQualityEstimator']]], + ['estimationbatch',['EstimationBatch',['../structfsdk_1_1_i_best_shot_quality_estimator.html#a8a8235d79f299897ea594055891b6c55',1,'fsdk::IBestShotQualityEstimator']]], + ['estimationerror',['EstimationError',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478a857243da7272c2136918e4deb1668880',1,'fsdk']]], + ['estimationrequest',['EstimationRequest',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdf',1,'fsdk::IBestShotQualityEstimator']]], + ['estimationresult',['EstimationResult',['../structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html',1,'fsdk::IBestShotQualityEstimator']]], + ['exception',['Exception',['../structfsdk_1_1_exception.html',1,'fsdk']]], + ['executionpolicy',['ExecutionPolicy',['../namespacefsdk.html#a0f4cbbc8c61f0127bd75695e76869860',1,'fsdk']]], + ['extract',['extract',['../structfsdk_1_1_image.html#add9bb121cb86eb35e669b6321a267926',1,'fsdk::Image::extract(int x, int y, int width, int height) const noexcept'],['../structfsdk_1_1_image.html#a3f9f9c61324959b028b645b0a873ae21',1,'fsdk::Image::extract(const Rect &rect) const noexcept'],['../structfsdk_1_1_image.html#a4cd2e1c9c500087bcfb65f750cef09e4',1,'fsdk::Image::extract(const Size &size) const noexcept'],['../structfsdk_1_1_image.html#a01e37e8244745a1645c7f44356c98cfa',1,'fsdk::Image::extract(const Point2i &origin, const Size &size) const noexcept']]], + ['extractfromwarpedimage',['extractFromWarpedImage',['../structfsdk_1_1_i_descriptor_extractor.html#ae6fdfb87662991d62af362b06982728e',1,'fsdk::IDescriptorExtractor']]], + ['extractfromwarpedimagebatch',['extractFromWarpedImageBatch',['../structfsdk_1_1_i_descriptor_extractor.html#a3bdb3f914db81bef8b849e4973566f88',1,'fsdk::IDescriptorExtractor::extractFromWarpedImageBatch(Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const noexcept=0'],['../structfsdk_1_1_i_descriptor_extractor.html#a5c1d36e3c3362aa8160bcc89933bcf1b',1,'fsdk::IDescriptorExtractor::extractFromWarpedImageBatch(Span< const Image > warps, IDescriptorBatch *descriptorBatch, Span< float > garbageScoreBatch) const noexcept=0']]], + ['extractfromwarpedimagebatchasync',['extractFromWarpedImageBatchAsync',['../structfsdk_1_1_i_descriptor_extractor.html#af35cadc879d6ceb1429a95c4fee6509d',1,'fsdk::IDescriptorExtractor']]], + ['eyeattributes',['EyeAttributes',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html',1,'fsdk::EyesEstimation']]], + ['eyecropper',['EyeCropper',['../structfsdk_1_1_eye_cropper.html',1,'fsdk']]], + ['eyeglasses',['EyeGlasses',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478a1e4818afb6f257ad958e2f8636b35749',1,'fsdk']]], + ['eyelid',['eyelid',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a507fc6337b07a0e73d0d1bda084ebf2c',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['eyelidlandmarks',['EyelidLandmarks',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a377631250d385dd4620cff0c265dc02c',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['eyelidlandmarkscount',['eyelidLandmarksCount',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#af0026fefb47cb591f0c4524deae5fd11',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['eyesestimation',['EyesEstimation',['../structfsdk_1_1_eyes_estimation.html',1,'fsdk']]], + ['eyesrects',['EyesRects',['../structfsdk_1_1_eye_cropper_1_1_eyes_rects.html',1,'fsdk::EyeCropper']]] +]; diff --git a/doc/fsdk/html/search/all_66.html b/doc/fsdk/html/search/all_66.html new file mode 100644 index 0000000..6aa068f --- /dev/null +++ b/doc/fsdk/html/search/all_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_66.js b/doc/fsdk/html/search/all_66.js new file mode 100644 index 0000000..e24ee01 --- /dev/null +++ b/doc/fsdk/html/search/all_66.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['face_20detector_2e',['Face detector.',['../group___detector_group.html',1,'']]], + ['face',['Face',['../structfsdk_1_1_face.html',1,'fsdk']]], + ['face_5fdet_5fcount',['FACE_DET_COUNT',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca53e96ce2b5c1880ce5588a4b099eb24b',1,'fsdk']]], + ['face_5fdet_5fdefault',['FACE_DET_DEFAULT',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca908b2d58b338d34863dc56d21474ffc3',1,'fsdk']]], + ['face_5fdet_5fv1',['FACE_DET_V1',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca76b25822675d9312e8decb221ca609ec',1,'fsdk']]], + ['face_5fdet_5fv2',['FACE_DET_V2',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8caed0da3a5db3f97c5eb927a1696de2d65',1,'fsdk']]], + ['face_5fdet_5fv3',['FACE_DET_V3',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8cafd6028fd9b68847f58ab7a089cedd57d',1,'fsdk']]], + ['facebatchresult',['FaceBatchResult',['../structfsdk_1_1_i_detector.html#ad1a6d103e55a64c4e0b4eb02478e64cd',1,'fsdk::IDetector']]], + ['faceengine_2eh',['FaceEngine.h',['../_face_engine_8h.html',1,'']]], + ['fail',['fail',['../classfsdk_1_1_promise.html#a0c73e4d84c3e6487d5a7e1f7b0c13ba0',1,'fsdk::Promise']]], + ['failed',['Failed',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82bad7c8c85bf79bbe1b7188497c32c3b0ca',1,'fsdk']]], + ['failedtoinitialize',['FailedToInitialize',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade906b82a6f70f5f75ea0a11da932a36',1,'fsdk::Image']]], + ['failedtoload',['FailedToLoad',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a023fe093cb8dbc5a80d2a2259d4c97a5',1,'fsdk::Image']]], + ['failedtosave',['FailedToSave',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a70fa83b68f2d20d1c607a2864627f13d',1,'fsdk::Image']]], + ['fake',['Fake',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a52a96508c39536f0c2ef43b19a0a1e0e',1,'fsdk::LivenessOneShotRGBEstimation']]], + ['featureexpired',['FeatureExpired',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a84decd8ce021a70aef62a2283ea8d559',1,'fsdk']]], + ['featurenotavailable',['FeatureNotAvailable',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6afb12ff30441dbc154f6d2591169f012c',1,'fsdk']]], + ['filenotfound',['FileNotFound',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a2767828026039e8ba7b38973cbb701f2',1,'fsdk::ISettingsProvider']]], + ['filtredaggregationerror',['FiltredAggregationError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a3e095f1fa338dccd7cc239c47593fd7a',1,'fsdk']]], + ['fingerprinterror',['FingerprintError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a455a3a357ebc7221085d184c157c13a5',1,'fsdk']]], + ['flags',['Flags',['../structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79',1,'fsdk::ISerializableObject']]], + ['float1',['Float1',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947afce0cbbaf3da4fd239865223a2cafd2d',1,'fsdk::ISettingsProvider::Value']]], + ['float1',['Float1',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['float2',['Float2',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947acab9b95fc0f8e22586956c7b2831c742',1,'fsdk::ISettingsProvider::Value']]], + ['float2',['Float2',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['float3',['Float3',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['float3',['Float3',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac1e9d375777e2ca4631b5e4851a8e70c',1,'fsdk::ISettingsProvider::Value']]], + ['float4',['Float4',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['float4',['Float4',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a96cf9d7a2ede9c47b110b3a4178f3401',1,'fsdk::ISettingsProvider::Value']]], + ['format',['Format',['../structfsdk_1_1_format.html',1,'fsdk']]], + ['format',['format',['../structfsdk_1_1_sub_image.html#abe52716506d7e423d133507007d52a89',1,'fsdk::SubImage::format()'],['../structfsdk_1_1_format.html#aa45f2da762d2fce103d97aa803078d84',1,'fsdk::Format::Format() noexcept'],['../structfsdk_1_1_format.html#a9fae615ad7c67630f9546abd6d568175',1,'fsdk::Format::Format(Type type) noexcept']]], + ['frontalfacetype',['FrontalFaceType',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7',1,'fsdk::HeadPoseEstimation']]], + ['fsdk',['fsdk',['../namespacefsdk.html',1,'']]], + ['fsdk_5fapi',['FSDK_API',['../_def_8h.html#a5dc4c3043f171426dafe6fc800218945',1,'Def.h']]], + ['fsdk_5fdeprecated',['FSDK_DEPRECATED',['../structfsdk_1_1_i_license.html#a2909d1bc7946cc82772cfafa2d22c32e',1,'fsdk::ILicense']]], + ['fsdkerror',['FSDKError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6',1,'fsdk']]], + ['fsdkerror_2eh',['FSDKError.h',['../_f_s_d_k_error_8h.html',1,'']]], + ['fulfill',['fulfill',['../classfsdk_1_1_promise.html#a379829f59f04b7694423b3e82d501766',1,'fsdk::Promise']]], + ['fulfilled',['Fulfilled',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82ba2a6de846fd07e369786e3f5b41e20455',1,'fsdk']]], + ['fullmask',['FullMask',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a32950741c2a4db230a8af70867adc378',1,'fsdk']]], + ['functiondetectioncomparer',['FunctionDetectionComparer',['../classfsdk_1_1_function_detection_comparer.html',1,'fsdk']]], + ['future',['Future',['../classfsdk_1_1_future.html',1,'fsdk']]], + ['future',['Future',['../classfsdk_1_1_future.html#a88569ef592c8f9793067cb1139123aaf',1,'fsdk::Future::Future()'],['../classfsdk_1_1_promise.html#accb944e8905435482b8604dfb805d690',1,'fsdk::Promise::future()']]], + ['futureerror',['FutureError',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fb',1,'fsdk']]], + ['futurepromisestate',['FuturePromiseState',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82b',1,'fsdk']]], + ['futureresult',['FutureResult',['../structfsdk_1_1_i_descriptor_extractor.html#a99a4f2d66cd4fc28a69cd02b9348817c',1,'fsdk::IDescriptorExtractor']]] +]; diff --git a/doc/fsdk/html/search/all_67.html b/doc/fsdk/html/search/all_67.html new file mode 100644 index 0000000..a6568a3 --- /dev/null +++ b/doc/fsdk/html/search/all_67.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_67.js b/doc/fsdk/html/search/all_67.js new file mode 100644 index 0000000..205e27b --- /dev/null +++ b/doc/fsdk/html/search/all_67.js @@ -0,0 +1,76 @@ +var searchData= +[ + ['get',['get',['../structfsdk_1_1_ref_base.html#a7ea44dfe520bbe2ced2fe2c023809288',1,'fsdk::RefBase']]], + ['getarea',['getArea',['../structfsdk_1_1_base_rect.html#a91c49a941f8282f45b1ccb46190968b3',1,'fsdk::BaseRect']]], + ['getaspectratio',['getAspectRatio',['../structfsdk_1_1_image.html#a28a2f942184d21b0e4270c30adef7916',1,'fsdk::Image']]], + ['getbitdepth',['getBitDepth',['../structfsdk_1_1_format.html#ae3136cd08cf4395b3250950eb820bc74',1,'fsdk::Format']]], + ['getbool',['getBool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a7dc84becec0ff1614a11c85c268b2571',1,'fsdk::ISettingsProvider::Value']]], + ['getbuildinfo',['getBuildInfo',['../group___version_group.html#gac221ff93065b829ca0e059f0dfa248e3',1,'fsdk']]], + ['getbytedepth',['getByteDepth',['../structfsdk_1_1_format.html#afd04839a40f2a3b875038ec233b4a8eb',1,'fsdk::Format']]], + ['getbytes',['getBytes',['../structfsdk_1_1_sizer.html#aaac05d63b4fbe6c2861e971da901d1be',1,'fsdk::Sizer']]], + ['getchannelcount',['getChannelCount',['../structfsdk_1_1_format.html#a5654c8e7485f5821a0b77c40150144ea',1,'fsdk::Format']]], + ['getchannelsize',['getChannelSize',['../structfsdk_1_1_format.html#a1ed1e226b132c165793edfe88c21a4ee',1,'fsdk::Format']]], + ['getchannelstep',['getChannelStep',['../structfsdk_1_1_format.html#ad18bb21ae3c7577a0ebd3eca67fc26a9',1,'fsdk::Format']]], + ['getcount',['getCount',['../structfsdk_1_1_i_descriptor_batch.html#a786779cf2e2c286ce80f95907c23ff1d',1,'fsdk::IDescriptorBatch']]], + ['getdata',['getData',['../structfsdk_1_1_image.html#a177197485010936725923806ed693187',1,'fsdk::Image::getData() noexcept'],['../structfsdk_1_1_image.html#adb87ac4315e08d3474b87dd1819748d5',1,'fsdk::Image::getData() const noexcept']]], + ['getdataas',['getDataAs',['../structfsdk_1_1_image.html#ab0f6a417fa00693acfc22af05fdaddaf',1,'fsdk::Image::getDataAs() noexcept'],['../structfsdk_1_1_image.html#a2ffa58c82ae839a8804721def179ccb6',1,'fsdk::Image::getDataAs() const noexcept'],['../structfsdk_1_1_sub_image.html#a9aa3c100a4eb5d337873149991752d93',1,'fsdk::SubImage::getDataAs() noexcept'],['../structfsdk_1_1_sub_image.html#ac8122856a65d0d4e30485aee798ccb69',1,'fsdk::SubImage::getDataAs() const noexcept']]], + ['getdatadirectory',['getDataDirectory',['../group___core_group.html#ga217e0e83b975735419e174ee80ba36fb',1,'fsdk::IFaceEngineMobile']]], + ['getdatasize',['getDataSize',['../structfsdk_1_1_image.html#ad7702083887209a2c4e188b500215e96',1,'fsdk::Image::getDataSize() const noexcept'],['../structfsdk_1_1_image.html#a494e5a70e35f8a9965c9c655faf71694',1,'fsdk::Image::getDataSize(Sizer &sizer) const noexcept']]], + ['getdefaultpath',['getDefaultPath',['../structfsdk_1_1_i_settings_provider.html#a6c0a658442e821b9f8f7dfd77d1efcb7',1,'fsdk::ISettingsProvider']]], + ['getdesc',['getDesc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#a8a848bcc48f7ede8a50f46c5c811fb48',1,'fsdk::ISettingsProvider::Desc::getDesc()'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a0b98e0168b42f322a92c912529b450ec',1,'fsdk::ISettingsProvider::Entry::getDesc()'],['../structfsdk_1_1_i_settings_provider.html#a40af7f105aed6ee83863bda1f0f2219e',1,'fsdk::ISettingsProvider::getDesc(const Key &key) const noexcept'],['../structfsdk_1_1_i_settings_provider.html#a49a4727e0cf0a90cc1536440a049cc07',1,'fsdk::ISettingsProvider::getDesc(const char *section, const char *parameter) const noexcept']]], + ['getdescriptor',['getDescriptor',['../structfsdk_1_1_i_descriptor.html#ab5512a2e46ca8b3b9f791bc620855e4c',1,'fsdk::IDescriptor']]], + ['getdescriptorfast',['getDescriptorFast',['../structfsdk_1_1_i_descriptor_batch.html#a4e0a961f7736f00dae3327dd58d39f68',1,'fsdk::IDescriptorBatch']]], + ['getdescriptorlength',['getDescriptorLength',['../structfsdk_1_1_i_descriptor.html#a1a0c8122a9c7f0fcefa94d48d4144b4f',1,'fsdk::IDescriptor::getDescriptorLength()'],['../structfsdk_1_1_i_descriptor_batch.html#a7cf7c4ae4d831ff0bc9b7187eb866e9e',1,'fsdk::IDescriptorBatch::getDescriptorLength()']]], + ['getdescriptorslow',['getDescriptorSlow',['../structfsdk_1_1_i_descriptor_batch.html#a61d0c7378db1a1a4e336c0b12f9af7e5',1,'fsdk::IDescriptorBatch']]], + ['getdescriptortype',['getDescriptorType',['../structfsdk_1_1_i_descriptor.html#a1c13db8168c4fb3102ac9f5ab8064722',1,'fsdk::IDescriptor::getDescriptorType()'],['../structfsdk_1_1_i_descriptor_batch.html#ac044ea615c32aa4433c60e0491e8c958',1,'fsdk::IDescriptorBatch::getDescriptorType()'],['../structfsdk_1_1_i_descriptor_extractor.html#afdd1464778a55727acaef93b9fc5d443',1,'fsdk::IDescriptorExtractor::getDescriptorType()']]], + ['getdescriptorversion',['getDescriptorVersion',['../structfsdk_1_1_i_static_descriptor_storage.html#a9ca188c040ecfae3b940589dcd8e8998',1,'fsdk::IStaticDescriptorStorage']]], + ['getdetections',['getDetections',['../structfsdk_1_1_i_face_detection_batch.html#ac0796f34dff278d15e0e43d0b0e7bbd5',1,'fsdk::IFaceDetectionBatch::getDetections()'],['../structfsdk_1_1_i_human_detection_batch.html#a5511e8e94005c3b0c6c24d30ff29ef8b',1,'fsdk::IHumanDetectionBatch::getDetections()']]], + ['getentry',['getEntry',['../structfsdk_1_1_i_settings_provider.html#af4b9a97e6472e46ba644f7a41418e5d8',1,'fsdk::ISettingsProvider']]], + ['geterror',['getError',['../structfsdk_1_1_result.html#a75f966aa5f2402b66f000dacd18128f5',1,'fsdk::Result']]], + ['getexpirationdate',['getExpirationDate',['../structfsdk_1_1_i_license.html#adbf5141e706837b4ba738a82386e94e1',1,'fsdk::ILicense']]], + ['getface',['getFace',['../structfsdk_1_1_i_face_detection_batch.html#ab6887616ae757035b33d1e2ac49dcc8f',1,'fsdk::IFaceDetectionBatch']]], + ['getfaceengineedition',['getFaceEngineEdition',['../group___core_group.html#ga74540f3cf43d5a029db8f4875744557f',1,'fsdk::IFaceEngineMobile']]], + ['getfloat',['getFloat',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ade18ca8709878512682fa7b69fc0cfc1',1,'fsdk::ISettingsProvider::Value::getFloat(float *x) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a35cc96b6aae0ecbbc0c1079ea3142899',1,'fsdk::ISettingsProvider::Value::getFloat(float *x, float *y) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5c4c474afda291a09a19f69f43c43abc',1,'fsdk::ISettingsProvider::Value::getFloat(float *x, float *y, float *z) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a681b8d01c5a5112fae15ec244f97ee84',1,'fsdk::ISettingsProvider::Value::getFloat(float *x, float *y, float *z, float *w) const noexcept']]], + ['getformat',['getFormat',['../structfsdk_1_1_image.html#a3a096c49b65cb9b3ddc864a1fe0bbc5f',1,'fsdk::Image']]], + ['getfrontalfacetype',['getFrontalFaceType',['../structfsdk_1_1_head_pose_estimation.html#a9356964811575052d2d681e275ce4ecd',1,'fsdk::HeadPoseEstimation']]], + ['getgbytes',['getGBytes',['../structfsdk_1_1_sizer.html#aa7aaa2a28d8d8e329b5f0ea1221c61a8',1,'fsdk::Sizer']]], + ['getheight',['getHeight',['../structfsdk_1_1_image.html#ad5823d56f2b75a94424adef45c9d23c2',1,'fsdk::Image']]], + ['gethuman',['getHuman',['../structfsdk_1_1_i_human_detection_batch.html#a3222f0a8c14c75838a99266429df3674',1,'fsdk::IHumanDetectionBatch']]], + ['getinitreference',['getInitReference',['../structfsdk_1_1_ref.html#a4481cd13013a52fe8ff42cf8cbd25075',1,'fsdk::Ref']]], + ['getint',['getInt',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a9a2643462aaff211e15a57fd5c6e348e',1,'fsdk::ISettingsProvider::Value::getInt(int *x) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#af9f2f9595e49580129d8502768fdc080',1,'fsdk::ISettingsProvider::Value::getInt(int *x, int *y) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a9b264cc5dd478ec7e113819addd0d807',1,'fsdk::ISettingsProvider::Value::getInt(int *x, int *y, int *z) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#affa5d3f08168c5ffa1fcf815b32d4513',1,'fsdk::ISettingsProvider::Value::getInt(int *x, int *y, int *z, int *w) const noexcept']]], + ['getkbytes',['getKBytes',['../structfsdk_1_1_sizer.html#a72d205c5b3b4347d8a0a0ae76f8f1557',1,'fsdk::Sizer']]], + ['getlandmarks17',['getLandmarks17',['../structfsdk_1_1_i_human_detection_batch.html#a80e43b927498b58505b123e546ed49c4',1,'fsdk::IHumanDetectionBatch']]], + ['getlandmarks5',['getLandmarks5',['../structfsdk_1_1_i_face_detection_batch.html#aa09422deb3ce7aa52e2cd12c59b067df',1,'fsdk::IFaceDetectionBatch']]], + ['getlandmarks68',['getLandmarks68',['../structfsdk_1_1_i_face_detection_batch.html#a2cc9d8ceb774e6d2c8cdcc061efb2ed8',1,'fsdk::IFaceDetectionBatch']]], + ['getlicense',['getLicense',['../group___core_group.html#gaaaf25fb20c78b3252073b7789e45769c',1,'fsdk::IFaceEngineMobile']]], + ['getmaxcount',['getMaxCount',['../structfsdk_1_1_i_descriptor_batch.html#a48090c46fcc1613d4d08c082f21b40ce',1,'fsdk::IDescriptorBatch']]], + ['getmbytes',['getMBytes',['../structfsdk_1_1_sizer.html#ad6aaf8b58724a50c2ee30f462f68aca4',1,'fsdk::Sizer']]], + ['getmodelversion',['getModelVersion',['../structfsdk_1_1_i_descriptor.html#a69cd5752c0de1981d0eae131492ea5e7',1,'fsdk::IDescriptor::getModelVersion()'],['../structfsdk_1_1_i_descriptor_batch.html#a88c11b85fc5a8b3eede0d7a2c6f251d6',1,'fsdk::IDescriptorBatch::getModelVersion()'],['../structfsdk_1_1_i_descriptor_extractor.html#ad1e6f85a654cc0d5b7e61e1a5caad36d',1,'fsdk::IDescriptorExtractor::getModelVersion()'],['../structfsdk_1_1_i_descriptor_matcher.html#ac18bfe74c35189d18c4ae0d9c6757e11',1,'fsdk::IDescriptorMatcher::getModelVersion()']]], + ['getorigin',['getOrigin',['../structfsdk_1_1_sub_image.html#a0ae68ea83ca66e4f8db15ee4c700c811',1,'fsdk::SubImage']]], + ['getparameter',['getParameter',['../structfsdk_1_1_i_settings_provider_1_1_key.html#ac2c40cfd491b56908d2f90e71da997f7',1,'fsdk::ISettingsProvider::Key']]], + ['getparentobject',['getParentObject',['../structfsdk_1_1_i_data_storage_object.html#a76dd0aaf5ac83187635a9161ceae8237',1,'fsdk::IDataStorageObject']]], + ['getpoint2f',['getPoint2f',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a8dcc7bc3027a4462188342bf0fb1fbc9',1,'fsdk::ISettingsProvider::Value']]], + ['getpoint2i',['getPoint2i',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a3b53f8c1e07a0403aaadde5e9bac69ae',1,'fsdk::ISettingsProvider::Value']]], + ['getquality',['getQuality',['../structfsdk_1_1_quality.html#a5f2db7a08a31404d5c96f3d0424de789',1,'fsdk::Quality']]], + ['getrawrect',['getRawRect',['../structfsdk_1_1_detection.html#a9fdabbc6e25562ef5d359f7e77b967a2',1,'fsdk::Detection']]], + ['getrect',['getRect',['../structfsdk_1_1_i_settings_provider_1_1_value.html#acbe915c78434291060b0a4159405ec45',1,'fsdk::ISettingsProvider::Value::getRect()'],['../structfsdk_1_1_detection.html#a9edbafdc61e0021d1d5ff499be8ea3c6',1,'fsdk::Detection::getRect()'],['../structfsdk_1_1_image.html#a5841db4b37f8e3f633f9ee31e29e28b6',1,'fsdk::Image::getRect()'],['../structfsdk_1_1_sub_image.html#a681a9ea2fc9157250c0d08b50a0ee90a',1,'fsdk::SubImage::getRect()']]], + ['getrefcount',['getRefCount',['../structfsdk_1_1_i_ref_counted.html#a0e9c300055d88ac0ef739d1e424c8634',1,'fsdk::IRefCounted::getRefCount()'],['../structfsdk_1_1_image.html#a48773dce5d77377aa6415084ff2a612f',1,'fsdk::Image::getRefCount()']]], + ['getrowsize',['getRowSize',['../structfsdk_1_1_image.html#a02d33587be44369699ff0c77bf918f7e',1,'fsdk::Image']]], + ['getruntimesettingsprovider',['getRuntimeSettingsProvider',['../group___core_group.html#gaf750282898a3426064f2911ad82a3caf',1,'fsdk::IFaceEngineMobile']]], + ['getscanline',['getScanLine',['../structfsdk_1_1_image.html#a81b837c8ebacc00461ced25cc6299176',1,'fsdk::Image::getScanLine(int y) noexcept'],['../structfsdk_1_1_image.html#aaf7e663816bd542c1f80d42e29c22014',1,'fsdk::Image::getScanLine(int y) const noexcept']]], + ['getscanlineas',['getScanLineAs',['../structfsdk_1_1_image.html#afb6c77133c3cbe2f5f7825286096ec46',1,'fsdk::Image::getScanLineAs(int y) noexcept'],['../structfsdk_1_1_image.html#adb2d3b84e0b3c81a8f1528e884fa655a',1,'fsdk::Image::getScanLineAs(int y) const noexcept']]], + ['getscore',['getScore',['../structfsdk_1_1_medical_mask_estimation.html#aaf03553b09b66a4fc9623c85246d6d26',1,'fsdk::MedicalMaskEstimation']]], + ['getsection',['getSection',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a3b0d1a48c5eb2e6255fd51fcc3d28df4',1,'fsdk::ISettingsProvider::Key']]], + ['getsettingsprovider',['getSettingsProvider',['../group___core_group.html#gaea8316288bbea8bde5fe36dd6909356e',1,'fsdk::IFaceEngineMobile']]], + ['getsize',['getSize',['../structfsdk_1_1_i_face_detection_batch.html#a9899fff6f6d701762674c01bdce558a3',1,'fsdk::IFaceDetectionBatch::getSize() const noexcept=0'],['../structfsdk_1_1_i_face_detection_batch.html#a9e870513feb39ea2a28ee3ae5a932585',1,'fsdk::IFaceDetectionBatch::getSize(size_t imageIndex) const noexcept=0'],['../structfsdk_1_1_i_human_detection_batch.html#a142181747d516561d1bd15e55f269c70',1,'fsdk::IHumanDetectionBatch::getSize() const noexcept=0'],['../structfsdk_1_1_i_human_detection_batch.html#a09fa3881045e629773e79e41deb5831e',1,'fsdk::IHumanDetectionBatch::getSize(size_t imageIndex) const noexcept=0'],['../structfsdk_1_1_i_serializable_object.html#a22ce2c43e668e4d5dbd79dc0056e2032',1,'fsdk::ISerializableObject::getSize()'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a1fbb01df32dceb4539a852113a27c752',1,'fsdk::ISettingsProvider::Value::getSize()'],['../structfsdk_1_1_image.html#ac38de3f8f7136d3011bc49b399efcd5a',1,'fsdk::Image::getSize()'],['../classfsdk_1_1_span.html#a15ed0b927c4c6ef86e9468a05d983938',1,'fsdk::Span::getSize()'],['../structfsdk_1_1_sub_image.html#ad896ef4de97a4f7a74582fde66074cdc',1,'fsdk::SubImage::getSize()']]], + ['getstring',['getString',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ac5551406db04db1db8f54279c737fff3',1,'fsdk::ISettingsProvider::Value']]], + ['getvalue',['getValue',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a673ccd7aa4e1ceed022216588cfff06c',1,'fsdk::ISettingsProvider::Entry::getValue()'],['../structfsdk_1_1_i_settings_provider.html#acd929b0985eb547bf1c40e494e36e1f8',1,'fsdk::ISettingsProvider::getValue(const Key &key) const noexcept'],['../structfsdk_1_1_i_settings_provider.html#a5f5381f466e214ba4a2c7565bc89dba2',1,'fsdk::ISettingsProvider::getValue(const char *section, const char *parameter) const noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a7f9e57a741817e165526a4b7d62fa65c',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::getValue()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#abc5413378343e1ebd6669322f23c7a6c',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::getValue()']]], + ['getversion',['getVersion',['../group___version_group.html#gadf18bd918c6a2390201ce2110ef17717',1,'fsdk']]], + ['getversionhash',['getVersionHash',['../group___version_group.html#gadc959b5a3e56b4c12f7c19e01c8091c7',1,'fsdk']]], + ['getversionstring',['getVersionString',['../group___version_group.html#ga34ebbd7511e7bda7ace0f6a65d8cea12',1,'fsdk']]], + ['getweakrefcount',['getWeakRefCount',['../structfsdk_1_1_i_ref_counted.html#a230ba9c884c16e9e316344b9b901a480',1,'fsdk::IRefCounted']]], + ['getwidth',['getWidth',['../structfsdk_1_1_image.html#a6cb445da4dc6f7949c992f6bdcd6787f',1,'fsdk::Image']]], + ['glassesestimation',['GlassesEstimation',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478',1,'fsdk']]], + ['good',['Good',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7ac68c59f721bd43286d68df8fd1ff15e7',1,'fsdk::HeadPoseEstimation']]], + ['guesstypefrommemory',['guessTypeFromMemory',['../structfsdk_1_1_image.html#a9f2d12403ad91ca275de2259da560d05',1,'fsdk::Image']]] +]; diff --git a/doc/fsdk/html/search/all_68.html b/doc/fsdk/html/search/all_68.html new file mode 100644 index 0000000..a954e65 --- /dev/null +++ b/doc/fsdk/html/search/all_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_68.js b/doc/fsdk/html/search/all_68.js new file mode 100644 index 0000000..8fed108 --- /dev/null +++ b/doc/fsdk/html/search/all_68.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['hdt_5fall',['HDT_ALL',['../group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a68c684c9f61fe9e2ac96d86fc7b52fc5',1,'fsdk']]], + ['hdt_5fbox',['HDT_BOX',['../group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a716d7d6139b785910a90c72107445098',1,'fsdk']]], + ['hdt_5fpoints',['HDT_POINTS',['../group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655ae80b512594911338293f4831de45136d',1,'fsdk']]], + ['hdv_5fprecise_5fhuman_5fdescriptor_5fversion',['HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aaccfd669d40850d6a873556ade7aa880e',1,'fsdk']]], + ['hdv_5fregular_5fhuman_5fdescriptor_5fversion',['HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aa2f2c4b298d09076afaf1ce4b262b88f3',1,'fsdk']]], + ['hdv_5ftracker_5fhuman_5fdescriptor_5fversion',['HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aab372ead6c8a3d98140e26c9b05603fbf',1,'fsdk']]], + ['headpose',['headPose',['../structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#a873c696da443a1761142d0b2be038d1f',1,'fsdk::IBestShotQualityEstimator::EstimationResult']]], + ['headposeestimation',['HeadPoseEstimation',['../structfsdk_1_1_head_pose_estimation.html',1,'fsdk']]], + ['height',['height',['../structfsdk_1_1_base_rect.html#a98b63fedf0ccd2954ee2d27a6253e9af',1,'fsdk::BaseRect::height()'],['../structfsdk_1_1_sub_image.html#a5355e143c9d18bfad08247d86c15db3a',1,'fsdk::SubImage::height()']]], + ['human',['Human',['../structfsdk_1_1_human.html',1,'fsdk']]], + ['humandescriptorversion',['HumanDescriptorVersion',['../group___descriptor_processing_group.html#ga483d7359d800ae83b6fbda4dabdf086a',1,'fsdk']]], + ['humandetectiontype',['HumanDetectionType',['../group___detector_group.html#gaab9078e2636634d9f46c2b6616d89655',1,'fsdk']]], + ['humanlandmark',['HumanLandmark',['../structfsdk_1_1_human_landmark.html',1,'fsdk']]], + ['humanlandmarks',['HumanLandmarks',['../structfsdk_1_1_human_landmarks.html',1,'fsdk']]], + ['humanlandmarks17',['HumanLandmarks17',['../namespacefsdk.html#a37f1a8d095fe25030004f8e98a36ad05',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/all_69.html b/doc/fsdk/html/search/all_69.html new file mode 100644 index 0000000..676651e --- /dev/null +++ b/doc/fsdk/html/search/all_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_69.js b/doc/fsdk/html/search/all_69.js new file mode 100644 index 0000000..9ee768a --- /dev/null +++ b/doc/fsdk/html/search/all_69.js @@ -0,0 +1,135 @@ +var searchData= +[ + ['iagsestimator',['IAGSEstimator',['../structfsdk_1_1_i_a_g_s_estimator.html',1,'fsdk']]], + ['iarchive',['IArchive',['../structfsdk_1_1_i_archive.html',1,'fsdk']]], + ['iasynccontext',['IAsyncContext',['../structfsdk_1_1_i_async_context.html',1,'fsdk']]], + ['iasynccontext_2eh',['IAsyncContext.h',['../_i_async_context_8h.html',1,'']]], + ['ibestshotqualityestimator',['IBestShotQualityEstimator',['../structfsdk_1_1_i_best_shot_quality_estimator.html',1,'fsdk']]], + ['ic_5fbest_5fcompression',['IC_BEST_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daccd72f086a3257b06c12b790a683f2d6',1,'fsdk::Image']]], + ['ic_5fhard_5fcompression',['IC_HARD_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5da60cdeb7647e393444a05d358810293f5',1,'fsdk::Image']]], + ['ic_5fmedium_5fcompression',['IC_MEDIUM_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daf526f9c09cd1a065f528dc6518895615',1,'fsdk::Image']]], + ['ic_5fno_5fcompression',['IC_NO_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dab75738e569f17ad386d0ff4cb90eabb9',1,'fsdk::Image']]], + ['ic_5fsmall_5fcompression',['IC_SMALL_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dae811dec1e75f575972a667e83a23bd34',1,'fsdk::Image']]], + ['idatastorageobject',['IDataStorageObject',['../structfsdk_1_1_i_data_storage_object.html',1,'fsdk']]], + ['idenseindex',['IDenseIndex',['../structfsdk_1_1_i_dense_index.html',1,'fsdk']]], + ['idescriptor',['IDescriptor',['../structfsdk_1_1_i_descriptor.html',1,'fsdk']]], + ['idescriptor_2eh',['IDescriptor.h',['../_i_descriptor_8h.html',1,'']]], + ['idescriptorbatch',['IDescriptorBatch',['../structfsdk_1_1_i_descriptor_batch.html',1,'fsdk']]], + ['idescriptorextractor',['IDescriptorExtractor',['../structfsdk_1_1_i_descriptor_extractor.html',1,'fsdk']]], + ['idescriptormatcher',['IDescriptorMatcher',['../structfsdk_1_1_i_descriptor_matcher.html',1,'fsdk']]], + ['idetectioncomparer',['IDetectionComparer',['../classfsdk_1_1_i_detection_comparer.html',1,'fsdk']]], + ['idetector',['IDetector',['../structfsdk_1_1_i_detector.html',1,'fsdk']]], + ['idetector_2eh',['IDetector.h',['../_i_detector_8h.html',1,'']]], + ['idynamicdescriptorstorage',['IDynamicDescriptorStorage',['../structfsdk_1_1_i_dynamic_descriptor_storage.html',1,'fsdk']]], + ['idynamicindex',['IDynamicIndex',['../structfsdk_1_1_i_dynamic_index.html',1,'fsdk']]], + ['ieyeestimator',['IEyeEstimator',['../structfsdk_1_1_i_eye_estimator.html',1,'fsdk']]], + ['ifacedetectionbatch',['IFaceDetectionBatch',['../structfsdk_1_1_i_face_detection_batch.html',1,'fsdk']]], + ['ifaceenginemobile',['IFaceEngineMobile',['../structfsdk_1_1_i_face_engine_mobile.html',1,'fsdk']]], + ['iglassesestimator',['IGlassesEstimator',['../structfsdk_1_1_i_glasses_estimator.html',1,'fsdk']]], + ['iheadposeestimator',['IHeadPoseEstimator',['../structfsdk_1_1_i_head_pose_estimator.html',1,'fsdk']]], + ['ihumandetectionbatch',['IHumanDetectionBatch',['../structfsdk_1_1_i_human_detection_batch.html',1,'fsdk']]], + ['ihumandetector',['IHumanDetector',['../structfsdk_1_1_i_human_detector.html',1,'fsdk']]], + ['ihumanwarper',['IHumanWarper',['../structfsdk_1_1_i_human_warper.html',1,'fsdk']]], + ['ihumanwarper_2eh',['IHumanWarper.h',['../_i_human_warper_8h.html',1,'']]], + ['iindex',['IIndex',['../structfsdk_1_1_i_index.html',1,'fsdk']]], + ['iindexbuilder',['IIndexBuilder',['../structfsdk_1_1_i_index_builder.html',1,'fsdk']]], + ['ilicense',['ILicense',['../structfsdk_1_1_i_license.html',1,'fsdk']]], + ['ilivenessoneshotrgbestimator',['ILivenessOneShotRGBEstimator',['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html',1,'fsdk']]], + ['image',['Image',['../structfsdk_1_1_image.html',1,'fsdk']]], + ['image',['Image',['../structfsdk_1_1_image.html#ad208540be1ae2fa9ca0ed192aee75182',1,'fsdk::Image::Image() noexcept'],['../structfsdk_1_1_image.html#a624947f81acd14120076f42860e51611',1,'fsdk::Image::Image(int width, int height, Format format, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a348af5fca41e5b170c0487a055f6ebbb',1,'fsdk::Image::Image(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#ac4d7421e28a9d81fed4de88dcc3fecf4',1,'fsdk::Image::Image(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a021abfa7a95a7d6a1e9f4edabf2043a2',1,'fsdk::Image::Image(const Image &other) noexcept'],['../structfsdk_1_1_image.html#aac20796ff887ec564cee62c826374384',1,'fsdk::Image::Image(Image &&other) noexcept'],['../structfsdk_1_1_image.html#a6c85de74e85305f06232bdfb49331e0e',1,'fsdk::Image::Image(const SubImage &subImage) noexcept']]], + ['imagebatch',['ImageBatch',['../structfsdk_1_1_i_warper.html#ab13e3ac4b4ae69fafe86d10f94de8e64',1,'fsdk::IWarper']]], + ['imagecompression',['ImageCompression',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5d',1,'fsdk::Image']]], + ['imagetype',['ImageType',['../namespacefsdk.html#a4d89d83d3318f49213f00cba97193a61',1,'fsdk']]], + ['imedicalmaskestimator',['IMedicalMaskEstimator',['../structfsdk_1_1_i_medical_mask_estimator.html',1,'fsdk']]], + ['incompatible',['Incompatible',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a2a208768bc7995cc26b7f3797d24b0b1',1,'fsdk::IDescriptorBatch']]], + ['incompatibledescriptors',['IncompatibleDescriptors',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a98530c9f4969e4a2e2d84a7776a2be2a',1,'fsdk']]], + ['incompatiblemodelversions',['IncompatibleModelVersions',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6acd90a241053a97f8ff283746c8bed63f',1,'fsdk']]], + ['index',['index',['../structfsdk_1_1_search_result.html#a01dc475d417c24d5a5d21f3d5b4fd4bb',1,'fsdk::SearchResult']]], + ['inputarchive',['InputArchive',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0af7d6ea2b343a99ac0a2cd306ed96b5c7',1,'fsdk::ISerializableObject']]], + ['inside',['inside',['../structfsdk_1_1_base_rect.html#a0fd42ac0445103c0ecf26c490d2260b8',1,'fsdk::BaseRect']]], + ['int1',['Int1',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['int1',['Int1',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a95a8d18f7debfc437b1669849e7dd925',1,'fsdk::ISettingsProvider::Value']]], + ['int2',['Int2',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['int2',['Int2',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947adf23e4f8136317e83ee4579ba2a5e066',1,'fsdk::ISettingsProvider::Value']]], + ['int3',['Int3',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['int3',['Int3',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ab6b18a107e12ec3a414343d93b4d69ec',1,'fsdk::ISettingsProvider::Value']]], + ['int4',['Int4',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['int4',['Int4',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac4b020c2b070595a491d27e82c03ab5d',1,'fsdk::ISettingsProvider::Value']]], + ['internal',['Internal',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::IDescriptorBatch::Internal()'],['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::ISettingsProvider::Internal()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::Internal()'],['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbaafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::Internal()'],['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::Internal()']]], + ['intersectionoverfirstrect',['intersectionOverFirstRect',['../structfsdk_1_1_base_rect.html#a0f2e4ceda81d02ad1b0a8949bcf94cf2',1,'fsdk::BaseRect']]], + ['intersectionoverunion',['intersectionOverUnion',['../structfsdk_1_1_base_rect.html#a23d911ebae910d44d959c66fc53832c1',1,'fsdk::BaseRect']]], + ['invalidarchive',['InvalidArchive',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a538273d971a3da3f944bfb95091df5d8',1,'fsdk::Image']]], + ['invalidattribute',['InvalidAttribute',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a49069827e26a70a158193ed0595b485b',1,'fsdk::ISettingsProvider']]], + ['invalidbatch',['InvalidBatch',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a16cd466ba03251484ec4e4b1dba364f5',1,'fsdk']]], + ['invalidbitmap',['InvalidBitmap',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936abcdbc5068527815bd978d3cbba5e7deb',1,'fsdk::Image']]], + ['invalidbuffersize',['InvalidBufferSize',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a32d8099d0ff5ab8d8893e6902eeb1ad0',1,'fsdk']]], + ['invalidcdata',['InvalidCdata',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a20c6429b7ff545070b48df0668d686fe',1,'fsdk::ISettingsProvider']]], + ['invalidcomment',['InvalidComment',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5ac51b09d66c17f113d52d2822fb71a757',1,'fsdk::ISettingsProvider']]], + ['invalidconfig',['InvalidConfig',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a636bc5ca1e0ceb3e4c67067618d7ae09',1,'fsdk']]], + ['invalidconversion',['InvalidConversion',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaf9d45225e9d3edf59f2fd40d4b9f157',1,'fsdk::Image']]], + ['invaliddataptr',['InvalidDataPtr',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a588c80ae8885b51a5f0700894da5affe',1,'fsdk::Image']]], + ['invaliddatasize',['InvalidDataSize',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a0a86fcdcc2094e925e3166b9710f8d82',1,'fsdk::Image']]], + ['invaliddescriptor',['InvalidDescriptor',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5b17c8e23099885736ba8f8d05c32f6c',1,'fsdk']]], + ['invaliddescriptorbatch',['InvalidDescriptorBatch',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a7b9735f9f1303453ad41cd38fc3b2b77',1,'fsdk']]], + ['invaliddescriptorid',['InvalidDescriptorId',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a1a86be0290d50e138737e4cc52665468',1,'fsdk']]], + ['invaliddetection',['InvalidDetection',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a8f36304eeb9e7bd7da166f71d3a5671f',1,'fsdk']]], + ['invaliddevice',['InvalidDevice',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a3634e01cc1296daece9832c5396808c2',1,'fsdk::Image']]], + ['invaliddoctype',['InvalidDocType',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a93650de0861d0516977f25b86ee42e5a',1,'fsdk::ISettingsProvider']]], + ['invalidendelement',['InvalidEndElement',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a811a6b500aa2374e3a70057141dccbbf',1,'fsdk::ISettingsProvider']]], + ['invalidformat',['InvalidFormat',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade236a235b4e8ffc9141676624753b2d',1,'fsdk::Image']]], + ['invalidheight',['InvalidHeight',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaff424fc1ea568827830b838a80cd934',1,'fsdk::Image']]], + ['invalidimage',['InvalidImage',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a107a93f5ad9b48f874341eaa0141e0f9',1,'fsdk::Image::InvalidImage()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a107a93f5ad9b48f874341eaa0141e0f9',1,'fsdk::InvalidImage()']]], + ['invalidimageformat',['InvalidImageFormat',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a4bb4fd071cf54bae94ece53fa687b8bf',1,'fsdk']]], + ['invalidimagesize',['InvalidImageSize',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5a606ed9e3b82871cb31eb26d467bebf',1,'fsdk']]], + ['invalidinput',['InvalidInput',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93ad8f78ca9a692a9411afbc7584b69d043',1,'fsdk::IDescriptorBatch::InvalidInput()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6ad8f78ca9a692a9411afbc7584b69d043',1,'fsdk::InvalidInput()'],['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbad8f78ca9a692a9411afbc7584b69d043',1,'fsdk::InvalidInput()']]], + ['invalidlandmarks5',['InvalidLandmarks5',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6ab5c07ccab2c5b9c7577b777263e692aa',1,'fsdk']]], + ['invalidlandmarks68',['InvalidLandmarks68',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5e323dba014fd8072bb4a29f3e39db8d',1,'fsdk']]], + ['invalidmemory',['InvalidMemory',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a83fe3c82514cc399b416bbb9d25ac9a9',1,'fsdk::Image']]], + ['invalidpath',['InvalidPath',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a5d0744802b24f44a161d350c25d76c7b',1,'fsdk::Image::InvalidPath()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5d0744802b24f44a161d350c25d76c7b',1,'fsdk::InvalidPath()']]], + ['invalidpcdata',['InvalidPcdata',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a65d83fd76501c29718cc8fde8b8f33db',1,'fsdk::ISettingsProvider']]], + ['invalidpi',['InvalidPi',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a96fe5a2a900fba7e5dd6fe5519f09e90',1,'fsdk::ISettingsProvider']]], + ['invalidrect',['InvalidRect',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a48a3a3a046f78d13629f687cc97461a0',1,'fsdk']]], + ['invalidresidence',['InvalidResidence',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a2a7695a194a2f785215c4ed058e2bf7b',1,'fsdk::Image']]], + ['invalidserializedobject',['InvalidSerializedObject',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6af3c0d24a751f6da0fe4f81bb2e10bb19',1,'fsdk']]], + ['invalidsettings',['InvalidSettings',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a37a5f254c366f6c4dcba8bfd75f1070e',1,'fsdk::ISettingsProvider']]], + ['invalidsettingsprovider',['InvalidSettingsProvider',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6ab1af2f31ddaa685b9fabe328f28f3a6f',1,'fsdk']]], + ['invalidspansize',['InvalidSpanSize',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a9a93b3012aa094825f11f65e07763bb3',1,'fsdk']]], + ['invalidstartelement',['InvalidStartElement',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a17b7fccdd65da9c5a54552c3685041a4',1,'fsdk::ISettingsProvider']]], + ['invalidtag',['InvalidTag',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5af155a86534ba8c83bd9ced7c8f510b4c',1,'fsdk::ISettingsProvider']]], + ['invalidtransformation',['InvalidTransformation',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a21481cb38ecea41b765ab2d86b594053',1,'fsdk']]], + ['invalidtype',['InvalidType',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ac85f85f7c13ed006eed130ec183aa810',1,'fsdk::Image']]], + ['invalidwidth',['InvalidWidth',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a6518a24cb2d8166f5c57016e65e3f419',1,'fsdk::Image']]], + ['iobject_2eh',['IObject.h',['../_i_object_8h.html',1,'']]], + ['ioerror',['IOError',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a5206bd7472156351d2d9a99633ac9580',1,'fsdk::ISettingsProvider::IOError()'],['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93af05cfcbf5123775f7c73e520a8d861e1',1,'fsdk::IDescriptorBatch::IoError()']]], + ['iprogresstracker',['IProgressTracker',['../structfsdk_1_1_i_progress_tracker.html',1,'fsdk']]], + ['iqualityestimator',['IQualityEstimator',['../structfsdk_1_1_i_quality_estimator.html',1,'fsdk']]], + ['ir_5fx8x8x8',['IR_X8X8X8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1af4ca5a5a1ea5b7005c89a9cd0911d0b4',1,'fsdk::Format']]], + ['irefcounted',['IRefCounted',['../structfsdk_1_1_i_ref_counted.html',1,'fsdk']]], + ['irefcounted_2eh',['IRefCounted.h',['../_i_ref_counted_8h.html',1,'']]], + ['iresultbatch',['IResultBatch',['../structfsdk_1_1_i_result_batch.html',1,'fsdk']]], + ['iris',['iris',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a085c2eba493874a622cb58249534fc5b',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['irislandmarks',['IrisLandmarks',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a2dd36e58e1788352fa5f668c25403b34',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['irislandmarkscount',['irisLandmarksCount',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#afbab26b288e95a01a6a9829eacd3eaa6',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['is',['is',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a0712a27f674f611a777f8067bb6c9c5e',1,'fsdk::ISettingsProvider::Value']]], + ['isactivated',['isActivated',['../structfsdk_1_1_i_license.html#a7d8127d5ba3a36e37ae985f6ad5ab62a',1,'fsdk::ILicense']]], + ['isbgr',['isBGR',['../structfsdk_1_1_format.html#a4f1a89d82820cc5461d983700d2191d1',1,'fsdk::Format']]], + ['isblock',['isBlock',['../structfsdk_1_1_format.html#a46d028b666e796b8021e8cce7bc90c9e',1,'fsdk::Format']]], + ['isempty',['isEmpty',['../structfsdk_1_1_i_settings_provider.html#acedb7b69472de81a44c6d69511c9e908',1,'fsdk::ISettingsProvider::isEmpty()'],['../structfsdk_1_1_sizer.html#aa3b8734b6b784a5e080e02ee4a10dfa6',1,'fsdk::Sizer::isEmpty()']]], + ['iserializableobject',['ISerializableObject',['../structfsdk_1_1_i_serializable_object.html',1,'fsdk']]], + ['iserror',['isError',['../structfsdk_1_1_result.html#a22fbfc59e9daa711b5f3d91a0976f5ab',1,'fsdk::Result']]], + ['isettingsprovider',['ISettingsProvider',['../structfsdk_1_1_i_settings_provider.html',1,'fsdk']]], + ['isettingsprovider_2eh',['ISettingsProvider.h',['../_i_settings_provider_8h.html',1,'']]], + ['isexpired',['isExpired',['../structfsdk_1_1_ref_base.html#a7b102e6ffd4ea5e393f283169f826f6f',1,'fsdk::RefBase']]], + ['isgood',['isGood',['../structfsdk_1_1_subjective_quality.html#aef4e078366ce04c34f82502014a14f36',1,'fsdk::SubjectiveQuality']]], + ['isnull',['isNull',['../structfsdk_1_1_image.html#a935733a13b5a2d62758f63a0fa2580e9',1,'fsdk::Image::isNull()'],['../structfsdk_1_1_ref_base.html#a65eb00c69769063de70515387aaf7d71',1,'fsdk::RefBase::isNull()']]], + ['iso',['ISO',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a4db45576db7f96e820b1388d1c522aff',1,'fsdk::HeadPoseEstimation']]], + ['isok',['isOk',['../structfsdk_1_1_result.html#aea4380f5ed3f6c3e71ab70d0c0d422b0',1,'fsdk::Result']]], + ['ispadded',['isPadded',['../structfsdk_1_1_format.html#a43ca12b83363226c0459e6a1b5073550',1,'fsdk::Format']]], + ['issharedwith',['isSharedWith',['../structfsdk_1_1_image.html#a33771e3d4141977d08be1302020ff6cd',1,'fsdk::Image']]], + ['istaticdescriptorstorage',['IStaticDescriptorStorage',['../structfsdk_1_1_i_static_descriptor_storage.html',1,'fsdk']]], + ['isunique',['isUnique',['../structfsdk_1_1_ref_base.html#a1f4e70a1252dce29ced35e396c0a1d87',1,'fsdk::RefBase']]], + ['isvalid',['isValid',['../structfsdk_1_1_detection.html#ab6ae99522686f4c2d555b040d95556c1',1,'fsdk::Detection::isValid()'],['../structfsdk_1_1_format.html#a0cebf5379f7e7f173ae64d35f0ab9670',1,'fsdk::Format::isValid()'],['../structfsdk_1_1_image.html#a42bb8bc044a084b7779760c20701fa0d',1,'fsdk::Image::isValid()'],['../structfsdk_1_1_base_rect.html#adb5b7dfdecd356b2b0d8353279288020',1,'fsdk::BaseRect::isValid()']]], + ['isyuv',['isYUV',['../structfsdk_1_1_format.html#a9774699a7b4642bf36ce9f42032a5cb9',1,'fsdk::Format']]], + ['iwarper',['IWarper',['../structfsdk_1_1_i_warper.html',1,'fsdk']]], + ['iwarper_2eh',['IWarper.h',['../_i_warper_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/all_6b.html b/doc/fsdk/html/search/all_6b.html new file mode 100644 index 0000000..b6e38ce --- /dev/null +++ b/doc/fsdk/html/search/all_6b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_6b.js b/doc/fsdk/html/search/all_6b.js new file mode 100644 index 0000000..38e9818 --- /dev/null +++ b/doc/fsdk/html/search/all_6b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['key',['Key',['../structfsdk_1_1_i_settings_provider_1_1_key.html',1,'fsdk::ISettingsProvider']]], + ['key',['Key',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a67d333ee0b4c658d8ebe9cd6b2f293f8',1,'fsdk::ISettingsProvider::Key::Key() noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_key.html#a8119c6cd5cc92e235c39f333abdfc5ad',1,'fsdk::ISettingsProvider::Key::Key(const char *section, const char *parameter) noexcept']]] +]; diff --git a/doc/fsdk/html/search/all_6c.html b/doc/fsdk/html/search/all_6c.html new file mode 100644 index 0000000..3623130 --- /dev/null +++ b/doc/fsdk/html/search/all_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_6c.js b/doc/fsdk/html/search/all_6c.js new file mode 100644 index 0000000..5c818b2 --- /dev/null +++ b/doc/fsdk/html/search/all_6c.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['luna_20sdk',['LUNA SDK',['../index.html',1,'']]], + ['landmark',['Landmark',['../namespacefsdk.html#a692dcb7d0ad1ef51eb430a6b55da866c',1,'fsdk']]], + ['landmarkcount',['LandmarkCount',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aec5fb21288f98e092c4fb19e9fd9dc3c',1,'fsdk::Landmarks5Indexes']]], + ['landmarklefteye',['LandmarkLeftEye',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7ad3566c44c6de999dfc157bc178093e94',1,'fsdk::Landmarks5Indexes']]], + ['landmarkmouthleftcorner',['LandmarkMouthLeftCorner',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a8e22313b8661da3a61347417a8e61ca6',1,'fsdk::Landmarks5Indexes']]], + ['landmarkmouthrightcorner',['LandmarkMouthRightCorner',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a69e618c0af0d1130966997ad32b5e4b0',1,'fsdk::Landmarks5Indexes']]], + ['landmarknose',['LandmarkNose',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a572a622e295b81f5ee4578e7e290aa39',1,'fsdk::Landmarks5Indexes']]], + ['landmarkrighteye',['LandmarkRightEye',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aca84a9be871065c03172c26db6fc025c',1,'fsdk::Landmarks5Indexes']]], + ['landmarks',['Landmarks',['../structfsdk_1_1_landmarks.html',1,'fsdk']]], + ['landmarks',['landmarks',['../structfsdk_1_1_landmarks.html#a9ef9034a3e49efa99333b0b01d707fd7',1,'fsdk::Landmarks']]], + ['landmarks5',['Landmarks5',['../namespacefsdk.html#a0a3e30b962a139638d2dda303607ecb7',1,'fsdk']]], + ['landmarks5indexes',['Landmarks5Indexes',['../structfsdk_1_1_landmarks5_indexes.html',1,'fsdk']]], + ['landmarks68',['Landmarks68',['../namespacefsdk.html#ab52d53c637c4ef74c6e6da35908ad791',1,'fsdk']]], + ['landmarks_3c_20eyelidlandmarkscount_20_3e',['Landmarks< eyelidLandmarksCount >',['../structfsdk_1_1_landmarks.html',1,'fsdk']]], + ['landmarks_3c_20irislandmarkscount_20_3e',['Landmarks< irisLandmarksCount >',['../structfsdk_1_1_landmarks.html',1,'fsdk']]], + ['launchoptions',['LaunchOptions',['../structfsdk_1_1_launch_options.html',1,'fsdk']]], + ['left',['left',['../structfsdk_1_1_base_rect.html#aac4bc603363b0422f5a659dd50cd087e',1,'fsdk::BaseRect']]], + ['lefteye',['leftEye',['../structfsdk_1_1_eyes_estimation.html#ade7c195977cbdd07a125a06450ef3987',1,'fsdk::EyesEstimation']]], + ['licenseerror',['LicenseError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a2b423836b373458d26bdc9da85cfc6a8',1,'fsdk']]], + ['licensefeature',['LicenseFeature',['../namespacefsdk.html#a872383ce8bac63e967c58ff6a393b114',1,'fsdk']]], + ['licenseisnotactivated',['LicenseIsNotActivated',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a22e90664663be51d76eb78ba6e964375',1,'fsdk']]], + ['livenessoneshotrgbestimation',['LivenessOneShotRGBEstimation',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html',1,'fsdk']]], + ['load',['load',['../structfsdk_1_1_i_serializable_object.html#a9217958c8ff2aeb970db02c3324a017b',1,'fsdk::ISerializableObject::load()'],['../structfsdk_1_1_i_settings_provider.html#a882a7671cc283d81028ddeeae9da1a23',1,'fsdk::ISettingsProvider::load()'],['../structfsdk_1_1_image.html#a8f17c7659871533d5eed712b3967944b',1,'fsdk::Image::load(const char *path) noexcept'],['../structfsdk_1_1_image.html#a50d05981de264e977f4fbd90990f084a',1,'fsdk::Image::load(const char *path, const Format format) noexcept']]], + ['loadandadd',['loadAndAdd',['../structfsdk_1_1_i_descriptor_batch.html#a1e40e982bc2bd2fe5a18e8a7f43cbf99',1,'fsdk::IDescriptorBatch']]], + ['loadfromfile',['loadFromFile',['../structfsdk_1_1_i_license.html#a66238b1c9c5bf349a27a20676f278f3b',1,'fsdk::ILicense']]], + ['loadfrommemory',['loadFromMemory',['../structfsdk_1_1_image.html#a824376f7ac69c83fc8026cf38a235806',1,'fsdk::Image::loadFromMemory(const void *data, const uint32_t sizeInBytes) noexcept'],['../structfsdk_1_1_image.html#a27b9eae4a7a4bf22182bb98debf8c45d',1,'fsdk::Image::loadFromMemory(const void *data, const uint32_t sizeInBytes, const Format format) noexcept']]], + ['loadfrommemoryoftype',['loadFromMemoryOfType',['../structfsdk_1_1_image.html#a7d560518bf9a96c0fc8795edb4374a31',1,'fsdk::Image::loadFromMemoryOfType(const void *data, const uint32_t sizeInBytes, const Type type) noexcept'],['../structfsdk_1_1_image.html#ae7015b5e7e8c21af7fb23a93a1235301',1,'fsdk::Image::loadFromMemoryOfType(const void *data, const uint32_t sizeInBytes, const Type type, const Format format) noexcept']]], + ['log_2eh',['Log.h',['../_log_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/all_6d.html b/doc/fsdk/html/search/all_6d.html new file mode 100644 index 0000000..82ceec7 --- /dev/null +++ b/doc/fsdk/html/search/all_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_6d.js b/doc/fsdk/html/search/all_6d.js new file mode 100644 index 0000000..762003c --- /dev/null +++ b/doc/fsdk/html/search/all_6d.js @@ -0,0 +1,54 @@ +var searchData= +[ + ['m_5fbytes',['m_bytes',['../structfsdk_1_1_sizer.html#a1ad20aaecf643c77e32067ac7619e59a',1,'fsdk::Sizer']]], + ['m_5fdata',['m_data',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a2b853c76f9e36682a6955399565855d3',1,'fsdk::ISettingsProvider::Value::m_data()'],['../structfsdk_1_1_image.html#a378b11d6fc5fe3baa1f2e1a6fc0c7e68',1,'fsdk::Image::m_data()']]], + ['m_5fdesc',['m_desc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#acca51618f5f65a44723b8396207535be',1,'fsdk::ISettingsProvider::Desc::m_desc()'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#ab62a7d512a201be88694b03f89a4f44a',1,'fsdk::ISettingsProvider::Entry::m_desc()']]], + ['m_5fdeviceid',['m_deviceId',['../structfsdk_1_1_image.html#a8435a72e723aa1b3c818867457276c9a',1,'fsdk::Image']]], + ['m_5ffloat1',['m_float1',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a77dc14765597fe4cf65da827a2c36d01',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ffloat2',['m_float2',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#ab756fa69de93422f525aede6fd4d5dcb',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ffloat3',['m_float3',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a5ec6030828e645853be71394e3d22e8e',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ffloat4',['m_float4',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aec1196921ed7470f8869d930160883cf',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fformat',['m_format',['../structfsdk_1_1_image.html#aefe4793bcc5d38d828d5ead04cb4f75e',1,'fsdk::Image']]], + ['m_5fheight',['m_height',['../structfsdk_1_1_image.html#aa4dee2d753540eb26aac388ed8d94ce9',1,'fsdk::Image']]], + ['m_5fint1',['m_int1',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a19bebc0b9e17e194c981355ce0bfa90a',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fint2',['m_int2',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a9b685dfe0da1654cdbc72215f2db04ed',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fint3',['m_int3',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#afa87698cc37557d1cae0bdafb2663ec4',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fint4',['m_int4',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a3e4b62bfb96be90b38126d7af628fef5',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fparameter',['m_parameter',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a4a9ac00ecf0318698499bc7ca5a3dd6d',1,'fsdk::ISettingsProvider::Key']]], + ['m_5fptr',['m_ptr',['../structfsdk_1_1_ref_base.html#ab57bc3fc17e734e742c0b47ec60573ba',1,'fsdk::RefBase']]], + ['m_5fref',['m_ref',['../structfsdk_1_1_image.html#a4309931e1a59c9b88469a5633df36769',1,'fsdk::Image']]], + ['m_5fsection',['m_section',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a47c4fb20308ffab842f8c6b8771482c2',1,'fsdk::ISettingsProvider::Key']]], + ['m_5fstring',['m_string',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aea8dd6b42c5e9ffa5ffebfb8e31e5b23',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ftype',['m_type',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a2eacc17be55f5b7c45b0b14dae8dabed',1,'fsdk::ISettingsProvider::Value::m_type()'],['../structfsdk_1_1_format.html#a708cc1ef87c456417c678e7720a52159',1,'fsdk::Format::m_type()']]], + ['m_5fvalue',['m_value',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#ac2bba965cd886b1f53b60ddf24f35df3',1,'fsdk::ISettingsProvider::Entry::m_value()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#afef4906788a7f335f4b5a2a372551f8d',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::m_value()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aa0af562d57def46e9945664991cabb73',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::m_value()']]], + ['m_5fwidth',['m_width',['../structfsdk_1_1_image.html#a32c6a6ef3700e9babb0943ce4aac6155',1,'fsdk::Image']]], + ['major',['major',['../structfsdk_1_1_version.html#aa51eaf974da4d0a2fdc3bd41bd43df36',1,'fsdk::Version']]], + ['make_5fref',['make_ref',['../structfsdk_1_1_ref.html#a46bde60641331c01f9804db22cad3ed9',1,'fsdk::Ref::make_ref()'],['../namespacefsdk.html#a69ef1a1494597c16736760644d82a908',1,'fsdk::make_ref()']]], + ['make_5fref_5fas',['make_ref_as',['../namespacefsdk.html#aadef75eae305a8d881a837f88ef8a8d5',1,'fsdk']]], + ['makeresultvalue',['makeResultValue',['../namespacefsdk.html#abd7168071541cdcd12b10d156e4b5658',1,'fsdk']]], + ['map',['map',['../structfsdk_1_1_image.html#ae05f21724f71ad844532ec46310bd252',1,'fsdk::Image::map(int x, int y, int width, int height) const noexcept'],['../structfsdk_1_1_image.html#ac085efbd15cc73fea521d9067d551d61',1,'fsdk::Image::map(const Rect &rect) const noexcept'],['../structfsdk_1_1_image.html#aa4c32526ccd387fb89500e766ae3ce7f',1,'fsdk::Image::map(const Size &size) const noexcept'],['../structfsdk_1_1_image.html#a5e5e5885d7e3e85d8d07b2c5a84937c5',1,'fsdk::Image::map(const Point2i &origin, const Size &size) const noexcept']]], + ['mask',['Mask',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3a4a18312b5b75f549d5551e5912ad6ebf',1,'fsdk::Mask()'],['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4a4a18312b5b75f549d5551e5912ad6ebf',1,'fsdk::Mask()']]], + ['masknotinplace',['maskNotInPlace',['../structfsdk_1_1_medical_mask_estimation_extended.html#aa6a5ed18f25e9998ad1dd2fc280a3121',1,'fsdk::MedicalMaskEstimationExtended::maskNotInPlace()'],['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4a76e1b9427b8bfbfb49646010fc60aca5',1,'fsdk::MaskNotInPlace()']]], + ['maskscore',['maskScore',['../structfsdk_1_1_medical_mask_estimation.html#ad47aa0e8d3c14f07771adf4c6eb72624',1,'fsdk::MedicalMaskEstimation::maskScore()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#a6c75dab32127e86880e8dd9726a9cd7f',1,'fsdk::MedicalMaskEstimationExtended::maskScore()']]], + ['masktype',['maskType',['../structfsdk_1_1_medical_mask_estimation.html#a54b478e726656c252899b14719266dff',1,'fsdk::MedicalMaskEstimation']]], + ['match',['match',['../structfsdk_1_1_i_descriptor_matcher.html#ae6a1c205c90fc302ac60888500b751ba',1,'fsdk::IDescriptorMatcher::match(const IDescriptor *first, const IDescriptor *second) noexcept=0'],['../structfsdk_1_1_i_descriptor_matcher.html#af8ca338dac43b61892815153c2eb960f',1,'fsdk::IDescriptorMatcher::match(const IDescriptor *reference, const IDescriptorBatch *candidates, Span< MatchingResult > results) noexcept=0']]], + ['matchingresult',['MatchingResult',['../structfsdk_1_1_matching_result.html#a225957f44be2294e809c2dd59ad728ed',1,'fsdk::MatchingResult::MatchingResult(void) noexcept'],['../structfsdk_1_1_matching_result.html#a913ed5d074a8c817b3a1c59e7759e526',1,'fsdk::MatchingResult::MatchingResult(float distance, float similarity) noexcept']]], + ['matchingresult',['MatchingResult',['../structfsdk_1_1_matching_result.html',1,'fsdk']]], + ['medicalmask',['MedicalMask',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3',1,'fsdk']]], + ['medicalmaskestimation',['MedicalMaskEstimation',['../structfsdk_1_1_medical_mask_estimation.html',1,'fsdk']]], + ['medicalmaskestimationextended',['MedicalMaskEstimationExtended',['../structfsdk_1_1_medical_mask_estimation_extended.html',1,'fsdk']]], + ['medicalmaskextended',['MedicalMaskExtended',['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4',1,'fsdk']]], + ['memory',['Memory',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a4789f23283b3a61f858b641a1bef19a3',1,'fsdk::ISettingsProvider']]], + ['memoryallocationfailed',['MemoryAllocationFailed',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5accc756faa9c309bf0bd9ed5e43dee2a0',1,'fsdk::ISettingsProvider']]], + ['memorycpu',['MemoryCPU',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a2795bef6531632efb72ad70348fb5993',1,'fsdk::Image']]], + ['memorygpu',['MemoryGPU',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07af9b0ab7ae4fae4c4b922abbce4b9bebf',1,'fsdk::Image']]], + ['memorynpu',['MemoryNPU',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a40657ac0e763be1c1a745957006c3555',1,'fsdk::Image']]], + ['memorynpu_5fdpp',['MemoryNPU_DPP',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a1359bce90afb193bac4435d19c8864dd',1,'fsdk::Image']]], + ['memoryresidence',['MemoryResidence',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07',1,'fsdk::Image']]], + ['minor',['minor',['../structfsdk_1_1_version.html#a6ac214dbaed6cb0c9af597a0ce45fa73',1,'fsdk::Version']]], + ['modelnotloaded',['ModelNotLoaded',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a781454aa7253a3e54e7a7f7fec293e29',1,'fsdk']]], + ['modulenotinitialized',['ModuleNotInitialized',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a323d77f58f917d629ad48b5ee2d191c1',1,'fsdk']]], + ['modulenotready',['ModuleNotReady',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6adf06605dc40df1fb5461ffb5f83b2eab',1,'fsdk']]], + ['mouthcoveredwithmask',['MouthCoveredWithMask',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a441d76bcf769e79c823c29a2cf9613b4',1,'fsdk']]], + ['multierror',['MultiError',['../structfsdk_1_1_multi_error.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/all_6e.html b/doc/fsdk/html/search/all_6e.html new file mode 100644 index 0000000..92a12bb --- /dev/null +++ b/doc/fsdk/html/search/all_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_6e.js b/doc/fsdk/html/search/all_6e.js new file mode 100644 index 0000000..2136ebd --- /dev/null +++ b/doc/fsdk/html/search/all_6e.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['nir',['NIR',['../namespacefsdk.html#a2cd10d6257c328c01b7d7296938881f8aac46d1e7cde34e4a9b473eb8a9d8c443',1,'fsdk']]], + ['nodocumentelement',['NoDocumentElement',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a655f7706c6b80b169803c2854e43f207',1,'fsdk::ISettingsProvider']]], + ['noglasses',['NoGlasses',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478ad6e6ea79756eab21131ccaa8bb2c1634',1,'fsdk']]], + ['nomask',['NoMask',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3af50feb187f8ec40ffbe7d4eed016abc0',1,'fsdk::NoMask()'],['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4af50feb187f8ec40ffbe7d4eed016abc0',1,'fsdk::NoMask()']]], + ['nomaskscore',['noMaskScore',['../structfsdk_1_1_medical_mask_estimation.html#aaeaee6d859c996eaf743b6bd79a0309d',1,'fsdk::MedicalMaskEstimation::noMaskScore()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#a03c165564de35173c4ff7f861ab52df4',1,'fsdk::MedicalMaskEstimationExtended::noMaskScore()']]], + ['non',['Non',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a24492e9ec0700fa260acd0c5c15f22d1',1,'fsdk::HeadPoseEstimation']]], + ['noncopyable',['Noncopyable',['../classfsdk_1_1_noncopyable.html',1,'fsdk']]], + ['nonwaitable',['NonWaitable',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fba3b80f1e3131f25efad47938c5e9c66fc',1,'fsdk']]], + ['nosignature',['NoSignature',['../structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79abe2164cbc91b390163c0c9af3448acf6',1,'fsdk::ISerializableObject']]], + ['notfulfilled',['NotFulfilled',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fba1f044538a6ed1853dd8ddd097b77fd90',1,'fsdk']]], + ['notimplemented',['NotImplemented',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a997ca4ce119685f40f03a9a8a6c5346e',1,'fsdk']]], + ['notpromised',['NotPromised',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fba6eea7f630714b872a5f9f60ecb6b02b2',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/all_6f.html b/doc/fsdk/html/search/all_6f.html new file mode 100644 index 0000000..51c8b11 --- /dev/null +++ b/doc/fsdk/html/search/all_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_6f.js b/doc/fsdk/html/search/all_6f.js new file mode 100644 index 0000000..abdb1ef --- /dev/null +++ b/doc/fsdk/html/search/all_6f.js @@ -0,0 +1,42 @@ +var searchData= +[ + ['objectdetectorclasstype',['ObjectDetectorClassType',['../group___detector_group.html#gab83a85f36a0025dac2b8b6d41b88bd8c',1,'fsdk']]], + ['occluded',['Occluded',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a40deec4b6f036b28681fc864b1e31de3',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['occludedface',['OccludedFace',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3a2e4c148920d91d1ad1bd404a00edb08c',1,'fsdk::OccludedFace()'],['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4a2e4c148920d91d1ad1bd404a00edb08c',1,'fsdk::OccludedFace()']]], + ['occludedfacescore',['occludedFaceScore',['../structfsdk_1_1_medical_mask_estimation.html#acc4a4f5b380c5e6fb2bfcc7081a60c49',1,'fsdk::MedicalMaskEstimation::occludedFaceScore()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#ad7e48aec06e8b0b3d7ebdced0451ff59',1,'fsdk::MedicalMaskEstimationExtended::occludedFaceScore()']]], + ['ok',['Ok',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aa60852f204ed8028c1c58808b746d115',1,'fsdk::IDescriptorBatch::Ok()'],['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0aa60852f204ed8028c1c58808b746d115',1,'fsdk::ISerializableObject::Ok()'],['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aa60852f204ed8028c1c58808b746d115',1,'fsdk::ISettingsProvider::Ok()'],['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aa60852f204ed8028c1c58808b746d115',1,'fsdk::Image::Ok()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6aa60852f204ed8028c1c58808b746d115',1,'fsdk::Ok()'],['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbaa60852f204ed8028c1c58808b746d115',1,'fsdk::Ok()'],['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83aa60852f204ed8028c1c58808b746d115',1,'fsdk::Ok()']]], + ['open',['Open',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003ac3bf447eabe632720a3aa1a7ce401274',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['operator_20bool',['operator bool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#aee7766a54dfb9dce2606aef1f88f2b3c',1,'fsdk::ISettingsProvider::Value::operator bool()'],['../structfsdk_1_1_image.html#a94659c183621f3be301832e3673936c6',1,'fsdk::Image::operator bool()'],['../structfsdk_1_1_ref_base.html#a7e3a0a80186484fe19eec757ab9546d9',1,'fsdk::RefBase::operator bool()'],['../structfsdk_1_1_result.html#a7e12d3d63d36a0551279b15c0a8176ac',1,'fsdk::Result::operator bool()'],['../structfsdk_1_1_sizer.html#aa93c5b0d4094955935f021e7c1381998',1,'fsdk::Sizer::operator bool()']]], + ['operator_20size_5ft',['operator size_t',['../structfsdk_1_1_sizer.html#ad766a4340ba8302b07454756c0c28f5f',1,'fsdk::Sizer']]], + ['operator_20t_20_2a',['operator T *',['../structfsdk_1_1_ref_base.html#a87fa2d42cdd5da50ad56c9fcc056099b',1,'fsdk::RefBase']]], + ['operator_20type',['operator Type',['../structfsdk_1_1_format.html#ad603c8ad2250b23f3cbaa04fa69e9d29',1,'fsdk::Format']]], + ['operator_21_3d',['operator!=',['../structfsdk_1_1_base_rect.html#ab4e3ab3f98baad640c21840425c403d7',1,'fsdk::BaseRect::operator!=()'],['../structfsdk_1_1_ref.html#a9c64ce15d1f45608206576a704208a26',1,'fsdk::Ref::operator!=()'],['../structfsdk_1_1_ref_base.html#a5f5a390a37bc52d7483049069ecc89a0',1,'fsdk::RefBase::operator!=()'],['../structfsdk_1_1_sizer.html#a264b497e04eee49c4b401a3dac00cf54',1,'fsdk::Sizer::operator!=()'],['../structfsdk_1_1_vector2.html#a5cbac5fcdaafba36e50105912b15e046',1,'fsdk::Vector2::operator!=()'],['../group___version_group.html#ga525b65b20d219073604d14d7d845bf14',1,'fsdk::operator!=()']]], + ['operator_26',['operator&',['../structfsdk_1_1_base_rect.html#a404b127223e95fb588a63a513d613117',1,'fsdk::BaseRect']]], + ['operator_26_3d',['operator&=',['../structfsdk_1_1_base_rect.html#a436384ddd3d32de0eb88ece21afa766f',1,'fsdk::BaseRect']]], + ['operator_2a',['operator*',['../structfsdk_1_1_base_rect.html#ad8539de95d7316678af7803170ef1095',1,'fsdk::BaseRect::operator*()'],['../structfsdk_1_1_ref_base.html#a3c132b113b08dc44bc8a9150fd007d19',1,'fsdk::RefBase::operator*()'],['../structfsdk_1_1_vector2.html#a58e43c916ff907d4733b091dc75021e8',1,'fsdk::Vector2::operator*(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#af7537f9258b5bab68b965aa8334319eb',1,'fsdk::Vector2::operator*(T rhs) const noexcept']]], + ['operator_2a_3d',['operator*=',['../structfsdk_1_1_vector2.html#abff546b10f081f4cb170e10ee9fbac53',1,'fsdk::Vector2::operator*=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#a3772de7cc691c6d62544939ada5f741f',1,'fsdk::Vector2::operator*=(T rhs) noexcept']]], + ['operator_2b',['operator+',['../structfsdk_1_1_vector2.html#a11766eb4a861ba0893b9a54e654ad426',1,'fsdk::Vector2::operator+(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#af723d6081a9e7c0275d59dfd8d99a515',1,'fsdk::Vector2::operator+(T rhs) const noexcept']]], + ['operator_2b_3d',['operator+=',['../structfsdk_1_1_vector2.html#a1901f162f6d81353a3df86e3611f50ab',1,'fsdk::Vector2::operator+=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#a956df0b0a02e8a0a2129749129c97676',1,'fsdk::Vector2::operator+=(T rhs) noexcept']]], + ['operator_2d',['operator-',['../structfsdk_1_1_vector2.html#a9d794b42a1325f714bfec2433824e0e9',1,'fsdk::Vector2::operator-(void) const noexcept'],['../structfsdk_1_1_vector2.html#a3d0c0ec312b76c2915b4c6abcfc52eb4',1,'fsdk::Vector2::operator-(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#a92c46ca31baaa100454fc2e784d67468',1,'fsdk::Vector2::operator-(T rhs) const noexcept']]], + ['operator_2d_3d',['operator-=',['../structfsdk_1_1_vector2.html#a4f175def8e52677a34f4ec2387e7e0e8',1,'fsdk::Vector2::operator-=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#aae171d417781b18c1364475616bd299c',1,'fsdk::Vector2::operator-=(T rhs) noexcept']]], + ['operator_2d_3e',['operator->',['../structfsdk_1_1_ref.html#a672bfe4b1b07aa8200e0c179323ffc81',1,'fsdk::Ref::operator->()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a0e427b8b97b5b4812e982891ff390437',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::operator->()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a33e437fb19c5c9e37e5a2086c6b6a275',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::operator->()']]], + ['operator_2f',['operator/',['../structfsdk_1_1_base_rect.html#a6d59d105993f94fedaf00f9473ec3b91',1,'fsdk::BaseRect::operator/()'],['../structfsdk_1_1_vector2.html#a4c82f3241e2d679d3162e7c53ad1afb7',1,'fsdk::Vector2::operator/(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#af311eb73a9da48a6535898971a2eec8c',1,'fsdk::Vector2::operator/(T rhs) const noexcept']]], + ['operator_2f_3d',['operator/=',['../structfsdk_1_1_vector2.html#a46e85141a5bb78673cfe23bb3ca4db41',1,'fsdk::Vector2::operator/=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#a3776a6caebaa364cd55f817618abbfdf',1,'fsdk::Vector2::operator/=(T rhs) noexcept']]], + ['operator_3c',['operator<',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a09f319d67c581d9eab31d16bb20062db',1,'fsdk::ISettingsProvider::Key::operator<()'],['../structfsdk_1_1_vector2.html#a9d255e944558f53656e8e689e82fe6b2',1,'fsdk::Vector2::operator<()'],['../group___version_group.html#gad429c6eae9f032debb9416947550009b',1,'fsdk::operator<()']]], + ['operator_3c_3c',['operator<<',['../structfsdk_1_1_sizer.html#ac8305e92c055dd645536ea0103f47308',1,'fsdk::Sizer::operator<<(size_t bytes) noexcept'],['../structfsdk_1_1_sizer.html#a5aeab8578a151d6aac54fd262c5b00fc',1,'fsdk::Sizer::operator<<(const Sizer &other) noexcept']]], + ['operator_3c_3d',['operator<=',['../structfsdk_1_1_vector2.html#a099d2a886cd88ae652fcb1ba4aa560b8',1,'fsdk::Vector2']]], + ['operator_3d',['operator=',['../structfsdk_1_1_image.html#a6e64bb21715b54c2b208c370d4c6bb2d',1,'fsdk::Image::operator=(const Image &other) noexcept'],['../structfsdk_1_1_image.html#acbc748fe0bdd194deb00b26e06a51ed9',1,'fsdk::Image::operator=(Image &&other) noexcept'],['../structfsdk_1_1_base_rect.html#a807dfcdd611eaf57a2aa2c3f3881ef27',1,'fsdk::BaseRect::operator=()'],['../structfsdk_1_1_ref.html#a4828c89609b91ef396295d9338a3966a',1,'fsdk::Ref::operator=(const Ref &other) noexcept'],['../structfsdk_1_1_ref.html#a845904eb499a34c81fad27567bd284f2',1,'fsdk::Ref::operator=(const Ref< D > &other) noexcept'],['../structfsdk_1_1_ref.html#aacf7b3a1eb1afe796743ef8c9390a41c',1,'fsdk::Ref::operator=(T *ptr) noexcept'],['../structfsdk_1_1_ref.html#ac7b437683b2898eb84a2eb12f900b641',1,'fsdk::Ref::operator=(std::nullptr_t) noexcept'],['../structfsdk_1_1_sizer.html#a43e5787f073a4e54efe7b714269d31ff',1,'fsdk::Sizer::operator=()'],['../classfsdk_1_1_span.html#a1371c55fe46de7880cafc8836e8f5043',1,'fsdk::Span::operator=()'],['../structfsdk_1_1_vector2.html#a04a185c2ceddc611bea5c939c2124898',1,'fsdk::Vector2::operator=()']]], + ['operator_3d_3d',['operator==',['../structfsdk_1_1_base_rect.html#ab53516b12c364e4304a8c0db4f7fedeb',1,'fsdk::BaseRect::operator==()'],['../structfsdk_1_1_ref.html#a70f2e2f6d93a448c088311e65c17e29f',1,'fsdk::Ref::operator==()'],['../structfsdk_1_1_ref_base.html#a8a7d5f145b0709c08a5faf1741fafbe4',1,'fsdk::RefBase::operator==()'],['../structfsdk_1_1_sizer.html#a81710ba2c9c46ef82255d8f3a6aaf092',1,'fsdk::Sizer::operator==()'],['../structfsdk_1_1_vector2.html#ae8a5c741804ce2fd3c0feb7a7897fc90',1,'fsdk::Vector2::operator==()'],['../group___version_group.html#gaa1f550339ca96028e8c0115d201e02a0',1,'fsdk::operator==()']]], + ['operator_3e',['operator>',['../structfsdk_1_1_vector2.html#a86cefdf00bbc408525a5cb93fb6aa132',1,'fsdk::Vector2']]], + ['operator_3e_3d',['operator>=',['../structfsdk_1_1_vector2.html#aaa3f5f7de83b0c7063a36c67cd2ae9ce',1,'fsdk::Vector2']]], + ['operator_5b_5d',['operator[]',['../classfsdk_1_1_span.html#a16e587f201014a10a13a04a72c2a4939',1,'fsdk::Span::operator[](std::size_t index)'],['../classfsdk_1_1_span.html#ab1575087c09d7d055cad79a1833f88c6',1,'fsdk::Span::operator[](std::size_t index) const '],['../structfsdk_1_1_vector2.html#a15132224488f37333baf143bf522f863',1,'fsdk::Vector2::operator[](int n) noexcept'],['../structfsdk_1_1_vector2.html#a07d0a831616016167cfecb63afa91879',1,'fsdk::Vector2::operator[](int n) const noexcept']]], + ['operator_7c',['operator|',['../structfsdk_1_1_base_rect.html#aa7a7d623d0d0b9a73e040b8753014782',1,'fsdk::BaseRect']]], + ['operator_7c_3d',['operator|=',['../structfsdk_1_1_base_rect.html#a4655fc1f9639d70c24cc9bcf6bf28f89',1,'fsdk::BaseRect']]], + ['orientationtype',['OrientationType',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8',1,'fsdk']]], + ['ot_5fleft',['OT_LEFT',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8a106d4ca5cb057bef338d7b7d6c07d211',1,'fsdk']]], + ['ot_5fnormal',['OT_NORMAL',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8a4c9ccc5761b45a4fddd2f711ba56ec86',1,'fsdk']]], + ['ot_5fright',['OT_RIGHT',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8a8902f74893302a8e7572555cf21d56d0',1,'fsdk']]], + ['ot_5fupside_5fdown',['OT_UPSIDE_DOWN',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8abdb076e54655c3150966583e78f4d309',1,'fsdk']]], + ['outofrange',['OutOfRange',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a365b2699d38b61ef4b4c8a1066c8468f',1,'fsdk::IDescriptorBatch']]], + ['ownsdata',['ownsData',['../structfsdk_1_1_image.html#adf5ed625bd338c55677dee58043de494',1,'fsdk::Image']]] +]; diff --git a/doc/fsdk/html/search/all_70.html b/doc/fsdk/html/search/all_70.html new file mode 100644 index 0000000..a279cb2 --- /dev/null +++ b/doc/fsdk/html/search/all_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_70.js b/doc/fsdk/html/search/all_70.js new file mode 100644 index 0000000..ced304a --- /dev/null +++ b/doc/fsdk/html/search/all_70.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['partlycoveredface',['PartlyCoveredFace',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a4a2e1816c03bce920e68f535c6bac16e',1,'fsdk']]], + ['patch',['patch',['../structfsdk_1_1_version.html#a720d91d998895868039802a5e26f0df2',1,'fsdk::Version']]], + ['pitch',['pitch',['../structfsdk_1_1_head_pose_estimation.html#a37c44c6f403d866d48611784b1d548ce',1,'fsdk::HeadPoseEstimation::pitch()'],['../structfsdk_1_1_sub_image.html#ac7b1e40c980a97e6eff3fb63d1823b6f',1,'fsdk::SubImage::pitch()']]], + ['point',['point',['../structfsdk_1_1_human_landmark.html#a56402856056aed0b4b87ef66798ee92a',1,'fsdk::HumanLandmark']]], + ['point2d',['Point2d',['../namespacefsdk.html#aba867311a64103492ac6a67cd44e1245',1,'fsdk']]], + ['point2f',['Point2f',['../namespacefsdk.html#a274ca67e9b2c2f489ea8b0ef37fe67e2',1,'fsdk']]], + ['point2i',['Point2i',['../namespacefsdk.html#abc92bf6fd92f16b2d9c8e78a85838bcd',1,'fsdk']]], + ['point2u',['Point2u',['../namespacefsdk.html#a2fbe78803751bce88a5190504844a996',1,'fsdk']]], + ['point2us',['Point2us',['../namespacefsdk.html#ae4534c3469a5004e0fea3c403e7f7c58',1,'fsdk']]], + ['progress',['progress',['../structfsdk_1_1_i_progress_tracker.html#a79ab3dfe56481122e2d9540279c55abc',1,'fsdk::IProgressTracker']]], + ['promise',['Promise',['../classfsdk_1_1_promise.html',1,'fsdk']]], + ['promise',['Promise',['../classfsdk_1_1_promise.html#a26f2ff77af845a32921508ac26184217',1,'fsdk::Promise']]], + ['promised',['Promised',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82ba2be6a2301e811bf1ea5e43c4f4c4ef3a',1,'fsdk']]], + ['promiseerror',['PromiseError',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/all_71.html b/doc/fsdk/html/search/all_71.html new file mode 100644 index 0000000..ee4ba24 --- /dev/null +++ b/doc/fsdk/html/search/all_71.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_71.js b/doc/fsdk/html/search/all_71.js new file mode 100644 index 0000000..c7ff98a --- /dev/null +++ b/doc/fsdk/html/search/all_71.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['quality',['Quality',['../structfsdk_1_1_quality.html',1,'fsdk']]], + ['qualityscore',['qualityScore',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a2454222f5dc14f519d571798ad0311a8',1,'fsdk::LivenessOneShotRGBEstimation']]] +]; diff --git a/doc/fsdk/html/search/all_72.html b/doc/fsdk/html/search/all_72.html new file mode 100644 index 0000000..315ac4f --- /dev/null +++ b/doc/fsdk/html/search/all_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_72.js b/doc/fsdk/html/search/all_72.js new file mode 100644 index 0000000..f603758 --- /dev/null +++ b/doc/fsdk/html/search/all_72.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['r16',['R16',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1ae6596410cdfb3e164d3114d7275c01a4',1,'fsdk::Format']]], + ['r8',['R8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1afd28eabff68ce04d89a4a445c8774f11',1,'fsdk::Format']]], + ['r8g8b8',['R8G8B8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a64d817782ee8b40de7073acc65267e76',1,'fsdk::Format']]], + ['r8g8b8x8',['R8G8B8X8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a1531807037bb455d89b70ff0d6ff05fe',1,'fsdk::Format']]], + ['read',['read',['../structfsdk_1_1_i_archive.html#af27d2a846518cb22b709a40c88601b7b',1,'fsdk::IArchive']]], + ['redetect',['redetect',['../structfsdk_1_1_i_detector.html#ae95fa3fe533fe5f3a15a7359446502d4',1,'fsdk::IDetector::redetect(Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, DetectionType type=DT_BBOX) noexcept=0'],['../structfsdk_1_1_i_detector.html#a2b7b9a113d7f80fc6e6613d642b3943d',1,'fsdk::IDetector::redetect(Span< const Image > images, Span< Span< const Detection >> detections, DetectionType type=DT_BBOX) noexcept=0'],['../structfsdk_1_1_i_human_detector.html#aa646c7b7ae2dda414b967a24092f3948',1,'fsdk::IHumanDetector::redetect(Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, HumanDetectionType type=HDT_BOX) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a1a427579c96e2df17d7b445235a3f8fe',1,'fsdk::IHumanDetector::redetect(Span< const Image > images, Span< Span< const Detection >> detections, HumanDetectionType type=HDT_BOX) const noexcept=0']]], + ['redetectasync',['redetectAsync',['../structfsdk_1_1_i_detector.html#a31069412a8be899db49866d9651aa35b',1,'fsdk::IDetector']]], + ['redetectone',['redetectOne',['../structfsdk_1_1_i_detector.html#aad8aeff6c35f03740fc018a9b295a157',1,'fsdk::IDetector::redetectOne()'],['../structfsdk_1_1_i_human_detector.html#a4f7351750b7ec8547778511a9129af60',1,'fsdk::IHumanDetector::redetectOne()']]], + ['ref',['Ref',['../structfsdk_1_1_ref.html',1,'fsdk']]], + ['ref',['Ref',['../structfsdk_1_1_ref.html#a58e4acb99a8a874754a23e6e4f7b2251',1,'fsdk::Ref::Ref() noexcept=default'],['../structfsdk_1_1_ref.html#a2b302d028bf41a3299ad1a75d3078b08',1,'fsdk::Ref::Ref(std::nullptr_t) noexcept'],['../structfsdk_1_1_ref.html#aa7673c14c03a88a443a5497497af5146',1,'fsdk::Ref::Ref(T *ptr) noexcept'],['../structfsdk_1_1_ref.html#a3fdf807e4c01d6f07e8d67f920537022',1,'fsdk::Ref::Ref(const Ref &other)'],['../structfsdk_1_1_ref.html#a04c673df1f8297ed0330b56be72218f2',1,'fsdk::Ref::Ref(const Ref< D > &other)']]], + ['refbase',['RefBase',['../structfsdk_1_1_ref_base.html#a53e524dddc5f820708d0db6c99069d64',1,'fsdk::RefBase::RefBase() noexcept=default'],['../structfsdk_1_1_ref_base.html#aac9bb6fcbf9b720a6b5e7a4907cc80c1',1,'fsdk::RefBase::RefBase(T *ptr) noexcept']]], + ['refbase',['RefBase',['../structfsdk_1_1_ref_base.html',1,'fsdk']]], + ['release',['release',['../structfsdk_1_1_i_ref_counted.html#a1b045b30c43c70150e553b7bd796e92a',1,'fsdk::IRefCounted::release()'],['../structfsdk_1_1_image.html#a32f3e84a17a9e47a516d2f9cef50c040',1,'fsdk::Image::release()']]], + ['releasedinotherthread',['ReleasedInOtherThread',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a014e56b039fd19b57e203c1fb371f5ce',1,'fsdk::Image']]], + ['releaseweak',['releaseWeak',['../structfsdk_1_1_i_ref_counted.html#a89a2ad867e5ded45c0b3764a48fc6ff3',1,'fsdk::IRefCounted']]], + ['removedescriptor',['removeDescriptor',['../structfsdk_1_1_i_dynamic_descriptor_storage.html#a67d89300f3cfc098aac035d446c395f8',1,'fsdk::IDynamicDescriptorStorage']]], + ['removefast',['removeFast',['../structfsdk_1_1_i_descriptor_batch.html#a8f32454a4158e732938e6b9812b6ceb5',1,'fsdk::IDescriptorBatch']]], + ['removeslow',['removeSlow',['../structfsdk_1_1_i_descriptor_batch.html#ac98c97ca906f99236c7065d51f82c65a',1,'fsdk::IDescriptorBatch']]], + ['rescale',['rescale',['../structfsdk_1_1_image.html#a6ed2d1d79094102bed624f40f14f4acb',1,'fsdk::Image']]], + ['reset',['reset',['../structfsdk_1_1_image.html#aae4044994b8cebfdd3f94e13606b9b07',1,'fsdk::Image::reset()'],['../structfsdk_1_1_ref.html#a24015b4f52310246a88e40ffd1e81030',1,'fsdk::Ref::reset()'],['../structfsdk_1_1_sizer.html#aea7fc0320b954ae96fe7454135aafbe8',1,'fsdk::Sizer::reset()']]], + ['resize',['resize',['../structfsdk_1_1_i_async_context.html#a2ecda0d4f935a7fe477f68bd5d90f5a7',1,'fsdk::IAsyncContext']]], + ['result',['result',['../structfsdk_1_1_medical_mask_estimation.html#a5e6d266d2125862f965e1067e92b7b90',1,'fsdk::MedicalMaskEstimation::result()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#a2934d2e1c5106b25b2b58495016afc3e',1,'fsdk::MedicalMaskEstimationExtended::result()'],['../structfsdk_1_1_result.html#a06a734e30ac4eece206f4733b7a5d012',1,'fsdk::Result::Result(E error) noexcept'],['../structfsdk_1_1_result.html#aa3167e68bcb821500440dd076a6b42f3',1,'fsdk::Result::Result() noexcept']]], + ['result',['Result',['../structfsdk_1_1_result.html',1,'fsdk']]], + ['result_3c_20r_20_3e',['Result< R >',['../structfsdk_1_1_result.html',1,'fsdk']]], + ['resultvalue',['ResultValue',['../structfsdk_1_1_result_value.html',1,'fsdk']]], + ['resultvalue',['ResultValue',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ac955e75bbf5fb02d839769d9fb2ba664',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue(R result) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a56653ed758a6407bb25489a58b348e0c',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue(R result, const V &value) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#adf265f066cbc9f58b26a480accdb1c27',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue(R result, V &&value) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a26f358e8c2c64299a59d98c6feaf4dd1',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ResultValue(R result) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a046c9b256bd86bc479c39e6d731435bc',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ResultValue(R result, V &&value) noexcept']]], + ['resultvalue_3c_20r_2c_20v_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5fcopy_5fconstructible_3c_20v_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e',['ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html',1,'fsdk']]], + ['resultvalue_3c_20r_2c_20v_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5fcopy_5fconstructible_3c_20v_20_3e_3a_3avalue_3d_3dfalse_20_3e_3a_3atype_20_3e',['ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html',1,'fsdk']]], + ['retain',['retain',['../structfsdk_1_1_i_ref_counted.html#a8cb7a6ecf064e4b8a99038cf08a29e7f',1,'fsdk::IRefCounted::retain()'],['../structfsdk_1_1_image.html#aadc0669fe4f2632fb259d2cba1a06738',1,'fsdk::Image::retain()']]], + ['retainlocked',['retainLocked',['../structfsdk_1_1_i_ref_counted.html#a7362292166bdff4b2463e25f8003671a',1,'fsdk::IRefCounted']]], + ['retainweak',['retainWeak',['../structfsdk_1_1_i_ref_counted.html#aaea14dbe2f8eee5deefced4ef3a126b5',1,'fsdk::IRefCounted']]], + ['right',['right',['../structfsdk_1_1_base_rect.html#a67f3227a6256c5479e432c868e962652',1,'fsdk::BaseRect']]], + ['righteye',['rightEye',['../structfsdk_1_1_eyes_estimation.html#a8d8d8aeeba833fdc9e92cc191999a4e0',1,'fsdk::EyesEstimation']]], + ['roll',['roll',['../structfsdk_1_1_head_pose_estimation.html#af380243a75d2fbc23a3504014f2998ce',1,'fsdk::HeadPoseEstimation']]] +]; diff --git a/doc/fsdk/html/search/all_73.html b/doc/fsdk/html/search/all_73.html new file mode 100644 index 0000000..09f8ce8 --- /dev/null +++ b/doc/fsdk/html/search/all_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_73.js b/doc/fsdk/html/search/all_73.js new file mode 100644 index 0000000..ee99c66 --- /dev/null +++ b/doc/fsdk/html/search/all_73.js @@ -0,0 +1,65 @@ +var searchData= +[ + ['sdk_20core_20interfaces',['SDK core interfaces',['../group___core_group.html',1,'']]], + ['save',['save',['../structfsdk_1_1_i_serializable_object.html#a5171a97d79c639d613ec9d6ee694c8e1',1,'fsdk::ISerializableObject::save()'],['../structfsdk_1_1_i_settings_provider.html#a24c6329c41291b32cdecf5d10cb90a90',1,'fsdk::ISettingsProvider::save()'],['../structfsdk_1_1_image.html#ae3bd0f9b7e1dd8871e7110d566c0eb3b',1,'fsdk::Image::save(const char *path, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept'],['../structfsdk_1_1_image.html#a9551bec72e3e4798bce2ddd116b53f6e',1,'fsdk::Image::save(const char *path, const Format format) const noexcept']]], + ['savetodenseindex',['saveToDenseIndex',['../structfsdk_1_1_i_dynamic_index.html#af7c7947059b6876546e0a712cf32d5bb',1,'fsdk::IDynamicIndex']]], + ['savetodynamicindex',['saveToDynamicIndex',['../structfsdk_1_1_i_dynamic_index.html#a589098df084d6e99c80574726fc4bca7',1,'fsdk::IDynamicIndex']]], + ['savetofile',['saveToFile',['../structfsdk_1_1_i_license.html#a0d6ceffe612d0f87dc6ae96bfb4bdb9f',1,'fsdk::ILicense']]], + ['savetomemory',['saveToMemory',['../structfsdk_1_1_image.html#a394ec678da307c9f6f73b673567bc9ae',1,'fsdk::Image::saveToMemory(Image::Type type, IArchive *archive, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept'],['../structfsdk_1_1_image.html#a4031cca84864d83a5361968eaec0809e',1,'fsdk::Image::saveToMemory(Image::Type type, IArchive *archive, const Format format) const noexcept']]], + ['score',['score',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#ab04c44ea4803007fed4af1267fb5b729',1,'fsdk::LivenessOneShotRGBEstimation::score()'],['../structfsdk_1_1_human_landmark.html#afbe027ef46796ecfa9e86d9c0f361159',1,'fsdk::HumanLandmark::score()']]], + ['scores',['scores',['../structfsdk_1_1_medical_mask_estimation.html#add99f3ecb4dbac4955949273cc9aa31a',1,'fsdk::MedicalMaskEstimation']]], + ['search',['search',['../structfsdk_1_1_i_index.html#a0f14bf62346477137a85525c03cbf1e5',1,'fsdk::IIndex']]], + ['searchresult',['SearchResult',['../structfsdk_1_1_search_result.html',1,'fsdk']]], + ['searchresult',['SearchResult',['../structfsdk_1_1_search_result.html#a22fc4965d8484ef9ecd8540d2bc86bc8',1,'fsdk::SearchResult::SearchResult() noexcept'],['../structfsdk_1_1_search_result.html#aef457bbb7044f31b2d8d7e788468d2d2',1,'fsdk::SearchResult::SearchResult(float distance, float similarity, DescriptorId index) noexcept']]], + ['sensortype',['SensorType',['../namespacefsdk.html#a2cd10d6257c328c01b7d7296938881f8',1,'fsdk']]], + ['set',['set',['../structfsdk_1_1_image.html#ae43bcd728b9b3389a5d45e20dee1205d',1,'fsdk::Image::set(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a85ddf384c606013f7c2aa2815eaeccf4',1,'fsdk::Image::set(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#af449e5eaada6b033205fec916c758aff',1,'fsdk::Image::set(const Image &other) noexcept'],['../structfsdk_1_1_image.html#a62466dd45bd37cdd3c73bdeb7b268b20',1,'fsdk::Image::set(const SubImage &subImage) noexcept'],['../structfsdk_1_1_base_rect.html#a3ce12a4e41011abe8e786c0fbc8ce21d',1,'fsdk::BaseRect::set()'],['../structfsdk_1_1_ref_base.html#a9baae9b19a0723e049bce5d641889662',1,'fsdk::RefBase::set()']]], + ['setbool',['setBool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#afbdabfa895b18e2ae63429b99accb87b',1,'fsdk::ISettingsProvider::Value']]], + ['setbottom',['setBottom',['../structfsdk_1_1_base_rect.html#a4b293834cd31533ac8a0a3ddfd1e1329',1,'fsdk::BaseRect']]], + ['setcustomdetectioncomparer',['setCustomDetectionComparer',['../structfsdk_1_1_i_detector.html#aaf4ac12ce269c0cc293f9348f9ef1c3d',1,'fsdk::IDetector']]], + ['setdatadirectory',['setDataDirectory',['../group___core_group.html#ga297a0bb88bf7d2a79939e4936067d5d3',1,'fsdk::IFaceEngineMobile']]], + ['setdesc',['setDesc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#af5c231731f8657154468cfc4ba7e3096',1,'fsdk::ISettingsProvider::Desc::setDesc()'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a462b8686b4b770c5204a4a5031514fb9',1,'fsdk::ISettingsProvider::Entry::setDesc()'],['../structfsdk_1_1_i_settings_provider.html#ac9dd8729888381082f1fd9ec46734db2',1,'fsdk::ISettingsProvider::setDesc(const Key &key, const Desc &desc) noexcept=0'],['../structfsdk_1_1_i_settings_provider.html#aabb9a7e6bd022bc5fd89d019a74628d0',1,'fsdk::ISettingsProvider::setDesc(const char *section, const char *parameter, const Desc &desc) noexcept']]], + ['setdescriptor',['setDescriptor',['../structfsdk_1_1_i_descriptor.html#a430f0098d482b8f235f0b0282184c864',1,'fsdk::IDescriptor']]], + ['setdetectioncomparer',['setDetectionComparer',['../structfsdk_1_1_i_detector.html#a19a8d0891929e7e922a2f1282076d8a9',1,'fsdk::IDetector']]], + ['setentry',['setEntry',['../structfsdk_1_1_i_settings_provider.html#a24483db5f2e2b8434cb226d23e8f767d',1,'fsdk::ISettingsProvider::setEntry(const Key &key, Entry &&entry) noexcept=0'],['../structfsdk_1_1_i_settings_provider.html#abedbf12597aee1d33e7f42c47fa9b18a',1,'fsdk::ISettingsProvider::setEntry(const Key &key, const Desc &desc, Value &&value) noexcept'],['../structfsdk_1_1_i_settings_provider.html#a44255bcd4c2f6697782082033f1c062e',1,'fsdk::ISettingsProvider::setEntry(const char *section, const char *parameter, const Desc &desc, Value &&value) noexcept']]], + ['setfloat',['setFloat',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a4e86e07ec3d3dd9fa6df83af423b147e',1,'fsdk::ISettingsProvider::Value::setFloat(float x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5720f7b47ca5264c9da56cb8659fff40',1,'fsdk::ISettingsProvider::Value::setFloat(float x, float y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#af6de22e8a4956661ef47b65adbc7684f',1,'fsdk::ISettingsProvider::Value::setFloat(float x, float y, float z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aefc7af5a886571f1e510c1eb51558c06',1,'fsdk::ISettingsProvider::Value::setFloat(float x, float y, float z, float w) noexcept']]], + ['setint',['setInt',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a8ffc8d4baa19ff98c25b3ca1cdec419d',1,'fsdk::ISettingsProvider::Value::setInt(int x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a4b8b66e59cbdc206fc389f486ac9da69',1,'fsdk::ISettingsProvider::Value::setInt(int x, int y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#abf9c6a2457cf1f7cc856533aefd85d9d',1,'fsdk::ISettingsProvider::Value::setInt(int x, int y, int z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a999198508b6f0f7ec19daff50424343b',1,'fsdk::ISettingsProvider::Value::setInt(int x, int y, int z, int w) noexcept']]], + ['setleft',['setLeft',['../structfsdk_1_1_base_rect.html#ab4466df98371077db3f9184894d7af32',1,'fsdk::BaseRect']]], + ['setparameter',['setParameter',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a4806cf422efe957999b8b1578f716d4b',1,'fsdk::ISettingsProvider::Key']]], + ['setpoint2f',['setPoint2f',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a97c411b847afda41ec7b64a0e646e6e6',1,'fsdk::ISettingsProvider::Value']]], + ['setpoint2i',['setPoint2i',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a2a6a2b04795f4be07002b554877951b0',1,'fsdk::ISettingsProvider::Value']]], + ['setrawrect',['setRawRect',['../structfsdk_1_1_detection.html#a6425f5f8ddc50c94df035378bb3d5aee',1,'fsdk::Detection']]], + ['setrect',['setRect',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a33745b6b63863e2153867c888257a373',1,'fsdk::ISettingsProvider::Value']]], + ['setright',['setRight',['../structfsdk_1_1_base_rect.html#a137f59a19b449cee39e36e9b68bca4e2',1,'fsdk::BaseRect']]], + ['setruntimesettingsprovider',['setRuntimeSettingsProvider',['../group___core_group.html#ga4d091c486f5157e8f0f42630fa4c7d78',1,'fsdk::IFaceEngineMobile']]], + ['setscore',['setScore',['../structfsdk_1_1_detection.html#a63d72cc33b96c33a078961b5f0b23ac5',1,'fsdk::Detection']]], + ['setsection',['setSection',['../structfsdk_1_1_i_settings_provider_1_1_key.html#acb298366c5ad703f47add965f31420ed',1,'fsdk::ISettingsProvider::Key']]], + ['setsettingsprovider',['setSettingsProvider',['../group___core_group.html#ga807383acfa6e302fce4fdc6254884735',1,'fsdk::IFaceEngineMobile']]], + ['setsize',['setSize',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a98e8b1488035f0329ffc81180143398e',1,'fsdk::ISettingsProvider::Value::setSize()'],['../classfsdk_1_1_span.html#ac6eff7f7e3d1fedb1673b4411d9a3de9',1,'fsdk::Span::setSize()']]], + ['setsizehint',['setSizeHint',['../structfsdk_1_1_i_archive.html#a7f1fe72083db24c7b6620d4a9a657612',1,'fsdk::IArchive']]], + ['setstring',['setString',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a730243dec9aa8addb47d58b11806dafa',1,'fsdk::ISettingsProvider::Value']]], + ['settop',['setTop',['../structfsdk_1_1_base_rect.html#a1f55e47d552e914b58061632cb35e20f',1,'fsdk::BaseRect']]], + ['setvalue',['setValue',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a0f18fe3e34e0546f8bb7e8ec89ac2b7f',1,'fsdk::ISettingsProvider::Entry::setValue()'],['../structfsdk_1_1_i_settings_provider.html#a98efbcbf26e39e5cf70b3215514d5975',1,'fsdk::ISettingsProvider::setValue(const Key &key, Value &&value) noexcept=0'],['../structfsdk_1_1_i_settings_provider.html#a6472ad96f6b21bbf36fbbd4e4473bb50',1,'fsdk::ISettingsProvider::setValue(const char *section, const char *parameter, Value &&value) noexcept']]], + ['signature',['Signature',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a8c09001c99ecb6fdd8d6023fcf039054',1,'fsdk::ISerializableObject']]], + ['similarity',['similarity',['../structfsdk_1_1_matching_result.html#ae8b080ed7da80dd6848de80be9ffce51',1,'fsdk::MatchingResult']]], + ['size',['Size',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a6f6cb72d544962fa333e2e34ce64f719',1,'fsdk::ISerializableObject::Size()'],['../structfsdk_1_1_i_static_descriptor_storage.html#aee1e7ce2800e384e546d7d99de7ca586',1,'fsdk::IStaticDescriptorStorage::size()'],['../structfsdk_1_1_base_rect.html#a270bd8113a22c7f5cc553a1baa362ba3',1,'fsdk::BaseRect::size()'],['../classfsdk_1_1_span.html#a1fcb99423267eb25a11f87bc069cb97e',1,'fsdk::Span::size()'],['../namespacefsdk.html#a77eb62991e30a65164c055b3e518defd',1,'fsdk::Size()']]], + ['sizer',['Sizer',['../structfsdk_1_1_sizer.html#a9cd97626466e7e07a63fe9ff896352dc',1,'fsdk::Sizer::Sizer() noexcept'],['../structfsdk_1_1_sizer.html#a491defed47cfaeaf38dd29074c8b7d89',1,'fsdk::Sizer::Sizer(const Sizer &other) noexcept']]], + ['sizer',['Sizer',['../structfsdk_1_1_sizer.html',1,'fsdk']]], + ['span',['Span',['../classfsdk_1_1_span.html#ae984b657d4947a6adb3e1d0b4ddce297',1,'fsdk::Span::Span(T *data, std::size_t size)'],['../classfsdk_1_1_span.html#ad269a8eb69d0d90e34d8eab02d575cc6',1,'fsdk::Span::Span(ContiguousContainer &&container)']]], + ['span',['Span',['../classfsdk_1_1_span.html',1,'fsdk']]], + ['state',['state',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a53ed592dc7a11f3c5061286d8c582e5e',1,'fsdk::EyesEstimation::EyeAttributes::state()'],['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#aeced46122e807a731b03b28f345f211f',1,'fsdk::LivenessOneShotRGBEstimation::state()'],['../classfsdk_1_1_future.html#a2b52e6264dc9fb54d143712efdb783b8',1,'fsdk::Future::state()'],['../classfsdk_1_1_promise.html#acb099562ad549c712fcdca295b379f5d',1,'fsdk::Promise::state()'],['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003',1,'fsdk::EyesEstimation::EyeAttributes::State()'],['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56',1,'fsdk::LivenessOneShotRGBEstimation::State()']]], + ['statedoesntallowfuturecreation',['StateDoesntAllowFutureCreation',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83a8a986d01729ce1c0f7850a2a2a8d6adc',1,'fsdk']]], + ['statenotcancelable',['StateNotCancelable',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83a801f898435bf3dbee309450663b0e2b2',1,'fsdk']]], + ['statenotfailable',['StateNotFailable',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83acb325477696c2966ed1115474086076d',1,'fsdk']]], + ['statenotfulfillable',['StateNotFulfillable',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83ae3edadd584e4efcdca61a840abdf7c4b',1,'fsdk']]], + ['stop',['stop',['../structfsdk_1_1_i_async_context.html#af9133106ddd66cfc4bbb48d390e48f2c',1,'fsdk::IAsyncContext']]], + ['string',['String',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac62a83138afcfe41b9c64a6e6026f5fb',1,'fsdk::ISettingsProvider::Value']]], + ['string',['String',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['stringify',['STRINGIFY',['../group___core_group.html#ga6df1d22fb5f09eccc23b9f399670cfd7',1,'Def.h']]], + ['stringify2',['STRINGIFY2',['../group___core_group.html#ga41f0baf2fca639d9cb25be1b9e03e335',1,'Def.h']]], + ['subimage',['SubImage',['../structfsdk_1_1_sub_image.html',1,'fsdk']]], + ['subimage',['SubImage',['../structfsdk_1_1_sub_image.html#a1ccb24d83a92805fad4aa5c18f43b114',1,'fsdk::SubImage']]], + ['subjectivequality',['SubjectiveQuality',['../structfsdk_1_1_subjective_quality.html',1,'fsdk']]], + ['sunglasses',['SunGlasses',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478ae6798db673b98a47d715e139a67e81ff',1,'fsdk']]], + ['swap',['swap',['../classfsdk_1_1_future.html#a7f7977f3ac4805fda79869a23f9f8686',1,'fsdk::Future::swap()'],['../classfsdk_1_1_promise.html#a9b3e58dc95742108177ca25db4a933eb',1,'fsdk::Promise::swap()'],['../structfsdk_1_1_image.html#a6cc848e22d99f4d2d8b34d240c0bba47',1,'fsdk::Image::swap()'],['../structfsdk_1_1_sizer.html#af49cc6ba59d47f9fd71a461260231a4e',1,'fsdk::Sizer::swap()']]], + ['sync',['Sync',['../namespacefsdk.html#a0f4cbbc8c61f0127bd75695e76869860ad8e87c0927539672f54462c837be0b7f',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/all_74.html b/doc/fsdk/html/search/all_74.html new file mode 100644 index 0000000..c2cd095 --- /dev/null +++ b/doc/fsdk/html/search/all_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_74.js b/doc/fsdk/html/search/all_74.js new file mode 100644 index 0000000..54af4a4 --- /dev/null +++ b/doc/fsdk/html/search/all_74.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['takeinto',['takeInto',['../classfsdk_1_1_future.html#ac30c21fa31a1d66e732bfffada32e03a',1,'fsdk::Future']]], + ['takevalue',['takeValue',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ade19468195453a80c350071fa4f10854',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::takeValue()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#ada51f8afb1de2cb66197e010831199db',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::takeValue()']]], + ['targetdevice',['TargetDevice',['../structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4',1,'fsdk::Image']]], + ['threads',['threads',['../structfsdk_1_1_i_async_context.html#ac73acb108a28097493dc33a32383405d',1,'fsdk::IAsyncContext']]], + ['timeout',['Timeout',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbac85a251cc457840f1e032f1b733e9398',1,'fsdk']]], + ['top',['top',['../structfsdk_1_1_base_rect.html#a7fff6bef1a63625bd8142f7be10b205b',1,'fsdk::BaseRect']]], + ['topleft',['topLeft',['../structfsdk_1_1_base_rect.html#aaa49c9b78371e0d6d4fe1103cbf6bca9',1,'fsdk::BaseRect']]], + ['transformation',['Transformation',['../structfsdk_1_1_transformation.html',1,'fsdk']]], + ['type',['Type',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947',1,'fsdk::ISettingsProvider::Value::Type()'],['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1',1,'fsdk::Format::Type()'],['../structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7',1,'fsdk::Image::Type()']]], + ['types_2eh',['Types.h',['../_types_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/all_75.html b/doc/fsdk/html/search/all_75.html new file mode 100644 index 0000000..49c1e78 --- /dev/null +++ b/doc/fsdk/html/search/all_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_75.js b/doc/fsdk/html/search/all_75.js new file mode 100644 index 0000000..d5e8f59 --- /dev/null +++ b/doc/fsdk/html/search/all_75.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['undefined',['Undefined',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a99ad8e5a64bab96bf5f777dc1b51d88f',1,'fsdk::ISettingsProvider::Value']]], + ['unknown',['Unknown',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a28e996e86d8357a023f9b14fa4da9f1f',1,'fsdk::Format::Unknown()'],['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a88183b946cc5f0e8c96b2e66e1c74a7e',1,'fsdk::LivenessOneShotRGBEstimation::Unknown()']]], + ['unwarp',['unwarp',['../structfsdk_1_1_i_warper.html#a84d916dc3296244f29270128f77b6536',1,'fsdk::IWarper::unwarp(const EyesEstimation &eyesEstimationInWarpCoordinates, const Transformation &transformation, EyesEstimation &eyesEstimation) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a20355c3fc081074b92b2a6d7f25523ab',1,'fsdk::IWarper::unwarp(const Landmarks5 &warpedLandmarks5, const Transformation &transformation, Landmarks5 &landmarks5) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a3c896d2a8f1ad3deaf1ff12c6f8a35d8',1,'fsdk::IWarper::unwarp(const Landmarks68 &warpedLandmarks68, const Transformation &transformation, Landmarks68 &landmarks68) const noexcept=0']]], + ['usec',['USec',['../classfsdk_1_1_future.html#ab792dd0d1b8eac18d3a0d875d215575f',1,'fsdk::Future']]] +]; diff --git a/doc/fsdk/html/search/all_76.html b/doc/fsdk/html/search/all_76.html new file mode 100644 index 0000000..5643d68 --- /dev/null +++ b/doc/fsdk/html/search/all_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_76.js b/doc/fsdk/html/search/all_76.js new file mode 100644 index 0000000..01af34b --- /dev/null +++ b/doc/fsdk/html/search/all_76.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['valid',['valid',['../structfsdk_1_1_i_async_context.html#a819aef0e6c25bade404db1e1e0cde11e',1,'fsdk::IAsyncContext']]], + ['validate',['validate',['../structfsdk_1_1_i_a_g_s_estimator.html#a771c4b021790e85aa9bde0e1b13b26f7',1,'fsdk::IAGSEstimator::validate()'],['../structfsdk_1_1_i_best_shot_quality_estimator.html#a9278fd5a0b49f6eb6b5860bc04a0aa1e',1,'fsdk::IBestShotQualityEstimator::validate()'],['../structfsdk_1_1_i_eye_estimator.html#a4534d4ee1854c38b89238ff294a1a0cb',1,'fsdk::IEyeEstimator::validate()'],['../structfsdk_1_1_i_glasses_estimator.html#a56e29006f163d67139790002d020e952',1,'fsdk::IGlassesEstimator::validate()'],['../structfsdk_1_1_i_head_pose_estimator.html#a934b364e035980966cb7f09faf0b9a7b',1,'fsdk::IHeadPoseEstimator::validate()'],['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a540933fe78bc701f7762b3422e8bb499',1,'fsdk::ILivenessOneShotRGBEstimator::validate()'],['../structfsdk_1_1_i_medical_mask_estimator.html#a73dde47ed832da47eedf47921af4e42d',1,'fsdk::IMedicalMaskEstimator::validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a2d09801e30812ea464f897cef0e4c4a9',1,'fsdk::IMedicalMaskEstimator::validate(Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#adf7141013baf6da3881d901339064180',1,'fsdk::IQualityEstimator::validate()'],['../structfsdk_1_1_i_descriptor_extractor.html#a02a1049adb8088b270111afb8cb438da',1,'fsdk::IDescriptorExtractor::validate()'],['../structfsdk_1_1_i_detector.html#a6c671781f42357e244a74e23bb9f3571',1,'fsdk::IDetector::validate(Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0'],['../structfsdk_1_1_i_detector.html#a57282cf9f0556a17670fc2274710863a',1,'fsdk::IDetector::validate(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> outErrors) const noexcept=0'],['../structfsdk_1_1_i_detector.html#ac0600108abda046570741ed6cac302c1',1,'fsdk::IDetector::validate(Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, Span< Result< FSDKError >> outErrors) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a727b86aedb5fc1b9b614c57d2a0b0a3a',1,'fsdk::IHumanDetector::validate(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a7a47983761d58676a373231521a8181b',1,'fsdk::IHumanDetector::validate(Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a6be4169b418fb07ccc9d6c6bb6721570',1,'fsdk::IHumanDetector::validate(Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0']]], + ['validationfailed',['ValidationFailed',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a180b13250d9cde4f32c7e611c95789db',1,'fsdk']]], + ['value',['Value',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ade9870a88b9fa5247d9f82c943001100',1,'fsdk::ISettingsProvider::Value::Value() noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5b698f499b70e5d43fce29e0d9aaec45',1,'fsdk::ISettingsProvider::Value::Value(int x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#acf068436955aef306ffe0ca7eb2d5eaa',1,'fsdk::ISettingsProvider::Value::Value(int x, int y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a3ff3a44e47d48d850e79e32602ec2998',1,'fsdk::ISettingsProvider::Value::Value(int x, int y, int z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aff30902febdfdfd0d643f8610b68de9f',1,'fsdk::ISettingsProvider::Value::Value(int x, int y, int z, int w) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a637a0f66f4f6449c868e1fd51d844387',1,'fsdk::ISettingsProvider::Value::Value(float x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5ac724fe6b158f9f22e0e5cebad63a1d',1,'fsdk::ISettingsProvider::Value::Value(float x, float y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#ad4524374bafcce36a1349f0648dbefd4',1,'fsdk::ISettingsProvider::Value::Value(float x, float y, float z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#acd744c00433c524a120bb97fcb0694e9',1,'fsdk::ISettingsProvider::Value::Value(float x, float y, float z, float w) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aa0d8c8295aa8659f811339346676afda',1,'fsdk::ISettingsProvider::Value::Value(const char *string) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#ab99aac88b065b701b60fa4fbe2ec0b72',1,'fsdk::ISettingsProvider::Value::Value(const Rect &rect) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aac66334b8d4bb178545ae4821d2451a6',1,'fsdk::ISettingsProvider::Value::Value(const Size &size) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a44bd12725bb7ead2c5c8dfbd53001fd5',1,'fsdk::ISettingsProvider::Value::Value(const Point2f &point) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a253a8ea6fa125871c60351d1488a8ef7',1,'fsdk::ISettingsProvider::Value::Value(bool x) noexcept']]], + ['value',['Value',['../structfsdk_1_1_i_settings_provider_1_1_value.html',1,'fsdk::ISettingsProvider']]], + ['valuetype',['ValueType',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ad45cf40fedbe9fec64aa87810f8654c2',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ValueType()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aed241c8fb37877f331a4a225090dd2db',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ValueType()']]], + ['vector2',['Vector2',['../structfsdk_1_1_vector2.html',1,'fsdk']]], + ['vector2',['Vector2',['../structfsdk_1_1_vector2.html#a57e66b5d143530872dd97cebf9d4f612',1,'fsdk::Vector2::Vector2() noexcept'],['../structfsdk_1_1_vector2.html#ab3c0e3b1d901a7b2ce1c6adca6ea52ef',1,'fsdk::Vector2::Vector2(T x_) noexcept'],['../structfsdk_1_1_vector2.html#a917588f75f38aae344e68dc2716d4d1f',1,'fsdk::Vector2::Vector2(T x_, T y_) noexcept'],['../structfsdk_1_1_vector2.html#aa07680773448e02a42ce2732888bc695',1,'fsdk::Vector2::Vector2(const Vector2< Other > &other) noexcept']]], + ['vector2_3c_20float_20_3e',['Vector2< float >',['../structfsdk_1_1_vector2.html',1,'fsdk']]], + ['vector2_3c_20int_20_3e',['Vector2< int >',['../structfsdk_1_1_vector2.html',1,'fsdk']]], + ['version',['Version',['../structfsdk_1_1_version.html',1,'fsdk']]], + ['version_2eh',['Version.h',['../_version_8h.html',1,'']]], + ['version',['Version',['../group___version_group.html',1,'']]], + ['visible',['visible',['../structfsdk_1_1_human_landmark.html#aea7582c90d90401c1ad156c26b697a8e',1,'fsdk::HumanLandmark::visible()'],['../namespacefsdk.html#a2cd10d6257c328c01b7d7296938881f8aec24d78ce33048dc73a2b6b1a0690192',1,'fsdk::Visible()']]] +]; diff --git a/doc/fsdk/html/search/all_77.html b/doc/fsdk/html/search/all_77.html new file mode 100644 index 0000000..d01abb9 --- /dev/null +++ b/doc/fsdk/html/search/all_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_77.js b/doc/fsdk/html/search/all_77.js new file mode 100644 index 0000000..ef93e5b --- /dev/null +++ b/doc/fsdk/html/search/all_77.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['wait',['wait',['../classfsdk_1_1_future.html#a7e85628150597362aad032ea8029dcf9',1,'fsdk::Future']]], + ['waitfor',['waitFor',['../classfsdk_1_1_future.html#ab1da1098643943411046bbe6a718fe74',1,'fsdk::Future']]], + ['warp',['warp',['../structfsdk_1_1_i_human_warper.html#a9b838530778bb1133fef48b524ce3770',1,'fsdk::IHumanWarper::warp(const Image image, const Detection &detection, Image &transformedImage) const noexcept=0'],['../structfsdk_1_1_i_human_warper.html#af7340f0338893b20f3559543c94fc8b9',1,'fsdk::IHumanWarper::warp(Span< const Image > images, Span< const Detection > detections, Span< Image > transformedImages) const noexcept=0'],['../structfsdk_1_1_i_warper.html#ac1445d1b93d7f5713907839abdc990b1',1,'fsdk::IWarper::warp(const Image &image, const Transformation &transformation, Image &transformedImage) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a32bf26ffe79f9910f495eba4778d5c81',1,'fsdk::IWarper::warp(Span< const Image > images, Span< const Transformation > transformations, Span< Image > transformedImages) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a3fdd8dd219fb6fdbe5dfd71e5833893d',1,'fsdk::IWarper::warp(const Landmarks5 &landmarks, const Transformation &transformation, Landmarks5 &transformedLandmarks) const noexcept=0'],['../structfsdk_1_1_i_warper.html#afff8929ae7ea37b52d2a3e2b2d27efb7',1,'fsdk::IWarper::warp(const Landmarks68 &landmarks68, const Transformation &transformation, Landmarks68 &transformedLandmarks68) const noexcept=0']]], + ['warpasync',['warpAsync',['../structfsdk_1_1_i_warper.html#a384238fd902cbf424f1ec141e81b6927',1,'fsdk::IWarper']]], + ['what',['what',['../structfsdk_1_1_result.html#a41988070a3ccb7478b18f6c4fb4779f5',1,'fsdk::Result']]], + ['width',['width',['../structfsdk_1_1_base_rect.html#adf33ed349c426a71e849209ecd1f8fae',1,'fsdk::BaseRect::width()'],['../structfsdk_1_1_sub_image.html#a5a08fac1419183559472faab4ca2534e',1,'fsdk::SubImage::width()']]], + ['write',['write',['../structfsdk_1_1_i_archive.html#a8c48b5099bee7f93b069cc7a9901ba3e',1,'fsdk::IArchive']]] +]; diff --git a/doc/fsdk/html/search/all_78.html b/doc/fsdk/html/search/all_78.html new file mode 100644 index 0000000..d1f9d7a --- /dev/null +++ b/doc/fsdk/html/search/all_78.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_78.js b/doc/fsdk/html/search/all_78.js new file mode 100644 index 0000000..e273701 --- /dev/null +++ b/doc/fsdk/html/search/all_78.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['x',['x',['../structfsdk_1_1_base_rect.html#ac2cf58738615562a5e20529b6aa72269',1,'fsdk::BaseRect::x()'],['../structfsdk_1_1_sub_image.html#a57c6dadf79686b6fa00164d7541b84d4',1,'fsdk::SubImage::x()'],['../structfsdk_1_1_vector2.html#a34f9f070bb21a4c86ae186af3ea70c0e',1,'fsdk::Vector2::x()']]] +]; diff --git a/doc/fsdk/html/search/all_79.html b/doc/fsdk/html/search/all_79.html new file mode 100644 index 0000000..cc055a6 --- /dev/null +++ b/doc/fsdk/html/search/all_79.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_79.js b/doc/fsdk/html/search/all_79.js new file mode 100644 index 0000000..75dc0de --- /dev/null +++ b/doc/fsdk/html/search/all_79.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['y',['y',['../structfsdk_1_1_base_rect.html#ae8d23be3be32108e017d4d309ea94ba7',1,'fsdk::BaseRect::y()'],['../structfsdk_1_1_sub_image.html#a5c5456311bab989a15351104f1ed13b2',1,'fsdk::SubImage::y()'],['../structfsdk_1_1_vector2.html#ae10a702fcc91d74d442734bb050e6763',1,'fsdk::Vector2::y()']]], + ['yaw',['yaw',['../structfsdk_1_1_head_pose_estimation.html#a8c27c471703b619567540389bf5ddd94',1,'fsdk::HeadPoseEstimation']]], + ['yuv_5fnv12',['YUV_NV12',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a7acff06144acdfb863cfe120628e9d56',1,'fsdk::Format']]], + ['yuv_5fnv21',['YUV_NV21',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a86ae1133449f6210391a331405d7ea4e',1,'fsdk::Format']]] +]; diff --git a/doc/fsdk/html/search/all_7e.html b/doc/fsdk/html/search/all_7e.html new file mode 100644 index 0000000..047ca06 --- /dev/null +++ b/doc/fsdk/html/search/all_7e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/all_7e.js b/doc/fsdk/html/search/all_7e.js new file mode 100644 index 0000000..d8f1207 --- /dev/null +++ b/doc/fsdk/html/search/all_7e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eref',['~Ref',['../structfsdk_1_1_ref.html#aa1d9bbc7d476649947142015f22fa7c7',1,'fsdk::Ref']]] +]; diff --git a/doc/fsdk/html/search/classes_62.html b/doc/fsdk/html/search/classes_62.html new file mode 100644 index 0000000..d850f52 --- /dev/null +++ b/doc/fsdk/html/search/classes_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_62.js b/doc/fsdk/html/search/classes_62.js new file mode 100644 index 0000000..83bd4a4 --- /dev/null +++ b/doc/fsdk/html/search/classes_62.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['baserect',['BaseRect',['../structfsdk_1_1_base_rect.html',1,'fsdk']]], + ['baserect_3c_20float_20_3e',['BaseRect< float >',['../structfsdk_1_1_base_rect.html',1,'fsdk']]], + ['baserect_3c_20int_20_3e',['BaseRect< int >',['../structfsdk_1_1_base_rect.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_64.html b/doc/fsdk/html/search/classes_64.html new file mode 100644 index 0000000..31fc70b --- /dev/null +++ b/doc/fsdk/html/search/classes_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_64.js b/doc/fsdk/html/search/classes_64.js new file mode 100644 index 0000000..f101db6 --- /dev/null +++ b/doc/fsdk/html/search/classes_64.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['data',['Data',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html',1,'fsdk::ISettingsProvider::Value']]], + ['desc',['Desc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html',1,'fsdk::ISettingsProvider']]], + ['detection',['Detection',['../structfsdk_1_1_detection.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_65.html b/doc/fsdk/html/search/classes_65.html new file mode 100644 index 0000000..1f0d2ff --- /dev/null +++ b/doc/fsdk/html/search/classes_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_65.js b/doc/fsdk/html/search/classes_65.js new file mode 100644 index 0000000..ac11c8d --- /dev/null +++ b/doc/fsdk/html/search/classes_65.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['entry',['Entry',['../structfsdk_1_1_i_settings_provider_1_1_entry.html',1,'fsdk::ISettingsProvider']]], + ['errortraits',['ErrorTraits',['../structfsdk_1_1_error_traits.html',1,'fsdk']]], + ['errortraits_3c_20fsdkerror_20_3e',['ErrorTraits< FSDKError >',['../structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20futureerror_20_3e',['ErrorTraits< FutureError >',['../structfsdk_1_1_error_traits_3_01_future_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20idescriptorbatch_3a_3aerror_20_3e',['ErrorTraits< IDescriptorBatch::Error >',['../structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20image_3a_3aerror_20_3e',['ErrorTraits< Image::Error >',['../structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20iserializableobject_3a_3aerror_20_3e',['ErrorTraits< ISerializableObject::Error >',['../structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20isettingsprovider_3a_3aerror_20_3e',['ErrorTraits< ISettingsProvider::Error >',['../structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html',1,'fsdk']]], + ['errortraits_3c_20multierror_3c_20e0_2c_20e1_20_3e_20_3e',['ErrorTraits< MultiError< E0, E1 > >',['../structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html',1,'fsdk']]], + ['errortraits_3c_20promiseerror_20_3e',['ErrorTraits< PromiseError >',['../structfsdk_1_1_error_traits_3_01_promise_error_01_4.html',1,'fsdk']]], + ['estimationresult',['EstimationResult',['../structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html',1,'fsdk::IBestShotQualityEstimator']]], + ['exception',['Exception',['../structfsdk_1_1_exception.html',1,'fsdk']]], + ['eyeattributes',['EyeAttributes',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html',1,'fsdk::EyesEstimation']]], + ['eyecropper',['EyeCropper',['../structfsdk_1_1_eye_cropper.html',1,'fsdk']]], + ['eyesestimation',['EyesEstimation',['../structfsdk_1_1_eyes_estimation.html',1,'fsdk']]], + ['eyesrects',['EyesRects',['../structfsdk_1_1_eye_cropper_1_1_eyes_rects.html',1,'fsdk::EyeCropper']]] +]; diff --git a/doc/fsdk/html/search/classes_66.html b/doc/fsdk/html/search/classes_66.html new file mode 100644 index 0000000..61dded0 --- /dev/null +++ b/doc/fsdk/html/search/classes_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_66.js b/doc/fsdk/html/search/classes_66.js new file mode 100644 index 0000000..f62a74b --- /dev/null +++ b/doc/fsdk/html/search/classes_66.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['face',['Face',['../structfsdk_1_1_face.html',1,'fsdk']]], + ['float1',['Float1',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['float2',['Float2',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['float3',['Float3',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['float4',['Float4',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['format',['Format',['../structfsdk_1_1_format.html',1,'fsdk']]], + ['functiondetectioncomparer',['FunctionDetectionComparer',['../classfsdk_1_1_function_detection_comparer.html',1,'fsdk']]], + ['future',['Future',['../classfsdk_1_1_future.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_68.html b/doc/fsdk/html/search/classes_68.html new file mode 100644 index 0000000..d3adab8 --- /dev/null +++ b/doc/fsdk/html/search/classes_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_68.js b/doc/fsdk/html/search/classes_68.js new file mode 100644 index 0000000..4ba77f0 --- /dev/null +++ b/doc/fsdk/html/search/classes_68.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['headposeestimation',['HeadPoseEstimation',['../structfsdk_1_1_head_pose_estimation.html',1,'fsdk']]], + ['human',['Human',['../structfsdk_1_1_human.html',1,'fsdk']]], + ['humanlandmark',['HumanLandmark',['../structfsdk_1_1_human_landmark.html',1,'fsdk']]], + ['humanlandmarks',['HumanLandmarks',['../structfsdk_1_1_human_landmarks.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_69.html b/doc/fsdk/html/search/classes_69.html new file mode 100644 index 0000000..7437847 --- /dev/null +++ b/doc/fsdk/html/search/classes_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_69.js b/doc/fsdk/html/search/classes_69.js new file mode 100644 index 0000000..fb62674 --- /dev/null +++ b/doc/fsdk/html/search/classes_69.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['iagsestimator',['IAGSEstimator',['../structfsdk_1_1_i_a_g_s_estimator.html',1,'fsdk']]], + ['iarchive',['IArchive',['../structfsdk_1_1_i_archive.html',1,'fsdk']]], + ['iasynccontext',['IAsyncContext',['../structfsdk_1_1_i_async_context.html',1,'fsdk']]], + ['ibestshotqualityestimator',['IBestShotQualityEstimator',['../structfsdk_1_1_i_best_shot_quality_estimator.html',1,'fsdk']]], + ['idatastorageobject',['IDataStorageObject',['../structfsdk_1_1_i_data_storage_object.html',1,'fsdk']]], + ['idenseindex',['IDenseIndex',['../structfsdk_1_1_i_dense_index.html',1,'fsdk']]], + ['idescriptor',['IDescriptor',['../structfsdk_1_1_i_descriptor.html',1,'fsdk']]], + ['idescriptorbatch',['IDescriptorBatch',['../structfsdk_1_1_i_descriptor_batch.html',1,'fsdk']]], + ['idescriptorextractor',['IDescriptorExtractor',['../structfsdk_1_1_i_descriptor_extractor.html',1,'fsdk']]], + ['idescriptormatcher',['IDescriptorMatcher',['../structfsdk_1_1_i_descriptor_matcher.html',1,'fsdk']]], + ['idetectioncomparer',['IDetectionComparer',['../classfsdk_1_1_i_detection_comparer.html',1,'fsdk']]], + ['idetector',['IDetector',['../structfsdk_1_1_i_detector.html',1,'fsdk']]], + ['idynamicdescriptorstorage',['IDynamicDescriptorStorage',['../structfsdk_1_1_i_dynamic_descriptor_storage.html',1,'fsdk']]], + ['idynamicindex',['IDynamicIndex',['../structfsdk_1_1_i_dynamic_index.html',1,'fsdk']]], + ['ieyeestimator',['IEyeEstimator',['../structfsdk_1_1_i_eye_estimator.html',1,'fsdk']]], + ['ifacedetectionbatch',['IFaceDetectionBatch',['../structfsdk_1_1_i_face_detection_batch.html',1,'fsdk']]], + ['ifaceenginemobile',['IFaceEngineMobile',['../structfsdk_1_1_i_face_engine_mobile.html',1,'fsdk']]], + ['iglassesestimator',['IGlassesEstimator',['../structfsdk_1_1_i_glasses_estimator.html',1,'fsdk']]], + ['iheadposeestimator',['IHeadPoseEstimator',['../structfsdk_1_1_i_head_pose_estimator.html',1,'fsdk']]], + ['ihumandetectionbatch',['IHumanDetectionBatch',['../structfsdk_1_1_i_human_detection_batch.html',1,'fsdk']]], + ['ihumandetector',['IHumanDetector',['../structfsdk_1_1_i_human_detector.html',1,'fsdk']]], + ['ihumanwarper',['IHumanWarper',['../structfsdk_1_1_i_human_warper.html',1,'fsdk']]], + ['iindex',['IIndex',['../structfsdk_1_1_i_index.html',1,'fsdk']]], + ['iindexbuilder',['IIndexBuilder',['../structfsdk_1_1_i_index_builder.html',1,'fsdk']]], + ['ilicense',['ILicense',['../structfsdk_1_1_i_license.html',1,'fsdk']]], + ['ilivenessoneshotrgbestimator',['ILivenessOneShotRGBEstimator',['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html',1,'fsdk']]], + ['image',['Image',['../structfsdk_1_1_image.html',1,'fsdk']]], + ['imedicalmaskestimator',['IMedicalMaskEstimator',['../structfsdk_1_1_i_medical_mask_estimator.html',1,'fsdk']]], + ['int1',['Int1',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['int2',['Int2',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['int3',['Int3',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['int4',['Int4',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['iprogresstracker',['IProgressTracker',['../structfsdk_1_1_i_progress_tracker.html',1,'fsdk']]], + ['iqualityestimator',['IQualityEstimator',['../structfsdk_1_1_i_quality_estimator.html',1,'fsdk']]], + ['irefcounted',['IRefCounted',['../structfsdk_1_1_i_ref_counted.html',1,'fsdk']]], + ['iresultbatch',['IResultBatch',['../structfsdk_1_1_i_result_batch.html',1,'fsdk']]], + ['iserializableobject',['ISerializableObject',['../structfsdk_1_1_i_serializable_object.html',1,'fsdk']]], + ['isettingsprovider',['ISettingsProvider',['../structfsdk_1_1_i_settings_provider.html',1,'fsdk']]], + ['istaticdescriptorstorage',['IStaticDescriptorStorage',['../structfsdk_1_1_i_static_descriptor_storage.html',1,'fsdk']]], + ['iwarper',['IWarper',['../structfsdk_1_1_i_warper.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_6b.html b/doc/fsdk/html/search/classes_6b.html new file mode 100644 index 0000000..1b8b0b7 --- /dev/null +++ b/doc/fsdk/html/search/classes_6b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_6b.js b/doc/fsdk/html/search/classes_6b.js new file mode 100644 index 0000000..658c38e --- /dev/null +++ b/doc/fsdk/html/search/classes_6b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key',['Key',['../structfsdk_1_1_i_settings_provider_1_1_key.html',1,'fsdk::ISettingsProvider']]] +]; diff --git a/doc/fsdk/html/search/classes_6c.html b/doc/fsdk/html/search/classes_6c.html new file mode 100644 index 0000000..18594ee --- /dev/null +++ b/doc/fsdk/html/search/classes_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_6c.js b/doc/fsdk/html/search/classes_6c.js new file mode 100644 index 0000000..7f9e710 --- /dev/null +++ b/doc/fsdk/html/search/classes_6c.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['landmarks',['Landmarks',['../structfsdk_1_1_landmarks.html',1,'fsdk']]], + ['landmarks5indexes',['Landmarks5Indexes',['../structfsdk_1_1_landmarks5_indexes.html',1,'fsdk']]], + ['landmarks_3c_20eyelidlandmarkscount_20_3e',['Landmarks< eyelidLandmarksCount >',['../structfsdk_1_1_landmarks.html',1,'fsdk']]], + ['landmarks_3c_20irislandmarkscount_20_3e',['Landmarks< irisLandmarksCount >',['../structfsdk_1_1_landmarks.html',1,'fsdk']]], + ['launchoptions',['LaunchOptions',['../structfsdk_1_1_launch_options.html',1,'fsdk']]], + ['livenessoneshotrgbestimation',['LivenessOneShotRGBEstimation',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_6d.html b/doc/fsdk/html/search/classes_6d.html new file mode 100644 index 0000000..aa83590 --- /dev/null +++ b/doc/fsdk/html/search/classes_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_6d.js b/doc/fsdk/html/search/classes_6d.js new file mode 100644 index 0000000..e97e9cd --- /dev/null +++ b/doc/fsdk/html/search/classes_6d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['matchingresult',['MatchingResult',['../structfsdk_1_1_matching_result.html',1,'fsdk']]], + ['medicalmaskestimation',['MedicalMaskEstimation',['../structfsdk_1_1_medical_mask_estimation.html',1,'fsdk']]], + ['medicalmaskestimationextended',['MedicalMaskEstimationExtended',['../structfsdk_1_1_medical_mask_estimation_extended.html',1,'fsdk']]], + ['multierror',['MultiError',['../structfsdk_1_1_multi_error.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_6e.html b/doc/fsdk/html/search/classes_6e.html new file mode 100644 index 0000000..1f4391e --- /dev/null +++ b/doc/fsdk/html/search/classes_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_6e.js b/doc/fsdk/html/search/classes_6e.js new file mode 100644 index 0000000..6c7de46 --- /dev/null +++ b/doc/fsdk/html/search/classes_6e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['noncopyable',['Noncopyable',['../classfsdk_1_1_noncopyable.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_70.html b/doc/fsdk/html/search/classes_70.html new file mode 100644 index 0000000..be46ae3 --- /dev/null +++ b/doc/fsdk/html/search/classes_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_70.js b/doc/fsdk/html/search/classes_70.js new file mode 100644 index 0000000..f5f6074 --- /dev/null +++ b/doc/fsdk/html/search/classes_70.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['promise',['Promise',['../classfsdk_1_1_promise.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_71.html b/doc/fsdk/html/search/classes_71.html new file mode 100644 index 0000000..d070d60 --- /dev/null +++ b/doc/fsdk/html/search/classes_71.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_71.js b/doc/fsdk/html/search/classes_71.js new file mode 100644 index 0000000..58fc21e --- /dev/null +++ b/doc/fsdk/html/search/classes_71.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quality',['Quality',['../structfsdk_1_1_quality.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_72.html b/doc/fsdk/html/search/classes_72.html new file mode 100644 index 0000000..5d84228 --- /dev/null +++ b/doc/fsdk/html/search/classes_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_72.js b/doc/fsdk/html/search/classes_72.js new file mode 100644 index 0000000..cf56ee9 --- /dev/null +++ b/doc/fsdk/html/search/classes_72.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['ref',['Ref',['../structfsdk_1_1_ref.html',1,'fsdk']]], + ['refbase',['RefBase',['../structfsdk_1_1_ref_base.html',1,'fsdk']]], + ['result',['Result',['../structfsdk_1_1_result.html',1,'fsdk']]], + ['result_3c_20r_20_3e',['Result< R >',['../structfsdk_1_1_result.html',1,'fsdk']]], + ['resultvalue',['ResultValue',['../structfsdk_1_1_result_value.html',1,'fsdk']]], + ['resultvalue_3c_20r_2c_20v_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5fcopy_5fconstructible_3c_20v_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e',['ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html',1,'fsdk']]], + ['resultvalue_3c_20r_2c_20v_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5fcopy_5fconstructible_3c_20v_20_3e_3a_3avalue_3d_3dfalse_20_3e_3a_3atype_20_3e',['ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_73.html b/doc/fsdk/html/search/classes_73.html new file mode 100644 index 0000000..b57bc4d --- /dev/null +++ b/doc/fsdk/html/search/classes_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_73.js b/doc/fsdk/html/search/classes_73.js new file mode 100644 index 0000000..3b62202 --- /dev/null +++ b/doc/fsdk/html/search/classes_73.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['searchresult',['SearchResult',['../structfsdk_1_1_search_result.html',1,'fsdk']]], + ['sizer',['Sizer',['../structfsdk_1_1_sizer.html',1,'fsdk']]], + ['span',['Span',['../classfsdk_1_1_span.html',1,'fsdk']]], + ['string',['String',['../structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html',1,'fsdk::ISettingsProvider::Value::Data']]], + ['subimage',['SubImage',['../structfsdk_1_1_sub_image.html',1,'fsdk']]], + ['subjectivequality',['SubjectiveQuality',['../structfsdk_1_1_subjective_quality.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_74.html b/doc/fsdk/html/search/classes_74.html new file mode 100644 index 0000000..ed66151 --- /dev/null +++ b/doc/fsdk/html/search/classes_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_74.js b/doc/fsdk/html/search/classes_74.js new file mode 100644 index 0000000..54104af --- /dev/null +++ b/doc/fsdk/html/search/classes_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['transformation',['Transformation',['../structfsdk_1_1_transformation.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/classes_76.html b/doc/fsdk/html/search/classes_76.html new file mode 100644 index 0000000..a62123a --- /dev/null +++ b/doc/fsdk/html/search/classes_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/classes_76.js b/doc/fsdk/html/search/classes_76.js new file mode 100644 index 0000000..40ed04d --- /dev/null +++ b/doc/fsdk/html/search/classes_76.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['value',['Value',['../structfsdk_1_1_i_settings_provider_1_1_value.html',1,'fsdk::ISettingsProvider']]], + ['vector2',['Vector2',['../structfsdk_1_1_vector2.html',1,'fsdk']]], + ['vector2_3c_20float_20_3e',['Vector2< float >',['../structfsdk_1_1_vector2.html',1,'fsdk']]], + ['vector2_3c_20int_20_3e',['Vector2< int >',['../structfsdk_1_1_vector2.html',1,'fsdk']]], + ['version',['Version',['../structfsdk_1_1_version.html',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/close.png b/doc/fsdk/html/search/close.png new file mode 100644 index 0000000..9342d3d Binary files /dev/null and b/doc/fsdk/html/search/close.png differ diff --git a/doc/fsdk/html/search/defines_66.html b/doc/fsdk/html/search/defines_66.html new file mode 100644 index 0000000..7be0f47 --- /dev/null +++ b/doc/fsdk/html/search/defines_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/defines_66.js b/doc/fsdk/html/search/defines_66.js new file mode 100644 index 0000000..0ec77c7 --- /dev/null +++ b/doc/fsdk/html/search/defines_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fsdk_5fapi',['FSDK_API',['../_def_8h.html#a5dc4c3043f171426dafe6fc800218945',1,'Def.h']]] +]; diff --git a/doc/fsdk/html/search/enums_64.html b/doc/fsdk/html/search/enums_64.html new file mode 100644 index 0000000..27ea2df --- /dev/null +++ b/doc/fsdk/html/search/enums_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_64.js b/doc/fsdk/html/search/enums_64.js new file mode 100644 index 0000000..8095ea7 --- /dev/null +++ b/doc/fsdk/html/search/enums_64.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['descriptortype',['DescriptorType',['../group___descriptor_processing_group.html#ga1cd2e0e27848b58fe8d39becd00d6186',1,'fsdk']]], + ['descriptorversion',['DescriptorVersion',['../group___descriptor_processing_group.html#gaa796beff9fb761301be4e46b1a2412ab',1,'fsdk']]], + ['detailedmasktype',['DetailedMaskType',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0',1,'fsdk']]], + ['detectioncomparertype',['DetectionComparerType',['../group___detector_group.html#ga7d021e05a5d867ffe947ffb40aa0923d',1,'fsdk']]], + ['detectiontype',['DetectionType',['../group___detector_group.html#ga29cb345293d30553e7af41260cede7ad',1,'fsdk']]], + ['deviceclass',['DeviceClass',['../namespacefsdk.html#a3264388e1c930c89a6679c81b63ad0be',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_65.html b/doc/fsdk/html/search/enums_65.html new file mode 100644 index 0000000..1d26f09 --- /dev/null +++ b/doc/fsdk/html/search/enums_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_65.js b/doc/fsdk/html/search/enums_65.js new file mode 100644 index 0000000..22aea65 --- /dev/null +++ b/doc/fsdk/html/search/enums_65.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['error',['Error',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93',1,'fsdk::IDescriptorBatch::Error()'],['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0',1,'fsdk::ISerializableObject::Error()'],['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5',1,'fsdk::ISettingsProvider::Error()'],['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936',1,'fsdk::Image::Error()']]], + ['estimationrequest',['EstimationRequest',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdf',1,'fsdk::IBestShotQualityEstimator']]], + ['executionpolicy',['ExecutionPolicy',['../namespacefsdk.html#a0f4cbbc8c61f0127bd75695e76869860',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_66.html b/doc/fsdk/html/search/enums_66.html new file mode 100644 index 0000000..5b26641 --- /dev/null +++ b/doc/fsdk/html/search/enums_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_66.js b/doc/fsdk/html/search/enums_66.js new file mode 100644 index 0000000..e2dd175 --- /dev/null +++ b/doc/fsdk/html/search/enums_66.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['flags',['Flags',['../structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79',1,'fsdk::ISerializableObject']]], + ['frontalfacetype',['FrontalFaceType',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7',1,'fsdk::HeadPoseEstimation']]], + ['fsdkerror',['FSDKError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6',1,'fsdk']]], + ['futureerror',['FutureError',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fb',1,'fsdk']]], + ['futurepromisestate',['FuturePromiseState',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82b',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_67.html b/doc/fsdk/html/search/enums_67.html new file mode 100644 index 0000000..552d808 --- /dev/null +++ b/doc/fsdk/html/search/enums_67.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_67.js b/doc/fsdk/html/search/enums_67.js new file mode 100644 index 0000000..2e3d2b2 --- /dev/null +++ b/doc/fsdk/html/search/enums_67.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['glassesestimation',['GlassesEstimation',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_68.html b/doc/fsdk/html/search/enums_68.html new file mode 100644 index 0000000..0ab51d8 --- /dev/null +++ b/doc/fsdk/html/search/enums_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_68.js b/doc/fsdk/html/search/enums_68.js new file mode 100644 index 0000000..0341b44 --- /dev/null +++ b/doc/fsdk/html/search/enums_68.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['humandescriptorversion',['HumanDescriptorVersion',['../group___descriptor_processing_group.html#ga483d7359d800ae83b6fbda4dabdf086a',1,'fsdk']]], + ['humandetectiontype',['HumanDetectionType',['../group___detector_group.html#gaab9078e2636634d9f46c2b6616d89655',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_69.html b/doc/fsdk/html/search/enums_69.html new file mode 100644 index 0000000..5071919 --- /dev/null +++ b/doc/fsdk/html/search/enums_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_69.js b/doc/fsdk/html/search/enums_69.js new file mode 100644 index 0000000..7afaaf5 --- /dev/null +++ b/doc/fsdk/html/search/enums_69.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['imagecompression',['ImageCompression',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5d',1,'fsdk::Image']]] +]; diff --git a/doc/fsdk/html/search/enums_6c.html b/doc/fsdk/html/search/enums_6c.html new file mode 100644 index 0000000..819aa8e --- /dev/null +++ b/doc/fsdk/html/search/enums_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_6c.js b/doc/fsdk/html/search/enums_6c.js new file mode 100644 index 0000000..45d46c1 --- /dev/null +++ b/doc/fsdk/html/search/enums_6c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['licensefeature',['LicenseFeature',['../namespacefsdk.html#a872383ce8bac63e967c58ff6a393b114',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_6d.html b/doc/fsdk/html/search/enums_6d.html new file mode 100644 index 0000000..424fbf1 --- /dev/null +++ b/doc/fsdk/html/search/enums_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_6d.js b/doc/fsdk/html/search/enums_6d.js new file mode 100644 index 0000000..8bed80d --- /dev/null +++ b/doc/fsdk/html/search/enums_6d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['medicalmask',['MedicalMask',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3',1,'fsdk']]], + ['medicalmaskextended',['MedicalMaskExtended',['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4',1,'fsdk']]], + ['memoryresidence',['MemoryResidence',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07',1,'fsdk::Image']]] +]; diff --git a/doc/fsdk/html/search/enums_6f.html b/doc/fsdk/html/search/enums_6f.html new file mode 100644 index 0000000..48ec17a --- /dev/null +++ b/doc/fsdk/html/search/enums_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_6f.js b/doc/fsdk/html/search/enums_6f.js new file mode 100644 index 0000000..cfc660d --- /dev/null +++ b/doc/fsdk/html/search/enums_6f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['objectdetectorclasstype',['ObjectDetectorClassType',['../group___detector_group.html#gab83a85f36a0025dac2b8b6d41b88bd8c',1,'fsdk']]], + ['orientationtype',['OrientationType',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_70.html b/doc/fsdk/html/search/enums_70.html new file mode 100644 index 0000000..747c3d4 --- /dev/null +++ b/doc/fsdk/html/search/enums_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_70.js b/doc/fsdk/html/search/enums_70.js new file mode 100644 index 0000000..365655b --- /dev/null +++ b/doc/fsdk/html/search/enums_70.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['promiseerror',['PromiseError',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enums_73.html b/doc/fsdk/html/search/enums_73.html new file mode 100644 index 0000000..278c544 --- /dev/null +++ b/doc/fsdk/html/search/enums_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_73.js b/doc/fsdk/html/search/enums_73.js new file mode 100644 index 0000000..c8bf60d --- /dev/null +++ b/doc/fsdk/html/search/enums_73.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['sensortype',['SensorType',['../namespacefsdk.html#a2cd10d6257c328c01b7d7296938881f8',1,'fsdk']]], + ['state',['State',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003',1,'fsdk::EyesEstimation::EyeAttributes::State()'],['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56',1,'fsdk::LivenessOneShotRGBEstimation::State()']]] +]; diff --git a/doc/fsdk/html/search/enums_74.html b/doc/fsdk/html/search/enums_74.html new file mode 100644 index 0000000..f90c13f --- /dev/null +++ b/doc/fsdk/html/search/enums_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enums_74.js b/doc/fsdk/html/search/enums_74.js new file mode 100644 index 0000000..0532925 --- /dev/null +++ b/doc/fsdk/html/search/enums_74.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['targetdevice',['TargetDevice',['../structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4',1,'fsdk::Image']]], + ['type',['Type',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947',1,'fsdk::ISettingsProvider::Value::Type()'],['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1',1,'fsdk::Format::Type()'],['../structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7',1,'fsdk::Image::Type()']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_61.html b/doc/fsdk/html/search/enumvalues_61.html new file mode 100644 index 0000000..1a9c95b --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_61.js b/doc/fsdk/html/search/enumvalues_61.js new file mode 100644 index 0000000..5985398 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_61.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['alive',['Alive',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56abd9f7c5d6ab4201b138a3e51dab7056f',1,'fsdk::LivenessOneShotRGBEstimation']]], + ['appendinvalidroot',['AppendInvalidRoot',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a29ebf8fe305fd42de0b208c9dc226559',1,'fsdk::ISettingsProvider']]], + ['archiveread',['ArchiveRead',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a475e42b82c23aaaa94f66c43f80a14d1',1,'fsdk::ISerializableObject']]], + ['archivewrite',['ArchiveWrite',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a5b9364e023e7cee301db9754a421d258',1,'fsdk::ISerializableObject']]], + ['async',['Async',['../namespacefsdk.html#a0f4cbbc8c61f0127bd75695e76869860a24aa4117da86c41684ad25742832dfa6',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_62.html b/doc/fsdk/html/search/enumvalues_62.html new file mode 100644 index 0000000..effeaba --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_62.js b/doc/fsdk/html/search/enumvalues_62.js new file mode 100644 index 0000000..70ee5e8 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_62.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['b8g8r8',['B8G8R8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a9bda0cc528d54cecc7f8ec2a3b3ad5c8',1,'fsdk::Format']]], + ['b8g8r8x8',['B8G8R8X8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a2c186c232b67f3d47add72abea686242',1,'fsdk::Format']]], + ['batchedinternalerror',['BatchedInternalError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a06ac3f10514f6b229599e88b2ee7d2bf',1,'fsdk']]], + ['batchfull',['BatchFull',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a04b15c03f3f8d523b85b4698e1bc56cb',1,'fsdk::IDescriptorBatch']]], + ['broken',['Broken',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82bac98dbc22f49f1b4a644307551924f8da',1,'fsdk']]], + ['bufferisempty',['BufferIsEmpty',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a3552409a4c6111770f0d160447285b17',1,'fsdk']]], + ['bufferisfull',['BufferIsFull',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a3557af19581eb994d3e1b9dbc465226d',1,'fsdk']]], + ['bufferisnull',['BufferIsNull',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6aec4c088621f5d17412b2d1c55befb5ff',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_63.html b/doc/fsdk/html/search/enumvalues_63.html new file mode 100644 index 0000000..74e4d1e --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_63.js b/doc/fsdk/html/search/enumvalues_63.js new file mode 100644 index 0000000..7f9775c --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_63.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['canceled',['Canceled',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82ba0e22fe7d45f8e5632a4abf369b24e29c',1,'fsdk']]], + ['cancelrequested',['CancelRequested',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82badc5498d31e5fd9e499391ff2b26bfff8',1,'fsdk']]], + ['clearface',['ClearFace',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a3089c16be9e8c5e87438a2ceb8d10a91',1,'fsdk']]], + ['clearfacewithmaskunderchin',['ClearFaceWithMaskUnderChin',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0aca01855f627a6f084bb16fbbf1571021',1,'fsdk']]], + ['closed',['Closed',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a03f4a47830f97377a35321051685071e',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['correctmask',['CorrectMask',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0ad2c57890c7be3050514156461fed700d',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_64.html b/doc/fsdk/html/search/enumvalues_64.html new file mode 100644 index 0000000..8643cae --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_64.js b/doc/fsdk/html/search/enumvalues_64.js new file mode 100644 index 0000000..9c6f209 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_64.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['dct_5fcenter',['DCT_CENTER',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da763dab49108298d2d502a9749e2628e9',1,'fsdk']]], + ['dct_5fcenter_5fand_5fconfidence',['DCT_CENTER_AND_CONFIDENCE',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da113aa401fd3bbad089894a3cf8fd06b6',1,'fsdk']]], + ['dct_5fconfidence',['DCT_CONFIDENCE',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923da8767054041a6b3288648b7a403ca7b17',1,'fsdk']]], + ['dct_5fsize',['DCT_SIZE',['../group___detector_group.html#gga7d021e05a5d867ffe947ffb40aa0923dab87d650f70c0d623b1419a50c24ce590',1,'fsdk']]], + ['default',['Default',['../structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79a6e4800456cd37d67c1cdcfecaac8afab',1,'fsdk::ISerializableObject']]], + ['dt_5fall',['DT_ALL',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7ada1be6a902d3612661d3200257c69323fa',1,'fsdk']]], + ['dt_5fbbox',['DT_BBOX',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7adafc1e9f167d5d1be9899f6732bc6f2110',1,'fsdk']]], + ['dt_5fface',['DT_FACE',['../group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186adfd064a1bc06eda4ce5ad8cbb32ceb05',1,'fsdk']]], + ['dt_5fhuman',['DT_HUMAN',['../group___descriptor_processing_group.html#gga1cd2e0e27848b58fe8d39becd00d6186a55aa0ee5f96f43689faa8dc86966340e',1,'fsdk']]], + ['dt_5flandmarks5',['DT_LANDMARKS5',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7ada3a1cef8a2d392799c66fe948b3cee9f4',1,'fsdk']]], + ['dt_5flandmarks68',['DT_LANDMARKS68',['../group___detector_group.html#gga29cb345293d30553e7af41260cede7ada508e9b2f679d5758e9bf979610dbb1c5',1,'fsdk']]], + ['dv_5fmin_5fface_5fdescriptor_5fversion',['DV_MIN_FACE_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba1dfe29faa054d00d13d992fdfcffaef4',1,'fsdk']]], + ['dv_5fmin_5fhuman_5fdescriptor_5fversion',['DV_MIN_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#ggaa796beff9fb761301be4e46b1a2412aba663094a3a39d591eca695b631243f71a',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_65.html b/doc/fsdk/html/search/enumvalues_65.html new file mode 100644 index 0000000..96f19c1 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_65.js b/doc/fsdk/html/search/enumvalues_65.js new file mode 100644 index 0000000..bcbfc92 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_65.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['empty',['Empty',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82bace2c8aed9c2fa0cfbed56cbda4d8bf07',1,'fsdk']]], + ['enablejustinbetamode',['EnableJustInBetaMode',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a135fc410a8fc490b3531c355f8c30461',1,'fsdk']]], + ['endelementmismatch',['EndElementMismatch',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a491cc2103be52c3b503686a792baf206',1,'fsdk::ISettingsProvider']]], + ['estimateags',['estimateAGS',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfac7f36c8245ae1f8416743d0d26fa3845',1,'fsdk::IBestShotQualityEstimator']]], + ['estimateall',['estimateAll',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa0a22c4c7f110c98d9f93506465cc8402',1,'fsdk::IBestShotQualityEstimator']]], + ['estimateheadpose',['estimateHeadPose',['../structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa027444bb21a0391ad968200b23d29ad6',1,'fsdk::IBestShotQualityEstimator']]], + ['estimationerror',['EstimationError',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478a857243da7272c2136918e4deb1668880',1,'fsdk']]], + ['eyeglasses',['EyeGlasses',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478a1e4818afb6f257ad958e2f8636b35749',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_66.html b/doc/fsdk/html/search/enumvalues_66.html new file mode 100644 index 0000000..66df503 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_66.js b/doc/fsdk/html/search/enumvalues_66.js new file mode 100644 index 0000000..32c7bd9 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_66.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['face_5fdet_5fcount',['FACE_DET_COUNT',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca53e96ce2b5c1880ce5588a4b099eb24b',1,'fsdk']]], + ['face_5fdet_5fdefault',['FACE_DET_DEFAULT',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca908b2d58b338d34863dc56d21474ffc3',1,'fsdk']]], + ['face_5fdet_5fv1',['FACE_DET_V1',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8ca76b25822675d9312e8decb221ca609ec',1,'fsdk']]], + ['face_5fdet_5fv2',['FACE_DET_V2',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8caed0da3a5db3f97c5eb927a1696de2d65',1,'fsdk']]], + ['face_5fdet_5fv3',['FACE_DET_V3',['../group___detector_group.html#ggab83a85f36a0025dac2b8b6d41b88bd8cafd6028fd9b68847f58ab7a089cedd57d',1,'fsdk']]], + ['failed',['Failed',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82bad7c8c85bf79bbe1b7188497c32c3b0ca',1,'fsdk']]], + ['failedtoinitialize',['FailedToInitialize',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade906b82a6f70f5f75ea0a11da932a36',1,'fsdk::Image']]], + ['failedtoload',['FailedToLoad',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a023fe093cb8dbc5a80d2a2259d4c97a5',1,'fsdk::Image']]], + ['failedtosave',['FailedToSave',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a70fa83b68f2d20d1c607a2864627f13d',1,'fsdk::Image']]], + ['fake',['Fake',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a52a96508c39536f0c2ef43b19a0a1e0e',1,'fsdk::LivenessOneShotRGBEstimation']]], + ['featureexpired',['FeatureExpired',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a84decd8ce021a70aef62a2283ea8d559',1,'fsdk']]], + ['featurenotavailable',['FeatureNotAvailable',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6afb12ff30441dbc154f6d2591169f012c',1,'fsdk']]], + ['filenotfound',['FileNotFound',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a2767828026039e8ba7b38973cbb701f2',1,'fsdk::ISettingsProvider']]], + ['filtredaggregationerror',['FiltredAggregationError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a3e095f1fa338dccd7cc239c47593fd7a',1,'fsdk']]], + ['fingerprinterror',['FingerprintError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a455a3a357ebc7221085d184c157c13a5',1,'fsdk']]], + ['float1',['Float1',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947afce0cbbaf3da4fd239865223a2cafd2d',1,'fsdk::ISettingsProvider::Value']]], + ['float2',['Float2',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947acab9b95fc0f8e22586956c7b2831c742',1,'fsdk::ISettingsProvider::Value']]], + ['float3',['Float3',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac1e9d375777e2ca4631b5e4851a8e70c',1,'fsdk::ISettingsProvider::Value']]], + ['float4',['Float4',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a96cf9d7a2ede9c47b110b3a4178f3401',1,'fsdk::ISettingsProvider::Value']]], + ['fulfilled',['Fulfilled',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82ba2a6de846fd07e369786e3f5b41e20455',1,'fsdk']]], + ['fullmask',['FullMask',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a32950741c2a4db230a8af70867adc378',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_67.html b/doc/fsdk/html/search/enumvalues_67.html new file mode 100644 index 0000000..b81015d --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_67.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_67.js b/doc/fsdk/html/search/enumvalues_67.js new file mode 100644 index 0000000..c0222a1 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_67.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['good',['Good',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7ac68c59f721bd43286d68df8fd1ff15e7',1,'fsdk::HeadPoseEstimation']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_68.html b/doc/fsdk/html/search/enumvalues_68.html new file mode 100644 index 0000000..82cf068 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_68.js b/doc/fsdk/html/search/enumvalues_68.js new file mode 100644 index 0000000..993a73d --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_68.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['hdt_5fall',['HDT_ALL',['../group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a68c684c9f61fe9e2ac96d86fc7b52fc5',1,'fsdk']]], + ['hdt_5fbox',['HDT_BOX',['../group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655a716d7d6139b785910a90c72107445098',1,'fsdk']]], + ['hdt_5fpoints',['HDT_POINTS',['../group___detector_group.html#ggaab9078e2636634d9f46c2b6616d89655ae80b512594911338293f4831de45136d',1,'fsdk']]], + ['hdv_5fprecise_5fhuman_5fdescriptor_5fversion',['HDV_PRECISE_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aaccfd669d40850d6a873556ade7aa880e',1,'fsdk']]], + ['hdv_5fregular_5fhuman_5fdescriptor_5fversion',['HDV_REGULAR_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aa2f2c4b298d09076afaf1ce4b262b88f3',1,'fsdk']]], + ['hdv_5ftracker_5fhuman_5fdescriptor_5fversion',['HDV_TRACKER_HUMAN_DESCRIPTOR_VERSION',['../group___descriptor_processing_group.html#gga483d7359d800ae83b6fbda4dabdf086aab372ead6c8a3d98140e26c9b05603fbf',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_69.html b/doc/fsdk/html/search/enumvalues_69.html new file mode 100644 index 0000000..50f5633 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_69.js b/doc/fsdk/html/search/enumvalues_69.js new file mode 100644 index 0000000..38cf27b --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_69.js @@ -0,0 +1,61 @@ +var searchData= +[ + ['ic_5fbest_5fcompression',['IC_BEST_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daccd72f086a3257b06c12b790a683f2d6',1,'fsdk::Image']]], + ['ic_5fhard_5fcompression',['IC_HARD_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5da60cdeb7647e393444a05d358810293f5',1,'fsdk::Image']]], + ['ic_5fmedium_5fcompression',['IC_MEDIUM_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daf526f9c09cd1a065f528dc6518895615',1,'fsdk::Image']]], + ['ic_5fno_5fcompression',['IC_NO_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dab75738e569f17ad386d0ff4cb90eabb9',1,'fsdk::Image']]], + ['ic_5fsmall_5fcompression',['IC_SMALL_COMPRESSION',['../structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dae811dec1e75f575972a667e83a23bd34',1,'fsdk::Image']]], + ['incompatible',['Incompatible',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a2a208768bc7995cc26b7f3797d24b0b1',1,'fsdk::IDescriptorBatch']]], + ['incompatibledescriptors',['IncompatibleDescriptors',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a98530c9f4969e4a2e2d84a7776a2be2a',1,'fsdk']]], + ['incompatiblemodelversions',['IncompatibleModelVersions',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6acd90a241053a97f8ff283746c8bed63f',1,'fsdk']]], + ['inputarchive',['InputArchive',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0af7d6ea2b343a99ac0a2cd306ed96b5c7',1,'fsdk::ISerializableObject']]], + ['int1',['Int1',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a95a8d18f7debfc437b1669849e7dd925',1,'fsdk::ISettingsProvider::Value']]], + ['int2',['Int2',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947adf23e4f8136317e83ee4579ba2a5e066',1,'fsdk::ISettingsProvider::Value']]], + ['int3',['Int3',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ab6b18a107e12ec3a414343d93b4d69ec',1,'fsdk::ISettingsProvider::Value']]], + ['int4',['Int4',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac4b020c2b070595a491d27e82c03ab5d',1,'fsdk::ISettingsProvider::Value']]], + ['internal',['Internal',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::IDescriptorBatch::Internal()'],['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::ISettingsProvider::Internal()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::Internal()'],['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbaafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::Internal()'],['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83aafbf0897a5a83fdd873dfb032ec695d3',1,'fsdk::Internal()']]], + ['invalidarchive',['InvalidArchive',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a538273d971a3da3f944bfb95091df5d8',1,'fsdk::Image']]], + ['invalidattribute',['InvalidAttribute',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a49069827e26a70a158193ed0595b485b',1,'fsdk::ISettingsProvider']]], + ['invalidbatch',['InvalidBatch',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a16cd466ba03251484ec4e4b1dba364f5',1,'fsdk']]], + ['invalidbitmap',['InvalidBitmap',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936abcdbc5068527815bd978d3cbba5e7deb',1,'fsdk::Image']]], + ['invalidbuffersize',['InvalidBufferSize',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a32d8099d0ff5ab8d8893e6902eeb1ad0',1,'fsdk']]], + ['invalidcdata',['InvalidCdata',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a20c6429b7ff545070b48df0668d686fe',1,'fsdk::ISettingsProvider']]], + ['invalidcomment',['InvalidComment',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5ac51b09d66c17f113d52d2822fb71a757',1,'fsdk::ISettingsProvider']]], + ['invalidconfig',['InvalidConfig',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a636bc5ca1e0ceb3e4c67067618d7ae09',1,'fsdk']]], + ['invalidconversion',['InvalidConversion',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaf9d45225e9d3edf59f2fd40d4b9f157',1,'fsdk::Image']]], + ['invaliddataptr',['InvalidDataPtr',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a588c80ae8885b51a5f0700894da5affe',1,'fsdk::Image']]], + ['invaliddatasize',['InvalidDataSize',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a0a86fcdcc2094e925e3166b9710f8d82',1,'fsdk::Image']]], + ['invaliddescriptor',['InvalidDescriptor',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5b17c8e23099885736ba8f8d05c32f6c',1,'fsdk']]], + ['invaliddescriptorbatch',['InvalidDescriptorBatch',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a7b9735f9f1303453ad41cd38fc3b2b77',1,'fsdk']]], + ['invaliddescriptorid',['InvalidDescriptorId',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a1a86be0290d50e138737e4cc52665468',1,'fsdk']]], + ['invaliddetection',['InvalidDetection',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a8f36304eeb9e7bd7da166f71d3a5671f',1,'fsdk']]], + ['invaliddevice',['InvalidDevice',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a3634e01cc1296daece9832c5396808c2',1,'fsdk::Image']]], + ['invaliddoctype',['InvalidDocType',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a93650de0861d0516977f25b86ee42e5a',1,'fsdk::ISettingsProvider']]], + ['invalidendelement',['InvalidEndElement',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a811a6b500aa2374e3a70057141dccbbf',1,'fsdk::ISettingsProvider']]], + ['invalidformat',['InvalidFormat',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade236a235b4e8ffc9141676624753b2d',1,'fsdk::Image']]], + ['invalidheight',['InvalidHeight',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaff424fc1ea568827830b838a80cd934',1,'fsdk::Image']]], + ['invalidimage',['InvalidImage',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a107a93f5ad9b48f874341eaa0141e0f9',1,'fsdk::Image::InvalidImage()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a107a93f5ad9b48f874341eaa0141e0f9',1,'fsdk::InvalidImage()']]], + ['invalidimageformat',['InvalidImageFormat',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a4bb4fd071cf54bae94ece53fa687b8bf',1,'fsdk']]], + ['invalidimagesize',['InvalidImageSize',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5a606ed9e3b82871cb31eb26d467bebf',1,'fsdk']]], + ['invalidinput',['InvalidInput',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93ad8f78ca9a692a9411afbc7584b69d043',1,'fsdk::IDescriptorBatch::InvalidInput()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6ad8f78ca9a692a9411afbc7584b69d043',1,'fsdk::InvalidInput()'],['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbad8f78ca9a692a9411afbc7584b69d043',1,'fsdk::InvalidInput()']]], + ['invalidlandmarks5',['InvalidLandmarks5',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6ab5c07ccab2c5b9c7577b777263e692aa',1,'fsdk']]], + ['invalidlandmarks68',['InvalidLandmarks68',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5e323dba014fd8072bb4a29f3e39db8d',1,'fsdk']]], + ['invalidmemory',['InvalidMemory',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a83fe3c82514cc399b416bbb9d25ac9a9',1,'fsdk::Image']]], + ['invalidpath',['InvalidPath',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a5d0744802b24f44a161d350c25d76c7b',1,'fsdk::Image::InvalidPath()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a5d0744802b24f44a161d350c25d76c7b',1,'fsdk::InvalidPath()']]], + ['invalidpcdata',['InvalidPcdata',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a65d83fd76501c29718cc8fde8b8f33db',1,'fsdk::ISettingsProvider']]], + ['invalidpi',['InvalidPi',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a96fe5a2a900fba7e5dd6fe5519f09e90',1,'fsdk::ISettingsProvider']]], + ['invalidrect',['InvalidRect',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a48a3a3a046f78d13629f687cc97461a0',1,'fsdk']]], + ['invalidresidence',['InvalidResidence',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a2a7695a194a2f785215c4ed058e2bf7b',1,'fsdk::Image']]], + ['invalidserializedobject',['InvalidSerializedObject',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6af3c0d24a751f6da0fe4f81bb2e10bb19',1,'fsdk']]], + ['invalidsettings',['InvalidSettings',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a37a5f254c366f6c4dcba8bfd75f1070e',1,'fsdk::ISettingsProvider']]], + ['invalidsettingsprovider',['InvalidSettingsProvider',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6ab1af2f31ddaa685b9fabe328f28f3a6f',1,'fsdk']]], + ['invalidspansize',['InvalidSpanSize',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a9a93b3012aa094825f11f65e07763bb3',1,'fsdk']]], + ['invalidstartelement',['InvalidStartElement',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a17b7fccdd65da9c5a54552c3685041a4',1,'fsdk::ISettingsProvider']]], + ['invalidtag',['InvalidTag',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5af155a86534ba8c83bd9ced7c8f510b4c',1,'fsdk::ISettingsProvider']]], + ['invalidtransformation',['InvalidTransformation',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a21481cb38ecea41b765ab2d86b594053',1,'fsdk']]], + ['invalidtype',['InvalidType',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ac85f85f7c13ed006eed130ec183aa810',1,'fsdk::Image']]], + ['invalidwidth',['InvalidWidth',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a6518a24cb2d8166f5c57016e65e3f419',1,'fsdk::Image']]], + ['ioerror',['IOError',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a5206bd7472156351d2d9a99633ac9580',1,'fsdk::ISettingsProvider::IOError()'],['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93af05cfcbf5123775f7c73e520a8d861e1',1,'fsdk::IDescriptorBatch::IoError()']]], + ['ir_5fx8x8x8',['IR_X8X8X8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1af4ca5a5a1ea5b7005c89a9cd0911d0b4',1,'fsdk::Format']]], + ['iso',['ISO',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a4db45576db7f96e820b1388d1c522aff',1,'fsdk::HeadPoseEstimation']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_6c.html b/doc/fsdk/html/search/enumvalues_6c.html new file mode 100644 index 0000000..512a5c9 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_6c.js b/doc/fsdk/html/search/enumvalues_6c.js new file mode 100644 index 0000000..116ae25 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['landmarkcount',['LandmarkCount',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aec5fb21288f98e092c4fb19e9fd9dc3c',1,'fsdk::Landmarks5Indexes']]], + ['landmarklefteye',['LandmarkLeftEye',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7ad3566c44c6de999dfc157bc178093e94',1,'fsdk::Landmarks5Indexes']]], + ['landmarkmouthleftcorner',['LandmarkMouthLeftCorner',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a8e22313b8661da3a61347417a8e61ca6',1,'fsdk::Landmarks5Indexes']]], + ['landmarkmouthrightcorner',['LandmarkMouthRightCorner',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a69e618c0af0d1130966997ad32b5e4b0',1,'fsdk::Landmarks5Indexes']]], + ['landmarknose',['LandmarkNose',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a572a622e295b81f5ee4578e7e290aa39',1,'fsdk::Landmarks5Indexes']]], + ['landmarkrighteye',['LandmarkRightEye',['../structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aca84a9be871065c03172c26db6fc025c',1,'fsdk::Landmarks5Indexes']]], + ['licenseerror',['LicenseError',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a2b423836b373458d26bdc9da85cfc6a8',1,'fsdk']]], + ['licenseisnotactivated',['LicenseIsNotActivated',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a22e90664663be51d76eb78ba6e964375',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_6d.html b/doc/fsdk/html/search/enumvalues_6d.html new file mode 100644 index 0000000..ce6a40c --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_6d.js b/doc/fsdk/html/search/enumvalues_6d.js new file mode 100644 index 0000000..f3c6682 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['mask',['Mask',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3a4a18312b5b75f549d5551e5912ad6ebf',1,'fsdk::Mask()'],['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4a4a18312b5b75f549d5551e5912ad6ebf',1,'fsdk::Mask()']]], + ['masknotinplace',['MaskNotInPlace',['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4a76e1b9427b8bfbfb49646010fc60aca5',1,'fsdk']]], + ['memory',['Memory',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a4789f23283b3a61f858b641a1bef19a3',1,'fsdk::ISettingsProvider']]], + ['memoryallocationfailed',['MemoryAllocationFailed',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5accc756faa9c309bf0bd9ed5e43dee2a0',1,'fsdk::ISettingsProvider']]], + ['memorycpu',['MemoryCPU',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a2795bef6531632efb72ad70348fb5993',1,'fsdk::Image']]], + ['memorygpu',['MemoryGPU',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07af9b0ab7ae4fae4c4b922abbce4b9bebf',1,'fsdk::Image']]], + ['memorynpu',['MemoryNPU',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a40657ac0e763be1c1a745957006c3555',1,'fsdk::Image']]], + ['memorynpu_5fdpp',['MemoryNPU_DPP',['../structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a1359bce90afb193bac4435d19c8864dd',1,'fsdk::Image']]], + ['modelnotloaded',['ModelNotLoaded',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a781454aa7253a3e54e7a7f7fec293e29',1,'fsdk']]], + ['modulenotinitialized',['ModuleNotInitialized',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a323d77f58f917d629ad48b5ee2d191c1',1,'fsdk']]], + ['modulenotready',['ModuleNotReady',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6adf06605dc40df1fb5461ffb5f83b2eab',1,'fsdk']]], + ['mouthcoveredwithmask',['MouthCoveredWithMask',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a441d76bcf769e79c823c29a2cf9613b4',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_6e.html b/doc/fsdk/html/search/enumvalues_6e.html new file mode 100644 index 0000000..b85f034 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_6e.js b/doc/fsdk/html/search/enumvalues_6e.js new file mode 100644 index 0000000..49a4962 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6e.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['nir',['NIR',['../namespacefsdk.html#a2cd10d6257c328c01b7d7296938881f8aac46d1e7cde34e4a9b473eb8a9d8c443',1,'fsdk']]], + ['nodocumentelement',['NoDocumentElement',['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a655f7706c6b80b169803c2854e43f207',1,'fsdk::ISettingsProvider']]], + ['noglasses',['NoGlasses',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478ad6e6ea79756eab21131ccaa8bb2c1634',1,'fsdk']]], + ['nomask',['NoMask',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3af50feb187f8ec40ffbe7d4eed016abc0',1,'fsdk::NoMask()'],['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4af50feb187f8ec40ffbe7d4eed016abc0',1,'fsdk::NoMask()']]], + ['non',['Non',['../structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a24492e9ec0700fa260acd0c5c15f22d1',1,'fsdk::HeadPoseEstimation']]], + ['nonwaitable',['NonWaitable',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fba3b80f1e3131f25efad47938c5e9c66fc',1,'fsdk']]], + ['nosignature',['NoSignature',['../structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79abe2164cbc91b390163c0c9af3448acf6',1,'fsdk::ISerializableObject']]], + ['notfulfilled',['NotFulfilled',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fba1f044538a6ed1853dd8ddd097b77fd90',1,'fsdk']]], + ['notimplemented',['NotImplemented',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a997ca4ce119685f40f03a9a8a6c5346e',1,'fsdk']]], + ['notpromised',['NotPromised',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fba6eea7f630714b872a5f9f60ecb6b02b2',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_6f.html b/doc/fsdk/html/search/enumvalues_6f.html new file mode 100644 index 0000000..d1a0d01 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_6f.js b/doc/fsdk/html/search/enumvalues_6f.js new file mode 100644 index 0000000..2fa14a0 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_6f.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['occluded',['Occluded',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a40deec4b6f036b28681fc864b1e31de3',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['occludedface',['OccludedFace',['../namespacefsdk.html#a7a832d1cd24208a884d83c7b989e1df3a2e4c148920d91d1ad1bd404a00edb08c',1,'fsdk::OccludedFace()'],['../namespacefsdk.html#a8e6d98deb6ca721b047ae0635017bdd4a2e4c148920d91d1ad1bd404a00edb08c',1,'fsdk::OccludedFace()']]], + ['ok',['Ok',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aa60852f204ed8028c1c58808b746d115',1,'fsdk::IDescriptorBatch::Ok()'],['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0aa60852f204ed8028c1c58808b746d115',1,'fsdk::ISerializableObject::Ok()'],['../structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aa60852f204ed8028c1c58808b746d115',1,'fsdk::ISettingsProvider::Ok()'],['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aa60852f204ed8028c1c58808b746d115',1,'fsdk::Image::Ok()'],['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6aa60852f204ed8028c1c58808b746d115',1,'fsdk::Ok()'],['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbaa60852f204ed8028c1c58808b746d115',1,'fsdk::Ok()'],['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83aa60852f204ed8028c1c58808b746d115',1,'fsdk::Ok()']]], + ['open',['Open',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003ac3bf447eabe632720a3aa1a7ce401274',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['ot_5fleft',['OT_LEFT',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8a106d4ca5cb057bef338d7b7d6c07d211',1,'fsdk']]], + ['ot_5fnormal',['OT_NORMAL',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8a4c9ccc5761b45a4fddd2f711ba56ec86',1,'fsdk']]], + ['ot_5fright',['OT_RIGHT',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8a8902f74893302a8e7572555cf21d56d0',1,'fsdk']]], + ['ot_5fupside_5fdown',['OT_UPSIDE_DOWN',['../namespacefsdk.html#aabc3f132d502bf530ef60d9d5c0837c8abdb076e54655c3150966583e78f4d309',1,'fsdk']]], + ['outofrange',['OutOfRange',['../structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a365b2699d38b61ef4b4c8a1066c8468f',1,'fsdk::IDescriptorBatch']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_70.html b/doc/fsdk/html/search/enumvalues_70.html new file mode 100644 index 0000000..8f034d0 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_70.js b/doc/fsdk/html/search/enumvalues_70.js new file mode 100644 index 0000000..5fc5ca0 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_70.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['partlycoveredface',['PartlyCoveredFace',['../namespacefsdk.html#a12b3d18d0723cdafd86b4902241f5cb0a4a2e1816c03bce920e68f535c6bac16e',1,'fsdk']]], + ['promised',['Promised',['../namespacefsdk.html#a48fe9106b62424a924a260074cd2c82ba2be6a2301e811bf1ea5e43c4f4c4ef3a',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_72.html b/doc/fsdk/html/search/enumvalues_72.html new file mode 100644 index 0000000..a37002d --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_72.js b/doc/fsdk/html/search/enumvalues_72.js new file mode 100644 index 0000000..8173d70 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_72.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['r16',['R16',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1ae6596410cdfb3e164d3114d7275c01a4',1,'fsdk::Format']]], + ['r8',['R8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1afd28eabff68ce04d89a4a445c8774f11',1,'fsdk::Format']]], + ['r8g8b8',['R8G8B8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a64d817782ee8b40de7073acc65267e76',1,'fsdk::Format']]], + ['r8g8b8x8',['R8G8B8X8',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a1531807037bb455d89b70ff0d6ff05fe',1,'fsdk::Format']]], + ['releasedinotherthread',['ReleasedInOtherThread',['../structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a014e56b039fd19b57e203c1fb371f5ce',1,'fsdk::Image']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_73.html b/doc/fsdk/html/search/enumvalues_73.html new file mode 100644 index 0000000..dcb5926 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_73.js b/doc/fsdk/html/search/enumvalues_73.js new file mode 100644 index 0000000..75ac5ff --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_73.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['signature',['Signature',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a8c09001c99ecb6fdd8d6023fcf039054',1,'fsdk::ISerializableObject']]], + ['size',['Size',['../structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a6f6cb72d544962fa333e2e34ce64f719',1,'fsdk::ISerializableObject']]], + ['statedoesntallowfuturecreation',['StateDoesntAllowFutureCreation',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83a8a986d01729ce1c0f7850a2a2a8d6adc',1,'fsdk']]], + ['statenotcancelable',['StateNotCancelable',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83a801f898435bf3dbee309450663b0e2b2',1,'fsdk']]], + ['statenotfailable',['StateNotFailable',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83acb325477696c2966ed1115474086076d',1,'fsdk']]], + ['statenotfulfillable',['StateNotFulfillable',['../namespacefsdk.html#a4d0fbacdb0e56a6f79c2eb3e276c4e83ae3edadd584e4efcdca61a840abdf7c4b',1,'fsdk']]], + ['string',['String',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac62a83138afcfe41b9c64a6e6026f5fb',1,'fsdk::ISettingsProvider::Value']]], + ['sunglasses',['SunGlasses',['../namespacefsdk.html#aa45cbedc4e8044e57d4b88144be36478ae6798db673b98a47d715e139a67e81ff',1,'fsdk']]], + ['sync',['Sync',['../namespacefsdk.html#a0f4cbbc8c61f0127bd75695e76869860ad8e87c0927539672f54462c837be0b7f',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_74.html b/doc/fsdk/html/search/enumvalues_74.html new file mode 100644 index 0000000..cb444c9 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_74.js b/doc/fsdk/html/search/enumvalues_74.js new file mode 100644 index 0000000..7973529 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['timeout',['Timeout',['../namespacefsdk.html#ab7f8be96a87fd4e85bd762a7f8f8f8fbac85a251cc457840f1e032f1b733e9398',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_75.html b/doc/fsdk/html/search/enumvalues_75.html new file mode 100644 index 0000000..d48da8c --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_75.js b/doc/fsdk/html/search/enumvalues_75.js new file mode 100644 index 0000000..429efed --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_75.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['undefined',['Undefined',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a99ad8e5a64bab96bf5f777dc1b51d88f',1,'fsdk::ISettingsProvider::Value']]], + ['unknown',['Unknown',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a28e996e86d8357a023f9b14fa4da9f1f',1,'fsdk::Format::Unknown()'],['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a88183b946cc5f0e8c96b2e66e1c74a7e',1,'fsdk::LivenessOneShotRGBEstimation::Unknown()']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_76.html b/doc/fsdk/html/search/enumvalues_76.html new file mode 100644 index 0000000..80e602c --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_76.js b/doc/fsdk/html/search/enumvalues_76.js new file mode 100644 index 0000000..dbfcb20 --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_76.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['validationfailed',['ValidationFailed',['../namespacefsdk.html#a811cc08198c8cb908dc856217ef6c4f6a180b13250d9cde4f32c7e611c95789db',1,'fsdk']]], + ['visible',['Visible',['../namespacefsdk.html#a2cd10d6257c328c01b7d7296938881f8aec24d78ce33048dc73a2b6b1a0690192',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/enumvalues_79.html b/doc/fsdk/html/search/enumvalues_79.html new file mode 100644 index 0000000..84af2af --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_79.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/enumvalues_79.js b/doc/fsdk/html/search/enumvalues_79.js new file mode 100644 index 0000000..57b18dd --- /dev/null +++ b/doc/fsdk/html/search/enumvalues_79.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['yuv_5fnv12',['YUV_NV12',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a7acff06144acdfb863cfe120628e9d56',1,'fsdk::Format']]], + ['yuv_5fnv21',['YUV_NV21',['../structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a86ae1133449f6210391a331405d7ea4e',1,'fsdk::Format']]] +]; diff --git a/doc/fsdk/html/search/files_64.html b/doc/fsdk/html/search/files_64.html new file mode 100644 index 0000000..b59ba8f --- /dev/null +++ b/doc/fsdk/html/search/files_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/files_64.js b/doc/fsdk/html/search/files_64.js new file mode 100644 index 0000000..e5d4007 --- /dev/null +++ b/doc/fsdk/html/search/files_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['def_2eh',['Def.h',['../_def_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/files_66.html b/doc/fsdk/html/search/files_66.html new file mode 100644 index 0000000..120b791 --- /dev/null +++ b/doc/fsdk/html/search/files_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/files_66.js b/doc/fsdk/html/search/files_66.js new file mode 100644 index 0000000..1d7120a --- /dev/null +++ b/doc/fsdk/html/search/files_66.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['faceengine_2eh',['FaceEngine.h',['../_face_engine_8h.html',1,'']]], + ['fsdkerror_2eh',['FSDKError.h',['../_f_s_d_k_error_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/files_69.html b/doc/fsdk/html/search/files_69.html new file mode 100644 index 0000000..936bcf6 --- /dev/null +++ b/doc/fsdk/html/search/files_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/files_69.js b/doc/fsdk/html/search/files_69.js new file mode 100644 index 0000000..5ce161e --- /dev/null +++ b/doc/fsdk/html/search/files_69.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['iasynccontext_2eh',['IAsyncContext.h',['../_i_async_context_8h.html',1,'']]], + ['idescriptor_2eh',['IDescriptor.h',['../_i_descriptor_8h.html',1,'']]], + ['idetector_2eh',['IDetector.h',['../_i_detector_8h.html',1,'']]], + ['ihumanwarper_2eh',['IHumanWarper.h',['../_i_human_warper_8h.html',1,'']]], + ['iobject_2eh',['IObject.h',['../_i_object_8h.html',1,'']]], + ['irefcounted_2eh',['IRefCounted.h',['../_i_ref_counted_8h.html',1,'']]], + ['isettingsprovider_2eh',['ISettingsProvider.h',['../_i_settings_provider_8h.html',1,'']]], + ['iwarper_2eh',['IWarper.h',['../_i_warper_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/files_6c.html b/doc/fsdk/html/search/files_6c.html new file mode 100644 index 0000000..938b3db --- /dev/null +++ b/doc/fsdk/html/search/files_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/files_6c.js b/doc/fsdk/html/search/files_6c.js new file mode 100644 index 0000000..584bb94 --- /dev/null +++ b/doc/fsdk/html/search/files_6c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['log_2eh',['Log.h',['../_log_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/files_74.html b/doc/fsdk/html/search/files_74.html new file mode 100644 index 0000000..e05150d --- /dev/null +++ b/doc/fsdk/html/search/files_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/files_74.js b/doc/fsdk/html/search/files_74.js new file mode 100644 index 0000000..d013b93 --- /dev/null +++ b/doc/fsdk/html/search/files_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['types_2eh',['Types.h',['../_types_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/files_76.html b/doc/fsdk/html/search/files_76.html new file mode 100644 index 0000000..76fbefc --- /dev/null +++ b/doc/fsdk/html/search/files_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/files_76.js b/doc/fsdk/html/search/files_76.js new file mode 100644 index 0000000..570df9b --- /dev/null +++ b/doc/fsdk/html/search/files_76.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['version_2eh',['Version.h',['../_version_8h.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/functions_61.html b/doc/fsdk/html/search/functions_61.html new file mode 100644 index 0000000..ecabe40 --- /dev/null +++ b/doc/fsdk/html/search/functions_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_61.js b/doc/fsdk/html/search/functions_61.js new file mode 100644 index 0000000..3c6ddce --- /dev/null +++ b/doc/fsdk/html/search/functions_61.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['acquire',['acquire',['../structfsdk_1_1_ref.html#a5d1295bb45a634e8907e6f3ce891e93b',1,'fsdk::Ref::acquire()'],['../namespacefsdk.html#a95e1cb77fe5e1fb43f0f0d671f049234',1,'fsdk::acquire()']]], + ['acquire_5fas',['acquire_as',['../namespacefsdk.html#a6d4392e13b71ae10f59aa4173a5f449b',1,'fsdk']]], + ['activatelicense',['activateLicense',['../group___core_group.html#ga53c35949048b783d461b35d554b8f6d0',1,'fsdk::activateLicense(ILicense *license, const char *configPath) noexcept'],['../group___core_group.html#gac6fffdb9d8e070ac8bc8a0515a0fde27',1,'fsdk::activateLicense(ILicense *license, ISettingsProvider *settings) noexcept']]], + ['add',['add',['../structfsdk_1_1_i_descriptor_batch.html#acdebdf5cd4b73082fb1f69b7c3673b3e',1,'fsdk::IDescriptorBatch::add(IDescriptor *descriptor) noexcept=0'],['../structfsdk_1_1_i_descriptor_batch.html#a61596b9c2071cf35b9f7b36f78338b31',1,'fsdk::IDescriptorBatch::add(IDescriptorBatch *batch, uint32_t offset=0) noexcept=0'],['../structfsdk_1_1_i_descriptor_batch.html#ab13b6d9a8bc83a2319a2df12ea8fb385',1,'fsdk::IDescriptorBatch::add(IDescriptorBatch *batch, uint32_t offset, uint32_t count) noexcept=0']]], + ['adjust',['adjust',['../structfsdk_1_1_base_rect.html#ab87b40ffe339e5f9f1140a17f3d102bf',1,'fsdk::BaseRect']]], + ['adjusted',['adjusted',['../structfsdk_1_1_base_rect.html#ab984f957869ca6d59810885178e42a25',1,'fsdk::BaseRect']]], + ['allocate',['allocate',['../structfsdk_1_1_image.html#aef4ba8f782d69628ffaffc4da6ed970f',1,'fsdk::Image']]], + ['append',['append',['../structfsdk_1_1_sizer.html#adc34d459d74906d4e2a8e8efeffe1339',1,'fsdk::Sizer::append(size_t bytes) noexcept'],['../structfsdk_1_1_sizer.html#ab278930212c03f5f2dba82281b2b8a63',1,'fsdk::Sizer::append(const Sizer &other) noexcept']]], + ['appendbatch',['appendBatch',['../structfsdk_1_1_i_dynamic_descriptor_storage.html#acee6a3d1822e97dad564278715b3a596',1,'fsdk::IDynamicDescriptorStorage']]], + ['appenddescriptor',['appendDescriptor',['../structfsdk_1_1_i_dynamic_descriptor_storage.html#a78a1d8242a8574bcde70c070602bc1fa',1,'fsdk::IDynamicDescriptorStorage']]], + ['as',['as',['../structfsdk_1_1_ref.html#a74485eedefcd2c2f032a61bce36a2492',1,'fsdk::Ref']]], + ['asbool',['asBool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a81865a1f56ef1450a47de5d8e8866c6d',1,'fsdk::ISettingsProvider::Value']]], + ['asfloat',['asFloat',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a6070b50e16d3cbcd5a49c018b6d631c8',1,'fsdk::ISettingsProvider::Value']]], + ['asint',['asInt',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a9dc95a2a7f10e8860915a14565a86f73',1,'fsdk::ISettingsProvider::Value']]], + ['aspoint2f',['asPoint2f',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a89993c2d966d24f4d8f1800d25af4071',1,'fsdk::ISettingsProvider::Value']]], + ['aspoint2i',['asPoint2i',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a62b3eff07e0687047a65e18939f4a1af',1,'fsdk::ISettingsProvider::Value']]], + ['asrect',['asRect',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a320c5395ac81284ee738283ef07f6f32',1,'fsdk::ISettingsProvider::Value']]], + ['assign',['assign',['../structfsdk_1_1_ref.html#aed37366a7149bed9a7d7c322bd7bef91',1,'fsdk::Ref']]], + ['assize',['asSize',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ac401f96faea0d11e79f92e66416e560d',1,'fsdk::ISettingsProvider::Value']]], + ['asstring',['asString',['../structfsdk_1_1_i_settings_provider_1_1_value.html#acf75100534bf1b7c7d9536ace5b8dca8',1,'fsdk::ISettingsProvider::Value']]] +]; diff --git a/doc/fsdk/html/search/functions_62.html b/doc/fsdk/html/search/functions_62.html new file mode 100644 index 0000000..294285a --- /dev/null +++ b/doc/fsdk/html/search/functions_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_62.js b/doc/fsdk/html/search/functions_62.js new file mode 100644 index 0000000..aefdeeb --- /dev/null +++ b/doc/fsdk/html/search/functions_62.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['baserect',['BaseRect',['../structfsdk_1_1_base_rect.html#a4a55ea050c7506e3e9c9540e010285e4',1,'fsdk::BaseRect::BaseRect() noexcept'],['../structfsdk_1_1_base_rect.html#a3699859a25f6bcb74baad0d20973447e',1,'fsdk::BaseRect::BaseRect(Type x_, Type y_, Type w_, Type h_) noexcept'],['../structfsdk_1_1_base_rect.html#ab49e0cf0bf9f89093e589466036dc275',1,'fsdk::BaseRect::BaseRect(const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexcept'],['../structfsdk_1_1_base_rect.html#a0cd90fea55248ecf80cfaec5df89b580',1,'fsdk::BaseRect::BaseRect(const BaseRect &other) noexcept']]], + ['begin',['begin',['../classfsdk_1_1_span.html#a6dd554d60d4ad6c1b9d383b92d306d4d',1,'fsdk::Span::begin()'],['../classfsdk_1_1_span.html#a4ff1cfe464f87e22ba38ffdee05b2247',1,'fsdk::Span::begin() const ']]], + ['bottom',['bottom',['../structfsdk_1_1_base_rect.html#aeaa8815528ba0d03fa21e3b7e77f1bd1',1,'fsdk::BaseRect']]], + ['bottomright',['bottomRight',['../structfsdk_1_1_base_rect.html#ad547735b6c914c1ccffdc453b4b60e16',1,'fsdk::BaseRect']]], + ['buildindex',['buildIndex',['../structfsdk_1_1_i_index_builder.html#a7416163824700dcead008ac25011a80f',1,'fsdk::IIndexBuilder']]], + ['buildindexasync',['buildIndexAsync',['../structfsdk_1_1_i_index_builder.html#a9893a17a91bba8a2f19d3745b6757528',1,'fsdk::IIndexBuilder']]] +]; diff --git a/doc/fsdk/html/search/functions_63.html b/doc/fsdk/html/search/functions_63.html new file mode 100644 index 0000000..98924d8 --- /dev/null +++ b/doc/fsdk/html/search/functions_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_63.js b/doc/fsdk/html/search/functions_63.js new file mode 100644 index 0000000..013d60d --- /dev/null +++ b/doc/fsdk/html/search/functions_63.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['calcdistance',['calcDistance',['../structfsdk_1_1_i_descriptor_matcher.html#a686369ae167cf3a4829845a37abfa620',1,'fsdk::IDescriptorMatcher']]], + ['calcsimilarity',['calcSimilarity',['../structfsdk_1_1_i_descriptor_matcher.html#a5f0fa94452bc1690b1f687c0ddd80c98',1,'fsdk::IDescriptorMatcher']]], + ['cancel',['cancel',['../classfsdk_1_1_future.html#aaaed4d6e1ad65c21ac4ac4e547e93f53',1,'fsdk::Future::cancel()'],['../classfsdk_1_1_promise.html#a7a178efaed788e336ed5305580737e4a',1,'fsdk::Promise::cancel()']]], + ['cbegin',['cbegin',['../classfsdk_1_1_span.html#a75d776c2cd247ee09dca89c7b76ef95e',1,'fsdk::Span']]], + ['cend',['cend',['../classfsdk_1_1_span.html#a095a8f1430c6ba5f9c596af9fa88c3e6',1,'fsdk::Span']]], + ['center',['center',['../structfsdk_1_1_base_rect.html#a1e230d4202410675172acfe42e565ee0',1,'fsdk::BaseRect']]], + ['centerscale',['centerScale',['../namespacefsdk.html#abdc45b750210653e21f98c9f2ec54f6f',1,'fsdk']]], + ['checkfeatureid',['checkFeatureId',['../structfsdk_1_1_i_license.html#aec5f52e8c189d5cfd99cc13ea1badb51',1,'fsdk::ILicense']]], + ['clear',['clear',['../structfsdk_1_1_i_data_storage_object.html#addfae1943b82b44900f1c2f318a05d53',1,'fsdk::IDataStorageObject::clear()'],['../structfsdk_1_1_i_settings_provider.html#a80367779f65239e656e0a20a6204224a',1,'fsdk::ISettingsProvider::clear()']]], + ['cleartaskqueue',['clearTaskQueue',['../structfsdk_1_1_i_async_context.html#a8db1ec0dbf3c38ea731a76524208f8f9',1,'fsdk::IAsyncContext']]], + ['clone',['clone',['../structfsdk_1_1_image.html#a523b0c28a4003c75c3907d0c93110493',1,'fsdk::Image']]], + ['computepitch',['computePitch',['../structfsdk_1_1_format.html#aea650b3b3a3256b34cf1284c53262899',1,'fsdk::Format']]], + ['convert',['convert',['../structfsdk_1_1_image.html#ab0c8024817b8e634f5ec18f1a0f08916',1,'fsdk::Image::convert(Image &dest, int x, int y, int width, int height, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a566dd9391571379fed5e1da2ed9975c8',1,'fsdk::Image::convert(Image &dest, const Point2i &origin, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a3ddea03d5ee948a5c2d0aa81a4fe8027',1,'fsdk::Image::convert(Image &dest, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a9a8a6abf162c095d6f1e62919cf4dabf',1,'fsdk::Image::convert(Image &dest, const Rect &rect, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../structfsdk_1_1_image.html#a10e36f6ea8f5e293f7bd58658ecb1653',1,'fsdk::Image::convert(Image &dest, Format format, TargetDevice device=TargetDevice::CPU) const noexcept'],['../namespacefsdk.html#a49f021ac48d9fd75d78f11c14461da3e',1,'fsdk::convert()']]], + ['coords',['coords',['../structfsdk_1_1_base_rect.html#a89f1a981d17f0059a2ca91e7ea09c534',1,'fsdk::BaseRect']]], + ['countofindexeddescriptors',['countOfIndexedDescriptors',['../structfsdk_1_1_i_dynamic_index.html#a39700ae4d6cd22ea3d8c8b4e94af0f3b',1,'fsdk::IDynamicIndex']]], + ['create',['create',['../structfsdk_1_1_image.html#a1596737bcf2aea4a1c8fc336f6f1b182',1,'fsdk::Image::create(int width, int height, Format format, bool cleanup=true, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#aafa5e102bd9b4ccda1f827f1a12499db',1,'fsdk::Image::create(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a99fd0c30cf7d2fd3c26ff6f1771a356b',1,'fsdk::Image::create(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#aeb3e38807e56a77419a073eea1e6d2ec',1,'fsdk::Image::create(const fsdk::Image &source, MemoryResidence residence, int deviceId=0) noexcept']]], + ['createagsestimator',['createAGSEstimator',['../group___core_group.html#ga7a8dada6aaffd748670b10af9b046a18',1,'fsdk::IFaceEngineMobile']]], + ['createbestshotqualityestimator',['createBestShotQualityEstimator',['../group___core_group.html#ga82e87dfd7117d3763343ae6078009efb',1,'fsdk::IFaceEngineMobile']]], + ['createdescriptor',['createDescriptor',['../group___core_group.html#gae1c6db8b544293bc9d766179e60e1c9a',1,'fsdk::IFaceEngineMobile::createDescriptor(uint32_t version=0) noexcept=0'],['../group___core_group.html#ga7c21f0d0ebda0e2781587c4997d2a074',1,'fsdk::IFaceEngineMobile::createDescriptor(IArchive *archive, uint32_t flags=0) noexcept=0']]], + ['createdescriptorbatch',['createDescriptorBatch',['../group___core_group.html#gaabd68d9f71a2fec2fbf5dce797f3f73f',1,'fsdk::IFaceEngineMobile']]], + ['createdetector',['createDetector',['../group___core_group.html#gab4e15bad5b0652a07740dd42c3f94b0e',1,'fsdk::IFaceEngineMobile']]], + ['createextractor',['createExtractor',['../group___core_group.html#ga6d171cca36e4bad1c168446af23bc1f7',1,'fsdk::IFaceEngineMobile']]], + ['createeyeestimator',['createEyeEstimator',['../group___core_group.html#gaa34107647b69d70c58a3af02e0048c12',1,'fsdk::IFaceEngineMobile']]], + ['createfaceenginemobile',['createFaceEngineMobile',['../group___core_group.html#gadbdeae1a7389e47b9306ab1101602e5f',1,'fsdk']]], + ['createglassesestimator',['createGlassesEstimator',['../group___core_group.html#ga94b00826d57a09e377fb6c1129b495e9',1,'fsdk::IFaceEngineMobile']]], + ['createheadposeestimator',['createHeadPoseEstimator',['../group___core_group.html#ga6566961928a6f4baa9894df55e1c7c42',1,'fsdk::IFaceEngineMobile']]], + ['createlivenessoneshotrgbestimator',['createLivenessOneShotRGBEstimator',['../group___core_group.html#ga4f583287b3fe2c550aec979adc633fa6',1,'fsdk::IFaceEngineMobile']]], + ['creatematcher',['createMatcher',['../group___core_group.html#ga7201c2b88cc0ea2c205984980b15d907',1,'fsdk::IFaceEngineMobile']]], + ['createmedicalmaskestimator',['createMedicalMaskEstimator',['../group___core_group.html#gaf71707f01d6c22abce1c3b04c58e698d',1,'fsdk::IFaceEngineMobile']]], + ['createqualityestimator',['createQualityEstimator',['../group___core_group.html#ga48d0e10395506ba4632304c49d0e076a',1,'fsdk::IFaceEngineMobile']]], + ['createsettingsprovider',['createSettingsProvider',['../group___core_group.html#gabaa648d3852a1059c82f1d8462e18e9d',1,'fsdk']]], + ['createtransformation',['createTransformation',['../structfsdk_1_1_i_warper.html#a8c4565064f4ff437b90d3784bcf256ca',1,'fsdk::IWarper']]], + ['createwarper',['createWarper',['../group___core_group.html#ga8f4b3b0e8896608c769e841fca849e3d',1,'fsdk::IFaceEngineMobile']]] +]; diff --git a/doc/fsdk/html/search/functions_64.html b/doc/fsdk/html/search/functions_64.html new file mode 100644 index 0000000..bcfb550 --- /dev/null +++ b/doc/fsdk/html/search/functions_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_64.js b/doc/fsdk/html/search/functions_64.js new file mode 100644 index 0000000..66b2022 --- /dev/null +++ b/doc/fsdk/html/search/functions_64.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['data',['data',['../classfsdk_1_1_span.html#afb750480f6d63afa1bd5607bb820f03f',1,'fsdk::Span']]], + ['deallocate',['deallocate',['../structfsdk_1_1_image.html#a750cb313b381b4245a1e51e34b18ae44',1,'fsdk::Image']]], + ['desc',['Desc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#ac5b3c770ae3ec11839e56ba4b5bb1270',1,'fsdk::ISettingsProvider::Desc::Desc() noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_desc.html#a5f4b610fa970c3719789a0413c9eab4a',1,'fsdk::ISettingsProvider::Desc::Desc(const char *desc) noexcept']]], + ['descriptorbyindex',['descriptorByIndex',['../structfsdk_1_1_i_static_descriptor_storage.html#ad7b5bde8ec689c73656628920b8aebad',1,'fsdk::IStaticDescriptorStorage']]], + ['detect',['detect',['../structfsdk_1_1_i_detector.html#abc50559be5a5f781d515ff37c0569672',1,'fsdk::IDetector::detect()'],['../structfsdk_1_1_i_human_detector.html#a8f7c76c7487445b59e498b49a1e3b216',1,'fsdk::IHumanDetector::detect()']]], + ['detectasync',['detectAsync',['../structfsdk_1_1_i_detector.html#a46857380f1a9b542b99eed236d32c29c',1,'fsdk::IDetector']]], + ['detection',['Detection',['../structfsdk_1_1_detection.html#a11f6159ee525572a4d4d1ec4e976cc68',1,'fsdk::Detection::Detection() noexcept'],['../structfsdk_1_1_detection.html#a223af77155d7a4d1f2a9cf67abfb612d',1,'fsdk::Detection::Detection(FloatRect rect, float score=1.f) noexcept'],['../structfsdk_1_1_detection.html#a61cc169cc9584adda10e9670dd3db96b',1,'fsdk::Detection::Detection(FloatRect rect, int width, int height, float score=1.f) noexcept'],['../structfsdk_1_1_detection.html#a69b29a97fe418bd6eae5523fb76c8b0f',1,'fsdk::Detection::Detection(FloatRect rect, Rect imageRect, float score=1.f) noexcept']]], + ['detectone',['detectOne',['../structfsdk_1_1_i_detector.html#a407bdaacb3a35f11a6b41c2bdf2d3949',1,'fsdk::IDetector::detectOne()'],['../structfsdk_1_1_i_human_detector.html#a68b933f48f92ea3b1aa1986e3d8b30d8',1,'fsdk::IHumanDetector::detectOne()']]] +]; diff --git a/doc/fsdk/html/search/functions_65.html b/doc/fsdk/html/search/functions_65.html new file mode 100644 index 0000000..f81fa7b --- /dev/null +++ b/doc/fsdk/html/search/functions_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_65.js b/doc/fsdk/html/search/functions_65.js new file mode 100644 index 0000000..4c66446 --- /dev/null +++ b/doc/fsdk/html/search/functions_65.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['empty',['empty',['../classfsdk_1_1_span.html#a16429259247be701ed06e956e4e423b3',1,'fsdk::Span']]], + ['end',['end',['../classfsdk_1_1_span.html#a55f6a9fc7fa9f503d13d4f5cb30023b8',1,'fsdk::Span::end()'],['../classfsdk_1_1_span.html#af983e470cc40648ca32aa470312b6bb0',1,'fsdk::Span::end() const ']]], + ['entry',['Entry',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a2a436c5de00e2ae0972f2678d6e1d35c',1,'fsdk::ISettingsProvider::Entry::Entry() noexcept=default'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#aa56d52bb2b36a95778b68f9ef3d5f37d',1,'fsdk::ISettingsProvider::Entry::Entry(const Desc &desc, Value &&value) noexcept']]], + ['equalstrong',['equalStrong',['../structfsdk_1_1_image.html#a22f36f59a67cc867a96686dcf18b8f6d',1,'fsdk::Image']]], + ['equalweak',['equalWeak',['../structfsdk_1_1_image.html#a386e2313d25f5f3107e1a47a347e04d8',1,'fsdk::Image']]], + ['estimate',['estimate',['../structfsdk_1_1_i_a_g_s_estimator.html#aa4a35eaf70d50cc4b1783546ed6a4b87',1,'fsdk::IAGSEstimator::estimate(const Image &image, const Detection &detection) const noexcept=0'],['../structfsdk_1_1_i_a_g_s_estimator.html#a45dea130e106e6a8551006bbb9c1a165',1,'fsdk::IAGSEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< float > out) const noexcept=0'],['../structfsdk_1_1_i_best_shot_quality_estimator.html#a5519ff5a754a1d0040cf1953f830c8a4',1,'fsdk::IBestShotQualityEstimator::estimate(const Image &image, const Detection &detection, const EstimationRequest request, EstimationResult &result) const noexcept=0'],['../structfsdk_1_1_i_best_shot_quality_estimator.html#a290da1a78d37eafc2b4d7bb30f30ea46',1,'fsdk::IBestShotQualityEstimator::estimate(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< EstimationResult > results) const noexcept=0'],['../structfsdk_1_1_i_eye_estimator.html#aecb52fbe13f80a38b9c48e760d42d243',1,'fsdk::IEyeEstimator::estimate(const Image &warp, const EyeCropper::EyesRects &eyeRects, EyesEstimation &eyesEstimation) const noexcept=0'],['../structfsdk_1_1_i_eye_estimator.html#ae44bc0302755581d81733c5bc7ed83ef',1,'fsdk::IEyeEstimator::estimate(Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< EyesEstimation > eyesEstimations) const noexcept=0'],['../structfsdk_1_1_i_glasses_estimator.html#af53d83b93974db797a78623420369f3c',1,'fsdk::IGlassesEstimator::estimate(const Image &warp) const noexcept=0'],['../structfsdk_1_1_i_glasses_estimator.html#aecd2ff74057c6d5e1e587080b5981eed',1,'fsdk::IGlassesEstimator::estimate(Span< const Image > warps, Span< GlassesEstimation > glassesEstimations) const noexcept=0'],['../structfsdk_1_1_i_head_pose_estimator.html#aed7809cea5e183b63ac017e48fc7885c',1,'fsdk::IHeadPoseEstimator::estimate(const Landmarks68 &landmarks, HeadPoseEstimation &out) const noexcept=0'],['../structfsdk_1_1_i_head_pose_estimator.html#af943ad9ab70f158a03624c3cec6de47e',1,'fsdk::IHeadPoseEstimator::estimate(const Image &image, const Detection &detection, HeadPoseEstimation &out) const noexcept=0'],['../structfsdk_1_1_i_head_pose_estimator.html#a235406bf3e8aa9bf8b89e06b72f21a50',1,'fsdk::IHeadPoseEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< HeadPoseEstimation > out) const noexcept=0'],['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a6b38d2e4cd89f319b1a21a3ada06f07c',1,'fsdk::ILivenessOneShotRGBEstimator::estimate(const Image &image, const Detection &detection, const Landmarks5 &landmarks5, LivenessOneShotRGBEstimation &estimation, const float qualityThreshold=-1.f) const noexcept=0'],['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a1c4668c9963ceb1fb7db01b688968688',1,'fsdk::ILivenessOneShotRGBEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< const Landmarks5 > landmarks5, Span< LivenessOneShotRGBEstimation > estimations, const float qualityThreshold=-1.f, LivenessOneShotRGBEstimation *aggregation=nullptr) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a3b1b2079ddd9fcb2ba4214786672f2ad',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &warp, MedicalMaskEstimation &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a44bd4605cbb30233f9917e39abcf0683',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &warp, MedicalMaskEstimationExtended &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#ad3c72d0d6cf3eb3e72790e19f201cbc7',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &image, const Detection &detection, MedicalMaskEstimation &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#af4f0b22091b8425dad74219839283d51',1,'fsdk::IMedicalMaskEstimator::estimate(const Image &image, const Detection &detection, MedicalMaskEstimationExtended &estimation) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a6b4ea30e87d87c91993ff44c32d14ab8',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > warps, Span< MedicalMaskEstimation > estimations) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#ae05d68e52524bbddb94a71bb22c1a547',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > warps, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a486ff6fc49bf7575114abb6ff0627ec4',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimation > estimations) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#ac923e26a07ddf1c26370d36f0acd2e56',1,'fsdk::IMedicalMaskEstimator::estimate(Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#afe1b7b67b42d2cbac44f2ac244620ef0',1,'fsdk::IQualityEstimator::estimate(const Image &warp, Quality &quality) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#aae851d39ce2253e18d0a8ccbc45f6d15',1,'fsdk::IQualityEstimator::estimate(Span< const Image > warps, Span< Quality > quality) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#a76dbb486ab7b5c2a8bf7e632aacb1aeb',1,'fsdk::IQualityEstimator::estimate(const Image &warp, SubjectiveQuality &quality) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#a2b512a5f2af69901f10124f3af55d73c',1,'fsdk::IQualityEstimator::estimate(Span< const Image > warps, Span< SubjectiveQuality > quality) const noexcept=0']]], + ['estimateasync',['estimateAsync',['../structfsdk_1_1_i_best_shot_quality_estimator.html#a62415905ea9018bc3f6696652837cfc1',1,'fsdk::IBestShotQualityEstimator']]], + ['extract',['extract',['../structfsdk_1_1_image.html#add9bb121cb86eb35e669b6321a267926',1,'fsdk::Image::extract(int x, int y, int width, int height) const noexcept'],['../structfsdk_1_1_image.html#a3f9f9c61324959b028b645b0a873ae21',1,'fsdk::Image::extract(const Rect &rect) const noexcept'],['../structfsdk_1_1_image.html#a4cd2e1c9c500087bcfb65f750cef09e4',1,'fsdk::Image::extract(const Size &size) const noexcept'],['../structfsdk_1_1_image.html#a01e37e8244745a1645c7f44356c98cfa',1,'fsdk::Image::extract(const Point2i &origin, const Size &size) const noexcept']]], + ['extractfromwarpedimage',['extractFromWarpedImage',['../structfsdk_1_1_i_descriptor_extractor.html#ae6fdfb87662991d62af362b06982728e',1,'fsdk::IDescriptorExtractor']]], + ['extractfromwarpedimagebatch',['extractFromWarpedImageBatch',['../structfsdk_1_1_i_descriptor_extractor.html#a3bdb3f914db81bef8b849e4973566f88',1,'fsdk::IDescriptorExtractor::extractFromWarpedImageBatch(Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const noexcept=0'],['../structfsdk_1_1_i_descriptor_extractor.html#a5c1d36e3c3362aa8160bcc89933bcf1b',1,'fsdk::IDescriptorExtractor::extractFromWarpedImageBatch(Span< const Image > warps, IDescriptorBatch *descriptorBatch, Span< float > garbageScoreBatch) const noexcept=0']]], + ['extractfromwarpedimagebatchasync',['extractFromWarpedImageBatchAsync',['../structfsdk_1_1_i_descriptor_extractor.html#af35cadc879d6ceb1429a95c4fee6509d',1,'fsdk::IDescriptorExtractor']]] +]; diff --git a/doc/fsdk/html/search/functions_66.html b/doc/fsdk/html/search/functions_66.html new file mode 100644 index 0000000..d0c32b6 --- /dev/null +++ b/doc/fsdk/html/search/functions_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_66.js b/doc/fsdk/html/search/functions_66.js new file mode 100644 index 0000000..476de06 --- /dev/null +++ b/doc/fsdk/html/search/functions_66.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['fail',['fail',['../classfsdk_1_1_promise.html#a0c73e4d84c3e6487d5a7e1f7b0c13ba0',1,'fsdk::Promise']]], + ['format',['Format',['../structfsdk_1_1_format.html#aa45f2da762d2fce103d97aa803078d84',1,'fsdk::Format::Format() noexcept'],['../structfsdk_1_1_format.html#a9fae615ad7c67630f9546abd6d568175',1,'fsdk::Format::Format(Type type) noexcept']]], + ['fsdk_5fdeprecated',['FSDK_DEPRECATED',['../structfsdk_1_1_i_license.html#a2909d1bc7946cc82772cfafa2d22c32e',1,'fsdk::ILicense']]], + ['fulfill',['fulfill',['../classfsdk_1_1_promise.html#a379829f59f04b7694423b3e82d501766',1,'fsdk::Promise']]], + ['future',['Future',['../classfsdk_1_1_future.html#a88569ef592c8f9793067cb1139123aaf',1,'fsdk::Future::Future()'],['../classfsdk_1_1_promise.html#accb944e8905435482b8604dfb805d690',1,'fsdk::Promise::future()']]] +]; diff --git a/doc/fsdk/html/search/functions_67.html b/doc/fsdk/html/search/functions_67.html new file mode 100644 index 0000000..39cc96d --- /dev/null +++ b/doc/fsdk/html/search/functions_67.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_67.js b/doc/fsdk/html/search/functions_67.js new file mode 100644 index 0000000..cc34a69 --- /dev/null +++ b/doc/fsdk/html/search/functions_67.js @@ -0,0 +1,74 @@ +var searchData= +[ + ['get',['get',['../structfsdk_1_1_ref_base.html#a7ea44dfe520bbe2ced2fe2c023809288',1,'fsdk::RefBase']]], + ['getarea',['getArea',['../structfsdk_1_1_base_rect.html#a91c49a941f8282f45b1ccb46190968b3',1,'fsdk::BaseRect']]], + ['getaspectratio',['getAspectRatio',['../structfsdk_1_1_image.html#a28a2f942184d21b0e4270c30adef7916',1,'fsdk::Image']]], + ['getbitdepth',['getBitDepth',['../structfsdk_1_1_format.html#ae3136cd08cf4395b3250950eb820bc74',1,'fsdk::Format']]], + ['getbool',['getBool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a7dc84becec0ff1614a11c85c268b2571',1,'fsdk::ISettingsProvider::Value']]], + ['getbuildinfo',['getBuildInfo',['../group___version_group.html#gac221ff93065b829ca0e059f0dfa248e3',1,'fsdk']]], + ['getbytedepth',['getByteDepth',['../structfsdk_1_1_format.html#afd04839a40f2a3b875038ec233b4a8eb',1,'fsdk::Format']]], + ['getbytes',['getBytes',['../structfsdk_1_1_sizer.html#aaac05d63b4fbe6c2861e971da901d1be',1,'fsdk::Sizer']]], + ['getchannelcount',['getChannelCount',['../structfsdk_1_1_format.html#a5654c8e7485f5821a0b77c40150144ea',1,'fsdk::Format']]], + ['getchannelsize',['getChannelSize',['../structfsdk_1_1_format.html#a1ed1e226b132c165793edfe88c21a4ee',1,'fsdk::Format']]], + ['getchannelstep',['getChannelStep',['../structfsdk_1_1_format.html#ad18bb21ae3c7577a0ebd3eca67fc26a9',1,'fsdk::Format']]], + ['getcount',['getCount',['../structfsdk_1_1_i_descriptor_batch.html#a786779cf2e2c286ce80f95907c23ff1d',1,'fsdk::IDescriptorBatch']]], + ['getdata',['getData',['../structfsdk_1_1_image.html#a177197485010936725923806ed693187',1,'fsdk::Image::getData() noexcept'],['../structfsdk_1_1_image.html#adb87ac4315e08d3474b87dd1819748d5',1,'fsdk::Image::getData() const noexcept']]], + ['getdataas',['getDataAs',['../structfsdk_1_1_image.html#ab0f6a417fa00693acfc22af05fdaddaf',1,'fsdk::Image::getDataAs() noexcept'],['../structfsdk_1_1_image.html#a2ffa58c82ae839a8804721def179ccb6',1,'fsdk::Image::getDataAs() const noexcept'],['../structfsdk_1_1_sub_image.html#a9aa3c100a4eb5d337873149991752d93',1,'fsdk::SubImage::getDataAs() noexcept'],['../structfsdk_1_1_sub_image.html#ac8122856a65d0d4e30485aee798ccb69',1,'fsdk::SubImage::getDataAs() const noexcept']]], + ['getdatadirectory',['getDataDirectory',['../group___core_group.html#ga217e0e83b975735419e174ee80ba36fb',1,'fsdk::IFaceEngineMobile']]], + ['getdatasize',['getDataSize',['../structfsdk_1_1_image.html#ad7702083887209a2c4e188b500215e96',1,'fsdk::Image::getDataSize() const noexcept'],['../structfsdk_1_1_image.html#a494e5a70e35f8a9965c9c655faf71694',1,'fsdk::Image::getDataSize(Sizer &sizer) const noexcept']]], + ['getdefaultpath',['getDefaultPath',['../structfsdk_1_1_i_settings_provider.html#a6c0a658442e821b9f8f7dfd77d1efcb7',1,'fsdk::ISettingsProvider']]], + ['getdesc',['getDesc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#a8a848bcc48f7ede8a50f46c5c811fb48',1,'fsdk::ISettingsProvider::Desc::getDesc()'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a0b98e0168b42f322a92c912529b450ec',1,'fsdk::ISettingsProvider::Entry::getDesc()'],['../structfsdk_1_1_i_settings_provider.html#a40af7f105aed6ee83863bda1f0f2219e',1,'fsdk::ISettingsProvider::getDesc(const Key &key) const noexcept'],['../structfsdk_1_1_i_settings_provider.html#a49a4727e0cf0a90cc1536440a049cc07',1,'fsdk::ISettingsProvider::getDesc(const char *section, const char *parameter) const noexcept']]], + ['getdescriptor',['getDescriptor',['../structfsdk_1_1_i_descriptor.html#ab5512a2e46ca8b3b9f791bc620855e4c',1,'fsdk::IDescriptor']]], + ['getdescriptorfast',['getDescriptorFast',['../structfsdk_1_1_i_descriptor_batch.html#a4e0a961f7736f00dae3327dd58d39f68',1,'fsdk::IDescriptorBatch']]], + ['getdescriptorlength',['getDescriptorLength',['../structfsdk_1_1_i_descriptor.html#a1a0c8122a9c7f0fcefa94d48d4144b4f',1,'fsdk::IDescriptor::getDescriptorLength()'],['../structfsdk_1_1_i_descriptor_batch.html#a7cf7c4ae4d831ff0bc9b7187eb866e9e',1,'fsdk::IDescriptorBatch::getDescriptorLength()']]], + ['getdescriptorslow',['getDescriptorSlow',['../structfsdk_1_1_i_descriptor_batch.html#a61d0c7378db1a1a4e336c0b12f9af7e5',1,'fsdk::IDescriptorBatch']]], + ['getdescriptortype',['getDescriptorType',['../structfsdk_1_1_i_descriptor.html#a1c13db8168c4fb3102ac9f5ab8064722',1,'fsdk::IDescriptor::getDescriptorType()'],['../structfsdk_1_1_i_descriptor_batch.html#ac044ea615c32aa4433c60e0491e8c958',1,'fsdk::IDescriptorBatch::getDescriptorType()'],['../structfsdk_1_1_i_descriptor_extractor.html#afdd1464778a55727acaef93b9fc5d443',1,'fsdk::IDescriptorExtractor::getDescriptorType()']]], + ['getdescriptorversion',['getDescriptorVersion',['../structfsdk_1_1_i_static_descriptor_storage.html#a9ca188c040ecfae3b940589dcd8e8998',1,'fsdk::IStaticDescriptorStorage']]], + ['getdetections',['getDetections',['../structfsdk_1_1_i_face_detection_batch.html#ac0796f34dff278d15e0e43d0b0e7bbd5',1,'fsdk::IFaceDetectionBatch::getDetections()'],['../structfsdk_1_1_i_human_detection_batch.html#a5511e8e94005c3b0c6c24d30ff29ef8b',1,'fsdk::IHumanDetectionBatch::getDetections()']]], + ['getentry',['getEntry',['../structfsdk_1_1_i_settings_provider.html#af4b9a97e6472e46ba644f7a41418e5d8',1,'fsdk::ISettingsProvider']]], + ['geterror',['getError',['../structfsdk_1_1_result.html#a75f966aa5f2402b66f000dacd18128f5',1,'fsdk::Result']]], + ['getexpirationdate',['getExpirationDate',['../structfsdk_1_1_i_license.html#adbf5141e706837b4ba738a82386e94e1',1,'fsdk::ILicense']]], + ['getface',['getFace',['../structfsdk_1_1_i_face_detection_batch.html#ab6887616ae757035b33d1e2ac49dcc8f',1,'fsdk::IFaceDetectionBatch']]], + ['getfaceengineedition',['getFaceEngineEdition',['../group___core_group.html#ga74540f3cf43d5a029db8f4875744557f',1,'fsdk::IFaceEngineMobile']]], + ['getfloat',['getFloat',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ade18ca8709878512682fa7b69fc0cfc1',1,'fsdk::ISettingsProvider::Value::getFloat(float *x) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a35cc96b6aae0ecbbc0c1079ea3142899',1,'fsdk::ISettingsProvider::Value::getFloat(float *x, float *y) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5c4c474afda291a09a19f69f43c43abc',1,'fsdk::ISettingsProvider::Value::getFloat(float *x, float *y, float *z) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a681b8d01c5a5112fae15ec244f97ee84',1,'fsdk::ISettingsProvider::Value::getFloat(float *x, float *y, float *z, float *w) const noexcept']]], + ['getformat',['getFormat',['../structfsdk_1_1_image.html#a3a096c49b65cb9b3ddc864a1fe0bbc5f',1,'fsdk::Image']]], + ['getfrontalfacetype',['getFrontalFaceType',['../structfsdk_1_1_head_pose_estimation.html#a9356964811575052d2d681e275ce4ecd',1,'fsdk::HeadPoseEstimation']]], + ['getgbytes',['getGBytes',['../structfsdk_1_1_sizer.html#aa7aaa2a28d8d8e329b5f0ea1221c61a8',1,'fsdk::Sizer']]], + ['getheight',['getHeight',['../structfsdk_1_1_image.html#ad5823d56f2b75a94424adef45c9d23c2',1,'fsdk::Image']]], + ['gethuman',['getHuman',['../structfsdk_1_1_i_human_detection_batch.html#a3222f0a8c14c75838a99266429df3674',1,'fsdk::IHumanDetectionBatch']]], + ['getinitreference',['getInitReference',['../structfsdk_1_1_ref.html#a4481cd13013a52fe8ff42cf8cbd25075',1,'fsdk::Ref']]], + ['getint',['getInt',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a9a2643462aaff211e15a57fd5c6e348e',1,'fsdk::ISettingsProvider::Value::getInt(int *x) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#af9f2f9595e49580129d8502768fdc080',1,'fsdk::ISettingsProvider::Value::getInt(int *x, int *y) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a9b264cc5dd478ec7e113819addd0d807',1,'fsdk::ISettingsProvider::Value::getInt(int *x, int *y, int *z) const noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#affa5d3f08168c5ffa1fcf815b32d4513',1,'fsdk::ISettingsProvider::Value::getInt(int *x, int *y, int *z, int *w) const noexcept']]], + ['getkbytes',['getKBytes',['../structfsdk_1_1_sizer.html#a72d205c5b3b4347d8a0a0ae76f8f1557',1,'fsdk::Sizer']]], + ['getlandmarks17',['getLandmarks17',['../structfsdk_1_1_i_human_detection_batch.html#a80e43b927498b58505b123e546ed49c4',1,'fsdk::IHumanDetectionBatch']]], + ['getlandmarks5',['getLandmarks5',['../structfsdk_1_1_i_face_detection_batch.html#aa09422deb3ce7aa52e2cd12c59b067df',1,'fsdk::IFaceDetectionBatch']]], + ['getlandmarks68',['getLandmarks68',['../structfsdk_1_1_i_face_detection_batch.html#a2cc9d8ceb774e6d2c8cdcc061efb2ed8',1,'fsdk::IFaceDetectionBatch']]], + ['getlicense',['getLicense',['../group___core_group.html#gaaaf25fb20c78b3252073b7789e45769c',1,'fsdk::IFaceEngineMobile']]], + ['getmaxcount',['getMaxCount',['../structfsdk_1_1_i_descriptor_batch.html#a48090c46fcc1613d4d08c082f21b40ce',1,'fsdk::IDescriptorBatch']]], + ['getmbytes',['getMBytes',['../structfsdk_1_1_sizer.html#ad6aaf8b58724a50c2ee30f462f68aca4',1,'fsdk::Sizer']]], + ['getmodelversion',['getModelVersion',['../structfsdk_1_1_i_descriptor.html#a69cd5752c0de1981d0eae131492ea5e7',1,'fsdk::IDescriptor::getModelVersion()'],['../structfsdk_1_1_i_descriptor_batch.html#a88c11b85fc5a8b3eede0d7a2c6f251d6',1,'fsdk::IDescriptorBatch::getModelVersion()'],['../structfsdk_1_1_i_descriptor_extractor.html#ad1e6f85a654cc0d5b7e61e1a5caad36d',1,'fsdk::IDescriptorExtractor::getModelVersion()'],['../structfsdk_1_1_i_descriptor_matcher.html#ac18bfe74c35189d18c4ae0d9c6757e11',1,'fsdk::IDescriptorMatcher::getModelVersion()']]], + ['getorigin',['getOrigin',['../structfsdk_1_1_sub_image.html#a0ae68ea83ca66e4f8db15ee4c700c811',1,'fsdk::SubImage']]], + ['getparameter',['getParameter',['../structfsdk_1_1_i_settings_provider_1_1_key.html#ac2c40cfd491b56908d2f90e71da997f7',1,'fsdk::ISettingsProvider::Key']]], + ['getparentobject',['getParentObject',['../structfsdk_1_1_i_data_storage_object.html#a76dd0aaf5ac83187635a9161ceae8237',1,'fsdk::IDataStorageObject']]], + ['getpoint2f',['getPoint2f',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a8dcc7bc3027a4462188342bf0fb1fbc9',1,'fsdk::ISettingsProvider::Value']]], + ['getpoint2i',['getPoint2i',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a3b53f8c1e07a0403aaadde5e9bac69ae',1,'fsdk::ISettingsProvider::Value']]], + ['getquality',['getQuality',['../structfsdk_1_1_quality.html#a5f2db7a08a31404d5c96f3d0424de789',1,'fsdk::Quality']]], + ['getrawrect',['getRawRect',['../structfsdk_1_1_detection.html#a9fdabbc6e25562ef5d359f7e77b967a2',1,'fsdk::Detection']]], + ['getrect',['getRect',['../structfsdk_1_1_i_settings_provider_1_1_value.html#acbe915c78434291060b0a4159405ec45',1,'fsdk::ISettingsProvider::Value::getRect()'],['../structfsdk_1_1_detection.html#a9edbafdc61e0021d1d5ff499be8ea3c6',1,'fsdk::Detection::getRect()'],['../structfsdk_1_1_image.html#a5841db4b37f8e3f633f9ee31e29e28b6',1,'fsdk::Image::getRect()'],['../structfsdk_1_1_sub_image.html#a681a9ea2fc9157250c0d08b50a0ee90a',1,'fsdk::SubImage::getRect()']]], + ['getrefcount',['getRefCount',['../structfsdk_1_1_i_ref_counted.html#a0e9c300055d88ac0ef739d1e424c8634',1,'fsdk::IRefCounted::getRefCount()'],['../structfsdk_1_1_image.html#a48773dce5d77377aa6415084ff2a612f',1,'fsdk::Image::getRefCount()']]], + ['getrowsize',['getRowSize',['../structfsdk_1_1_image.html#a02d33587be44369699ff0c77bf918f7e',1,'fsdk::Image']]], + ['getruntimesettingsprovider',['getRuntimeSettingsProvider',['../group___core_group.html#gaf750282898a3426064f2911ad82a3caf',1,'fsdk::IFaceEngineMobile']]], + ['getscanline',['getScanLine',['../structfsdk_1_1_image.html#a81b837c8ebacc00461ced25cc6299176',1,'fsdk::Image::getScanLine(int y) noexcept'],['../structfsdk_1_1_image.html#aaf7e663816bd542c1f80d42e29c22014',1,'fsdk::Image::getScanLine(int y) const noexcept']]], + ['getscanlineas',['getScanLineAs',['../structfsdk_1_1_image.html#afb6c77133c3cbe2f5f7825286096ec46',1,'fsdk::Image::getScanLineAs(int y) noexcept'],['../structfsdk_1_1_image.html#adb2d3b84e0b3c81a8f1528e884fa655a',1,'fsdk::Image::getScanLineAs(int y) const noexcept']]], + ['getscore',['getScore',['../structfsdk_1_1_medical_mask_estimation.html#aaf03553b09b66a4fc9623c85246d6d26',1,'fsdk::MedicalMaskEstimation']]], + ['getsection',['getSection',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a3b0d1a48c5eb2e6255fd51fcc3d28df4',1,'fsdk::ISettingsProvider::Key']]], + ['getsettingsprovider',['getSettingsProvider',['../group___core_group.html#gaea8316288bbea8bde5fe36dd6909356e',1,'fsdk::IFaceEngineMobile']]], + ['getsize',['getSize',['../structfsdk_1_1_i_face_detection_batch.html#a9899fff6f6d701762674c01bdce558a3',1,'fsdk::IFaceDetectionBatch::getSize() const noexcept=0'],['../structfsdk_1_1_i_face_detection_batch.html#a9e870513feb39ea2a28ee3ae5a932585',1,'fsdk::IFaceDetectionBatch::getSize(size_t imageIndex) const noexcept=0'],['../structfsdk_1_1_i_human_detection_batch.html#a142181747d516561d1bd15e55f269c70',1,'fsdk::IHumanDetectionBatch::getSize() const noexcept=0'],['../structfsdk_1_1_i_human_detection_batch.html#a09fa3881045e629773e79e41deb5831e',1,'fsdk::IHumanDetectionBatch::getSize(size_t imageIndex) const noexcept=0'],['../structfsdk_1_1_i_serializable_object.html#a22ce2c43e668e4d5dbd79dc0056e2032',1,'fsdk::ISerializableObject::getSize()'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a1fbb01df32dceb4539a852113a27c752',1,'fsdk::ISettingsProvider::Value::getSize()'],['../structfsdk_1_1_image.html#ac38de3f8f7136d3011bc49b399efcd5a',1,'fsdk::Image::getSize()'],['../classfsdk_1_1_span.html#a15ed0b927c4c6ef86e9468a05d983938',1,'fsdk::Span::getSize()'],['../structfsdk_1_1_sub_image.html#ad896ef4de97a4f7a74582fde66074cdc',1,'fsdk::SubImage::getSize()']]], + ['getstring',['getString',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ac5551406db04db1db8f54279c737fff3',1,'fsdk::ISettingsProvider::Value']]], + ['getvalue',['getValue',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a673ccd7aa4e1ceed022216588cfff06c',1,'fsdk::ISettingsProvider::Entry::getValue()'],['../structfsdk_1_1_i_settings_provider.html#acd929b0985eb547bf1c40e494e36e1f8',1,'fsdk::ISettingsProvider::getValue(const Key &key) const noexcept'],['../structfsdk_1_1_i_settings_provider.html#a5f5381f466e214ba4a2c7565bc89dba2',1,'fsdk::ISettingsProvider::getValue(const char *section, const char *parameter) const noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a7f9e57a741817e165526a4b7d62fa65c',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::getValue()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#abc5413378343e1ebd6669322f23c7a6c',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::getValue()']]], + ['getversion',['getVersion',['../group___version_group.html#gadf18bd918c6a2390201ce2110ef17717',1,'fsdk']]], + ['getversionhash',['getVersionHash',['../group___version_group.html#gadc959b5a3e56b4c12f7c19e01c8091c7',1,'fsdk']]], + ['getversionstring',['getVersionString',['../group___version_group.html#ga34ebbd7511e7bda7ace0f6a65d8cea12',1,'fsdk']]], + ['getweakrefcount',['getWeakRefCount',['../structfsdk_1_1_i_ref_counted.html#a230ba9c884c16e9e316344b9b901a480',1,'fsdk::IRefCounted']]], + ['getwidth',['getWidth',['../structfsdk_1_1_image.html#a6cb445da4dc6f7949c992f6bdcd6787f',1,'fsdk::Image']]], + ['guesstypefrommemory',['guessTypeFromMemory',['../structfsdk_1_1_image.html#a9f2d12403ad91ca275de2259da560d05',1,'fsdk::Image']]] +]; diff --git a/doc/fsdk/html/search/functions_69.html b/doc/fsdk/html/search/functions_69.html new file mode 100644 index 0000000..954ac84 --- /dev/null +++ b/doc/fsdk/html/search/functions_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_69.js b/doc/fsdk/html/search/functions_69.js new file mode 100644 index 0000000..36ae814 --- /dev/null +++ b/doc/fsdk/html/search/functions_69.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['image',['Image',['../structfsdk_1_1_image.html#ad208540be1ae2fa9ca0ed192aee75182',1,'fsdk::Image::Image() noexcept'],['../structfsdk_1_1_image.html#a624947f81acd14120076f42860e51611',1,'fsdk::Image::Image(int width, int height, Format format, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a348af5fca41e5b170c0487a055f6ebbb',1,'fsdk::Image::Image(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#ac4d7421e28a9d81fed4de88dcc3fecf4',1,'fsdk::Image::Image(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a021abfa7a95a7d6a1e9f4edabf2043a2',1,'fsdk::Image::Image(const Image &other) noexcept'],['../structfsdk_1_1_image.html#aac20796ff887ec564cee62c826374384',1,'fsdk::Image::Image(Image &&other) noexcept'],['../structfsdk_1_1_image.html#a6c85de74e85305f06232bdfb49331e0e',1,'fsdk::Image::Image(const SubImage &subImage) noexcept']]], + ['inside',['inside',['../structfsdk_1_1_base_rect.html#a0fd42ac0445103c0ecf26c490d2260b8',1,'fsdk::BaseRect']]], + ['intersectionoverfirstrect',['intersectionOverFirstRect',['../structfsdk_1_1_base_rect.html#a0f2e4ceda81d02ad1b0a8949bcf94cf2',1,'fsdk::BaseRect']]], + ['intersectionoverunion',['intersectionOverUnion',['../structfsdk_1_1_base_rect.html#a23d911ebae910d44d959c66fc53832c1',1,'fsdk::BaseRect']]], + ['is',['is',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a0712a27f674f611a777f8067bb6c9c5e',1,'fsdk::ISettingsProvider::Value']]], + ['isactivated',['isActivated',['../structfsdk_1_1_i_license.html#a7d8127d5ba3a36e37ae985f6ad5ab62a',1,'fsdk::ILicense']]], + ['isbgr',['isBGR',['../structfsdk_1_1_format.html#a4f1a89d82820cc5461d983700d2191d1',1,'fsdk::Format']]], + ['isblock',['isBlock',['../structfsdk_1_1_format.html#a46d028b666e796b8021e8cce7bc90c9e',1,'fsdk::Format']]], + ['isempty',['isEmpty',['../structfsdk_1_1_i_settings_provider.html#acedb7b69472de81a44c6d69511c9e908',1,'fsdk::ISettingsProvider::isEmpty()'],['../structfsdk_1_1_sizer.html#aa3b8734b6b784a5e080e02ee4a10dfa6',1,'fsdk::Sizer::isEmpty()']]], + ['iserror',['isError',['../structfsdk_1_1_result.html#a22fbfc59e9daa711b5f3d91a0976f5ab',1,'fsdk::Result']]], + ['isexpired',['isExpired',['../structfsdk_1_1_ref_base.html#a7b102e6ffd4ea5e393f283169f826f6f',1,'fsdk::RefBase']]], + ['isgood',['isGood',['../structfsdk_1_1_subjective_quality.html#aef4e078366ce04c34f82502014a14f36',1,'fsdk::SubjectiveQuality']]], + ['isnull',['isNull',['../structfsdk_1_1_image.html#a935733a13b5a2d62758f63a0fa2580e9',1,'fsdk::Image::isNull()'],['../structfsdk_1_1_ref_base.html#a65eb00c69769063de70515387aaf7d71',1,'fsdk::RefBase::isNull()']]], + ['isok',['isOk',['../structfsdk_1_1_result.html#aea4380f5ed3f6c3e71ab70d0c0d422b0',1,'fsdk::Result']]], + ['ispadded',['isPadded',['../structfsdk_1_1_format.html#a43ca12b83363226c0459e6a1b5073550',1,'fsdk::Format']]], + ['issharedwith',['isSharedWith',['../structfsdk_1_1_image.html#a33771e3d4141977d08be1302020ff6cd',1,'fsdk::Image']]], + ['isunique',['isUnique',['../structfsdk_1_1_ref_base.html#a1f4e70a1252dce29ced35e396c0a1d87',1,'fsdk::RefBase']]], + ['isvalid',['isValid',['../structfsdk_1_1_detection.html#ab6ae99522686f4c2d555b040d95556c1',1,'fsdk::Detection::isValid()'],['../structfsdk_1_1_format.html#a0cebf5379f7e7f173ae64d35f0ab9670',1,'fsdk::Format::isValid()'],['../structfsdk_1_1_image.html#a42bb8bc044a084b7779760c20701fa0d',1,'fsdk::Image::isValid()'],['../structfsdk_1_1_base_rect.html#adb5b7dfdecd356b2b0d8353279288020',1,'fsdk::BaseRect::isValid()']]], + ['isyuv',['isYUV',['../structfsdk_1_1_format.html#a9774699a7b4642bf36ce9f42032a5cb9',1,'fsdk::Format']]] +]; diff --git a/doc/fsdk/html/search/functions_6b.html b/doc/fsdk/html/search/functions_6b.html new file mode 100644 index 0000000..1f16952 --- /dev/null +++ b/doc/fsdk/html/search/functions_6b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_6b.js b/doc/fsdk/html/search/functions_6b.js new file mode 100644 index 0000000..5de758f --- /dev/null +++ b/doc/fsdk/html/search/functions_6b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key',['Key',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a67d333ee0b4c658d8ebe9cd6b2f293f8',1,'fsdk::ISettingsProvider::Key::Key() noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_key.html#a8119c6cd5cc92e235c39f333abdfc5ad',1,'fsdk::ISettingsProvider::Key::Key(const char *section, const char *parameter) noexcept']]] +]; diff --git a/doc/fsdk/html/search/functions_6c.html b/doc/fsdk/html/search/functions_6c.html new file mode 100644 index 0000000..903fb01 --- /dev/null +++ b/doc/fsdk/html/search/functions_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_6c.js b/doc/fsdk/html/search/functions_6c.js new file mode 100644 index 0000000..d33b47b --- /dev/null +++ b/doc/fsdk/html/search/functions_6c.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['left',['left',['../structfsdk_1_1_base_rect.html#aac4bc603363b0422f5a659dd50cd087e',1,'fsdk::BaseRect']]], + ['load',['load',['../structfsdk_1_1_i_serializable_object.html#a9217958c8ff2aeb970db02c3324a017b',1,'fsdk::ISerializableObject::load()'],['../structfsdk_1_1_i_settings_provider.html#a882a7671cc283d81028ddeeae9da1a23',1,'fsdk::ISettingsProvider::load()'],['../structfsdk_1_1_image.html#a8f17c7659871533d5eed712b3967944b',1,'fsdk::Image::load(const char *path) noexcept'],['../structfsdk_1_1_image.html#a50d05981de264e977f4fbd90990f084a',1,'fsdk::Image::load(const char *path, const Format format) noexcept']]], + ['loadandadd',['loadAndAdd',['../structfsdk_1_1_i_descriptor_batch.html#a1e40e982bc2bd2fe5a18e8a7f43cbf99',1,'fsdk::IDescriptorBatch']]], + ['loadfromfile',['loadFromFile',['../structfsdk_1_1_i_license.html#a66238b1c9c5bf349a27a20676f278f3b',1,'fsdk::ILicense']]], + ['loadfrommemory',['loadFromMemory',['../structfsdk_1_1_image.html#a824376f7ac69c83fc8026cf38a235806',1,'fsdk::Image::loadFromMemory(const void *data, const uint32_t sizeInBytes) noexcept'],['../structfsdk_1_1_image.html#a27b9eae4a7a4bf22182bb98debf8c45d',1,'fsdk::Image::loadFromMemory(const void *data, const uint32_t sizeInBytes, const Format format) noexcept']]], + ['loadfrommemoryoftype',['loadFromMemoryOfType',['../structfsdk_1_1_image.html#a7d560518bf9a96c0fc8795edb4374a31',1,'fsdk::Image::loadFromMemoryOfType(const void *data, const uint32_t sizeInBytes, const Type type) noexcept'],['../structfsdk_1_1_image.html#ae7015b5e7e8c21af7fb23a93a1235301',1,'fsdk::Image::loadFromMemoryOfType(const void *data, const uint32_t sizeInBytes, const Type type, const Format format) noexcept']]] +]; diff --git a/doc/fsdk/html/search/functions_6d.html b/doc/fsdk/html/search/functions_6d.html new file mode 100644 index 0000000..f721e11 --- /dev/null +++ b/doc/fsdk/html/search/functions_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_6d.js b/doc/fsdk/html/search/functions_6d.js new file mode 100644 index 0000000..9979f9d --- /dev/null +++ b/doc/fsdk/html/search/functions_6d.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['make_5fref',['make_ref',['../structfsdk_1_1_ref.html#a46bde60641331c01f9804db22cad3ed9',1,'fsdk::Ref::make_ref()'],['../namespacefsdk.html#a69ef1a1494597c16736760644d82a908',1,'fsdk::make_ref()']]], + ['make_5fref_5fas',['make_ref_as',['../namespacefsdk.html#aadef75eae305a8d881a837f88ef8a8d5',1,'fsdk']]], + ['makeresultvalue',['makeResultValue',['../namespacefsdk.html#abd7168071541cdcd12b10d156e4b5658',1,'fsdk']]], + ['map',['map',['../structfsdk_1_1_image.html#ae05f21724f71ad844532ec46310bd252',1,'fsdk::Image::map(int x, int y, int width, int height) const noexcept'],['../structfsdk_1_1_image.html#ac085efbd15cc73fea521d9067d551d61',1,'fsdk::Image::map(const Rect &rect) const noexcept'],['../structfsdk_1_1_image.html#aa4c32526ccd387fb89500e766ae3ce7f',1,'fsdk::Image::map(const Size &size) const noexcept'],['../structfsdk_1_1_image.html#a5e5e5885d7e3e85d8d07b2c5a84937c5',1,'fsdk::Image::map(const Point2i &origin, const Size &size) const noexcept']]], + ['match',['match',['../structfsdk_1_1_i_descriptor_matcher.html#ae6a1c205c90fc302ac60888500b751ba',1,'fsdk::IDescriptorMatcher::match(const IDescriptor *first, const IDescriptor *second) noexcept=0'],['../structfsdk_1_1_i_descriptor_matcher.html#af8ca338dac43b61892815153c2eb960f',1,'fsdk::IDescriptorMatcher::match(const IDescriptor *reference, const IDescriptorBatch *candidates, Span< MatchingResult > results) noexcept=0']]], + ['matchingresult',['MatchingResult',['../structfsdk_1_1_matching_result.html#a225957f44be2294e809c2dd59ad728ed',1,'fsdk::MatchingResult::MatchingResult(void) noexcept'],['../structfsdk_1_1_matching_result.html#a913ed5d074a8c817b3a1c59e7759e526',1,'fsdk::MatchingResult::MatchingResult(float distance, float similarity) noexcept']]] +]; diff --git a/doc/fsdk/html/search/functions_6f.html b/doc/fsdk/html/search/functions_6f.html new file mode 100644 index 0000000..f233220 --- /dev/null +++ b/doc/fsdk/html/search/functions_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_6f.js b/doc/fsdk/html/search/functions_6f.js new file mode 100644 index 0000000..407e3ce --- /dev/null +++ b/doc/fsdk/html/search/functions_6f.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['operator_20bool',['operator bool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#aee7766a54dfb9dce2606aef1f88f2b3c',1,'fsdk::ISettingsProvider::Value::operator bool()'],['../structfsdk_1_1_image.html#a94659c183621f3be301832e3673936c6',1,'fsdk::Image::operator bool()'],['../structfsdk_1_1_ref_base.html#a7e3a0a80186484fe19eec757ab9546d9',1,'fsdk::RefBase::operator bool()'],['../structfsdk_1_1_result.html#a7e12d3d63d36a0551279b15c0a8176ac',1,'fsdk::Result::operator bool()'],['../structfsdk_1_1_sizer.html#aa93c5b0d4094955935f021e7c1381998',1,'fsdk::Sizer::operator bool()']]], + ['operator_20size_5ft',['operator size_t',['../structfsdk_1_1_sizer.html#ad766a4340ba8302b07454756c0c28f5f',1,'fsdk::Sizer']]], + ['operator_20t_20_2a',['operator T *',['../structfsdk_1_1_ref_base.html#a87fa2d42cdd5da50ad56c9fcc056099b',1,'fsdk::RefBase']]], + ['operator_20type',['operator Type',['../structfsdk_1_1_format.html#ad603c8ad2250b23f3cbaa04fa69e9d29',1,'fsdk::Format']]], + ['operator_21_3d',['operator!=',['../structfsdk_1_1_base_rect.html#ab4e3ab3f98baad640c21840425c403d7',1,'fsdk::BaseRect::operator!=()'],['../structfsdk_1_1_ref.html#a9c64ce15d1f45608206576a704208a26',1,'fsdk::Ref::operator!=()'],['../structfsdk_1_1_ref_base.html#a5f5a390a37bc52d7483049069ecc89a0',1,'fsdk::RefBase::operator!=()'],['../structfsdk_1_1_sizer.html#a264b497e04eee49c4b401a3dac00cf54',1,'fsdk::Sizer::operator!=()'],['../structfsdk_1_1_vector2.html#a5cbac5fcdaafba36e50105912b15e046',1,'fsdk::Vector2::operator!=()'],['../group___version_group.html#ga525b65b20d219073604d14d7d845bf14',1,'fsdk::operator!=()']]], + ['operator_26',['operator&',['../structfsdk_1_1_base_rect.html#a404b127223e95fb588a63a513d613117',1,'fsdk::BaseRect']]], + ['operator_26_3d',['operator&=',['../structfsdk_1_1_base_rect.html#a436384ddd3d32de0eb88ece21afa766f',1,'fsdk::BaseRect']]], + ['operator_2a',['operator*',['../structfsdk_1_1_base_rect.html#ad8539de95d7316678af7803170ef1095',1,'fsdk::BaseRect::operator*()'],['../structfsdk_1_1_ref_base.html#a3c132b113b08dc44bc8a9150fd007d19',1,'fsdk::RefBase::operator*()'],['../structfsdk_1_1_vector2.html#a58e43c916ff907d4733b091dc75021e8',1,'fsdk::Vector2::operator*(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#af7537f9258b5bab68b965aa8334319eb',1,'fsdk::Vector2::operator*(T rhs) const noexcept']]], + ['operator_2a_3d',['operator*=',['../structfsdk_1_1_vector2.html#abff546b10f081f4cb170e10ee9fbac53',1,'fsdk::Vector2::operator*=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#a3772de7cc691c6d62544939ada5f741f',1,'fsdk::Vector2::operator*=(T rhs) noexcept']]], + ['operator_2b',['operator+',['../structfsdk_1_1_vector2.html#a11766eb4a861ba0893b9a54e654ad426',1,'fsdk::Vector2::operator+(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#af723d6081a9e7c0275d59dfd8d99a515',1,'fsdk::Vector2::operator+(T rhs) const noexcept']]], + ['operator_2b_3d',['operator+=',['../structfsdk_1_1_vector2.html#a1901f162f6d81353a3df86e3611f50ab',1,'fsdk::Vector2::operator+=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#a956df0b0a02e8a0a2129749129c97676',1,'fsdk::Vector2::operator+=(T rhs) noexcept']]], + ['operator_2d',['operator-',['../structfsdk_1_1_vector2.html#a9d794b42a1325f714bfec2433824e0e9',1,'fsdk::Vector2::operator-(void) const noexcept'],['../structfsdk_1_1_vector2.html#a3d0c0ec312b76c2915b4c6abcfc52eb4',1,'fsdk::Vector2::operator-(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#a92c46ca31baaa100454fc2e784d67468',1,'fsdk::Vector2::operator-(T rhs) const noexcept']]], + ['operator_2d_3d',['operator-=',['../structfsdk_1_1_vector2.html#a4f175def8e52677a34f4ec2387e7e0e8',1,'fsdk::Vector2::operator-=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#aae171d417781b18c1364475616bd299c',1,'fsdk::Vector2::operator-=(T rhs) noexcept']]], + ['operator_2d_3e',['operator->',['../structfsdk_1_1_ref.html#a672bfe4b1b07aa8200e0c179323ffc81',1,'fsdk::Ref::operator->()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a0e427b8b97b5b4812e982891ff390437',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::operator->()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a33e437fb19c5c9e37e5a2086c6b6a275',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::operator->()']]], + ['operator_2f',['operator/',['../structfsdk_1_1_base_rect.html#a6d59d105993f94fedaf00f9473ec3b91',1,'fsdk::BaseRect::operator/()'],['../structfsdk_1_1_vector2.html#a4c82f3241e2d679d3162e7c53ad1afb7',1,'fsdk::Vector2::operator/(const Vector2 &rhs) const noexcept'],['../structfsdk_1_1_vector2.html#af311eb73a9da48a6535898971a2eec8c',1,'fsdk::Vector2::operator/(T rhs) const noexcept']]], + ['operator_2f_3d',['operator/=',['../structfsdk_1_1_vector2.html#a46e85141a5bb78673cfe23bb3ca4db41',1,'fsdk::Vector2::operator/=(const Vector2 &rhs) noexcept'],['../structfsdk_1_1_vector2.html#a3776a6caebaa364cd55f817618abbfdf',1,'fsdk::Vector2::operator/=(T rhs) noexcept']]], + ['operator_3c',['operator<',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a09f319d67c581d9eab31d16bb20062db',1,'fsdk::ISettingsProvider::Key::operator<()'],['../structfsdk_1_1_vector2.html#a9d255e944558f53656e8e689e82fe6b2',1,'fsdk::Vector2::operator<()'],['../group___version_group.html#gad429c6eae9f032debb9416947550009b',1,'fsdk::operator<()']]], + ['operator_3c_3c',['operator<<',['../structfsdk_1_1_sizer.html#ac8305e92c055dd645536ea0103f47308',1,'fsdk::Sizer::operator<<(size_t bytes) noexcept'],['../structfsdk_1_1_sizer.html#a5aeab8578a151d6aac54fd262c5b00fc',1,'fsdk::Sizer::operator<<(const Sizer &other) noexcept']]], + ['operator_3c_3d',['operator<=',['../structfsdk_1_1_vector2.html#a099d2a886cd88ae652fcb1ba4aa560b8',1,'fsdk::Vector2']]], + ['operator_3d',['operator=',['../structfsdk_1_1_image.html#a6e64bb21715b54c2b208c370d4c6bb2d',1,'fsdk::Image::operator=(const Image &other) noexcept'],['../structfsdk_1_1_image.html#acbc748fe0bdd194deb00b26e06a51ed9',1,'fsdk::Image::operator=(Image &&other) noexcept'],['../structfsdk_1_1_base_rect.html#a807dfcdd611eaf57a2aa2c3f3881ef27',1,'fsdk::BaseRect::operator=()'],['../structfsdk_1_1_ref.html#a4828c89609b91ef396295d9338a3966a',1,'fsdk::Ref::operator=(const Ref &other) noexcept'],['../structfsdk_1_1_ref.html#a845904eb499a34c81fad27567bd284f2',1,'fsdk::Ref::operator=(const Ref< D > &other) noexcept'],['../structfsdk_1_1_ref.html#aacf7b3a1eb1afe796743ef8c9390a41c',1,'fsdk::Ref::operator=(T *ptr) noexcept'],['../structfsdk_1_1_ref.html#ac7b437683b2898eb84a2eb12f900b641',1,'fsdk::Ref::operator=(std::nullptr_t) noexcept'],['../structfsdk_1_1_sizer.html#a43e5787f073a4e54efe7b714269d31ff',1,'fsdk::Sizer::operator=()'],['../classfsdk_1_1_span.html#a1371c55fe46de7880cafc8836e8f5043',1,'fsdk::Span::operator=()'],['../structfsdk_1_1_vector2.html#a04a185c2ceddc611bea5c939c2124898',1,'fsdk::Vector2::operator=()']]], + ['operator_3d_3d',['operator==',['../structfsdk_1_1_base_rect.html#ab53516b12c364e4304a8c0db4f7fedeb',1,'fsdk::BaseRect::operator==()'],['../structfsdk_1_1_ref.html#a70f2e2f6d93a448c088311e65c17e29f',1,'fsdk::Ref::operator==()'],['../structfsdk_1_1_ref_base.html#a8a7d5f145b0709c08a5faf1741fafbe4',1,'fsdk::RefBase::operator==()'],['../structfsdk_1_1_sizer.html#a81710ba2c9c46ef82255d8f3a6aaf092',1,'fsdk::Sizer::operator==()'],['../structfsdk_1_1_vector2.html#ae8a5c741804ce2fd3c0feb7a7897fc90',1,'fsdk::Vector2::operator==()'],['../group___version_group.html#gaa1f550339ca96028e8c0115d201e02a0',1,'fsdk::operator==()']]], + ['operator_3e',['operator>',['../structfsdk_1_1_vector2.html#a86cefdf00bbc408525a5cb93fb6aa132',1,'fsdk::Vector2']]], + ['operator_3e_3d',['operator>=',['../structfsdk_1_1_vector2.html#aaa3f5f7de83b0c7063a36c67cd2ae9ce',1,'fsdk::Vector2']]], + ['operator_5b_5d',['operator[]',['../classfsdk_1_1_span.html#a16e587f201014a10a13a04a72c2a4939',1,'fsdk::Span::operator[](std::size_t index)'],['../classfsdk_1_1_span.html#ab1575087c09d7d055cad79a1833f88c6',1,'fsdk::Span::operator[](std::size_t index) const '],['../structfsdk_1_1_vector2.html#a15132224488f37333baf143bf522f863',1,'fsdk::Vector2::operator[](int n) noexcept'],['../structfsdk_1_1_vector2.html#a07d0a831616016167cfecb63afa91879',1,'fsdk::Vector2::operator[](int n) const noexcept']]], + ['operator_7c',['operator|',['../structfsdk_1_1_base_rect.html#aa7a7d623d0d0b9a73e040b8753014782',1,'fsdk::BaseRect']]], + ['operator_7c_3d',['operator|=',['../structfsdk_1_1_base_rect.html#a4655fc1f9639d70c24cc9bcf6bf28f89',1,'fsdk::BaseRect']]], + ['ownsdata',['ownsData',['../structfsdk_1_1_image.html#adf5ed625bd338c55677dee58043de494',1,'fsdk::Image']]] +]; diff --git a/doc/fsdk/html/search/functions_70.html b/doc/fsdk/html/search/functions_70.html new file mode 100644 index 0000000..c7cadcf --- /dev/null +++ b/doc/fsdk/html/search/functions_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_70.js b/doc/fsdk/html/search/functions_70.js new file mode 100644 index 0000000..1210279 --- /dev/null +++ b/doc/fsdk/html/search/functions_70.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['progress',['progress',['../structfsdk_1_1_i_progress_tracker.html#a79ab3dfe56481122e2d9540279c55abc',1,'fsdk::IProgressTracker']]], + ['promise',['Promise',['../classfsdk_1_1_promise.html#a26f2ff77af845a32921508ac26184217',1,'fsdk::Promise']]] +]; diff --git a/doc/fsdk/html/search/functions_72.html b/doc/fsdk/html/search/functions_72.html new file mode 100644 index 0000000..de10844 --- /dev/null +++ b/doc/fsdk/html/search/functions_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_72.js b/doc/fsdk/html/search/functions_72.js new file mode 100644 index 0000000..b0c15f9 --- /dev/null +++ b/doc/fsdk/html/search/functions_72.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['read',['read',['../structfsdk_1_1_i_archive.html#af27d2a846518cb22b709a40c88601b7b',1,'fsdk::IArchive']]], + ['redetect',['redetect',['../structfsdk_1_1_i_detector.html#ae95fa3fe533fe5f3a15a7359446502d4',1,'fsdk::IDetector::redetect(Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, DetectionType type=DT_BBOX) noexcept=0'],['../structfsdk_1_1_i_detector.html#a2b7b9a113d7f80fc6e6613d642b3943d',1,'fsdk::IDetector::redetect(Span< const Image > images, Span< Span< const Detection >> detections, DetectionType type=DT_BBOX) noexcept=0'],['../structfsdk_1_1_i_human_detector.html#aa646c7b7ae2dda414b967a24092f3948',1,'fsdk::IHumanDetector::redetect(Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, HumanDetectionType type=HDT_BOX) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a1a427579c96e2df17d7b445235a3f8fe',1,'fsdk::IHumanDetector::redetect(Span< const Image > images, Span< Span< const Detection >> detections, HumanDetectionType type=HDT_BOX) const noexcept=0']]], + ['redetectasync',['redetectAsync',['../structfsdk_1_1_i_detector.html#a31069412a8be899db49866d9651aa35b',1,'fsdk::IDetector']]], + ['redetectone',['redetectOne',['../structfsdk_1_1_i_detector.html#aad8aeff6c35f03740fc018a9b295a157',1,'fsdk::IDetector::redetectOne()'],['../structfsdk_1_1_i_human_detector.html#a4f7351750b7ec8547778511a9129af60',1,'fsdk::IHumanDetector::redetectOne()']]], + ['ref',['Ref',['../structfsdk_1_1_ref.html#a58e4acb99a8a874754a23e6e4f7b2251',1,'fsdk::Ref::Ref() noexcept=default'],['../structfsdk_1_1_ref.html#a2b302d028bf41a3299ad1a75d3078b08',1,'fsdk::Ref::Ref(std::nullptr_t) noexcept'],['../structfsdk_1_1_ref.html#aa7673c14c03a88a443a5497497af5146',1,'fsdk::Ref::Ref(T *ptr) noexcept'],['../structfsdk_1_1_ref.html#a3fdf807e4c01d6f07e8d67f920537022',1,'fsdk::Ref::Ref(const Ref &other)'],['../structfsdk_1_1_ref.html#a04c673df1f8297ed0330b56be72218f2',1,'fsdk::Ref::Ref(const Ref< D > &other)']]], + ['refbase',['RefBase',['../structfsdk_1_1_ref_base.html#a53e524dddc5f820708d0db6c99069d64',1,'fsdk::RefBase::RefBase() noexcept=default'],['../structfsdk_1_1_ref_base.html#aac9bb6fcbf9b720a6b5e7a4907cc80c1',1,'fsdk::RefBase::RefBase(T *ptr) noexcept']]], + ['release',['release',['../structfsdk_1_1_i_ref_counted.html#a1b045b30c43c70150e553b7bd796e92a',1,'fsdk::IRefCounted::release()'],['../structfsdk_1_1_image.html#a32f3e84a17a9e47a516d2f9cef50c040',1,'fsdk::Image::release()']]], + ['releaseweak',['releaseWeak',['../structfsdk_1_1_i_ref_counted.html#a89a2ad867e5ded45c0b3764a48fc6ff3',1,'fsdk::IRefCounted']]], + ['removedescriptor',['removeDescriptor',['../structfsdk_1_1_i_dynamic_descriptor_storage.html#a67d89300f3cfc098aac035d446c395f8',1,'fsdk::IDynamicDescriptorStorage']]], + ['removefast',['removeFast',['../structfsdk_1_1_i_descriptor_batch.html#a8f32454a4158e732938e6b9812b6ceb5',1,'fsdk::IDescriptorBatch']]], + ['removeslow',['removeSlow',['../structfsdk_1_1_i_descriptor_batch.html#ac98c97ca906f99236c7065d51f82c65a',1,'fsdk::IDescriptorBatch']]], + ['rescale',['rescale',['../structfsdk_1_1_image.html#a6ed2d1d79094102bed624f40f14f4acb',1,'fsdk::Image']]], + ['reset',['reset',['../structfsdk_1_1_image.html#aae4044994b8cebfdd3f94e13606b9b07',1,'fsdk::Image::reset()'],['../structfsdk_1_1_ref.html#a24015b4f52310246a88e40ffd1e81030',1,'fsdk::Ref::reset()'],['../structfsdk_1_1_sizer.html#aea7fc0320b954ae96fe7454135aafbe8',1,'fsdk::Sizer::reset()']]], + ['resize',['resize',['../structfsdk_1_1_i_async_context.html#a2ecda0d4f935a7fe477f68bd5d90f5a7',1,'fsdk::IAsyncContext']]], + ['result',['Result',['../structfsdk_1_1_result.html#a06a734e30ac4eece206f4733b7a5d012',1,'fsdk::Result::Result(E error) noexcept'],['../structfsdk_1_1_result.html#aa3167e68bcb821500440dd076a6b42f3',1,'fsdk::Result::Result() noexcept']]], + ['resultvalue',['ResultValue',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ac955e75bbf5fb02d839769d9fb2ba664',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue(R result) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a56653ed758a6407bb25489a58b348e0c',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue(R result, const V &value) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#adf265f066cbc9f58b26a480accdb1c27',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue(R result, V &&value) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a26f358e8c2c64299a59d98c6feaf4dd1',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ResultValue(R result) noexcept'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a046c9b256bd86bc479c39e6d731435bc',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ResultValue(R result, V &&value) noexcept']]], + ['retain',['retain',['../structfsdk_1_1_i_ref_counted.html#a8cb7a6ecf064e4b8a99038cf08a29e7f',1,'fsdk::IRefCounted::retain()'],['../structfsdk_1_1_image.html#aadc0669fe4f2632fb259d2cba1a06738',1,'fsdk::Image::retain()']]], + ['retainlocked',['retainLocked',['../structfsdk_1_1_i_ref_counted.html#a7362292166bdff4b2463e25f8003671a',1,'fsdk::IRefCounted']]], + ['retainweak',['retainWeak',['../structfsdk_1_1_i_ref_counted.html#aaea14dbe2f8eee5deefced4ef3a126b5',1,'fsdk::IRefCounted']]], + ['right',['right',['../structfsdk_1_1_base_rect.html#a67f3227a6256c5479e432c868e962652',1,'fsdk::BaseRect']]] +]; diff --git a/doc/fsdk/html/search/functions_73.html b/doc/fsdk/html/search/functions_73.html new file mode 100644 index 0000000..a895245 --- /dev/null +++ b/doc/fsdk/html/search/functions_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_73.js b/doc/fsdk/html/search/functions_73.js new file mode 100644 index 0000000..4b688e6 --- /dev/null +++ b/doc/fsdk/html/search/functions_73.js @@ -0,0 +1,44 @@ +var searchData= +[ + ['save',['save',['../structfsdk_1_1_i_serializable_object.html#a5171a97d79c639d613ec9d6ee694c8e1',1,'fsdk::ISerializableObject::save()'],['../structfsdk_1_1_i_settings_provider.html#a24c6329c41291b32cdecf5d10cb90a90',1,'fsdk::ISettingsProvider::save()'],['../structfsdk_1_1_image.html#ae3bd0f9b7e1dd8871e7110d566c0eb3b',1,'fsdk::Image::save(const char *path, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept'],['../structfsdk_1_1_image.html#a9551bec72e3e4798bce2ddd116b53f6e',1,'fsdk::Image::save(const char *path, const Format format) const noexcept']]], + ['savetodenseindex',['saveToDenseIndex',['../structfsdk_1_1_i_dynamic_index.html#af7c7947059b6876546e0a712cf32d5bb',1,'fsdk::IDynamicIndex']]], + ['savetodynamicindex',['saveToDynamicIndex',['../structfsdk_1_1_i_dynamic_index.html#a589098df084d6e99c80574726fc4bca7',1,'fsdk::IDynamicIndex']]], + ['savetofile',['saveToFile',['../structfsdk_1_1_i_license.html#a0d6ceffe612d0f87dc6ae96bfb4bdb9f',1,'fsdk::ILicense']]], + ['savetomemory',['saveToMemory',['../structfsdk_1_1_image.html#a394ec678da307c9f6f73b673567bc9ae',1,'fsdk::Image::saveToMemory(Image::Type type, IArchive *archive, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept'],['../structfsdk_1_1_image.html#a4031cca84864d83a5361968eaec0809e',1,'fsdk::Image::saveToMemory(Image::Type type, IArchive *archive, const Format format) const noexcept']]], + ['search',['search',['../structfsdk_1_1_i_index.html#a0f14bf62346477137a85525c03cbf1e5',1,'fsdk::IIndex']]], + ['searchresult',['SearchResult',['../structfsdk_1_1_search_result.html#a22fc4965d8484ef9ecd8540d2bc86bc8',1,'fsdk::SearchResult::SearchResult() noexcept'],['../structfsdk_1_1_search_result.html#aef457bbb7044f31b2d8d7e788468d2d2',1,'fsdk::SearchResult::SearchResult(float distance, float similarity, DescriptorId index) noexcept']]], + ['set',['set',['../structfsdk_1_1_image.html#ae43bcd728b9b3389a5d45e20dee1205d',1,'fsdk::Image::set(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#a85ddf384c606013f7c2aa2815eaeccf4',1,'fsdk::Image::set(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept'],['../structfsdk_1_1_image.html#af449e5eaada6b033205fec916c758aff',1,'fsdk::Image::set(const Image &other) noexcept'],['../structfsdk_1_1_image.html#a62466dd45bd37cdd3c73bdeb7b268b20',1,'fsdk::Image::set(const SubImage &subImage) noexcept'],['../structfsdk_1_1_base_rect.html#a3ce12a4e41011abe8e786c0fbc8ce21d',1,'fsdk::BaseRect::set()'],['../structfsdk_1_1_ref_base.html#a9baae9b19a0723e049bce5d641889662',1,'fsdk::RefBase::set()']]], + ['setbool',['setBool',['../structfsdk_1_1_i_settings_provider_1_1_value.html#afbdabfa895b18e2ae63429b99accb87b',1,'fsdk::ISettingsProvider::Value']]], + ['setbottom',['setBottom',['../structfsdk_1_1_base_rect.html#a4b293834cd31533ac8a0a3ddfd1e1329',1,'fsdk::BaseRect']]], + ['setcustomdetectioncomparer',['setCustomDetectionComparer',['../structfsdk_1_1_i_detector.html#aaf4ac12ce269c0cc293f9348f9ef1c3d',1,'fsdk::IDetector']]], + ['setdatadirectory',['setDataDirectory',['../group___core_group.html#ga297a0bb88bf7d2a79939e4936067d5d3',1,'fsdk::IFaceEngineMobile']]], + ['setdesc',['setDesc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#af5c231731f8657154468cfc4ba7e3096',1,'fsdk::ISettingsProvider::Desc::setDesc()'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a462b8686b4b770c5204a4a5031514fb9',1,'fsdk::ISettingsProvider::Entry::setDesc()'],['../structfsdk_1_1_i_settings_provider.html#ac9dd8729888381082f1fd9ec46734db2',1,'fsdk::ISettingsProvider::setDesc(const Key &key, const Desc &desc) noexcept=0'],['../structfsdk_1_1_i_settings_provider.html#aabb9a7e6bd022bc5fd89d019a74628d0',1,'fsdk::ISettingsProvider::setDesc(const char *section, const char *parameter, const Desc &desc) noexcept']]], + ['setdescriptor',['setDescriptor',['../structfsdk_1_1_i_descriptor.html#a430f0098d482b8f235f0b0282184c864',1,'fsdk::IDescriptor']]], + ['setdetectioncomparer',['setDetectionComparer',['../structfsdk_1_1_i_detector.html#a19a8d0891929e7e922a2f1282076d8a9',1,'fsdk::IDetector']]], + ['setentry',['setEntry',['../structfsdk_1_1_i_settings_provider.html#a24483db5f2e2b8434cb226d23e8f767d',1,'fsdk::ISettingsProvider::setEntry(const Key &key, Entry &&entry) noexcept=0'],['../structfsdk_1_1_i_settings_provider.html#abedbf12597aee1d33e7f42c47fa9b18a',1,'fsdk::ISettingsProvider::setEntry(const Key &key, const Desc &desc, Value &&value) noexcept'],['../structfsdk_1_1_i_settings_provider.html#a44255bcd4c2f6697782082033f1c062e',1,'fsdk::ISettingsProvider::setEntry(const char *section, const char *parameter, const Desc &desc, Value &&value) noexcept']]], + ['setfloat',['setFloat',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a4e86e07ec3d3dd9fa6df83af423b147e',1,'fsdk::ISettingsProvider::Value::setFloat(float x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5720f7b47ca5264c9da56cb8659fff40',1,'fsdk::ISettingsProvider::Value::setFloat(float x, float y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#af6de22e8a4956661ef47b65adbc7684f',1,'fsdk::ISettingsProvider::Value::setFloat(float x, float y, float z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aefc7af5a886571f1e510c1eb51558c06',1,'fsdk::ISettingsProvider::Value::setFloat(float x, float y, float z, float w) noexcept']]], + ['setint',['setInt',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a8ffc8d4baa19ff98c25b3ca1cdec419d',1,'fsdk::ISettingsProvider::Value::setInt(int x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a4b8b66e59cbdc206fc389f486ac9da69',1,'fsdk::ISettingsProvider::Value::setInt(int x, int y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#abf9c6a2457cf1f7cc856533aefd85d9d',1,'fsdk::ISettingsProvider::Value::setInt(int x, int y, int z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a999198508b6f0f7ec19daff50424343b',1,'fsdk::ISettingsProvider::Value::setInt(int x, int y, int z, int w) noexcept']]], + ['setleft',['setLeft',['../structfsdk_1_1_base_rect.html#ab4466df98371077db3f9184894d7af32',1,'fsdk::BaseRect']]], + ['setparameter',['setParameter',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a4806cf422efe957999b8b1578f716d4b',1,'fsdk::ISettingsProvider::Key']]], + ['setpoint2f',['setPoint2f',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a97c411b847afda41ec7b64a0e646e6e6',1,'fsdk::ISettingsProvider::Value']]], + ['setpoint2i',['setPoint2i',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a2a6a2b04795f4be07002b554877951b0',1,'fsdk::ISettingsProvider::Value']]], + ['setrawrect',['setRawRect',['../structfsdk_1_1_detection.html#a6425f5f8ddc50c94df035378bb3d5aee',1,'fsdk::Detection']]], + ['setrect',['setRect',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a33745b6b63863e2153867c888257a373',1,'fsdk::ISettingsProvider::Value']]], + ['setright',['setRight',['../structfsdk_1_1_base_rect.html#a137f59a19b449cee39e36e9b68bca4e2',1,'fsdk::BaseRect']]], + ['setruntimesettingsprovider',['setRuntimeSettingsProvider',['../group___core_group.html#ga4d091c486f5157e8f0f42630fa4c7d78',1,'fsdk::IFaceEngineMobile']]], + ['setscore',['setScore',['../structfsdk_1_1_detection.html#a63d72cc33b96c33a078961b5f0b23ac5',1,'fsdk::Detection']]], + ['setsection',['setSection',['../structfsdk_1_1_i_settings_provider_1_1_key.html#acb298366c5ad703f47add965f31420ed',1,'fsdk::ISettingsProvider::Key']]], + ['setsettingsprovider',['setSettingsProvider',['../group___core_group.html#ga807383acfa6e302fce4fdc6254884735',1,'fsdk::IFaceEngineMobile']]], + ['setsize',['setSize',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a98e8b1488035f0329ffc81180143398e',1,'fsdk::ISettingsProvider::Value::setSize()'],['../classfsdk_1_1_span.html#ac6eff7f7e3d1fedb1673b4411d9a3de9',1,'fsdk::Span::setSize()']]], + ['setsizehint',['setSizeHint',['../structfsdk_1_1_i_archive.html#a7f1fe72083db24c7b6620d4a9a657612',1,'fsdk::IArchive']]], + ['setstring',['setString',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a730243dec9aa8addb47d58b11806dafa',1,'fsdk::ISettingsProvider::Value']]], + ['settop',['setTop',['../structfsdk_1_1_base_rect.html#a1f55e47d552e914b58061632cb35e20f',1,'fsdk::BaseRect']]], + ['setvalue',['setValue',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#a0f18fe3e34e0546f8bb7e8ec89ac2b7f',1,'fsdk::ISettingsProvider::Entry::setValue()'],['../structfsdk_1_1_i_settings_provider.html#a98efbcbf26e39e5cf70b3215514d5975',1,'fsdk::ISettingsProvider::setValue(const Key &key, Value &&value) noexcept=0'],['../structfsdk_1_1_i_settings_provider.html#a6472ad96f6b21bbf36fbbd4e4473bb50',1,'fsdk::ISettingsProvider::setValue(const char *section, const char *parameter, Value &&value) noexcept']]], + ['size',['size',['../structfsdk_1_1_i_static_descriptor_storage.html#aee1e7ce2800e384e546d7d99de7ca586',1,'fsdk::IStaticDescriptorStorage::size()'],['../structfsdk_1_1_base_rect.html#a270bd8113a22c7f5cc553a1baa362ba3',1,'fsdk::BaseRect::size()'],['../classfsdk_1_1_span.html#a1fcb99423267eb25a11f87bc069cb97e',1,'fsdk::Span::size()']]], + ['sizer',['Sizer',['../structfsdk_1_1_sizer.html#a9cd97626466e7e07a63fe9ff896352dc',1,'fsdk::Sizer::Sizer() noexcept'],['../structfsdk_1_1_sizer.html#a491defed47cfaeaf38dd29074c8b7d89',1,'fsdk::Sizer::Sizer(const Sizer &other) noexcept']]], + ['span',['Span',['../classfsdk_1_1_span.html#ae984b657d4947a6adb3e1d0b4ddce297',1,'fsdk::Span::Span(T *data, std::size_t size)'],['../classfsdk_1_1_span.html#ad269a8eb69d0d90e34d8eab02d575cc6',1,'fsdk::Span::Span(ContiguousContainer &&container)']]], + ['state',['state',['../classfsdk_1_1_future.html#a2b52e6264dc9fb54d143712efdb783b8',1,'fsdk::Future::state()'],['../classfsdk_1_1_promise.html#acb099562ad549c712fcdca295b379f5d',1,'fsdk::Promise::state()']]], + ['stop',['stop',['../structfsdk_1_1_i_async_context.html#af9133106ddd66cfc4bbb48d390e48f2c',1,'fsdk::IAsyncContext']]], + ['subimage',['SubImage',['../structfsdk_1_1_sub_image.html#a1ccb24d83a92805fad4aa5c18f43b114',1,'fsdk::SubImage']]], + ['swap',['swap',['../classfsdk_1_1_future.html#a7f7977f3ac4805fda79869a23f9f8686',1,'fsdk::Future::swap()'],['../classfsdk_1_1_promise.html#a9b3e58dc95742108177ca25db4a933eb',1,'fsdk::Promise::swap()'],['../structfsdk_1_1_image.html#a6cc848e22d99f4d2d8b34d240c0bba47',1,'fsdk::Image::swap()'],['../structfsdk_1_1_sizer.html#af49cc6ba59d47f9fd71a461260231a4e',1,'fsdk::Sizer::swap()']]] +]; diff --git a/doc/fsdk/html/search/functions_74.html b/doc/fsdk/html/search/functions_74.html new file mode 100644 index 0000000..8b138f0 --- /dev/null +++ b/doc/fsdk/html/search/functions_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_74.js b/doc/fsdk/html/search/functions_74.js new file mode 100644 index 0000000..3f71da1 --- /dev/null +++ b/doc/fsdk/html/search/functions_74.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['takeinto',['takeInto',['../classfsdk_1_1_future.html#ac30c21fa31a1d66e732bfffada32e03a',1,'fsdk::Future']]], + ['takevalue',['takeValue',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ade19468195453a80c350071fa4f10854',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::takeValue()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#ada51f8afb1de2cb66197e010831199db',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::takeValue()']]], + ['threads',['threads',['../structfsdk_1_1_i_async_context.html#ac73acb108a28097493dc33a32383405d',1,'fsdk::IAsyncContext']]], + ['top',['top',['../structfsdk_1_1_base_rect.html#a7fff6bef1a63625bd8142f7be10b205b',1,'fsdk::BaseRect']]], + ['topleft',['topLeft',['../structfsdk_1_1_base_rect.html#aaa49c9b78371e0d6d4fe1103cbf6bca9',1,'fsdk::BaseRect']]] +]; diff --git a/doc/fsdk/html/search/functions_75.html b/doc/fsdk/html/search/functions_75.html new file mode 100644 index 0000000..db02642 --- /dev/null +++ b/doc/fsdk/html/search/functions_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_75.js b/doc/fsdk/html/search/functions_75.js new file mode 100644 index 0000000..f4a7832 --- /dev/null +++ b/doc/fsdk/html/search/functions_75.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unwarp',['unwarp',['../structfsdk_1_1_i_warper.html#a84d916dc3296244f29270128f77b6536',1,'fsdk::IWarper::unwarp(const EyesEstimation &eyesEstimationInWarpCoordinates, const Transformation &transformation, EyesEstimation &eyesEstimation) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a20355c3fc081074b92b2a6d7f25523ab',1,'fsdk::IWarper::unwarp(const Landmarks5 &warpedLandmarks5, const Transformation &transformation, Landmarks5 &landmarks5) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a3c896d2a8f1ad3deaf1ff12c6f8a35d8',1,'fsdk::IWarper::unwarp(const Landmarks68 &warpedLandmarks68, const Transformation &transformation, Landmarks68 &landmarks68) const noexcept=0']]] +]; diff --git a/doc/fsdk/html/search/functions_76.html b/doc/fsdk/html/search/functions_76.html new file mode 100644 index 0000000..916b423 --- /dev/null +++ b/doc/fsdk/html/search/functions_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_76.js b/doc/fsdk/html/search/functions_76.js new file mode 100644 index 0000000..b88e204 --- /dev/null +++ b/doc/fsdk/html/search/functions_76.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['valid',['valid',['../structfsdk_1_1_i_async_context.html#a819aef0e6c25bade404db1e1e0cde11e',1,'fsdk::IAsyncContext']]], + ['validate',['validate',['../structfsdk_1_1_i_a_g_s_estimator.html#a771c4b021790e85aa9bde0e1b13b26f7',1,'fsdk::IAGSEstimator::validate()'],['../structfsdk_1_1_i_best_shot_quality_estimator.html#a9278fd5a0b49f6eb6b5860bc04a0aa1e',1,'fsdk::IBestShotQualityEstimator::validate()'],['../structfsdk_1_1_i_eye_estimator.html#a4534d4ee1854c38b89238ff294a1a0cb',1,'fsdk::IEyeEstimator::validate()'],['../structfsdk_1_1_i_glasses_estimator.html#a56e29006f163d67139790002d020e952',1,'fsdk::IGlassesEstimator::validate()'],['../structfsdk_1_1_i_head_pose_estimator.html#a934b364e035980966cb7f09faf0b9a7b',1,'fsdk::IHeadPoseEstimator::validate()'],['../structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a540933fe78bc701f7762b3422e8bb499',1,'fsdk::ILivenessOneShotRGBEstimator::validate()'],['../structfsdk_1_1_i_medical_mask_estimator.html#a73dde47ed832da47eedf47921af4e42d',1,'fsdk::IMedicalMaskEstimator::validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_medical_mask_estimator.html#a2d09801e30812ea464f897cef0e4c4a9',1,'fsdk::IMedicalMaskEstimator::validate(Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_quality_estimator.html#adf7141013baf6da3881d901339064180',1,'fsdk::IQualityEstimator::validate()'],['../structfsdk_1_1_i_descriptor_extractor.html#a02a1049adb8088b270111afb8cb438da',1,'fsdk::IDescriptorExtractor::validate()'],['../structfsdk_1_1_i_detector.html#a6c671781f42357e244a74e23bb9f3571',1,'fsdk::IDetector::validate(Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0'],['../structfsdk_1_1_i_detector.html#a57282cf9f0556a17670fc2274710863a',1,'fsdk::IDetector::validate(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> outErrors) const noexcept=0'],['../structfsdk_1_1_i_detector.html#ac0600108abda046570741ed6cac302c1',1,'fsdk::IDetector::validate(Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, Span< Result< FSDKError >> outErrors) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a727b86aedb5fc1b9b614c57d2a0b0a3a',1,'fsdk::IHumanDetector::validate(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a7a47983761d58676a373231521a8181b',1,'fsdk::IHumanDetector::validate(Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, Span< Result< FSDKError >> errors) const noexcept=0'],['../structfsdk_1_1_i_human_detector.html#a6be4169b418fb07ccc9d6c6bb6721570',1,'fsdk::IHumanDetector::validate(Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0']]], + ['value',['Value',['../structfsdk_1_1_i_settings_provider_1_1_value.html#ade9870a88b9fa5247d9f82c943001100',1,'fsdk::ISettingsProvider::Value::Value() noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5b698f499b70e5d43fce29e0d9aaec45',1,'fsdk::ISettingsProvider::Value::Value(int x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#acf068436955aef306ffe0ca7eb2d5eaa',1,'fsdk::ISettingsProvider::Value::Value(int x, int y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a3ff3a44e47d48d850e79e32602ec2998',1,'fsdk::ISettingsProvider::Value::Value(int x, int y, int z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aff30902febdfdfd0d643f8610b68de9f',1,'fsdk::ISettingsProvider::Value::Value(int x, int y, int z, int w) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a637a0f66f4f6449c868e1fd51d844387',1,'fsdk::ISettingsProvider::Value::Value(float x) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a5ac724fe6b158f9f22e0e5cebad63a1d',1,'fsdk::ISettingsProvider::Value::Value(float x, float y) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#ad4524374bafcce36a1349f0648dbefd4',1,'fsdk::ISettingsProvider::Value::Value(float x, float y, float z) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#acd744c00433c524a120bb97fcb0694e9',1,'fsdk::ISettingsProvider::Value::Value(float x, float y, float z, float w) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aa0d8c8295aa8659f811339346676afda',1,'fsdk::ISettingsProvider::Value::Value(const char *string) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#ab99aac88b065b701b60fa4fbe2ec0b72',1,'fsdk::ISettingsProvider::Value::Value(const Rect &rect) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#aac66334b8d4bb178545ae4821d2451a6',1,'fsdk::ISettingsProvider::Value::Value(const Size &size) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a44bd12725bb7ead2c5c8dfbd53001fd5',1,'fsdk::ISettingsProvider::Value::Value(const Point2f &point) noexcept'],['../structfsdk_1_1_i_settings_provider_1_1_value.html#a253a8ea6fa125871c60351d1488a8ef7',1,'fsdk::ISettingsProvider::Value::Value(bool x) noexcept']]], + ['vector2',['Vector2',['../structfsdk_1_1_vector2.html#a57e66b5d143530872dd97cebf9d4f612',1,'fsdk::Vector2::Vector2() noexcept'],['../structfsdk_1_1_vector2.html#ab3c0e3b1d901a7b2ce1c6adca6ea52ef',1,'fsdk::Vector2::Vector2(T x_) noexcept'],['../structfsdk_1_1_vector2.html#a917588f75f38aae344e68dc2716d4d1f',1,'fsdk::Vector2::Vector2(T x_, T y_) noexcept'],['../structfsdk_1_1_vector2.html#aa07680773448e02a42ce2732888bc695',1,'fsdk::Vector2::Vector2(const Vector2< Other > &other) noexcept']]] +]; diff --git a/doc/fsdk/html/search/functions_77.html b/doc/fsdk/html/search/functions_77.html new file mode 100644 index 0000000..26195f0 --- /dev/null +++ b/doc/fsdk/html/search/functions_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_77.js b/doc/fsdk/html/search/functions_77.js new file mode 100644 index 0000000..3fa72cf --- /dev/null +++ b/doc/fsdk/html/search/functions_77.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['wait',['wait',['../classfsdk_1_1_future.html#a7e85628150597362aad032ea8029dcf9',1,'fsdk::Future']]], + ['waitfor',['waitFor',['../classfsdk_1_1_future.html#ab1da1098643943411046bbe6a718fe74',1,'fsdk::Future']]], + ['warp',['warp',['../structfsdk_1_1_i_human_warper.html#a9b838530778bb1133fef48b524ce3770',1,'fsdk::IHumanWarper::warp(const Image image, const Detection &detection, Image &transformedImage) const noexcept=0'],['../structfsdk_1_1_i_human_warper.html#af7340f0338893b20f3559543c94fc8b9',1,'fsdk::IHumanWarper::warp(Span< const Image > images, Span< const Detection > detections, Span< Image > transformedImages) const noexcept=0'],['../structfsdk_1_1_i_warper.html#ac1445d1b93d7f5713907839abdc990b1',1,'fsdk::IWarper::warp(const Image &image, const Transformation &transformation, Image &transformedImage) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a32bf26ffe79f9910f495eba4778d5c81',1,'fsdk::IWarper::warp(Span< const Image > images, Span< const Transformation > transformations, Span< Image > transformedImages) const noexcept=0'],['../structfsdk_1_1_i_warper.html#a3fdd8dd219fb6fdbe5dfd71e5833893d',1,'fsdk::IWarper::warp(const Landmarks5 &landmarks, const Transformation &transformation, Landmarks5 &transformedLandmarks) const noexcept=0'],['../structfsdk_1_1_i_warper.html#afff8929ae7ea37b52d2a3e2b2d27efb7',1,'fsdk::IWarper::warp(const Landmarks68 &landmarks68, const Transformation &transformation, Landmarks68 &transformedLandmarks68) const noexcept=0']]], + ['warpasync',['warpAsync',['../structfsdk_1_1_i_warper.html#a384238fd902cbf424f1ec141e81b6927',1,'fsdk::IWarper']]], + ['what',['what',['../structfsdk_1_1_result.html#a41988070a3ccb7478b18f6c4fb4779f5',1,'fsdk::Result']]], + ['write',['write',['../structfsdk_1_1_i_archive.html#a8c48b5099bee7f93b069cc7a9901ba3e',1,'fsdk::IArchive']]] +]; diff --git a/doc/fsdk/html/search/functions_7e.html b/doc/fsdk/html/search/functions_7e.html new file mode 100644 index 0000000..6a4931a --- /dev/null +++ b/doc/fsdk/html/search/functions_7e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/functions_7e.js b/doc/fsdk/html/search/functions_7e.js new file mode 100644 index 0000000..d8f1207 --- /dev/null +++ b/doc/fsdk/html/search/functions_7e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eref',['~Ref',['../structfsdk_1_1_ref.html#aa1d9bbc7d476649947142015f22fa7c7',1,'fsdk::Ref']]] +]; diff --git a/doc/fsdk/html/search/groups_64.html b/doc/fsdk/html/search/groups_64.html new file mode 100644 index 0000000..280e5e9 --- /dev/null +++ b/doc/fsdk/html/search/groups_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/groups_64.js b/doc/fsdk/html/search/groups_64.js new file mode 100644 index 0000000..5368a63 --- /dev/null +++ b/doc/fsdk/html/search/groups_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['descriptor_20extractor',['Descriptor extractor',['../group___descriptor_processing_group.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/groups_66.html b/doc/fsdk/html/search/groups_66.html new file mode 100644 index 0000000..6a4a9e8 --- /dev/null +++ b/doc/fsdk/html/search/groups_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/groups_66.js b/doc/fsdk/html/search/groups_66.js new file mode 100644 index 0000000..e7cd6fa --- /dev/null +++ b/doc/fsdk/html/search/groups_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['face_20detector_2e',['Face detector.',['../group___detector_group.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/groups_73.html b/doc/fsdk/html/search/groups_73.html new file mode 100644 index 0000000..5f54eb0 --- /dev/null +++ b/doc/fsdk/html/search/groups_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/groups_73.js b/doc/fsdk/html/search/groups_73.js new file mode 100644 index 0000000..ec0343d --- /dev/null +++ b/doc/fsdk/html/search/groups_73.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sdk_20core_20interfaces',['SDK core interfaces',['../group___core_group.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/groups_76.html b/doc/fsdk/html/search/groups_76.html new file mode 100644 index 0000000..58ee95f --- /dev/null +++ b/doc/fsdk/html/search/groups_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/groups_76.js b/doc/fsdk/html/search/groups_76.js new file mode 100644 index 0000000..3de388e --- /dev/null +++ b/doc/fsdk/html/search/groups_76.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['version',['Version',['../group___version_group.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/mag_sel.png b/doc/fsdk/html/search/mag_sel.png new file mode 100644 index 0000000..81f6040 Binary files /dev/null and b/doc/fsdk/html/search/mag_sel.png differ diff --git a/doc/fsdk/html/search/namespaces_66.html b/doc/fsdk/html/search/namespaces_66.html new file mode 100644 index 0000000..8b709d2 --- /dev/null +++ b/doc/fsdk/html/search/namespaces_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/namespaces_66.js b/doc/fsdk/html/search/namespaces_66.js new file mode 100644 index 0000000..69a0a6a --- /dev/null +++ b/doc/fsdk/html/search/namespaces_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fsdk',['fsdk',['../namespacefsdk.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/nomatches.html b/doc/fsdk/html/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/doc/fsdk/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/doc/fsdk/html/search/pages_6c.html b/doc/fsdk/html/search/pages_6c.html new file mode 100644 index 0000000..a7057a0 --- /dev/null +++ b/doc/fsdk/html/search/pages_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/pages_6c.js b/doc/fsdk/html/search/pages_6c.js new file mode 100644 index 0000000..1e4c612 --- /dev/null +++ b/doc/fsdk/html/search/pages_6c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['luna_20sdk',['LUNA SDK',['../index.html',1,'']]] +]; diff --git a/doc/fsdk/html/search/search.css b/doc/fsdk/html/search/search.css new file mode 100644 index 0000000..4d7612f --- /dev/null +++ b/doc/fsdk/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/doc/fsdk/html/search/search.js b/doc/fsdk/html/search/search.js new file mode 100644 index 0000000..f3b8c1a --- /dev/null +++ b/doc/fsdk/html/search/search.js @@ -0,0 +1,817 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111011111111111111100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111011011110111110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101001001000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111101011101101111110000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100111011001111111100111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111011001000100101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111001101100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 8: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111001111101111100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 9: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 10: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101000000000000100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 11: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "namespaces", + 3: "files", + 4: "functions", + 5: "variables", + 6: "typedefs", + 7: "enums", + 8: "enumvalues", + 9: "defines", + 10: "groups", + 11: "pages" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var hexCode; + if (code<16) + { + hexCode="0"+code.toString(16); + } + else + { + hexCode=code.toString(16); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') + { + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_64.js b/doc/fsdk/html/search/typedefs_64.js new file mode 100644 index 0000000..d940b8d --- /dev/null +++ b/doc/fsdk/html/search/typedefs_64.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['datatype',['DataType',['../classfsdk_1_1_future.html#a38f572195de92595cbc6c847fb7470ec',1,'fsdk::Future::DataType()'],['../classfsdk_1_1_promise.html#a289da90b035b98d71ff87b366523d970',1,'fsdk::Promise::DataType()']]], + ['descriptorid',['DescriptorId',['../namespacefsdk.html#a26299f35531f7c5d4713b627c70248cb',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/typedefs_65.html b/doc/fsdk/html/search/typedefs_65.html new file mode 100644 index 0000000..d352e98 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_65.js b/doc/fsdk/html/search/typedefs_65.js new file mode 100644 index 0000000..0b43c0e --- /dev/null +++ b/doc/fsdk/html/search/typedefs_65.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['enumtype',['EnumType',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a35a0a5551c5758edc7734354ca82b531',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::EnumType()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a48cc288d6f34cf1f653b309d1451bd94',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::EnumType()']]], + ['error',['Error',['../classfsdk_1_1_future.html#a9a5efae2498601862b9514b6d58661c6',1,'fsdk::Future::Error()'],['../classfsdk_1_1_promise.html#ae3660c93bae2da9120c11546f132a87e',1,'fsdk::Promise::Error()']]], + ['errortype',['ErrorType',['../structfsdk_1_1_result.html#a38653c59ecb8bfaa04caa5a77f4df3f0',1,'fsdk::Result']]], + ['estimationbatch',['EstimationBatch',['../structfsdk_1_1_i_best_shot_quality_estimator.html#a8a8235d79f299897ea594055891b6c55',1,'fsdk::IBestShotQualityEstimator']]], + ['eyelidlandmarks',['EyelidLandmarks',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a377631250d385dd4620cff0c265dc02c',1,'fsdk::EyesEstimation::EyeAttributes']]] +]; diff --git a/doc/fsdk/html/search/typedefs_66.html b/doc/fsdk/html/search/typedefs_66.html new file mode 100644 index 0000000..9356767 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_66.js b/doc/fsdk/html/search/typedefs_66.js new file mode 100644 index 0000000..b4b1990 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_66.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['facebatchresult',['FaceBatchResult',['../structfsdk_1_1_i_detector.html#ad1a6d103e55a64c4e0b4eb02478e64cd',1,'fsdk::IDetector']]], + ['futureresult',['FutureResult',['../structfsdk_1_1_i_descriptor_extractor.html#a99a4f2d66cd4fc28a69cd02b9348817c',1,'fsdk::IDescriptorExtractor']]] +]; diff --git a/doc/fsdk/html/search/typedefs_68.html b/doc/fsdk/html/search/typedefs_68.html new file mode 100644 index 0000000..431907a --- /dev/null +++ b/doc/fsdk/html/search/typedefs_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_68.js b/doc/fsdk/html/search/typedefs_68.js new file mode 100644 index 0000000..c30d7fe --- /dev/null +++ b/doc/fsdk/html/search/typedefs_68.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['humanlandmarks17',['HumanLandmarks17',['../namespacefsdk.html#a37f1a8d095fe25030004f8e98a36ad05',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/typedefs_69.html b/doc/fsdk/html/search/typedefs_69.html new file mode 100644 index 0000000..ee98159 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_69.js b/doc/fsdk/html/search/typedefs_69.js new file mode 100644 index 0000000..7e14c1c --- /dev/null +++ b/doc/fsdk/html/search/typedefs_69.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['imagebatch',['ImageBatch',['../structfsdk_1_1_i_warper.html#ab13e3ac4b4ae69fafe86d10f94de8e64',1,'fsdk::IWarper']]], + ['imagetype',['ImageType',['../namespacefsdk.html#a4d89d83d3318f49213f00cba97193a61',1,'fsdk']]], + ['irislandmarks',['IrisLandmarks',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a2dd36e58e1788352fa5f668c25403b34',1,'fsdk::EyesEstimation::EyeAttributes']]] +]; diff --git a/doc/fsdk/html/search/typedefs_6c.html b/doc/fsdk/html/search/typedefs_6c.html new file mode 100644 index 0000000..9284bc6 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_6c.js b/doc/fsdk/html/search/typedefs_6c.js new file mode 100644 index 0000000..0b55658 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_6c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['landmark',['Landmark',['../namespacefsdk.html#a692dcb7d0ad1ef51eb430a6b55da866c',1,'fsdk']]], + ['landmarks5',['Landmarks5',['../namespacefsdk.html#a0a3e30b962a139638d2dda303607ecb7',1,'fsdk']]], + ['landmarks68',['Landmarks68',['../namespacefsdk.html#ab52d53c637c4ef74c6e6da35908ad791',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/typedefs_70.html b/doc/fsdk/html/search/typedefs_70.html new file mode 100644 index 0000000..f80c204 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_70.js b/doc/fsdk/html/search/typedefs_70.js new file mode 100644 index 0000000..c5b8cdf --- /dev/null +++ b/doc/fsdk/html/search/typedefs_70.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['point2d',['Point2d',['../namespacefsdk.html#aba867311a64103492ac6a67cd44e1245',1,'fsdk']]], + ['point2f',['Point2f',['../namespacefsdk.html#a274ca67e9b2c2f489ea8b0ef37fe67e2',1,'fsdk']]], + ['point2i',['Point2i',['../namespacefsdk.html#abc92bf6fd92f16b2d9c8e78a85838bcd',1,'fsdk']]], + ['point2u',['Point2u',['../namespacefsdk.html#a2fbe78803751bce88a5190504844a996',1,'fsdk']]], + ['point2us',['Point2us',['../namespacefsdk.html#ae4534c3469a5004e0fea3c403e7f7c58',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/typedefs_73.html b/doc/fsdk/html/search/typedefs_73.html new file mode 100644 index 0000000..f468e5a --- /dev/null +++ b/doc/fsdk/html/search/typedefs_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_73.js b/doc/fsdk/html/search/typedefs_73.js new file mode 100644 index 0000000..950c40f --- /dev/null +++ b/doc/fsdk/html/search/typedefs_73.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['size',['Size',['../namespacefsdk.html#a77eb62991e30a65164c055b3e518defd',1,'fsdk']]] +]; diff --git a/doc/fsdk/html/search/typedefs_75.html b/doc/fsdk/html/search/typedefs_75.html new file mode 100644 index 0000000..c0d6ee3 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_75.js b/doc/fsdk/html/search/typedefs_75.js new file mode 100644 index 0000000..c36ee60 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_75.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['usec',['USec',['../classfsdk_1_1_future.html#ab792dd0d1b8eac18d3a0d875d215575f',1,'fsdk::Future']]] +]; diff --git a/doc/fsdk/html/search/typedefs_76.html b/doc/fsdk/html/search/typedefs_76.html new file mode 100644 index 0000000..420d4d0 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/typedefs_76.js b/doc/fsdk/html/search/typedefs_76.js new file mode 100644 index 0000000..6a4ccb1 --- /dev/null +++ b/doc/fsdk/html/search/typedefs_76.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['valuetype',['ValueType',['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ad45cf40fedbe9fec64aa87810f8654c2',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ValueType()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aed241c8fb37877f331a4a225090dd2db',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ValueType()']]] +]; diff --git a/doc/fsdk/html/search/variables_61.html b/doc/fsdk/html/search/variables_61.html new file mode 100644 index 0000000..3587551 --- /dev/null +++ b/doc/fsdk/html/search/variables_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_61.js b/doc/fsdk/html/search/variables_61.js new file mode 100644 index 0000000..ec656f3 --- /dev/null +++ b/doc/fsdk/html/search/variables_61.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ags',['ags',['../structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#ad62dfcec240364328eff4eb65b75ba72',1,'fsdk::IBestShotQualityEstimator::EstimationResult']]] +]; diff --git a/doc/fsdk/html/search/variables_64.html b/doc/fsdk/html/search/variables_64.html new file mode 100644 index 0000000..89296ec --- /dev/null +++ b/doc/fsdk/html/search/variables_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_64.js b/doc/fsdk/html/search/variables_64.js new file mode 100644 index 0000000..aa23197 --- /dev/null +++ b/doc/fsdk/html/search/variables_64.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['data',['data',['../structfsdk_1_1_sub_image.html#a60484aef73eab8df8b2fc8c20ef5f9fe',1,'fsdk::SubImage']]], + ['distance',['distance',['../structfsdk_1_1_matching_result.html#a51e3137806e9938aa3b70557cbf1628b',1,'fsdk::MatchingResult']]] +]; diff --git a/doc/fsdk/html/search/variables_65.html b/doc/fsdk/html/search/variables_65.html new file mode 100644 index 0000000..4ccb91b --- /dev/null +++ b/doc/fsdk/html/search/variables_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_65.js b/doc/fsdk/html/search/variables_65.js new file mode 100644 index 0000000..96569aa --- /dev/null +++ b/doc/fsdk/html/search/variables_65.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['eyelid',['eyelid',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a507fc6337b07a0e73d0d1bda084ebf2c',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['eyelidlandmarkscount',['eyelidLandmarksCount',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#af0026fefb47cb591f0c4524deae5fd11',1,'fsdk::EyesEstimation::EyeAttributes']]] +]; diff --git a/doc/fsdk/html/search/variables_66.html b/doc/fsdk/html/search/variables_66.html new file mode 100644 index 0000000..802fdbc --- /dev/null +++ b/doc/fsdk/html/search/variables_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_66.js b/doc/fsdk/html/search/variables_66.js new file mode 100644 index 0000000..59e3e5b --- /dev/null +++ b/doc/fsdk/html/search/variables_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['format',['format',['../structfsdk_1_1_sub_image.html#abe52716506d7e423d133507007d52a89',1,'fsdk::SubImage']]] +]; diff --git a/doc/fsdk/html/search/variables_68.html b/doc/fsdk/html/search/variables_68.html new file mode 100644 index 0000000..aabcfa0 --- /dev/null +++ b/doc/fsdk/html/search/variables_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_68.js b/doc/fsdk/html/search/variables_68.js new file mode 100644 index 0000000..96f2101 --- /dev/null +++ b/doc/fsdk/html/search/variables_68.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['headpose',['headPose',['../structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#a873c696da443a1761142d0b2be038d1f',1,'fsdk::IBestShotQualityEstimator::EstimationResult']]], + ['height',['height',['../structfsdk_1_1_base_rect.html#a98b63fedf0ccd2954ee2d27a6253e9af',1,'fsdk::BaseRect::height()'],['../structfsdk_1_1_sub_image.html#a5355e143c9d18bfad08247d86c15db3a',1,'fsdk::SubImage::height()']]] +]; diff --git a/doc/fsdk/html/search/variables_69.html b/doc/fsdk/html/search/variables_69.html new file mode 100644 index 0000000..442bf33 --- /dev/null +++ b/doc/fsdk/html/search/variables_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_69.js b/doc/fsdk/html/search/variables_69.js new file mode 100644 index 0000000..d3d5553 --- /dev/null +++ b/doc/fsdk/html/search/variables_69.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['index',['index',['../structfsdk_1_1_search_result.html#a01dc475d417c24d5a5d21f3d5b4fd4bb',1,'fsdk::SearchResult']]], + ['iris',['iris',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a085c2eba493874a622cb58249534fc5b',1,'fsdk::EyesEstimation::EyeAttributes']]], + ['irislandmarkscount',['irisLandmarksCount',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#afbab26b288e95a01a6a9829eacd3eaa6',1,'fsdk::EyesEstimation::EyeAttributes']]] +]; diff --git a/doc/fsdk/html/search/variables_6c.html b/doc/fsdk/html/search/variables_6c.html new file mode 100644 index 0000000..c136114 --- /dev/null +++ b/doc/fsdk/html/search/variables_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_6c.js b/doc/fsdk/html/search/variables_6c.js new file mode 100644 index 0000000..40f9697 --- /dev/null +++ b/doc/fsdk/html/search/variables_6c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['landmarks',['landmarks',['../structfsdk_1_1_landmarks.html#a9ef9034a3e49efa99333b0b01d707fd7',1,'fsdk::Landmarks']]], + ['lefteye',['leftEye',['../structfsdk_1_1_eyes_estimation.html#ade7c195977cbdd07a125a06450ef3987',1,'fsdk::EyesEstimation']]] +]; diff --git a/doc/fsdk/html/search/variables_6d.html b/doc/fsdk/html/search/variables_6d.html new file mode 100644 index 0000000..32612b6 --- /dev/null +++ b/doc/fsdk/html/search/variables_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_6d.js b/doc/fsdk/html/search/variables_6d.js new file mode 100644 index 0000000..b8a9fa7 --- /dev/null +++ b/doc/fsdk/html/search/variables_6d.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['m_5fbytes',['m_bytes',['../structfsdk_1_1_sizer.html#a1ad20aaecf643c77e32067ac7619e59a',1,'fsdk::Sizer']]], + ['m_5fdata',['m_data',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a2b853c76f9e36682a6955399565855d3',1,'fsdk::ISettingsProvider::Value::m_data()'],['../structfsdk_1_1_image.html#a378b11d6fc5fe3baa1f2e1a6fc0c7e68',1,'fsdk::Image::m_data()']]], + ['m_5fdesc',['m_desc',['../structfsdk_1_1_i_settings_provider_1_1_desc.html#acca51618f5f65a44723b8396207535be',1,'fsdk::ISettingsProvider::Desc::m_desc()'],['../structfsdk_1_1_i_settings_provider_1_1_entry.html#ab62a7d512a201be88694b03f89a4f44a',1,'fsdk::ISettingsProvider::Entry::m_desc()']]], + ['m_5fdeviceid',['m_deviceId',['../structfsdk_1_1_image.html#a8435a72e723aa1b3c818867457276c9a',1,'fsdk::Image']]], + ['m_5ffloat1',['m_float1',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a77dc14765597fe4cf65da827a2c36d01',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ffloat2',['m_float2',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#ab756fa69de93422f525aede6fd4d5dcb',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ffloat3',['m_float3',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a5ec6030828e645853be71394e3d22e8e',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ffloat4',['m_float4',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aec1196921ed7470f8869d930160883cf',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fformat',['m_format',['../structfsdk_1_1_image.html#aefe4793bcc5d38d828d5ead04cb4f75e',1,'fsdk::Image']]], + ['m_5fheight',['m_height',['../structfsdk_1_1_image.html#aa4dee2d753540eb26aac388ed8d94ce9',1,'fsdk::Image']]], + ['m_5fint1',['m_int1',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a19bebc0b9e17e194c981355ce0bfa90a',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fint2',['m_int2',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a9b685dfe0da1654cdbc72215f2db04ed',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fint3',['m_int3',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#afa87698cc37557d1cae0bdafb2663ec4',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fint4',['m_int4',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a3e4b62bfb96be90b38126d7af628fef5',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5fparameter',['m_parameter',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a4a9ac00ecf0318698499bc7ca5a3dd6d',1,'fsdk::ISettingsProvider::Key']]], + ['m_5fptr',['m_ptr',['../structfsdk_1_1_ref_base.html#ab57bc3fc17e734e742c0b47ec60573ba',1,'fsdk::RefBase']]], + ['m_5fref',['m_ref',['../structfsdk_1_1_image.html#a4309931e1a59c9b88469a5633df36769',1,'fsdk::Image']]], + ['m_5fsection',['m_section',['../structfsdk_1_1_i_settings_provider_1_1_key.html#a47c4fb20308ffab842f8c6b8771482c2',1,'fsdk::ISettingsProvider::Key']]], + ['m_5fstring',['m_string',['../unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aea8dd6b42c5e9ffa5ffebfb8e31e5b23',1,'fsdk::ISettingsProvider::Value::Data']]], + ['m_5ftype',['m_type',['../structfsdk_1_1_i_settings_provider_1_1_value.html#a2eacc17be55f5b7c45b0b14dae8dabed',1,'fsdk::ISettingsProvider::Value::m_type()'],['../structfsdk_1_1_format.html#a708cc1ef87c456417c678e7720a52159',1,'fsdk::Format::m_type()']]], + ['m_5fvalue',['m_value',['../structfsdk_1_1_i_settings_provider_1_1_entry.html#ac2bba965cd886b1f53b60ddf24f35df3',1,'fsdk::ISettingsProvider::Entry::m_value()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#afef4906788a7f335f4b5a2a372551f8d',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::m_value()'],['../structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aa0af562d57def46e9945664991cabb73',1,'fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::m_value()']]], + ['m_5fwidth',['m_width',['../structfsdk_1_1_image.html#a32c6a6ef3700e9babb0943ce4aac6155',1,'fsdk::Image']]], + ['major',['major',['../structfsdk_1_1_version.html#aa51eaf974da4d0a2fdc3bd41bd43df36',1,'fsdk::Version']]], + ['masknotinplace',['maskNotInPlace',['../structfsdk_1_1_medical_mask_estimation_extended.html#aa6a5ed18f25e9998ad1dd2fc280a3121',1,'fsdk::MedicalMaskEstimationExtended']]], + ['maskscore',['maskScore',['../structfsdk_1_1_medical_mask_estimation.html#ad47aa0e8d3c14f07771adf4c6eb72624',1,'fsdk::MedicalMaskEstimation::maskScore()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#a6c75dab32127e86880e8dd9726a9cd7f',1,'fsdk::MedicalMaskEstimationExtended::maskScore()']]], + ['masktype',['maskType',['../structfsdk_1_1_medical_mask_estimation.html#a54b478e726656c252899b14719266dff',1,'fsdk::MedicalMaskEstimation']]], + ['minor',['minor',['../structfsdk_1_1_version.html#a6ac214dbaed6cb0c9af597a0ce45fa73',1,'fsdk::Version']]] +]; diff --git a/doc/fsdk/html/search/variables_6e.html b/doc/fsdk/html/search/variables_6e.html new file mode 100644 index 0000000..ca7052c --- /dev/null +++ b/doc/fsdk/html/search/variables_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_6e.js b/doc/fsdk/html/search/variables_6e.js new file mode 100644 index 0000000..f452270 --- /dev/null +++ b/doc/fsdk/html/search/variables_6e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nomaskscore',['noMaskScore',['../structfsdk_1_1_medical_mask_estimation.html#aaeaee6d859c996eaf743b6bd79a0309d',1,'fsdk::MedicalMaskEstimation::noMaskScore()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#a03c165564de35173c4ff7f861ab52df4',1,'fsdk::MedicalMaskEstimationExtended::noMaskScore()']]] +]; diff --git a/doc/fsdk/html/search/variables_6f.html b/doc/fsdk/html/search/variables_6f.html new file mode 100644 index 0000000..5671b03 --- /dev/null +++ b/doc/fsdk/html/search/variables_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_6f.js b/doc/fsdk/html/search/variables_6f.js new file mode 100644 index 0000000..0169e79 --- /dev/null +++ b/doc/fsdk/html/search/variables_6f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['occludedfacescore',['occludedFaceScore',['../structfsdk_1_1_medical_mask_estimation.html#acc4a4f5b380c5e6fb2bfcc7081a60c49',1,'fsdk::MedicalMaskEstimation::occludedFaceScore()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#ad7e48aec06e8b0b3d7ebdced0451ff59',1,'fsdk::MedicalMaskEstimationExtended::occludedFaceScore()']]] +]; diff --git a/doc/fsdk/html/search/variables_70.html b/doc/fsdk/html/search/variables_70.html new file mode 100644 index 0000000..e36abe9 --- /dev/null +++ b/doc/fsdk/html/search/variables_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_70.js b/doc/fsdk/html/search/variables_70.js new file mode 100644 index 0000000..dc41527 --- /dev/null +++ b/doc/fsdk/html/search/variables_70.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['patch',['patch',['../structfsdk_1_1_version.html#a720d91d998895868039802a5e26f0df2',1,'fsdk::Version']]], + ['pitch',['pitch',['../structfsdk_1_1_head_pose_estimation.html#a37c44c6f403d866d48611784b1d548ce',1,'fsdk::HeadPoseEstimation::pitch()'],['../structfsdk_1_1_sub_image.html#ac7b1e40c980a97e6eff3fb63d1823b6f',1,'fsdk::SubImage::pitch()']]], + ['point',['point',['../structfsdk_1_1_human_landmark.html#a56402856056aed0b4b87ef66798ee92a',1,'fsdk::HumanLandmark']]] +]; diff --git a/doc/fsdk/html/search/variables_71.html b/doc/fsdk/html/search/variables_71.html new file mode 100644 index 0000000..920bc00 --- /dev/null +++ b/doc/fsdk/html/search/variables_71.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_71.js b/doc/fsdk/html/search/variables_71.js new file mode 100644 index 0000000..326a590 --- /dev/null +++ b/doc/fsdk/html/search/variables_71.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['qualityscore',['qualityScore',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a2454222f5dc14f519d571798ad0311a8',1,'fsdk::LivenessOneShotRGBEstimation']]] +]; diff --git a/doc/fsdk/html/search/variables_72.html b/doc/fsdk/html/search/variables_72.html new file mode 100644 index 0000000..0bf4f34 --- /dev/null +++ b/doc/fsdk/html/search/variables_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_72.js b/doc/fsdk/html/search/variables_72.js new file mode 100644 index 0000000..5b6cb7b --- /dev/null +++ b/doc/fsdk/html/search/variables_72.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['result',['result',['../structfsdk_1_1_medical_mask_estimation.html#a5e6d266d2125862f965e1067e92b7b90',1,'fsdk::MedicalMaskEstimation::result()'],['../structfsdk_1_1_medical_mask_estimation_extended.html#a2934d2e1c5106b25b2b58495016afc3e',1,'fsdk::MedicalMaskEstimationExtended::result()']]], + ['righteye',['rightEye',['../structfsdk_1_1_eyes_estimation.html#a8d8d8aeeba833fdc9e92cc191999a4e0',1,'fsdk::EyesEstimation']]], + ['roll',['roll',['../structfsdk_1_1_head_pose_estimation.html#af380243a75d2fbc23a3504014f2998ce',1,'fsdk::HeadPoseEstimation']]] +]; diff --git a/doc/fsdk/html/search/variables_73.html b/doc/fsdk/html/search/variables_73.html new file mode 100644 index 0000000..234c326 --- /dev/null +++ b/doc/fsdk/html/search/variables_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_73.js b/doc/fsdk/html/search/variables_73.js new file mode 100644 index 0000000..0fce4a0 --- /dev/null +++ b/doc/fsdk/html/search/variables_73.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['score',['score',['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#ab04c44ea4803007fed4af1267fb5b729',1,'fsdk::LivenessOneShotRGBEstimation::score()'],['../structfsdk_1_1_human_landmark.html#afbe027ef46796ecfa9e86d9c0f361159',1,'fsdk::HumanLandmark::score()']]], + ['scores',['scores',['../structfsdk_1_1_medical_mask_estimation.html#add99f3ecb4dbac4955949273cc9aa31a',1,'fsdk::MedicalMaskEstimation']]], + ['similarity',['similarity',['../structfsdk_1_1_matching_result.html#ae8b080ed7da80dd6848de80be9ffce51',1,'fsdk::MatchingResult']]], + ['state',['state',['../structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a53ed592dc7a11f3c5061286d8c582e5e',1,'fsdk::EyesEstimation::EyeAttributes::state()'],['../structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#aeced46122e807a731b03b28f345f211f',1,'fsdk::LivenessOneShotRGBEstimation::state()']]] +]; diff --git a/doc/fsdk/html/search/variables_76.html b/doc/fsdk/html/search/variables_76.html new file mode 100644 index 0000000..25f0289 --- /dev/null +++ b/doc/fsdk/html/search/variables_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_76.js b/doc/fsdk/html/search/variables_76.js new file mode 100644 index 0000000..4e8c1f2 --- /dev/null +++ b/doc/fsdk/html/search/variables_76.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['visible',['visible',['../structfsdk_1_1_human_landmark.html#aea7582c90d90401c1ad156c26b697a8e',1,'fsdk::HumanLandmark']]] +]; diff --git a/doc/fsdk/html/search/variables_77.html b/doc/fsdk/html/search/variables_77.html new file mode 100644 index 0000000..66aafb9 --- /dev/null +++ b/doc/fsdk/html/search/variables_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_77.js b/doc/fsdk/html/search/variables_77.js new file mode 100644 index 0000000..a83cc07 --- /dev/null +++ b/doc/fsdk/html/search/variables_77.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['width',['width',['../structfsdk_1_1_base_rect.html#adf33ed349c426a71e849209ecd1f8fae',1,'fsdk::BaseRect::width()'],['../structfsdk_1_1_sub_image.html#a5a08fac1419183559472faab4ca2534e',1,'fsdk::SubImage::width()']]] +]; diff --git a/doc/fsdk/html/search/variables_78.html b/doc/fsdk/html/search/variables_78.html new file mode 100644 index 0000000..cc29cf5 --- /dev/null +++ b/doc/fsdk/html/search/variables_78.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_78.js b/doc/fsdk/html/search/variables_78.js new file mode 100644 index 0000000..e273701 --- /dev/null +++ b/doc/fsdk/html/search/variables_78.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['x',['x',['../structfsdk_1_1_base_rect.html#ac2cf58738615562a5e20529b6aa72269',1,'fsdk::BaseRect::x()'],['../structfsdk_1_1_sub_image.html#a57c6dadf79686b6fa00164d7541b84d4',1,'fsdk::SubImage::x()'],['../structfsdk_1_1_vector2.html#a34f9f070bb21a4c86ae186af3ea70c0e',1,'fsdk::Vector2::x()']]] +]; diff --git a/doc/fsdk/html/search/variables_79.html b/doc/fsdk/html/search/variables_79.html new file mode 100644 index 0000000..47b6525 --- /dev/null +++ b/doc/fsdk/html/search/variables_79.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/doc/fsdk/html/search/variables_79.js b/doc/fsdk/html/search/variables_79.js new file mode 100644 index 0000000..6e816cb --- /dev/null +++ b/doc/fsdk/html/search/variables_79.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['y',['y',['../structfsdk_1_1_base_rect.html#ae8d23be3be32108e017d4d309ea94ba7',1,'fsdk::BaseRect::y()'],['../structfsdk_1_1_sub_image.html#a5c5456311bab989a15351104f1ed13b2',1,'fsdk::SubImage::y()'],['../structfsdk_1_1_vector2.html#ae10a702fcc91d74d442734bb050e6763',1,'fsdk::Vector2::y()']]], + ['yaw',['yaw',['../structfsdk_1_1_head_pose_estimation.html#a8c27c471703b619567540389bf5ddd94',1,'fsdk::HeadPoseEstimation']]] +]; diff --git a/doc/fsdk/html/structfsdk_1_1_base_rect-members.html b/doc/fsdk/html/structfsdk_1_1_base_rect-members.html new file mode 100644 index 0000000..9a8e775 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_base_rect-members.html @@ -0,0 +1,170 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::BaseRect< Type > Member List
+
+
+ +

This is the complete list of members for fsdk::BaseRect< Type >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
adjust(Type dx, Type dy, Type dw, Type dh) noexceptfsdk::BaseRect< Type >inline
adjusted(Type dx, Type dy, Type dw, Type dh) const noexceptfsdk::BaseRect< Type >inline
BaseRect() noexceptfsdk::BaseRect< Type >inline
BaseRect(Type x_, Type y_, Type w_, Type h_) noexceptfsdk::BaseRect< Type >inline
BaseRect(const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexceptfsdk::BaseRect< Type >inline
BaseRect(const BaseRect &other) noexceptfsdk::BaseRect< Type >inline
BaseRect(const BaseRect< OtherType > &other) noexcept (defined in fsdk::BaseRect< Type >)fsdk::BaseRect< Type >inline
bottom() const noexceptfsdk::BaseRect< Type >inline
bottomRight() const noexceptfsdk::BaseRect< Type >inline
center() const noexceptfsdk::BaseRect< Type >inline
coords(Type x0, Type y0, Type x1, Type y1) noexceptfsdk::BaseRect< Type >inlinestatic
ElementType typedef (defined in fsdk::BaseRect< Type >)fsdk::BaseRect< Type >
getArea() const noexceptfsdk::BaseRect< Type >inline
heightfsdk::BaseRect< Type >
inside(const BaseRect &other) const noexceptfsdk::BaseRect< Type >inline
intersectionOverFirstRect(const BaseRect &rect1, const BaseRect &rect2)fsdk::BaseRect< Type >inlinestatic
intersectionOverUnion(const BaseRect &rect1, const BaseRect &rect2)fsdk::BaseRect< Type >inlinestatic
isValid() const noexceptfsdk::BaseRect< Type >inline
left() const noexceptfsdk::BaseRect< Type >inline
operator!=(const BaseRect< OtherType > &other) const noexceptfsdk::BaseRect< Type >inline
operator&(const BaseRect &other) const noexceptfsdk::BaseRect< Type >inline
operator&=(const BaseRect &other) noexceptfsdk::BaseRect< Type >inline
operator*(float scaleFactor) const noexceptfsdk::BaseRect< Type >inline
operator+(Vector2< typename BaseRect::ElementType > vec) (defined in fsdk::BaseRect< Type >)fsdk::BaseRect< Type >inline
operator-(Vector2< typename BaseRect::ElementType > vec) (defined in fsdk::BaseRect< Type >)fsdk::BaseRect< Type >inline
operator/(float scaleFactor) const noexceptfsdk::BaseRect< Type >inline
operator=(const BaseRect< OtherType > &other) noexceptfsdk::BaseRect< Type >inline
operator==(const BaseRect< OtherType > &other) const noexceptfsdk::BaseRect< Type >inline
operator|(const BaseRect &other) const noexceptfsdk::BaseRect< Type >inline
operator|=(const BaseRect &other) noexceptfsdk::BaseRect< Type >inline
right() const noexceptfsdk::BaseRect< Type >inline
set(const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexceptfsdk::BaseRect< Type >inline
setBottom(Type b) noexceptfsdk::BaseRect< Type >inline
setLeft(Type l) noexceptfsdk::BaseRect< Type >inline
setRight(Type r) noexceptfsdk::BaseRect< Type >inline
setTop(Type t) noexceptfsdk::BaseRect< Type >inline
size() const noexceptfsdk::BaseRect< Type >inline
top() const noexceptfsdk::BaseRect< Type >inline
topLeft() const noexceptfsdk::BaseRect< Type >inline
widthfsdk::BaseRect< Type >
xfsdk::BaseRect< Type >
yfsdk::BaseRect< Type >
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_base_rect.html b/doc/fsdk/html/structfsdk_1_1_base_rect.html new file mode 100644 index 0000000..e6ba430 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_base_rect.html @@ -0,0 +1,1521 @@ + + + + + + +Face Engine SDK: fsdk::BaseRect< Type > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::BaseRect< Type > Struct Template Reference
+
+
+ +

Rectangle. + More...

+ +

#include <Rect.h>

+ + + + +

+Public Types

+typedef Type ElementType
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

BaseRect () noexcept
 Initializes a default invalid rectangle.
 
 BaseRect (Type x_, Type y_, Type w_, Type h_) noexcept
 Initializes a rectangle with given values. More...
 
 BaseRect (const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexcept
 Initializes a rectangle with given values. More...
 
 BaseRect (const BaseRect &other) noexcept
 Copies another rect. More...
 
+template<typename OtherType >
 BaseRect (const BaseRect< OtherType > &other) noexcept
 
void setLeft (Type l) noexcept
 Set rect left. More...
 
void setTop (Type t) noexcept
 Set rect top. More...
 
void setRight (Type r) noexcept
 Set rect right. More...
 
void setBottom (Type b) noexcept
 Set rect bottom. More...
 
template<typename OtherType >
BaseRectoperator= (const BaseRect< OtherType > &other) noexcept
 Copies another rect. More...
 
template<typename OtherType >
bool operator== (const BaseRect< OtherType > &other) const noexcept
 Checks whether two rects are equal. More...
 
template<typename OtherType >
bool operator!= (const BaseRect< OtherType > &other) const noexcept
 Checks whether two rects are not equal. More...
 
BaseRect operator& (const BaseRect &other) const noexcept
 Returns rect that is intersection of rects. More...
 
BaseRect operator&= (const BaseRect &other) noexcept
 Returns rect that is intersection of rects. More...
 
BaseRect operator| (const BaseRect &other) const noexcept
 Returns minimum area rectangle containing both rects. More...
 
BaseRect operator|= (const BaseRect &other) noexcept
 Returns minimum area rectangle containing both rects. More...
 
BaseRect operator* (float scaleFactor) const noexcept
 Multiplicates Rect scale by specified scale factor. More...
 
BaseRect operator/ (float scaleFactor) const noexcept
 Divides Rect scale by specified scale factor. More...
 
+BaseRect operator+ (Vector2< typename BaseRect::ElementType > vec)
 
+BaseRect operator- (Vector2< typename BaseRect::ElementType > vec)
 
Vector2< Type > size () const noexcept
 Gets rect size (width, height). More...
 
Vector2< Type > topLeft () const noexcept
 Gets rect top-left corner coordinates. More...
 
Vector2< Type > center () const noexcept
 Gets rect center coordinates. More...
 
Vector2< Type > bottomRight () const noexcept
 Gets rect bottom-right corner coordinates. More...
 
Type top () const noexcept
 Gets rect top y coordinate. More...
 
Type bottom () const noexcept
 Gets rect bottom y coordinate. More...
 
Type left () const noexcept
 Gets rect left x coordinate. More...
 
Type right () const noexcept
 Gets rect right x coordinate. More...
 
void set (const Vector2< Type > &topLeft, const Vector2< Type > &bottomRight) noexcept
 Sets rect corner coordinates. More...
 
void adjust (Type dx, Type dy, Type dw, Type dh) noexcept
 Adjusts the rect by given amounts. More...
 
BaseRect adjusted (Type dx, Type dy, Type dw, Type dh) const noexcept
 Copies and adjusts the rect by given amounts. More...
 
Type getArea () const noexcept
 Computes rect area (width x height). More...
 
bool inside (const BaseRect &other) const noexcept
 Checks whether this rect is inside of another rect. More...
 
bool isValid () const noexcept
 Checks whether a rect is valid. More...
 
+ + + + + + + + + + +

+Static Public Member Functions

static BaseRect coords (Type x0, Type y0, Type x1, Type y1) noexcept
 Create new Rect by coordinates. More...
 
static float intersectionOverFirstRect (const BaseRect &rect1, const BaseRect &rect2)
 Calculates rects intersection rate over first rect. More...
 
static float intersectionOverUnion (const BaseRect &rect1, const BaseRect &rect2)
 Calculates rects intersection rate over union. More...
 
+ + + + + + + + + + + + + +

+Public Attributes

+Type x
 Upper left corner x-coordinate.
 
+Type y
 Upper left corner y-coordinate.
 
+Type width
 Rectangle width.
 
+Type height
 Rectangle height.
 
+

Detailed Description

+

template<typename Type>
+struct fsdk::BaseRect< Type >

+ +

Rectangle.

+

Constructor & Destructor Documentation

+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::BaseRect< Type >::BaseRect (Type x_,
Type y_,
Type w_,
Type h_ 
)
+
+inlinenoexcept
+
+ +

Initializes a rectangle with given values.

+
Parameters
+ + + + + +
[in]x_upper left corner x coordinate.
[in]y_upper left corner y coordinate.
[in]w_width.
[in]h_height.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::BaseRect< Type >::BaseRect (const Vector2< Type > & topLeft,
const Vector2< Type > & bottomRight 
)
+
+inlinenoexcept
+
+ +

Initializes a rectangle with given values.

+
Parameters
+ + + +
[in]topLefttop-left corner point.
[in]bottomRightbottom-right corner point.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
fsdk::BaseRect< Type >::BaseRect (const BaseRect< Type > & other)
+
+inlinenoexcept
+
+ +

Copies another rect.

+
Parameters
+ + +
[in]otheranother rect.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::BaseRect< Type >::adjust (Type dx,
Type dy,
Type dw,
Type dh 
)
+
+inlinenoexcept
+
+ +

Adjusts the rect by given amounts.

+
Parameters
+ + + + + +
[in]dxadjustment for upper left corner x coordinate.
[in]dyadjustment for upper left corner y coordinate.
[in]dwadjustment for width.
[in]dhadjustment for height.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseRect fsdk::BaseRect< Type >::adjusted (Type dx,
Type dy,
Type dw,
Type dh 
) const
+
+inlinenoexcept
+
+ +

Copies and adjusts the rect by given amounts.

+
Parameters
+ + + + + +
[in]dxadjustment for upper left corner x coordinate.
[in]dyadjustment for upper left corner y coordinate.
[in]dwadjustment for width.
[in]dhadjustment for height.
+
+
+
Returns
adjusted rect.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Type fsdk::BaseRect< Type >::bottom () const
+
+inlinenoexcept
+
+ +

Gets rect bottom y coordinate.

+
Returns
coordinate.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Vector2<Type> fsdk::BaseRect< Type >::bottomRight () const
+
+inlinenoexcept
+
+ +

Gets rect bottom-right corner coordinates.

+
Returns
coordinates vector.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Vector2<Type> fsdk::BaseRect< Type >::center () const
+
+inlinenoexcept
+
+ +

Gets rect center coordinates.

+
Returns
coordinates vector.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static BaseRect fsdk::BaseRect< Type >::coords (Type x0,
Type y0,
Type x1,
Type y1 
)
+
+inlinestaticnoexcept
+
+ +

Create new Rect by coordinates.

+
Parameters
+ + + + + +
[in]leftcoord.
[in]topcoord.
[in]rightcoord.
[in]bottomcoord.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Type fsdk::BaseRect< Type >::getArea () const
+
+inlinenoexcept
+
+ +

Computes rect area (width x height).

+
Returns
rect area.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
bool fsdk::BaseRect< Type >::inside (const BaseRect< Type > & other) const
+
+inlinenoexcept
+
+ +

Checks whether this rect is inside of another rect.

+
Parameters
+ + +
[in]otherrect to check against.
+
+
+
Returns
true if this rect is inside of another rect, false otherwise.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static float fsdk::BaseRect< Type >::intersectionOverFirstRect (const BaseRect< Type > & rect1,
const BaseRect< Type > & rect2 
)
+
+inlinestatic
+
+ +

Calculates rects intersection rate over first rect.

+
Parameters
+ + + +
[in]rect1first rect
[in]rect2second rect
+
+
+
Returns
intersection rate over first rect
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static float fsdk::BaseRect< Type >::intersectionOverUnion (const BaseRect< Type > & rect1,
const BaseRect< Type > & rect2 
)
+
+inlinestatic
+
+ +

Calculates rects intersection rate over union.

+
Parameters
+ + + +
[in]rect1first rect
[in]rect2second rect
+
+
+
Returns
intersection rate over union
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
bool fsdk::BaseRect< Type >::isValid () const
+
+inlinenoexcept
+
+ +

Checks whether a rect is valid.

+

A rect is considered valid if it has positive width and weight.

+
Returns
true if rect is valid, false otherwise.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Type fsdk::BaseRect< Type >::left () const
+
+inlinenoexcept
+
+ +

Gets rect left x coordinate.

+
Returns
coordinate.
+ +
+
+ +
+
+
+template<typename Type>
+
+template<typename OtherType >
+ + + + + +
+ + + + + + + + +
bool fsdk::BaseRect< Type >::operator!= (const BaseRect< OtherType > & other) const
+
+inlinenoexcept
+
+ +

Checks whether two rects are not equal.

+
Parameters
+ + +
[in]otheranother rect.
+
+
+
Returns
true if rects are not equal, false otherwise.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
BaseRect fsdk::BaseRect< Type >::operator& (const BaseRect< Type > & other) const
+
+inlinenoexcept
+
+ +

Returns rect that is intersection of rects.

+
Parameters
+ + +
[in]otherrectangle
+
+
+
Returns
intersection rectangle
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
BaseRect fsdk::BaseRect< Type >::operator&= (const BaseRect< Type > & other)
+
+inlinenoexcept
+
+ +

Returns rect that is intersection of rects.

+
Parameters
+ + +
[in]otherrectangle
+
+
+
Returns
intersection rectangle
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
BaseRect fsdk::BaseRect< Type >::operator* (float scaleFactor) const
+
+inlinenoexcept
+
+ +

Multiplicates Rect scale by specified scale factor.

+
Parameters
+ + +
[in]scaleFactorto scale rect
+
+
+
Returns
scaled Rect
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
BaseRect fsdk::BaseRect< Type >::operator/ (float scaleFactor) const
+
+inlinenoexcept
+
+ +

Divides Rect scale by specified scale factor.

+
Parameters
+ + +
[in]scaleFactorto scale rect
+
+
+
Returns
scaled Rect
+ +
+
+ +
+
+
+template<typename Type>
+
+template<typename OtherType >
+ + + + + +
+ + + + + + + + +
BaseRect& fsdk::BaseRect< Type >::operator= (const BaseRect< OtherType > & other)
+
+inlinenoexcept
+
+ +

Copies another rect.

+
Parameters
+ + +
[in]otheranother rect.
+
+
+
Returns
rect reference for call chaining.
+ +
+
+ +
+
+
+template<typename Type>
+
+template<typename OtherType >
+ + + + + +
+ + + + + + + + +
bool fsdk::BaseRect< Type >::operator== (const BaseRect< OtherType > & other) const
+
+inlinenoexcept
+
+ +

Checks whether two rects are equal.

+
Parameters
+ + +
[in]otheranother rect.
+
+
+
Returns
true if rects are equal, false otherwise.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
BaseRect fsdk::BaseRect< Type >::operator| (const BaseRect< Type > & other) const
+
+inlinenoexcept
+
+ +

Returns minimum area rectangle containing both rects.

+
Parameters
+ + +
[in]otherrectangle
+
+
+
Returns
minimum area rectangle
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
BaseRect fsdk::BaseRect< Type >::operator|= (const BaseRect< Type > & other)
+
+inlinenoexcept
+
+ +

Returns minimum area rectangle containing both rects.

+
Parameters
+ + +
[in]otherrectangle
+
+
+
Returns
minimum area rectangle
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Type fsdk::BaseRect< Type >::right () const
+
+inlinenoexcept
+
+ +

Gets rect right x coordinate.

+
Returns
coordinate.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void fsdk::BaseRect< Type >::set (const Vector2< Type > & topLeft,
const Vector2< Type > & bottomRight 
)
+
+inlinenoexcept
+
+ +

Sets rect corner coordinates.

+
Parameters
+ + + +
[in]topLefttop-left corner point.
[in]bottomRightbottom-right corner point.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
void fsdk::BaseRect< Type >::setBottom (Type b)
+
+inlinenoexcept
+
+ +

Set rect bottom.

+
Parameters
+ + +
bbottom.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
void fsdk::BaseRect< Type >::setLeft (Type l)
+
+inlinenoexcept
+
+ +

Set rect left.

+
Parameters
+ + +
lleft.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
void fsdk::BaseRect< Type >::setRight (Type r)
+
+inlinenoexcept
+
+ +

Set rect right.

+
Parameters
+ + +
rright.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + + +
void fsdk::BaseRect< Type >::setTop (Type t)
+
+inlinenoexcept
+
+ +

Set rect top.

+
Parameters
+ + +
ttop.
+
+
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Vector2<Type> fsdk::BaseRect< Type >::size () const
+
+inlinenoexcept
+
+ +

Gets rect size (width, height).

+
Returns
rect size.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Type fsdk::BaseRect< Type >::top () const
+
+inlinenoexcept
+
+ +

Gets rect top y coordinate.

+
Returns
coordinate.
+ +
+
+ +
+
+
+template<typename Type>
+ + + + + +
+ + + + + + + +
Vector2<Type> fsdk::BaseRect< Type >::topLeft () const
+
+inlinenoexcept
+
+ +

Gets rect top-left corner coordinates.

+
Returns
coordinates vector.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_base_rect.js b/doc/fsdk/html/structfsdk_1_1_base_rect.js new file mode 100644 index 0000000..f289685 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_base_rect.js @@ -0,0 +1,42 @@ +var structfsdk_1_1_base_rect = +[ + [ "ElementType", "structfsdk_1_1_base_rect.html#a0fe0fbffc55a569c9ce784a78060c1da", null ], + [ "BaseRect", "structfsdk_1_1_base_rect.html#a4a55ea050c7506e3e9c9540e010285e4", null ], + [ "BaseRect", "structfsdk_1_1_base_rect.html#a3699859a25f6bcb74baad0d20973447e", null ], + [ "BaseRect", "structfsdk_1_1_base_rect.html#ab49e0cf0bf9f89093e589466036dc275", null ], + [ "BaseRect", "structfsdk_1_1_base_rect.html#a0cd90fea55248ecf80cfaec5df89b580", null ], + [ "BaseRect", "structfsdk_1_1_base_rect.html#a0a1f9d70440c9d3bce3c9619aae5fa8d", null ], + [ "adjust", "structfsdk_1_1_base_rect.html#ab87b40ffe339e5f9f1140a17f3d102bf", null ], + [ "adjusted", "structfsdk_1_1_base_rect.html#ab984f957869ca6d59810885178e42a25", null ], + [ "bottom", "structfsdk_1_1_base_rect.html#aeaa8815528ba0d03fa21e3b7e77f1bd1", null ], + [ "bottomRight", "structfsdk_1_1_base_rect.html#ad547735b6c914c1ccffdc453b4b60e16", null ], + [ "center", "structfsdk_1_1_base_rect.html#a1e230d4202410675172acfe42e565ee0", null ], + [ "getArea", "structfsdk_1_1_base_rect.html#a91c49a941f8282f45b1ccb46190968b3", null ], + [ "inside", "structfsdk_1_1_base_rect.html#a0fd42ac0445103c0ecf26c490d2260b8", null ], + [ "isValid", "structfsdk_1_1_base_rect.html#adb5b7dfdecd356b2b0d8353279288020", null ], + [ "left", "structfsdk_1_1_base_rect.html#aac4bc603363b0422f5a659dd50cd087e", null ], + [ "operator!=", "structfsdk_1_1_base_rect.html#ab4e3ab3f98baad640c21840425c403d7", null ], + [ "operator&", "structfsdk_1_1_base_rect.html#a404b127223e95fb588a63a513d613117", null ], + [ "operator&=", "structfsdk_1_1_base_rect.html#a436384ddd3d32de0eb88ece21afa766f", null ], + [ "operator*", "structfsdk_1_1_base_rect.html#ad8539de95d7316678af7803170ef1095", null ], + [ "operator+", "structfsdk_1_1_base_rect.html#ab32180fa6aade99344da7af901f54a50", null ], + [ "operator-", "structfsdk_1_1_base_rect.html#a74d5f846df716d64c472917658a5e96f", null ], + [ "operator/", "structfsdk_1_1_base_rect.html#a6d59d105993f94fedaf00f9473ec3b91", null ], + [ "operator=", "structfsdk_1_1_base_rect.html#a807dfcdd611eaf57a2aa2c3f3881ef27", null ], + [ "operator==", "structfsdk_1_1_base_rect.html#ab53516b12c364e4304a8c0db4f7fedeb", null ], + [ "operator|", "structfsdk_1_1_base_rect.html#aa7a7d623d0d0b9a73e040b8753014782", null ], + [ "operator|=", "structfsdk_1_1_base_rect.html#a4655fc1f9639d70c24cc9bcf6bf28f89", null ], + [ "right", "structfsdk_1_1_base_rect.html#a67f3227a6256c5479e432c868e962652", null ], + [ "set", "structfsdk_1_1_base_rect.html#a3ce12a4e41011abe8e786c0fbc8ce21d", null ], + [ "setBottom", "structfsdk_1_1_base_rect.html#a4b293834cd31533ac8a0a3ddfd1e1329", null ], + [ "setLeft", "structfsdk_1_1_base_rect.html#ab4466df98371077db3f9184894d7af32", null ], + [ "setRight", "structfsdk_1_1_base_rect.html#a137f59a19b449cee39e36e9b68bca4e2", null ], + [ "setTop", "structfsdk_1_1_base_rect.html#a1f55e47d552e914b58061632cb35e20f", null ], + [ "size", "structfsdk_1_1_base_rect.html#a270bd8113a22c7f5cc553a1baa362ba3", null ], + [ "top", "structfsdk_1_1_base_rect.html#a7fff6bef1a63625bd8142f7be10b205b", null ], + [ "topLeft", "structfsdk_1_1_base_rect.html#aaa49c9b78371e0d6d4fe1103cbf6bca9", null ], + [ "height", "structfsdk_1_1_base_rect.html#a98b63fedf0ccd2954ee2d27a6253e9af", null ], + [ "width", "structfsdk_1_1_base_rect.html#adf33ed349c426a71e849209ecd1f8fae", null ], + [ "x", "structfsdk_1_1_base_rect.html#ac2cf58738615562a5e20529b6aa72269", null ], + [ "y", "structfsdk_1_1_base_rect.html#ae8d23be3be32108e017d4d309ea94ba7", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_detection-members.html b/doc/fsdk/html/structfsdk_1_1_detection-members.html new file mode 100644 index 0000000..6909f34 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_detection-members.html @@ -0,0 +1,140 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Detection Member List
+
+
+ +

This is the complete list of members for fsdk::Detection, including all inherited members.

+ + + + + + + + + + + + + +
Detection() noexceptfsdk::Detectioninline
Detection(FloatRect rect, float score=1.f) noexceptfsdk::Detectioninline
Detection(FloatRect rect, int width, int height, float score=1.f) noexceptfsdk::Detectioninline
Detection(FloatRect rect, Rect imageRect, float score=1.f) noexceptfsdk::Detectioninline
Detection(const Detection &rhs) noexcept (defined in fsdk::Detection)fsdk::Detectioninline
getRawRect() const noexceptfsdk::Detectioninline
getRect() const noexceptfsdk::Detectioninline
getScore() const noexcept (defined in fsdk::Detection)fsdk::Detectioninline
isValid() const noexceptfsdk::Detectioninline
operator=(const Detection &rhs) noexcept (defined in fsdk::Detection)fsdk::Detectioninline
setRawRect(fsdk::FloatRect rect) noexceptfsdk::Detectioninline
setScore(float score) noexceptfsdk::Detectioninline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_detection.html b/doc/fsdk/html/structfsdk_1_1_detection.html new file mode 100644 index 0000000..f553209 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_detection.html @@ -0,0 +1,465 @@ + + + + + + +Face Engine SDK: fsdk::Detection Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Detection Struct Reference
+
+
+ +

Detection structure. Stores a detected bounding box within a source image rect. + More...

+ +

#include <Detection.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Detection () noexcept
 Default constructor. Creates an invalid Detection with zeroed rect and score.
 
 Detection (FloatRect rect, float score=1.f) noexcept
 Special constructor based on raw rect and score only. More...
 
 Detection (FloatRect rect, int width, int height, float score=1.f) noexcept
 Constructor base on the raw rect, bounding width and height. More...
 
 Detection (FloatRect rect, Rect imageRect, float score=1.f) noexcept
 Constructor base on the raw rect, bounding width and height. More...
 
Detection (const Detection &rhs) noexcept
 
+Detectionoperator= (const Detection &rhs) noexcept
 
Rect getRect () const noexcept
 Returns a detection rect. More...
 
FloatRect getRawRect () const noexcept
 Returns a raw detection bounding box. More...
 
void setRawRect (fsdk::FloatRect rect) noexcept
 Sets a detection rect. More...
 
+float getScore () const noexcept
 
void setScore (float score) noexcept
 Sets a detection score. More...
 
bool isValid () const noexcept
 Checks whether a detection is valid. More...
 
+

Detailed Description

+

Detection structure. Stores a detected bounding box within a source image rect.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::Detection::Detection (FloatRect rect,
float score = 1.f 
)
+
+inlinenoexcept
+
+ +

Special constructor based on raw rect and score only.

+
Parameters
+ + + +
[in]rectraw detection rect.
[in]scoredetection score.
+
+
+
Note
* The input rect will be handled not only as a raw detection rect but as a bounding rect also.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::Detection::Detection (FloatRect rect,
int width,
int height,
float score = 1.f 
)
+
+inlinenoexcept
+
+ +

Constructor base on the raw rect, bounding width and height.

+
Parameters
+ + + + + +
[in]rectraw detection rect.
[in]widthbounding source image rect width.
[in]heightbounding source image rect height.
[in]scoredetection score.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::Detection::Detection (FloatRect rect,
Rect imageRect,
float score = 1.f 
)
+
+inlinenoexcept
+
+ +

Constructor base on the raw rect, bounding width and height.

+
Parameters
+ + + +
[in]rectraw detection rect.
[in]rectbounding source image rect.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
FloatRect fsdk::Detection::getRawRect () const
+
+inlinenoexcept
+
+ +

Returns a raw detection bounding box.

+
Note
The raw detection area could be beyond the frame borders.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Rect fsdk::Detection::getRect () const
+
+inlinenoexcept
+
+ +

Returns a detection rect.

+
Note
This detection rect is alwais bounded by the frame borders.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Detection::isValid () const
+
+inlinenoexcept
+
+ +

Checks whether a detection is valid.

+

A detection is considered valid if it has a valid rect and score in [0..1] range.

+
Returns
true if detection is valid, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::Detection::setRawRect (fsdk::FloatRect rect)
+
+inlinenoexcept
+
+ +

Sets a detection rect.

+
Note
This method usefull for debug purpose. Otherwise it is not needed to change the internal rect in the Detection object.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::Detection::setScore (float score)
+
+inlinenoexcept
+
+ +

Sets a detection score.

+
Note
This method usefull for debug purpose. Otherwise it is not needed to change the internal score in the Detection object.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_detection.js b/doc/fsdk/html/structfsdk_1_1_detection.js new file mode 100644 index 0000000..8870fa1 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_detection.js @@ -0,0 +1,15 @@ +var structfsdk_1_1_detection = +[ + [ "Detection", "structfsdk_1_1_detection.html#a11f6159ee525572a4d4d1ec4e976cc68", null ], + [ "Detection", "structfsdk_1_1_detection.html#a223af77155d7a4d1f2a9cf67abfb612d", null ], + [ "Detection", "structfsdk_1_1_detection.html#a61cc169cc9584adda10e9670dd3db96b", null ], + [ "Detection", "structfsdk_1_1_detection.html#a69b29a97fe418bd6eae5523fb76c8b0f", null ], + [ "Detection", "structfsdk_1_1_detection.html#a67ccb4d95bba7cdfd5f9b4d73260ead0", null ], + [ "getRawRect", "structfsdk_1_1_detection.html#a9fdabbc6e25562ef5d359f7e77b967a2", null ], + [ "getRect", "structfsdk_1_1_detection.html#a9edbafdc61e0021d1d5ff499be8ea3c6", null ], + [ "getScore", "structfsdk_1_1_detection.html#a98b0b9ed7c50a0e0ce911c75e0018e30", null ], + [ "isValid", "structfsdk_1_1_detection.html#ab6ae99522686f4c2d555b040d95556c1", null ], + [ "operator=", "structfsdk_1_1_detection.html#aef6215ee1e8d8a14ef70e586f40572f4", null ], + [ "setRawRect", "structfsdk_1_1_detection.html#a6425f5f8ddc50c94df035378bb3d5aee", null ], + [ "setScore", "structfsdk_1_1_detection.html#a63d72cc33b96c33a078961b5f0b23ac5", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits-members.html new file mode 100644 index 0000000..84016f7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< E > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< E >, including all inherited members.

+ + + +
isOk(E) noexcept (defined in fsdk::ErrorTraits< E >)fsdk::ErrorTraits< E >inlinestatic
toString(E) noexcept (defined in fsdk::ErrorTraits< E >)fsdk::ErrorTraits< E >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits.html b/doc/fsdk/html/structfsdk_1_1_error_traits.html new file mode 100644 index 0000000..940826d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits.html @@ -0,0 +1,142 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< E > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< E > Struct Template Reference
+
+
+ + + + + + +

+Static Public Member Functions

+static bool isOk (E) noexcept
 
+static const char * toString (E) noexcept
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4-members.html new file mode 100644 index 0000000..8511f15 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< FSDKError > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< FSDKError >, including all inherited members.

+ + + +
isOk(FSDKError error) noexcept (defined in fsdk::ErrorTraits< FSDKError >)fsdk::ErrorTraits< FSDKError >inlinestatic
toString(FSDKError error) noexcept (defined in fsdk::ErrorTraits< FSDKError >)fsdk::ErrorTraits< FSDKError >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html new file mode 100644 index 0000000..ef757d2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_f_s_d_k_error_01_4.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< FSDKError > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< FSDKError > Struct Template Reference
+
+
+ +

Specialized for FSDKError. + More...

+ +

#include <FSDKError.h>

+ + + + + + +

+Static Public Member Functions

+static bool isOk (FSDKError error) noexcept
 
+static const char * toString (FSDKError error) noexcept
 
+

Detailed Description

+

template<>
+struct fsdk::ErrorTraits< FSDKError >

+ +

Specialized for FSDKError.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_future_error_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_future_error_01_4-members.html new file mode 100644 index 0000000..4db8e35 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_future_error_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< FutureError > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< FutureError >, including all inherited members.

+ + + +
isOk(const FutureError error) noexcept (defined in fsdk::ErrorTraits< FutureError >)fsdk::ErrorTraits< FutureError >inlinestatic
toString(const FutureError error) noexcept (defined in fsdk::ErrorTraits< FutureError >)fsdk::ErrorTraits< FutureError >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_future_error_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_future_error_01_4.html new file mode 100644 index 0000000..a7352bb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_future_error_01_4.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< FutureError > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< FutureError > Struct Template Reference
+
+
+ +

Specialized for Future::Error. + More...

+ +

#include <Future.h>

+ + + + + + +

+Static Public Member Functions

+static bool isOk (const FutureError error) noexcept
 
+static const char * toString (const FutureError error) noexcept
 
+

Detailed Description

+

template<>
+struct fsdk::ErrorTraits< FutureError >

+ +

Specialized for Future::Error.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4-members.html new file mode 100644 index 0000000..5fba8ae --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< IDescriptorBatch::Error > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< IDescriptorBatch::Error >, including all inherited members.

+ + + +
isOk(IDescriptorBatch::Error error) noexcept (defined in fsdk::ErrorTraits< IDescriptorBatch::Error >)fsdk::ErrorTraits< IDescriptorBatch::Error >inlinestatic
toString(IDescriptorBatch::Error error) noexcept (defined in fsdk::ErrorTraits< IDescriptorBatch::Error >)fsdk::ErrorTraits< IDescriptorBatch::Error >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html new file mode 100644 index 0000000..59ed829 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_descriptor_batch_1_1_error_01_4.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< IDescriptorBatch::Error > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< IDescriptorBatch::Error > Struct Template Reference
+
+
+ +

Specialized for DescriptorBatchError. + More...

+ +

#include <IDescriptor.h>

+ + + + + + +

+Static Public Member Functions

+static bool isOk (IDescriptorBatch::Error error) noexcept
 
+static const char * toString (IDescriptorBatch::Error error) noexcept
 
+

Detailed Description

+

template<>
+struct fsdk::ErrorTraits< IDescriptorBatch::Error >

+ +

Specialized for DescriptorBatchError.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4-members.html new file mode 100644 index 0000000..beb70f5 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< ISerializableObject::Error > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< ISerializableObject::Error >, including all inherited members.

+ + + +
isOk(ISerializableObject::Error error) noexcept (defined in fsdk::ErrorTraits< ISerializableObject::Error >)fsdk::ErrorTraits< ISerializableObject::Error >inlinestatic
toString(ISerializableObject::Error error) noexcept (defined in fsdk::ErrorTraits< ISerializableObject::Error >)fsdk::ErrorTraits< ISerializableObject::Error >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html new file mode 100644 index 0000000..7c72df3 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_serializable_object_1_1_error_01_4.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< ISerializableObject::Error > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< ISerializableObject::Error > Struct Template Reference
+
+
+ +

Specialized for ISerializableObject::SerializationError. + More...

+ +

#include <IObject.h>

+ + + + + + +

+Static Public Member Functions

+static bool isOk (ISerializableObject::Error error) noexcept
 
+static const char * toString (ISerializableObject::Error error) noexcept
 
+

Detailed Description

+

template<>
+struct fsdk::ErrorTraits< ISerializableObject::Error >

+ +

Specialized for ISerializableObject::SerializationError.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4-members.html new file mode 100644 index 0000000..3a88cef --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< ISettingsProvider::Error > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< ISettingsProvider::Error >, including all inherited members.

+ + + +
isOk(ISettingsProvider::Error error) noexcept (defined in fsdk::ErrorTraits< ISettingsProvider::Error >)fsdk::ErrorTraits< ISettingsProvider::Error >inlinestatic
toString(ISettingsProvider::Error error) noexcept (defined in fsdk::ErrorTraits< ISettingsProvider::Error >)fsdk::ErrorTraits< ISettingsProvider::Error >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html new file mode 100644 index 0000000..a366d62 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_i_settings_provider_1_1_error_01_4.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< ISettingsProvider::Error > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< ISettingsProvider::Error > Struct Template Reference
+
+
+ +

Specialized for ISettingsProvider::ParseError. + More...

+ +

#include <ISettingsProvider.h>

+ + + + + + +

+Static Public Member Functions

+static bool isOk (ISettingsProvider::Error error) noexcept
 
+static const char * toString (ISettingsProvider::Error error) noexcept
 
+

Detailed Description

+

template<>
+struct fsdk::ErrorTraits< ISettingsProvider::Error >

+ +

Specialized for ISettingsProvider::ParseError.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4-members.html new file mode 100644 index 0000000..d89efd5 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< Image::Error > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< Image::Error >, including all inherited members.

+ + + +
isOk(Image::Error error) noexcept (defined in fsdk::ErrorTraits< Image::Error >)fsdk::ErrorTraits< Image::Error >inlinestatic
toString(Image::Error error) noexcept (defined in fsdk::ErrorTraits< Image::Error >)fsdk::ErrorTraits< Image::Error >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html new file mode 100644 index 0000000..37cb5c9 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_image_1_1_error_01_4.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< Image::Error > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< Image::Error > Struct Template Reference
+
+
+ +

Specialized for Image::Error. + More...

+ +

#include <Image.h>

+ + + + + + +

+Static Public Member Functions

+static bool isOk (Image::Error error) noexcept
 
+static const char * toString (Image::Error error) noexcept
 
+

Detailed Description

+

template<>
+struct fsdk::ErrorTraits< Image::Error >

+ +

Specialized for Image::Error.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4-members.html new file mode 100644 index 0000000..2b34b71 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4-members.html @@ -0,0 +1,133 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html new file mode 100644 index 0000000..e6f308d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html @@ -0,0 +1,165 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< MultiError< E0, E1 > > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< MultiError< E0, E1 > > Struct Template Reference
+
+
+ +

Specialized for MultiError. + More...

+ +

#include <MultiError.h>

+ + + + + + + + +

+Public Types

+using ErrorType = MultiError< E0, E1 >
 
+using E0Traits = ErrorTraits< typename ErrorType::E0Type >
 
+using E1Traits = ErrorTraits< typename ErrorType::E1Type >
 
+ + + + + +

+Static Public Member Functions

+static bool isOk (ErrorType e)
 
+static const char * toString (ErrorType e)
 
+

Detailed Description

+

template<typename E0, typename E1>
+struct fsdk::ErrorTraits< MultiError< E0, E1 > >

+ +

Specialized for MultiError.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.js b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.js new file mode 100644 index 0000000..727f397 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4 = +[ + [ "E0Traits", "structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html#ad01cb13c59e4bb7f3d6f43016a32b4d0", null ], + [ "E1Traits", "structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html#ada0fbe9e023efcf4bb81cf257bf06154", null ], + [ "ErrorType", "structfsdk_1_1_error_traits_3_01_multi_error_3_01_e0_00_01_e1_01_4_01_4.html#afa4247d3b4737b5a071f4fc5079bead2", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_promise_error_01_4-members.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_promise_error_01_4-members.html new file mode 100644 index 0000000..4995bcb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_promise_error_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ErrorTraits< PromiseError > Member List
+
+
+ +

This is the complete list of members for fsdk::ErrorTraits< PromiseError >, including all inherited members.

+ + + +
isOk(const PromiseError error) noexcept (defined in fsdk::ErrorTraits< PromiseError >)fsdk::ErrorTraits< PromiseError >inlinestatic
toString(const PromiseError error) noexcept (defined in fsdk::ErrorTraits< PromiseError >)fsdk::ErrorTraits< PromiseError >inlinestatic
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_promise_error_01_4.html b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_promise_error_01_4.html new file mode 100644 index 0000000..85af128 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_error_traits_3_01_promise_error_01_4.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::ErrorTraits< PromiseError > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ErrorTraits< PromiseError > Struct Template Reference
+
+
+ +

Specialized for Promise::Error. + More...

+ +

#include <Future.h>

+ + + + + + +

+Static Public Member Functions

+static bool isOk (const PromiseError error) noexcept
 
+static const char * toString (const PromiseError error) noexcept
 
+

Detailed Description

+

template<>
+struct fsdk::ErrorTraits< PromiseError >

+ +

Specialized for Promise::Error.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_exception-members.html b/doc/fsdk/html/structfsdk_1_1_exception-members.html new file mode 100644 index 0000000..83fa2e8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_exception-members.html @@ -0,0 +1,131 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Exception Member List
+
+
+ +

This is the complete list of members for fsdk::Exception, including all inherited members.

+ + + + +
Exception(fsdk::FSDKError err) noexcept (defined in fsdk::Exception)fsdk::Exceptionexplicit
getError() const noexcept (defined in fsdk::Exception)fsdk::Exception
what() const noexcept (defined in fsdk::Exception)fsdk::Exception
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_exception.html b/doc/fsdk/html/structfsdk_1_1_exception.html new file mode 100644 index 0000000..b9e6aac --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_exception.html @@ -0,0 +1,145 @@ + + + + + + +Face Engine SDK: fsdk::Exception Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Exception Struct Reference
+
+
+ + + + + + + + +

+Public Member Functions

Exception (fsdk::FSDKError err) noexcept
 
+const char * what () const noexcept
 
+fsdk::FSDKError getError () const noexcept
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_exception.js b/doc/fsdk/html/structfsdk_1_1_exception.js new file mode 100644 index 0000000..8ea7690 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_exception.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_exception = +[ + [ "Exception", "structfsdk_1_1_exception.html#a8fc5a1ce7cd7b185e0a4087118fcc459", null ], + [ "getError", "structfsdk_1_1_exception.html#a90965355d264201e72901a154ebd7aa4", null ], + [ "what", "structfsdk_1_1_exception.html#a19b452e103ba86d629c923735414599c", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_eye_cropper-members.html b/doc/fsdk/html/structfsdk_1_1_eye_cropper-members.html new file mode 100644 index 0000000..bfa34d7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eye_cropper-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::EyeCropper Member List
+
+
+ +

This is the complete list of members for fsdk::EyeCropper, including all inherited members.

+ + + +
cropByLandmarks5(const Image &warp, const Landmarks5 &landmarks5) (defined in fsdk::EyeCropper)fsdk::EyeCropper
cropByLandmarks68(const Image &warp, const Landmarks68 &landmarks68) (defined in fsdk::EyeCropper)fsdk::EyeCropper
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eye_cropper.html b/doc/fsdk/html/structfsdk_1_1_eye_cropper.html new file mode 100644 index 0000000..669985b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eye_cropper.html @@ -0,0 +1,155 @@ + + + + + + +Face Engine SDK: fsdk::EyeCropper Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::EyeCropper Struct Reference
+
+
+ +

EyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input warped image and returns rectangle coordinates of each eye. + More...

+ +

#include <IEyeEstimator.h>

+ + + + +

+Classes

struct  EyesRects
 
+ + + + + +

+Public Member Functions

+EyesRects cropByLandmarks5 (const Image &warp, const Landmarks5 &landmarks5)
 
+EyeCropper::EyesRects cropByLandmarks68 (const Image &warp, const Landmarks68 &landmarks68)
 
+

Detailed Description

+

EyeCropper is a helper structure for IEyeEstimator interface Methods of this structure crop an input warped image and returns rectangle coordinates of each eye.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eye_cropper.js b/doc/fsdk/html/structfsdk_1_1_eye_cropper.js new file mode 100644 index 0000000..a5eb26a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eye_cropper.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_eye_cropper = +[ + [ "EyesRects", "structfsdk_1_1_eye_cropper_1_1_eyes_rects.html", "structfsdk_1_1_eye_cropper_1_1_eyes_rects" ], + [ "cropByLandmarks5", "structfsdk_1_1_eye_cropper.html#a5a9e537f0b1bc515fd9c1879c38f79e2", null ], + [ "cropByLandmarks68", "structfsdk_1_1_eye_cropper.html#a909902a2d4eafcabdfacc1db52f9ebd4", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects-members.html b/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects-members.html new file mode 100644 index 0000000..db930fe --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::EyeCropper::EyesRects Member List
+
+
+ +

This is the complete list of members for fsdk::EyeCropper::EyesRects, including all inherited members.

+ + + +
leftEyeRect (defined in fsdk::EyeCropper::EyesRects)fsdk::EyeCropper::EyesRects
rightEyeRect (defined in fsdk::EyeCropper::EyesRects)fsdk::EyeCropper::EyesRects
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects.html b/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects.html new file mode 100644 index 0000000..59e293e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects.html @@ -0,0 +1,142 @@ + + + + + + +Face Engine SDK: fsdk::EyeCropper::EyesRects Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::EyeCropper::EyesRects Struct Reference
+
+
+ + + + + + +

+Public Attributes

+Rect leftEyeRect
 
+Rect rightEyeRect
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects.js b/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects.js new file mode 100644 index 0000000..39cb6ab --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eye_cropper_1_1_eyes_rects.js @@ -0,0 +1,5 @@ +var structfsdk_1_1_eye_cropper_1_1_eyes_rects = +[ + [ "leftEyeRect", "structfsdk_1_1_eye_cropper_1_1_eyes_rects.html#a1500a412e66c586376ed0a3407a5bc37", null ], + [ "rightEyeRect", "structfsdk_1_1_eye_cropper_1_1_eyes_rects.html#a517d4cd2edcb66abd47449f35b1afef6", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_eyes_estimation-members.html b/doc/fsdk/html/structfsdk_1_1_eyes_estimation-members.html new file mode 100644 index 0000000..e25729a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eyes_estimation-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::EyesEstimation Member List
+
+
+ +

This is the complete list of members for fsdk::EyesEstimation, including all inherited members.

+ + + +
leftEyefsdk::EyesEstimation
rightEyefsdk::EyesEstimation
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eyes_estimation.html b/doc/fsdk/html/structfsdk_1_1_eyes_estimation.html new file mode 100644 index 0000000..9596cee --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eyes_estimation.html @@ -0,0 +1,159 @@ + + + + + + +Face Engine SDK: fsdk::EyesEstimation Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::EyesEstimation Struct Reference
+
+
+ +

Eyes estimation output. + More...

+ +

#include <IEyeEstimator.h>

+ + + + + +

+Classes

struct  EyeAttributes
 Eyes attribute structure. More...
 
+ + + + + + + +

+Public Attributes

+EyeAttributes leftEye
 Left eye attributes.
 
+EyeAttributes rightEye
 Right eye attributes.
 
+

Detailed Description

+

Eyes estimation output.

+

These values are produced by IEyeEstimator object.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eyes_estimation.js b/doc/fsdk/html/structfsdk_1_1_eyes_estimation.js new file mode 100644 index 0000000..8da7ebd --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eyes_estimation.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_eyes_estimation = +[ + [ "EyeAttributes", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes" ], + [ "leftEye", "structfsdk_1_1_eyes_estimation.html#ade7c195977cbdd07a125a06450ef3987", null ], + [ "rightEye", "structfsdk_1_1_eyes_estimation.html#a8d8d8aeeba833fdc9e92cc191999a4e0", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes-members.html b/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes-members.html new file mode 100644 index 0000000..cae10bc --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes-members.html @@ -0,0 +1,136 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html b/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html new file mode 100644 index 0000000..fdc080d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html @@ -0,0 +1,248 @@ + + + + + + +Face Engine SDK: fsdk::EyesEstimation::EyeAttributes Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::EyesEstimation::EyeAttributes Struct Reference
+
+
+ +

Eyes attribute structure. + More...

+ +

#include <IEyeEstimator.h>

+ + + + + + + + + + + +

+Public Types

enum  State : uint8_t { State::Closed, +State::Open, +State::Occluded + }
 Enumeration of possible eye states. More...
 
using IrisLandmarks = Landmarks< irisLandmarksCount >
 alias for More...
 
using EyelidLandmarks = Landmarks< eyelidLandmarksCount >
 alias for More...
 
+ + + + + + + + + + +

+Public Attributes

+State state
 State of an eye.
 
+IrisLandmarks iris
 Iris landmarks.
 
+EyelidLandmarks eyelid
 Eyelid landmarks.
 
+ + + + + + + +

+Static Public Attributes

+static constexpr uint64_t irisLandmarksCount = 32
 Iris landmarks amount.
 
+static constexpr uint64_t eyelidLandmarksCount = 6
 Eyelid landmarks amount.
 
+

Detailed Description

+

Eyes attribute structure.

+

Member Typedef Documentation

+ +
+
+ +

alias for

+
See Also
Landmarks template structure with eyelidLandmarksCount as param
+ +
+
+ +
+
+ +

alias for

+
See Also
Landmarks template structure with irisLandmarksCount as param.
+ +
+
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum fsdk::EyesEstimation::EyeAttributes::State : uint8_t
+
+strong
+
+ +

Enumeration of possible eye states.

+ + + + +
Enumerator
Closed  +

Eye is closed.

+
Open  +

Eye is open.

+
Occluded  +

Eye is blocked by something not transparent, or landmark passed to estimator doesn't point to an eye.

+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes.js b/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes.js new file mode 100644 index 0000000..6a01914 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_eyes_estimation_1_1_eye_attributes.js @@ -0,0 +1,13 @@ +var structfsdk_1_1_eyes_estimation_1_1_eye_attributes = +[ + [ "EyelidLandmarks", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a377631250d385dd4620cff0c265dc02c", null ], + [ "IrisLandmarks", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a2dd36e58e1788352fa5f668c25403b34", null ], + [ "State", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003", [ + [ "Closed", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a03f4a47830f97377a35321051685071e", null ], + [ "Open", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003ac3bf447eabe632720a3aa1a7ce401274", null ], + [ "Occluded", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a96f63a1839ecec03f6929f9faec19003a40deec4b6f036b28681fc864b1e31de3", null ] + ] ], + [ "eyelid", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a507fc6337b07a0e73d0d1bda084ebf2c", null ], + [ "iris", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a085c2eba493874a622cb58249534fc5b", null ], + [ "state", "structfsdk_1_1_eyes_estimation_1_1_eye_attributes.html#a53ed592dc7a11f3c5061286d8c582e5e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_face-members.html b/doc/fsdk/html/structfsdk_1_1_face-members.html new file mode 100644 index 0000000..dcd4ea7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_face-members.html @@ -0,0 +1,137 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Face Member List
+
+
+ +

This is the complete list of members for fsdk::Face, including all inherited members.

+ + + + + + + + + + +
detection (defined in fsdk::Face)fsdk::Face
ElementType typedef (defined in fsdk::Face)fsdk::Face
Face()=default (defined in fsdk::Face)fsdk::Faceexplicit
Face(const fsdk::Image &image) (defined in fsdk::Face)fsdk::Faceinlineexplicit
Face(const fsdk::Image &image, const fsdk::Detection &detection) (defined in fsdk::Face)fsdk::Faceinlineexplicit
img (defined in fsdk::Face)fsdk::Face
isValid() const (defined in fsdk::Face)fsdk::Faceinline
landmarks5 (defined in fsdk::Face)fsdk::Face
landmarks68 (defined in fsdk::Face)fsdk::Face
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_face.html b/doc/fsdk/html/structfsdk_1_1_face.html new file mode 100644 index 0000000..4ca4c08 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_face.html @@ -0,0 +1,168 @@ + + + + + + +Face Engine SDK: fsdk::Face Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Face Struct Reference
+
+
+ + + + +

+Public Types

+typedef float ElementType
 
+ + + + + + + +

+Public Member Functions

+bool isValid () const
 
Face (const fsdk::Image &image)
 
Face (const fsdk::Image &image, const fsdk::Detection &detection)
 
+ + + + + + + + + +

+Public Attributes

+fsdk::Image img
 
+fsdk::Detection detection
 
+Optional< fsdk::Landmarks5landmarks5
 
+Optional< fsdk::Landmarks68landmarks68
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_face.js b/doc/fsdk/html/structfsdk_1_1_face.js new file mode 100644 index 0000000..a73aabc --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_face.js @@ -0,0 +1,12 @@ +var structfsdk_1_1_face = +[ + [ "ElementType", "structfsdk_1_1_face.html#afdfd7428b07208360bc6e31501a2ef62", null ], + [ "Face", "structfsdk_1_1_face.html#aed67efccf2c8f5532106257edc3a2634", null ], + [ "Face", "structfsdk_1_1_face.html#a4f695145672bb94754089dfab2e85ebe", null ], + [ "Face", "structfsdk_1_1_face.html#a0d156a767390468afe77c760a229cfbb", null ], + [ "isValid", "structfsdk_1_1_face.html#a4e9e75960e26bfba22dc06f7142e92f2", null ], + [ "detection", "structfsdk_1_1_face.html#a1e761c7485a22f0ee3ac98120bf499a8", null ], + [ "img", "structfsdk_1_1_face.html#a9c829216cf178ece188aee1afa78af8f", null ], + [ "landmarks5", "structfsdk_1_1_face.html#afa3ad649516e4d616fac9cd6ad1ed347", null ], + [ "landmarks68", "structfsdk_1_1_face.html#a35a1a36f7c0b238c1e0d13749d74be85", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_format-members.html b/doc/fsdk/html/structfsdk_1_1_format-members.html new file mode 100644 index 0000000..454b045 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_format-members.html @@ -0,0 +1,154 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Format Member List
+
+
+ +

This is the complete list of members for fsdk::Format, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
B8G8R8 enum valuefsdk::Format
B8G8R8X8 enum valuefsdk::Format
computePitch(int rowWidth) const noexceptfsdk::Formatinline
Format() noexceptfsdk::Formatinline
Format(Type type) noexceptfsdk::Formatinline
getBitDepth() const noexceptfsdk::Formatinline
getByteDepth() const noexceptfsdk::Formatinline
getChannelCount() const noexceptfsdk::Formatinline
getChannelSize() const noexceptfsdk::Formatinline
getChannelStep() const noexceptfsdk::Formatinline
IR_X8X8X8 enum valuefsdk::Format
isBGR() const noexceptfsdk::Formatinline
isBlock() const noexceptfsdk::Formatinline
isPadded() const noexceptfsdk::Formatinline
isValid() const noexceptfsdk::Formatinline
isYUV() const noexceptfsdk::Formatinline
m_typefsdk::Formatprotected
operator Type() const noexceptfsdk::Formatinline
R16 enum valuefsdk::Format
R8 enum valuefsdk::Format
R8G8B8 enum valuefsdk::Format
R8G8B8X8 enum valuefsdk::Format
Type enum namefsdk::Format
Unknown enum valuefsdk::Format
YUV_NV12 enum valuefsdk::Format
YUV_NV21 enum valuefsdk::Format
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_format.html b/doc/fsdk/html/structfsdk_1_1_format.html new file mode 100644 index 0000000..55d1878 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_format.html @@ -0,0 +1,604 @@ + + + + + + +Face Engine SDK: fsdk::Format Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Format Struct Reference
+
+
+ +

Image format. + More...

+ +

#include <Format.h>

+ + + + + +

+Public Types

enum  Type {
+  Unknown, +B8G8R8X8, +R8G8B8X8, +B8G8R8, +
+  R8G8B8, +R8, +R16, +IR_X8X8X8, +
+  YUV_NV21, +YUV_NV12 +
+ }
 Format type enumeration. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

int getChannelCount () const noexcept
 Get color channel count. More...
 
int getChannelStep () const noexcept
 Get channel step. More...
 
int getChannelSize () const noexcept
 Get color channel size in bits. More...
 
int getBitDepth () const noexcept
 Get number of bits per pixel. More...
 
int getByteDepth () const noexcept
 Get number of bytes per pixel. More...
 
int computePitch (int rowWidth) const noexcept
 Compute row size in bytes. More...
 
bool isPadded () const noexcept
 
bool isBGR () const noexcept
 
bool isYUV () const noexcept
 
bool isBlock () const noexcept
 
bool isValid () const noexcept
 
 Format () noexcept
 Initializes format structure. More...
 
 Format (Type type) noexcept
 Initializes format structure. More...
 
operator Type () const noexcept
 Implicit cast to Type.
 
+ + + + +

+Protected Attributes

+Type m_type
 Format type.
 
+

Detailed Description

+

Image format.

+

Member Enumeration Documentation

+ +
+
+ + + + +
enum fsdk::Format::Type
+
+ +

Format type enumeration.

+ + + + + + + + + + + +
Enumerator
Unknown  +

unknown format.

+
B8G8R8X8  +

3 channel, 8 bit per channel, B-G-R color order format with 8 bit padding before next pixel;

+
R8G8B8X8  +

3 channel, 8 bit per channel, R-G-B color order format with 8 bit padding before next pixel;

+
B8G8R8  +

3 channel, 8 bit per channel, B-G-R color order format;

+
R8G8B8  +

3 channel, 8 bit per channel, R-G-B color order format;

+
R8  +

1 channel, 8 bit per channel format;

+
R16  +

1 channel, 16 bit per channel format;

+
IR_X8X8X8  +

3 channel, 8 bit per channel format with InfraRed semantics;

+
YUV_NV21  +

4:2:0 planar format with a plane of 8-bit Y samples followed by interleaved 2x2 subsampled V/U 8-bit chroma samples(YYYYYYYYVUVU);

+
YUV_NV12  +

4:2:0 planar format with a plane of 8-bit Y samples followed by interleaved 2x2 subsampled U/V 8-bit chroma samples(YYYYYYYYUVUV).

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + +
fsdk::Format::Format ()
+
+inlinenoexcept
+
+ +

Initializes format structure.

+

Sets format type to Unknown.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::Format::Format (Type type)
+
+inlinenoexcept
+
+ +

Initializes format structure.

+
Parameters
+ + +
[in]typetype value to set.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
int fsdk::Format::computePitch (int rowWidth) const
+
+inlinenoexcept
+
+ +

Compute row size in bytes.

+
Parameters
+ + +
[in]rowWidthrow width in pixels.
+
+
+
Returns
row size in bytes.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Format::getBitDepth () const
+
+inlinenoexcept
+
+ +

Get number of bits per pixel.

+
Returns
number of bits per pixel.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Format::getByteDepth () const
+
+inlinenoexcept
+
+ +

Get number of bytes per pixel.

+
Returns
number of bytes per pixel.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Format::getChannelCount () const
+
+inlinenoexcept
+
+ +

Get color channel count.

+
Returns
color channel count.
+
Note
returns actual color channel count for padded formats; i.e. padding is not a channel.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Format::getChannelSize () const
+
+inlinenoexcept
+
+ +

Get color channel size in bits.

+
Returns
color channel size in bits.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Format::getChannelStep () const
+
+inlinenoexcept
+
+ +

Get channel step.

+
Returns
channel step.
+
Note
padding bytes are considered spare channels.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Format::isBGR () const
+
+inlinenoexcept
+
+
Returns
true if image format has 3 channels in B-G-R order, false otherwise.
+
Note
padding is ignored for padded channels.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Format::isBlock () const
+
+inlinenoexcept
+
+
Returns
true if image format is one of block types, i.e. B8G8R8X8_BLOCK.
+
Note
this currently is a stub.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Format::isPadded () const
+
+inlinenoexcept
+
+
Returns
true if image format has padding bytes.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Format::isValid () const
+
+inlinenoexcept
+
+
Returns
true if image format is one of valid types, i.e. not Unknown.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Format::isYUV () const
+
+inlinenoexcept
+
+
Returns
true if image format is in YUV color encoding system.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_format.js b/doc/fsdk/html/structfsdk_1_1_format.js new file mode 100644 index 0000000..e57b964 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_format.js @@ -0,0 +1,30 @@ +var structfsdk_1_1_format = +[ + [ "Type", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1", [ + [ "Unknown", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a28e996e86d8357a023f9b14fa4da9f1f", null ], + [ "B8G8R8X8", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a2c186c232b67f3d47add72abea686242", null ], + [ "R8G8B8X8", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a1531807037bb455d89b70ff0d6ff05fe", null ], + [ "B8G8R8", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a9bda0cc528d54cecc7f8ec2a3b3ad5c8", null ], + [ "R8G8B8", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a64d817782ee8b40de7073acc65267e76", null ], + [ "R8", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1afd28eabff68ce04d89a4a445c8774f11", null ], + [ "R16", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1ae6596410cdfb3e164d3114d7275c01a4", null ], + [ "IR_X8X8X8", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1af4ca5a5a1ea5b7005c89a9cd0911d0b4", null ], + [ "YUV_NV21", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a86ae1133449f6210391a331405d7ea4e", null ], + [ "YUV_NV12", "structfsdk_1_1_format.html#a9074e215a3c98d8e5b125bbec8d19af1a7acff06144acdfb863cfe120628e9d56", null ] + ] ], + [ "Format", "structfsdk_1_1_format.html#aa45f2da762d2fce103d97aa803078d84", null ], + [ "Format", "structfsdk_1_1_format.html#a9fae615ad7c67630f9546abd6d568175", null ], + [ "computePitch", "structfsdk_1_1_format.html#aea650b3b3a3256b34cf1284c53262899", null ], + [ "getBitDepth", "structfsdk_1_1_format.html#ae3136cd08cf4395b3250950eb820bc74", null ], + [ "getByteDepth", "structfsdk_1_1_format.html#afd04839a40f2a3b875038ec233b4a8eb", null ], + [ "getChannelCount", "structfsdk_1_1_format.html#a5654c8e7485f5821a0b77c40150144ea", null ], + [ "getChannelSize", "structfsdk_1_1_format.html#a1ed1e226b132c165793edfe88c21a4ee", null ], + [ "getChannelStep", "structfsdk_1_1_format.html#ad18bb21ae3c7577a0ebd3eca67fc26a9", null ], + [ "isBGR", "structfsdk_1_1_format.html#a4f1a89d82820cc5461d983700d2191d1", null ], + [ "isBlock", "structfsdk_1_1_format.html#a46d028b666e796b8021e8cce7bc90c9e", null ], + [ "isPadded", "structfsdk_1_1_format.html#a43ca12b83363226c0459e6a1b5073550", null ], + [ "isValid", "structfsdk_1_1_format.html#a0cebf5379f7e7f173ae64d35f0ab9670", null ], + [ "isYUV", "structfsdk_1_1_format.html#a9774699a7b4642bf36ce9f42032a5cb9", null ], + [ "operator Type", "structfsdk_1_1_format.html#ad603c8ad2250b23f3cbaa04fa69e9d29", null ], + [ "m_type", "structfsdk_1_1_format.html#a708cc1ef87c456417c678e7720a52159", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_head_pose_estimation-members.html b/doc/fsdk/html/structfsdk_1_1_head_pose_estimation-members.html new file mode 100644 index 0000000..dbe55f6 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_head_pose_estimation-members.html @@ -0,0 +1,136 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_head_pose_estimation.html b/doc/fsdk/html/structfsdk_1_1_head_pose_estimation.html new file mode 100644 index 0000000..5493456 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_head_pose_estimation.html @@ -0,0 +1,197 @@ + + + + + + +Face Engine SDK: fsdk::HeadPoseEstimation Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::HeadPoseEstimation Struct Reference
+
+
+ +

Head pose estimation output. + More...

+ +

#include <IHeadPoseEstimator.h>

+ + + + +

+Public Types

enum  FrontalFaceType { Non = 0, +Good, +ISO + }
 
+ + + + +

+Public Member Functions

+FrontalFaceType getFrontalFaceType () const
 Returns type of face frontality.
 
+ + + + + + + + + + +

+Public Attributes

+float pitch
 Pitch angle estimation.
 
+float yaw
 Yaw angle estimation.
 
+float roll
 Roll angle estimation.
 
+

Detailed Description

+

Head pose estimation output.

+

These values are produced by IHeadPoseEstimator object. Each angle is measured in degrees and in [-180, 180] range.

+

Member Enumeration Documentation

+ +
+
+ + + + +
Enumerator
Non  +

Non-frontal face.

+
Good  +

Good for recognition; Doesn't descrease recall and looks fine.

+
ISO  +

GOST/ISO angles.

+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_head_pose_estimation.js b/doc/fsdk/html/structfsdk_1_1_head_pose_estimation.js new file mode 100644 index 0000000..8be38f6 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_head_pose_estimation.js @@ -0,0 +1,12 @@ +var structfsdk_1_1_head_pose_estimation = +[ + [ "FrontalFaceType", "structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7", [ + [ "Non", "structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a24492e9ec0700fa260acd0c5c15f22d1", null ], + [ "Good", "structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7ac68c59f721bd43286d68df8fd1ff15e7", null ], + [ "ISO", "structfsdk_1_1_head_pose_estimation.html#aa2121a6759ada82ee49750f4922fd9a7a4db45576db7f96e820b1388d1c522aff", null ] + ] ], + [ "getFrontalFaceType", "structfsdk_1_1_head_pose_estimation.html#a9356964811575052d2d681e275ce4ecd", null ], + [ "pitch", "structfsdk_1_1_head_pose_estimation.html#a37c44c6f403d866d48611784b1d548ce", null ], + [ "roll", "structfsdk_1_1_head_pose_estimation.html#af380243a75d2fbc23a3504014f2998ce", null ], + [ "yaw", "structfsdk_1_1_head_pose_estimation.html#a8c27c471703b619567540389bf5ddd94", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_human-members.html b/doc/fsdk/html/structfsdk_1_1_human-members.html new file mode 100644 index 0000000..70cce41 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human-members.html @@ -0,0 +1,134 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Human Member List
+
+
+ +

This is the complete list of members for fsdk::Human, including all inherited members.

+ + + + + + + +
detection (defined in fsdk::Human)fsdk::Human
ElementType typedef (defined in fsdk::Human)fsdk::Human
Human()=default (defined in fsdk::Human)fsdk::Humanexplicit
img (defined in fsdk::Human)fsdk::Human
isValid() const (defined in fsdk::Human)fsdk::Humaninline
landmarks17 (defined in fsdk::Human)fsdk::Human
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_human.html b/doc/fsdk/html/structfsdk_1_1_human.html new file mode 100644 index 0000000..095f341 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human.html @@ -0,0 +1,159 @@ + + + + + + +Face Engine SDK: fsdk::Human Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Human Struct Reference
+
+
+ + + + +

+Public Types

+typedef float ElementType
 
+ + + +

+Public Member Functions

+bool isValid () const
 
+ + + + + + + +

+Public Attributes

+fsdk::Image img
 
+fsdk::Detection detection
 
+Optional< fsdk::HumanLandmarks17landmarks17
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_human.js b/doc/fsdk/html/structfsdk_1_1_human.js new file mode 100644 index 0000000..09ffeeb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human.js @@ -0,0 +1,9 @@ +var structfsdk_1_1_human = +[ + [ "ElementType", "structfsdk_1_1_human.html#a8a16bdaacd1439a0457d9aa065455b5a", null ], + [ "Human", "structfsdk_1_1_human.html#a0ef81e4acd78ee7efd8ad882660d88ed", null ], + [ "isValid", "structfsdk_1_1_human.html#a223743815b732610505f48fe374ac11f", null ], + [ "detection", "structfsdk_1_1_human.html#a4ee464ec4ee76be4bea120d3532a8a27", null ], + [ "img", "structfsdk_1_1_human.html#ab1e76e270ff9eecc16ed0657235fd298", null ], + [ "landmarks17", "structfsdk_1_1_human.html#a75675247868daa3b1dcf84c3897a1eba", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_human_landmark-members.html b/doc/fsdk/html/structfsdk_1_1_human_landmark-members.html new file mode 100644 index 0000000..ed145a8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human_landmark-members.html @@ -0,0 +1,133 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::HumanLandmark Member List
+
+
+ +

This is the complete list of members for fsdk::HumanLandmark, including all inherited members.

+ + + + + + +
HumanLandmark()=default (defined in fsdk::HumanLandmark)fsdk::HumanLandmark
HumanLandmark(float s, const fsdk::Point2f &p) (defined in fsdk::HumanLandmark)fsdk::HumanLandmarkinlineexplicit
pointfsdk::HumanLandmark
scorefsdk::HumanLandmark
visiblefsdk::HumanLandmark
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_human_landmark.html b/doc/fsdk/html/structfsdk_1_1_human_landmark.html new file mode 100644 index 0000000..e77d381 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human_landmark.html @@ -0,0 +1,175 @@ + + + + + + +Face Engine SDK: fsdk::HumanLandmark Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::HumanLandmark Struct Reference
+
+
+ +

Human keypoints landmark structure. + More...

+ +

#include <HumanLandmarks.h>

+ + + + +

+Public Member Functions

HumanLandmark (float s, const fsdk::Point2f &p)
 
+ + + + + + + + + +

+Public Attributes

+float score { 0.0f }
 Point score. Do not use it untill you really need it.
 
fsdk::Point2f point { 0.0f, 0.0f }
 
+bool visible = false
 true if the current point is visible and point member contains valid coordinates.
 
+

Detailed Description

+

Human keypoints landmark structure.

+

Member Data Documentation

+ +
+
+ + + + +
fsdk::Point2f fsdk::HumanLandmark::point { 0.0f, 0.0f }
+
+

Point coordinates.

+
Note
If visible is not true, this field will contain invalid values.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_human_landmark.js b/doc/fsdk/html/structfsdk_1_1_human_landmark.js new file mode 100644 index 0000000..80544da --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human_landmark.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_human_landmark = +[ + [ "HumanLandmark", "structfsdk_1_1_human_landmark.html#aba46b4362e327fe9bd35503fb11d4a0b", null ], + [ "HumanLandmark", "structfsdk_1_1_human_landmark.html#a4e2a2feba695d5e7f9fdd619bf41855a", null ], + [ "point", "structfsdk_1_1_human_landmark.html#a56402856056aed0b4b87ef66798ee92a", null ], + [ "score", "structfsdk_1_1_human_landmark.html#afbe027ef46796ecfa9e86d9c0f361159", null ], + [ "visible", "structfsdk_1_1_human_landmark.html#aea7582c90d90401c1ad156c26b697a8e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_human_landmarks-members.html b/doc/fsdk/html/structfsdk_1_1_human_landmarks-members.html new file mode 100644 index 0000000..866c26a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human_landmarks-members.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::HumanLandmarks< numOfLandmarks > Member List
+
+
+ +

This is the complete list of members for fsdk::HumanLandmarks< numOfLandmarks >, including all inherited members.

+ + + + + +
landmarks (defined in fsdk::HumanLandmarks< numOfLandmarks >)fsdk::HumanLandmarks< numOfLandmarks >
landmarksCount (defined in fsdk::HumanLandmarks< numOfLandmarks >)fsdk::HumanLandmarks< numOfLandmarks >static
operator[](int idx) const noexcept (defined in fsdk::HumanLandmarks< numOfLandmarks >)fsdk::HumanLandmarks< numOfLandmarks >inline
operator[](int idx) noexcept (defined in fsdk::HumanLandmarks< numOfLandmarks >)fsdk::HumanLandmarks< numOfLandmarks >inline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_human_landmarks.html b/doc/fsdk/html/structfsdk_1_1_human_landmarks.html new file mode 100644 index 0000000..4d2bc22 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human_landmarks.html @@ -0,0 +1,166 @@ + + + + + + +Face Engine SDK: fsdk::HumanLandmarks< numOfLandmarks > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::HumanLandmarks< numOfLandmarks > Struct Template Reference
+
+
+ +

Human keypoints landmarks template structure. + More...

+ +

#include <HumanLandmarks.h>

+ + + + + + +

+Public Member Functions

+const HumanLandmarkoperator[] (int idx) const noexcept
 
+HumanLandmarkoperator[] (int idx) noexcept
 
+ + + +

+Public Attributes

+HumanLandmark landmarks [landmarksCount]
 
+ + + +

+Static Public Attributes

+static constexpr size_t landmarksCount = numOfLandmarks
 
+

Detailed Description

+

template<size_t numOfLandmarks = 17>
+struct fsdk::HumanLandmarks< numOfLandmarks >

+ +

Human keypoints landmarks template structure.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_human_landmarks.js b/doc/fsdk/html/structfsdk_1_1_human_landmarks.js new file mode 100644 index 0000000..d2ef7e7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_human_landmarks.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_human_landmarks = +[ + [ "operator[]", "structfsdk_1_1_human_landmarks.html#a410b4ef2b85634118ab98022908257b1", null ], + [ "operator[]", "structfsdk_1_1_human_landmarks.html#aa93c5f00c05b8b71126d2be79a3d1277", null ], + [ "landmarks", "structfsdk_1_1_human_landmarks.html#a741e7a426c0d1dad5405b7e703946d47", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator-members.html new file mode 100644 index 0000000..ba094c2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator-members.html @@ -0,0 +1,138 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IAGSEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::IAGSEstimator, including all inherited members.

+ + + + + + + + + + + +
estimate(const Image &image, const Detection &detection) const noexcept=0fsdk::IAGSEstimatorpure virtual
estimate(Span< const Image > images, Span< const Detection > detections, Span< float > out) const noexcept=0fsdk::IAGSEstimatorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IAGSEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.html new file mode 100644 index 0000000..8f8187b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.html @@ -0,0 +1,347 @@ + + + + + + +Face Engine SDK: fsdk::IAGSEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IAGSEstimator Struct Referenceabstract
+
+
+ +

Approximate Garbage Score estimator interface. + More...

+ +

#include <IAGSEstimator.h>

+
+Inheritance diagram for fsdk::IAGSEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+float > 
estimate (const Image &image, const Detection &detection) const noexcept=0
 Estimate the ags. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > images, Span< const Detection > detections, Span< float > out) const noexcept=0
 Estimate ags of multiple frames in a single estimate function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Approximate Garbage Score estimator interface.

+
Note
This estimator is designed to work with Image and Detection;
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, float> fsdk::IAGSEstimator::estimate (const Imageimage,
const Detectiondetection 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the ags.

+
Parameters
+ + + +
[in]imagesource image.
[in]detectiondetection coordinates in image space.
+
+
+
Returns
ResultValue with error code and score of estimation.
+
See Also
Image, Detection, ResultValue, FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IAGSEstimator::estimate (Span< const Imageimages,
Span< const Detectiondetections,
Span< float > out 
) const
+
+pure virtualnoexcept
+
+ +

Estimate ags of multiple frames in a single estimate function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[out]outoutput span of scores for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Detection, Result, FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IAGSEstimator::validate (Span< const Imageimages,
Span< const Detectiondetections,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Detection, Result, FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.js new file mode 100644 index 0000000..28d81a5 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_i_a_g_s_estimator = +[ + [ "estimate", "structfsdk_1_1_i_a_g_s_estimator.html#aa4a35eaf70d50cc4b1783546ed6a4b87", null ], + [ "estimate", "structfsdk_1_1_i_a_g_s_estimator.html#a45dea130e106e6a8551006bbb9c1a165", null ], + [ "validate", "structfsdk_1_1_i_a_g_s_estimator.html#a771c4b021790e85aa9bde0e1b13b26f7", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.png new file mode 100644 index 0000000..e13a5fc Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_a_g_s_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_archive-members.html b/doc/fsdk/html/structfsdk_1_1_i_archive-members.html new file mode 100644 index 0000000..9c4d1e4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_archive-members.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IArchive Member List
+
+
+ +

This is the complete list of members for fsdk::IArchive, including all inherited members.

+ + + + + +
read(void *data, size_t size)=0fsdk::IArchivepure virtual
setSizeHint(size_t hint)fsdk::IArchiveinlinevirtual
write(const void *data, size_t size)=0fsdk::IArchivepure virtual
~IArchive()=default (defined in fsdk::IArchive)fsdk::IArchivevirtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_archive.html b/doc/fsdk/html/structfsdk_1_1_i_archive.html new file mode 100644 index 0000000..18e67dc --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_archive.html @@ -0,0 +1,279 @@ + + + + + + +Face Engine SDK: fsdk::IArchive Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IArchive Struct Referenceabstract
+
+
+ +

Archive interface. + More...

+ +

#include <IObject.h>

+ + + + + + + + + + + +

+Public Member Functions

virtual bool write (const void *data, size_t size)=0
 Write bytes to archive. More...
 
virtual bool read (void *data, size_t size)=0
 Read bytes from archive. More...
 
virtual void setSizeHint (size_t hint)
 Set size hint. More...
 
+

Detailed Description

+

Archive interface.

+

Archives abstract data storage and IO operations.

+
Note
IArchive is not derived from IRefCounted and does not force any lifetime control. It is up to user to implement it.
+
+SDK ojects that use IArchive for serialization purposes do call only write() (during saving) or only read() (during loading) but never both during the same process unless otherwise is explicitly stated.
+
+During saving or loading SDK objects are free to write or read their data in chunks; e.g. there may be several sequential calls to write() in scope of a single serialization request. Any IArchive implementation should be aware of this.
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual bool fsdk::IArchive::read (void * data,
size_t size 
)
+
+pure virtual
+
+ +

Read bytes from archive.

+
Parameters
+ + + +
[in]datapointer to memory to read to.
[in]sizedata size.
+
+
+
Returns
true if succeeded, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IArchive::setSizeHint (size_t hint)
+
+inlinevirtual
+
+ +

Set size hint.

+
Parameters
+ + +
[in]hintsize hint.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual bool fsdk::IArchive::write (const void * data,
size_t size 
)
+
+pure virtual
+
+ +

Write bytes to archive.

+
Parameters
+ + + +
[in]datapointer to memory to write.
[in]sizedata size.
+
+
+
Returns
true if succeeded, false otherwise.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_archive.js b/doc/fsdk/html/structfsdk_1_1_i_archive.js new file mode 100644 index 0000000..436abc4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_archive.js @@ -0,0 +1,7 @@ +var structfsdk_1_1_i_archive = +[ + [ "~IArchive", "structfsdk_1_1_i_archive.html#ab8e4a2c51e99971fd67345b31ddfab9e", null ], + [ "read", "structfsdk_1_1_i_archive.html#af27d2a846518cb22b709a40c88601b7b", null ], + [ "setSizeHint", "structfsdk_1_1_i_archive.html#a7f1fe72083db24c7b6620d4a9a657612", null ], + [ "write", "structfsdk_1_1_i_archive.html#a8c48b5099bee7f93b069cc7a9901ba3e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_async_context-members.html b/doc/fsdk/html/structfsdk_1_1_i_async_context-members.html new file mode 100644 index 0000000..4784311 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_async_context-members.html @@ -0,0 +1,140 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IAsyncContext Member List
+
+
+ +

This is the complete list of members for fsdk::IAsyncContext, including all inherited members.

+ + + + + + + + + + + + + +
clearTaskQueue() noexcept=0fsdk::IAsyncContextpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
resize(const int8_t newThreadCount) noexcept=0fsdk::IAsyncContextpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
stop() noexcept=0fsdk::IAsyncContextpure virtual
threads() const noexcept=0fsdk::IAsyncContextpure virtual
valid() const noexcept=0fsdk::IAsyncContextpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_async_context.html b/doc/fsdk/html/structfsdk_1_1_i_async_context.html new file mode 100644 index 0000000..6c23aea --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_async_context.html @@ -0,0 +1,322 @@ + + + + + + +Face Engine SDK: fsdk::IAsyncContext Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IAsyncContext Struct Referenceabstract
+
+
+ +

Interface for running tasks asynchronously. + More...

+ +

#include <IAsyncContext.h>

+
+Inheritance diagram for fsdk::IAsyncContext:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual int8_t threads () const noexcept=0
 Returns size of underlying thread pool. More...
 
virtual bool valid () const noexcept=0
 Tells validness of internal state. More...
 
virtual bool clearTaskQueue () noexcept=0
 Clears tasks not yet taken by any thread. More...
 
virtual bool resize (const int8_t newThreadCount) noexcept=0
 Resizes internal thread pool to some new size param newThreadCount New size of thread pool. Should not be less than 1. More...
 
virtual bool stop () noexcept=0
 Waits for all already running tasks to complete, then stops every thread. Do not use threadpool afterwards. Is called on destruction. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Interface for running tasks asynchronously.

+

Contains thread pool under hood.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool fsdk::IAsyncContext::clearTaskQueue ()
+
+pure virtualnoexcept
+
+ +

Clears tasks not yet taken by any thread.

+
Returns
True on success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool fsdk::IAsyncContext::resize (const int8_t newThreadCount)
+
+pure virtualnoexcept
+
+ +

Resizes internal thread pool to some new size param newThreadCount New size of thread pool. Should not be less than 1.

+
Returns
True on success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual bool fsdk::IAsyncContext::stop ()
+
+pure virtualnoexcept
+
+ +

Waits for all already running tasks to complete, then stops every thread. Do not use threadpool afterwards. Is called on destruction.

+
Returns
True on success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual int8_t fsdk::IAsyncContext::threads () const
+
+pure virtualnoexcept
+
+ +

Returns size of underlying thread pool.

+
Returns
Count of threads.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual bool fsdk::IAsyncContext::valid () const
+
+pure virtualnoexcept
+
+ +

Tells validness of internal state.

+
Returns
True if valid, false otherwise.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_async_context.js b/doc/fsdk/html/structfsdk_1_1_i_async_context.js new file mode 100644 index 0000000..933647f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_async_context.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_i_async_context = +[ + [ "clearTaskQueue", "structfsdk_1_1_i_async_context.html#a8db1ec0dbf3c38ea731a76524208f8f9", null ], + [ "resize", "structfsdk_1_1_i_async_context.html#a2ecda0d4f935a7fe477f68bd5d90f5a7", null ], + [ "stop", "structfsdk_1_1_i_async_context.html#af9133106ddd66cfc4bbb48d390e48f2c", null ], + [ "threads", "structfsdk_1_1_i_async_context.html#ac73acb108a28097493dc33a32383405d", null ], + [ "valid", "structfsdk_1_1_i_async_context.html#a819aef0e6c25bade404db1e1e0cde11e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_async_context.png b/doc/fsdk/html/structfsdk_1_1_i_async_context.png new file mode 100644 index 0000000..9c44d78 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_async_context.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator-members.html new file mode 100644 index 0000000..c48410b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator-members.html @@ -0,0 +1,145 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IBestShotQualityEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::IBestShotQualityEstimator, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
estimate(const Image &image, const Detection &detection, const EstimationRequest request, EstimationResult &result) const noexcept=0fsdk::IBestShotQualityEstimatorpure virtual
estimate(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< EstimationResult > results) const noexcept=0fsdk::IBestShotQualityEstimatorpure virtual
estimateAGS enum valuefsdk::IBestShotQualityEstimator
estimateAll enum valuefsdk::IBestShotQualityEstimator
estimateAsync(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request) const =0fsdk::IBestShotQualityEstimatorpure virtual
estimateHeadPose enum valuefsdk::IBestShotQualityEstimator
EstimationBatch typedeffsdk::IBestShotQualityEstimator
EstimationBatchFuture typedef (defined in fsdk::IBestShotQualityEstimator)fsdk::IBestShotQualityEstimator
EstimationRequest enum namefsdk::IBestShotQualityEstimator
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IBestShotQualityEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.html new file mode 100644 index 0000000..382d587 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.html @@ -0,0 +1,488 @@ + + + + + + +Face Engine SDK: fsdk::IBestShotQualityEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IBestShotQualityEstimator Struct Referenceabstract
+
+
+ +

BestShotQuality estimator interface. + More...

+ +

#include <IBestShotQualityEstimator.h>

+
+Inheritance diagram for fsdk::IBestShotQualityEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + +

+Classes

struct  EstimationResult
 BestShotQualityEstimator output structure. More...
 
+ + + + + + + + + +

+Public Types

enum  EstimationRequest { estimateAGS = 1 << 0, +estimateHeadPose = 1 << 1, +estimateAll = 0xffff + }
 EstimationRequest lists all possible estimation attributes that BestShotQuality estimator is able to estimate. More...
 
+using EstimationBatch = std::vector< EstimationResult >
 Common aliases for BestShotQuality asynchronous interface.
 
+using EstimationBatchFuture = vlc::future< EstimationBatch >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorestimate (const Image &image, const Detection &detection, const EstimationRequest request, EstimationResult &result) const noexcept=0
 Estimate unified AGS and HeadPose attributes. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< EstimationResult > results) const noexcept=0
 Estimate unified AGS and HeadPose attributes of multiple frames in a single estimate function call. More...
 
virtual EstimationBatchFuture estimateAsync (Span< const Image > images, Span< const Detection > detections, const EstimationRequest request) const =0
 Asynchronously estimate unified AGS and HeadPose attributes of multiple frames in a single estimate function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< const Detection > detections, const EstimationRequest request, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

BestShotQuality estimator interface.

+
Note
This estimator is designed to work with Image and detection;
+

Member Enumeration Documentation

+ +
+
+ +

EstimationRequest lists all possible estimation attributes that BestShotQuality estimator is able to estimate.

+ + + + +
Enumerator
estimateAGS  +

Estimate AGS.

+
estimateHeadPose  +

Estimate HeadPose.

+
estimateAll  +

Make full estimation (all attributes)

+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IBestShotQualityEstimator::estimate (const Imageimage,
const Detectiondetection,
const EstimationRequest request,
EstimationResultresult 
) const
+
+pure virtualnoexcept
+
+ +

Estimate unified AGS and HeadPose attributes.

+
Parameters
+ + + + + +
[in]imagesource image;
[in]detectiondetection coordinates in image space;
[in]requestEstimationRequest structure;
[out]resultoutput estimation.
+
+
+
Returns
Result with error code.
+
See Also
IBestShotQualityEstimator::EstimationRequest, IBestShotQualityEstimator::EstimationResult, Detection, Image, Result and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IBestShotQualityEstimator::estimate (Span< const Imageimages,
Span< const Detectiondetections,
const EstimationRequest request,
Span< EstimationResultresults 
) const
+
+pure virtualnoexcept
+
+ +

Estimate unified AGS and HeadPose attributes of multiple frames in a single estimate function call.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[in]requestEstimationRequest structure.
[out]resultsspan of estimations.
+
+
+
Returns
Result with error code.
+
See Also
IBestShotQualityEstimator::EstimationRequest, IBestShotQualityEstimator::EstimationResult, Span, Detection, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual EstimationBatchFuture fsdk::IBestShotQualityEstimator::estimateAsync (Span< const Imageimages,
Span< const Detectiondetections,
const EstimationRequest request 
) const
+
+pure virtual
+
+ +

Asynchronously estimate unified AGS and HeadPose attributes of multiple frames in a single estimate function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[in]requestEstimationRequest structure.
+
+
+
Returns
Future estimation result object.
+
See Also
IBestShotQualityEstimator::EstimationRequest, IBestShotQualityEstimator::EstimationResult, Span, Detection, Image, Result, FSDKError and vlc::future for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+
+this method is experimental and interface may be changed in the future.
+
+this method is not marked as noexcept and may throw an exception.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IBestShotQualityEstimator::validate (Span< const Imageimages,
Span< const Detectiondetections,
const EstimationRequest request,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[in]requestEstimationRequest structure.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
IBestShotQualityEstimator::EstimationRequest, Span, Detection, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.js new file mode 100644 index 0000000..d84973a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.js @@ -0,0 +1,15 @@ +var structfsdk_1_1_i_best_shot_quality_estimator = +[ + [ "EstimationResult", "structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html", "structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result" ], + [ "EstimationBatch", "structfsdk_1_1_i_best_shot_quality_estimator.html#a8a8235d79f299897ea594055891b6c55", null ], + [ "EstimationBatchFuture", "structfsdk_1_1_i_best_shot_quality_estimator.html#ae22604973accf4ec35ad5890760c1591", null ], + [ "EstimationRequest", "structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdf", [ + [ "estimateAGS", "structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfac7f36c8245ae1f8416743d0d26fa3845", null ], + [ "estimateHeadPose", "structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa027444bb21a0391ad968200b23d29ad6", null ], + [ "estimateAll", "structfsdk_1_1_i_best_shot_quality_estimator.html#aa5d014d1527054f0d1a9a34c6d428cdfa0a22c4c7f110c98d9f93506465cc8402", null ] + ] ], + [ "estimate", "structfsdk_1_1_i_best_shot_quality_estimator.html#a5519ff5a754a1d0040cf1953f830c8a4", null ], + [ "estimate", "structfsdk_1_1_i_best_shot_quality_estimator.html#a290da1a78d37eafc2b4d7bb30f30ea46", null ], + [ "estimateAsync", "structfsdk_1_1_i_best_shot_quality_estimator.html#a62415905ea9018bc3f6696652837cfc1", null ], + [ "validate", "structfsdk_1_1_i_best_shot_quality_estimator.html#a9278fd5a0b49f6eb6b5860bc04a0aa1e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.png new file mode 100644 index 0000000..e8f59d5 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result-members.html b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result-members.html new file mode 100644 index 0000000..3b5622d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result-members.html @@ -0,0 +1,130 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html new file mode 100644 index 0000000..6a73180 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html @@ -0,0 +1,151 @@ + + + + + + +Face Engine SDK: fsdk::IBestShotQualityEstimator::EstimationResult Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IBestShotQualityEstimator::EstimationResult Struct Reference
+
+
+ +

BestShotQualityEstimator output structure. + More...

+ +

#include <IBestShotQualityEstimator.h>

+ + + + + + + + +

+Public Attributes

+Optional< HeadPoseEstimationheadPose
 HeadPose estimation if was requested, empty otherwise.
 
+Optional< float > ags
 AGS estimation if was requested, empty otherwise.
 
+

Detailed Description

+

BestShotQualityEstimator output structure.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.js b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.js new file mode 100644 index 0000000..090680b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.js @@ -0,0 +1,5 @@ +var structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result = +[ + [ "ags", "structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#ad62dfcec240364328eff4eb65b75ba72", null ], + [ "headPose", "structfsdk_1_1_i_best_shot_quality_estimator_1_1_estimation_result.html#a873c696da443a1761142d0b2be038d1f", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_data_storage_object-members.html b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object-members.html new file mode 100644 index 0000000..e4d5885 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object-members.html @@ -0,0 +1,144 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDataStorageObject Member List
+
+
+ +

This is the complete list of members for fsdk::IDataStorageObject, including all inherited members.

+ + + + + + + + + + + + + + + + + +
clear() noexcept=0fsdk::IDataStorageObjectpure virtual
Default enum valuefsdk::ISerializableObject
Error enum namefsdk::ISerializableObject
Flags enum namefsdk::ISerializableObject
getParentObject() const noexcept=0fsdk::IDataStorageObjectpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getSize(Sizer &sizer, uint32_t flags=Default) const noexcept=0fsdk::ISerializableObjectpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
load(IArchive *archive, uint32_t flags=Default)=0fsdk::ISerializableObjectpure virtual
NoSignature enum valuefsdk::ISerializableObject
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
save(IArchive *archive, uint32_t flags=Default) const =0fsdk::ISerializableObjectpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.html b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.html new file mode 100644 index 0000000..443ca5c --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.html @@ -0,0 +1,268 @@ + + + + + + +Face Engine SDK: fsdk::IDataStorageObject Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDataStorageObject Struct Referenceabstract
+
+
+ +

Data storage object interface helper. + More...

+ +

#include <IObject.h>

+
+Inheritance diagram for fsdk::IDataStorageObject:
+
+
+ + +fsdk::ISerializableObject +fsdk::IRefCounted +fsdk::IDescriptor +fsdk::IDescriptorBatch + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void clear () noexcept=0
 Clear object data. More...
 
virtual IRefCountedgetParentObject () const noexcept=0
 Get parent object (one that has created this). More...
 
- Public Member Functions inherited from fsdk::ISerializableObject
virtual void getSize (Sizer &sizer, uint32_t flags=Default) const noexcept=0
 Estimate size of this object binary data. More...
 
virtual Result< Errorload (IArchive *archive, uint32_t flags=Default)=0
 Load object from archive. More...
 
virtual Result< Errorsave (IArchive *archive, uint32_t flags=Default) const =0
 Save object to archive. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+ + + + + + + + +

+Additional Inherited Members

- Public Types inherited from fsdk::ISerializableObject
enum  Error : uint32_t {
+  Error::Ok, +Error::Size, +Error::Signature, +Error::ArchiveRead, +
+  Error::InputArchive, +Error::ArchiveWrite +
+ }
 Serialization nerror codes. More...
 
enum  Flags { Default = 0, +NoSignature = 1 + }
 Serialization flags. More...
 
+

Detailed Description

+

Data storage object interface helper.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual void fsdk::IDataStorageObject::clear ()
+
+pure virtualnoexcept
+
+ +

Clear object data.

+
Note
This does not necessarily mean deallocation; it is defined by implementation how to manage data memory.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual IRefCounted* fsdk::IDataStorageObject::getParentObject () const
+
+pure virtualnoexcept
+
+ +

Get parent object (one that has created this).

+
Note
Any returned interfaces will have their reference count incremented by one, so be sure to call release() on the returned pointer(s) before they are freed or else you will have a memory leak.
+
Returns
pointer to the parent object.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.js b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.js new file mode 100644 index 0000000..8ec85e7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.js @@ -0,0 +1,5 @@ +var structfsdk_1_1_i_data_storage_object = +[ + [ "clear", "structfsdk_1_1_i_data_storage_object.html#addfae1943b82b44900f1c2f318a05d53", null ], + [ "getParentObject", "structfsdk_1_1_i_data_storage_object.html#a76dd0aaf5ac83187635a9161ceae8237", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.png b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.png new file mode 100644 index 0000000..fe6aa4a Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_data_storage_object.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_dense_index-members.html b/doc/fsdk/html/structfsdk_1_1_i_dense_index-members.html new file mode 100644 index 0000000..119e860 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dense_index-members.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDenseIndex Member List
+
+
+ +

This is the complete list of members for fsdk::IDenseIndex, including all inherited members.

+ + + + + + + + + + + + +
descriptorByIndex(const DescriptorId index, IDescriptor *descriptor) const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getDescriptorVersion() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
search(const IDescriptor *reference, int maxResultsCount, SearchResult *results) const noexcept=0fsdk::IIndexpure virtual
size() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_dense_index.html b/doc/fsdk/html/structfsdk_1_1_i_dense_index.html new file mode 100644 index 0000000..ba3bb62 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dense_index.html @@ -0,0 +1,190 @@ + + + + + + +Face Engine SDK: fsdk::IDenseIndex Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDenseIndex Struct Reference
+
+
+ +

Dense (read only) index interface. + More...

+ +

#include <IIndex.h>

+
+Inheritance diagram for fsdk::IDenseIndex:
+
+
+ + +fsdk::IStaticDescriptorStorage +fsdk::IIndex +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from fsdk::IStaticDescriptorStorage
virtual Result< FSDKErrordescriptorByIndex (const DescriptorId index, IDescriptor *descriptor) const noexcept=0
 Requests descriptor data out of internal storage. More...
 
virtual uint32_t getDescriptorVersion () const noexcept=0
 Return version of stored descriptors. More...
 
virtual uint64_t size () const noexcept=0
 Return size of internal storage. More...
 
- Public Member Functions inherited from fsdk::IIndex
virtual ResultValue< FSDKError,
+int > 
search (const IDescriptor *reference, int maxResultsCount, SearchResult *results) const noexcept=0
 Search for descriptors with the shorter distance to passed descriptor. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Dense (read only) index interface.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_dense_index.png b/doc/fsdk/html/structfsdk_1_1_i_dense_index.png new file mode 100644 index 0000000..968eda9 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_dense_index.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor-members.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor-members.html new file mode 100644 index 0000000..0e5d022 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor-members.html @@ -0,0 +1,149 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDescriptor Member List
+
+
+ +

This is the complete list of members for fsdk::IDescriptor, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
clear() noexcept=0fsdk::IDataStorageObjectpure virtual
Default enum valuefsdk::ISerializableObject
Error enum namefsdk::ISerializableObject
Flags enum namefsdk::ISerializableObject
getDescriptor(uint8_t *buffer) const noexcept=0fsdk::IDescriptorpure virtual
getDescriptorLength() const noexcept=0fsdk::IDescriptorpure virtual
getDescriptorType() const noexcept=0fsdk::IDescriptorpure virtual
getModelVersion() const noexcept=0fsdk::IDescriptorpure virtual
getParentObject() const noexcept=0fsdk::IDataStorageObjectpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getSize(Sizer &sizer, uint32_t flags=Default) const noexcept=0fsdk::ISerializableObjectpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
load(IArchive *archive, uint32_t flags=Default)=0fsdk::ISerializableObjectpure virtual
NoSignature enum valuefsdk::ISerializableObject
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
save(IArchive *archive, uint32_t flags=Default) const =0fsdk::ISerializableObjectpure virtual
setDescriptor(const uint8_t *buffer) noexcept=0fsdk::IDescriptorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor.html new file mode 100644 index 0000000..f569b3e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor.html @@ -0,0 +1,379 @@ + + + + + + +Face Engine SDK: fsdk::IDescriptor Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDescriptor Struct Referenceabstract
+
+
+ +

Descriptor interface. + More...

+ +

#include <IDescriptor.h>

+
+Inheritance diagram for fsdk::IDescriptor:
+
+
+ + +fsdk::IDataStorageObject +fsdk::ISerializableObject +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual uint32_t getModelVersion () const noexcept=0
 Get algorithm model version this descriptor was created with. More...
 
virtual DescriptorType getDescriptorType () const noexcept=0
 Get type of descriptor. More...
 
virtual uint32_t getDescriptorLength () const noexcept=0
 return size of descriptor in bytes. More...
 
virtual bool getDescriptor (uint8_t *buffer) const noexcept=0
 Copy descriptor data to user provided buffer. More...
 
virtual void setDescriptor (const uint8_t *buffer) noexcept=0
 Copy descriptor from user providedbuffer. More...
 
- Public Member Functions inherited from fsdk::IDataStorageObject
virtual void clear () noexcept=0
 Clear object data. More...
 
virtual IRefCountedgetParentObject () const noexcept=0
 Get parent object (one that has created this). More...
 
- Public Member Functions inherited from fsdk::ISerializableObject
virtual void getSize (Sizer &sizer, uint32_t flags=Default) const noexcept=0
 Estimate size of this object binary data. More...
 
virtual Result< Errorload (IArchive *archive, uint32_t flags=Default)=0
 Load object from archive. More...
 
virtual Result< Errorsave (IArchive *archive, uint32_t flags=Default) const =0
 Save object to archive. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+ + + + + + + + +

+Additional Inherited Members

- Public Types inherited from fsdk::ISerializableObject
enum  Error : uint32_t {
+  Error::Ok, +Error::Size, +Error::Signature, +Error::ArchiveRead, +
+  Error::InputArchive, +Error::ArchiveWrite +
+ }
 Serialization nerror codes. More...
 
enum  Flags { Default = 0, +NoSignature = 1 + }
 Serialization flags. More...
 
+

Detailed Description

+

Descriptor interface.

+

Used for matching.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool fsdk::IDescriptor::getDescriptor (uint8_t * buffer) const
+
+pure virtualnoexcept
+
+ +

Copy descriptor data to user provided buffer.

+
Parameters
+ + +
[out]bufferuser provided buffer.
+
+
+
Returns
true if OK, and false if ERROR.
+
Note
This method is thread safe.
+
+buffer must be preallocated by client code.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptor::getDescriptorLength () const
+
+pure virtualnoexcept
+
+ +

return size of descriptor in bytes.

+
Returns
size of descriptor in bytes.
+
Note
This method is thread safe.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual DescriptorType fsdk::IDescriptor::getDescriptorType () const
+
+pure virtualnoexcept
+
+ +

Get type of descriptor.

+
Returns
type as enum.
+
See Also
DescriptorType for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptor::getModelVersion () const
+
+pure virtualnoexcept
+
+ +

Get algorithm model version this descriptor was created with.

+
Returns
Version as integral number.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IDescriptor::setDescriptor (const uint8_t * buffer)
+
+pure virtualnoexcept
+
+ +

Copy descriptor from user providedbuffer.

+
Parameters
+ + +
[in]bufferuser provided buffer.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor.js b/doc/fsdk/html/structfsdk_1_1_i_descriptor.js new file mode 100644 index 0000000..be602c8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_i_descriptor = +[ + [ "getDescriptor", "structfsdk_1_1_i_descriptor.html#ab5512a2e46ca8b3b9f791bc620855e4c", null ], + [ "getDescriptorLength", "structfsdk_1_1_i_descriptor.html#a1a0c8122a9c7f0fcefa94d48d4144b4f", null ], + [ "getDescriptorType", "structfsdk_1_1_i_descriptor.html#a1c13db8168c4fb3102ac9f5ab8064722", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor.html#a69cd5752c0de1981d0eae131492ea5e7", null ], + [ "setDescriptor", "structfsdk_1_1_i_descriptor.html#a430f0098d482b8f235f0b0282184c864", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor.png b/doc/fsdk/html/structfsdk_1_1_i_descriptor.png new file mode 100644 index 0000000..5de3df6 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_descriptor.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch-members.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch-members.html new file mode 100644 index 0000000..1bc7d53 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch-members.html @@ -0,0 +1,157 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDescriptorBatch Member List
+
+
+ +

This is the complete list of members for fsdk::IDescriptorBatch, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
add(IDescriptor *descriptor) noexcept=0fsdk::IDescriptorBatchpure virtual
add(IDescriptorBatch *batch, uint32_t offset=0) noexcept=0fsdk::IDescriptorBatchpure virtual
add(IDescriptorBatch *batch, uint32_t offset, uint32_t count) noexcept=0fsdk::IDescriptorBatchpure virtual
clear() noexcept=0fsdk::IDataStorageObjectpure virtual
Default enum valuefsdk::ISerializableObject
Error enum namefsdk::IDescriptorBatch
Flags enum namefsdk::ISerializableObject
getCount() const noexcept=0fsdk::IDescriptorBatchpure virtual
getDescriptorFast(uint32_t index) noexcept=0fsdk::IDescriptorBatchpure virtual
getDescriptorLength() const noexcept=0fsdk::IDescriptorBatchpure virtual
getDescriptorSlow(uint32_t index) const noexcept=0fsdk::IDescriptorBatchpure virtual
getDescriptorType() const noexcept=0fsdk::IDescriptorBatchpure virtual
getMaxCount() const noexcept=0fsdk::IDescriptorBatchpure virtual
getModelVersion() const noexcept=0fsdk::IDescriptorBatchpure virtual
getParentObject() const noexcept=0fsdk::IDataStorageObjectpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getSize(Sizer &sizer, uint32_t flags=Default) const noexcept=0fsdk::ISerializableObjectpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
load(IArchive *archive, uint32_t flags=Default)=0fsdk::ISerializableObjectpure virtual
loadAndAdd(IArchive *archive)=0fsdk::IDescriptorBatchpure virtual
NoSignature enum valuefsdk::ISerializableObject
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
removeFast(uint32_t index) noexcept=0fsdk::IDescriptorBatchpure virtual
removeSlow(uint32_t index) noexcept=0fsdk::IDescriptorBatchpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
save(IArchive *archive, uint32_t flags=Default) const =0fsdk::ISerializableObjectpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.html new file mode 100644 index 0000000..ab51dc3 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.html @@ -0,0 +1,771 @@ + + + + + + +Face Engine SDK: fsdk::IDescriptorBatch Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDescriptorBatch Struct Referenceabstract
+
+
+ +

Descriptor batch interface. + More...

+ +

#include <IDescriptor.h>

+
+Inheritance diagram for fsdk::IDescriptorBatch:
+
+
+ + +fsdk::IDataStorageObject +fsdk::ISerializableObject +fsdk::IRefCounted + +
+ + + + + + + + + + + + +

+Public Types

enum  Error : uint32_t {
+  Error::Ok, +Error::InvalidInput, +Error::BatchFull, +Error::Incompatible, +
+  Error::Internal, +Error::IoError, +Error::OutOfRange +
+ }
 Descriptor batch error enumeration. More...
 
- Public Types inherited from fsdk::ISerializableObject
enum  Error : uint32_t {
+  Error::Ok, +Error::Size, +Error::Signature, +Error::ArchiveRead, +
+  Error::InputArchive, +Error::ArchiveWrite +
+ }
 Serialization nerror codes. More...
 
enum  Flags { Default = 0, +NoSignature = 1 + }
 Serialization flags. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< Erroradd (IDescriptor *descriptor) noexcept=0
 Add a descriptor to the batch. More...
 
virtual Result< Erroradd (IDescriptorBatch *batch, uint32_t offset=0) noexcept=0
 Add a given descriptor batch content to the current batch. Descriptors to copy from the source batch are selected based on offset parameter. More...
 
virtual Result< Erroradd (IDescriptorBatch *batch, uint32_t offset, uint32_t count) noexcept=0
 Add a descriptor batch content to the batch. Descriptors to copy from the source bath are selected based on count and offset parameters. More...
 
virtual Result< ErrorremoveFast (uint32_t index) noexcept=0
 Remove a descriptor from batch. More...
 
virtual Result< ErrorremoveSlow (uint32_t index) noexcept=0
 Remove a descriptor from batch. More...
 
virtual Result< MultiError
+< ISerializableObject::Error,
+Error > > 
loadAndAdd (IArchive *archive)=0
 Load a descriptor/descriptors from archive and add it to the batch. More...
 
virtual uint32_t getMaxCount () const noexcept=0
 Get maximum number of descriptors in this batch. More...
 
virtual uint32_t getCount () const noexcept=0
 Get actual number of descriptors in this batch. More...
 
virtual uint32_t getModelVersion () const noexcept=0
 Get algorithm model version the descriptors in this batch were created with. More...
 
virtual DescriptorType getDescriptorType () const noexcept=0
 Get type of descriptor. More...
 
virtual uint32_t getDescriptorLength () const noexcept=0
 Get length of one descriptor. Specified by version of descriptors in batch. More...
 
virtual ResultValue< FSDKError,
+IDescriptorPtr > 
getDescriptorSlow (uint32_t index) const noexcept=0
 Get descriptor from batch by index with copying. More...
 
virtual ResultValue< FSDKError,
+IDescriptorPtr > 
getDescriptorFast (uint32_t index) noexcept=0
 Get descriptor from batch by index without copying. More...
 
- Public Member Functions inherited from fsdk::IDataStorageObject
virtual void clear () noexcept=0
 Clear object data. More...
 
virtual IRefCountedgetParentObject () const noexcept=0
 Get parent object (one that has created this). More...
 
- Public Member Functions inherited from fsdk::ISerializableObject
virtual void getSize (Sizer &sizer, uint32_t flags=Default) const noexcept=0
 Estimate size of this object binary data. More...
 
virtual Result< Errorload (IArchive *archive, uint32_t flags=Default)=0
 Load object from archive. More...
 
virtual Result< Errorsave (IArchive *archive, uint32_t flags=Default) const =0
 Save object to archive. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Descriptor batch interface.

+

Used for matching large continous sets of descriptors.

+

A batch is created with a reserved memory for descriptors that can not be later extended. Thus descriptors can be add()'ed until the memory reservation is exceeded.

+

Memory reservation size can be obtained via getMaxCount() function. The batch me be reset via clear() function. It does not deallocate memory reservation. Instead, it resets internal counter allowing to re-populate the batch via add() again.

+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum fsdk::IDescriptorBatch::Error : uint32_t
+
+strong
+
+ +

Descriptor batch error enumeration.

+

Used for descriptor batch related errors indication.

+ + + + + + + + +
Enumerator
Ok  +

No error.

+
InvalidInput  +

Invalid input (Ex: null pointer while a valid object is expected).

+
BatchFull  +

Batch is full.

+
Incompatible  +

Trying to add an incompatible descriptor.

+
Internal  +

An internal processing error (Ex: memopry allocation or misalignment).

+
IoError  +

Error while trying open/read/write file.

+
OutOfRange  +

Error while accessing descriptor out of range.

+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<Error> fsdk::IDescriptorBatch::add (IDescriptordescriptor)
+
+pure virtualnoexcept
+
+ +

Add a descriptor to the batch.

+
Parameters
+ + +
[in]descriptordescriptor to add. Descriptor data is copied and to internal reference is held, thus it is safe to release the source descriptor object later.
+
+
+
Returns
Result with one of the error codes specified by DescriptorBatchError.
+
See Also
IDescriptor, Result and Error for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<Error> fsdk::IDescriptorBatch::add (IDescriptorBatchbatch,
uint32_t offset = 0 
)
+
+pure virtualnoexcept
+
+ +

Add a given descriptor batch content to the current batch. Descriptors to copy from the source batch are selected based on offset parameter.

+
Parameters
+ + + +
[in]batchbatch to take content from. All descriptors from the input batch are copied to the buffer of the current batch. So it is safe to release the source descriptor batch object later.
[in]offsetoffset of descriptors to copy.
+
+
+
Returns
Result with one of the error codes specified by DescriptorBatchError.
+
See Also
IDescriptorBatch, Result and Error for details.
+
Note
Current batch should have enough free space to place all descriptors from the input batch.
+
+All selected descriptors from the source batch will be placed right after all descriptors in the current batch.
+
+All selected descriptors from the input batch are copied to the buffer of the current batch. So it is safe to release the source descriptor batch object later.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<Error> fsdk::IDescriptorBatch::add (IDescriptorBatchbatch,
uint32_t offset,
uint32_t count 
)
+
+pure virtualnoexcept
+
+ +

Add a descriptor batch content to the batch. Descriptors to copy from the source bath are selected based on count and offset parameters.

+
Parameters
+ + + + +
[in]batchbatch to take content from.
[in]offsetoffset of descriptors to copy.
[in]countcount of descriptors to copy.
+
+
+
Returns
Result with one of the error codes specified by DescriptorBatchError.
+
See Also
IDescriptorBatch, Result and Error for details.
+
Note
Current batch should have enough free space to place all descriptors from the input batch.
+
+All selected descriptors from the source batch will be placed right after all descriptors in the current batch.
+
+All selected descriptors from the input batch are copied to the buffer of the current batch. So it is safe to release the source descriptor batch object later.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptorBatch::getCount () const
+
+pure virtualnoexcept
+
+ +

Get actual number of descriptors in this batch.

+
Returns
actual number of descriptors in this batch.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, IDescriptorPtr> fsdk::IDescriptorBatch::getDescriptorFast (uint32_t index)
+
+pure virtualnoexcept
+
+ +

Get descriptor from batch by index without copying.

+
Parameters
+ + +
[in]indexdescriptor index in batch.
+
+
+
Returns
ResultValue with error code and IDescriptorPtr instance.
+
See Also
IDescriptorPtr, ResultValue and FSDKError for details.
+
Note
If you change achived descriptor - corresponded descriptor in batch will be changed.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptorBatch::getDescriptorLength () const
+
+pure virtualnoexcept
+
+ +

Get length of one descriptor. Specified by version of descriptors in batch.

+
Returns
Length of one descriptor in batch.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, IDescriptorPtr> fsdk::IDescriptorBatch::getDescriptorSlow (uint32_t index) const
+
+pure virtualnoexcept
+
+ +

Get descriptor from batch by index with copying.

+
Parameters
+ + +
[in]indexdescriptor index in batch.
+
+
+
Returns
ResultValue with error code and IDescriptorPtr instance.
+
See Also
IDescriptorPtr, ResultValue and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual DescriptorType fsdk::IDescriptorBatch::getDescriptorType () const
+
+pure virtualnoexcept
+
+ +

Get type of descriptor.

+
Note
This function only makes sense when there is at least one descriptor in the batch.
+
Returns
type as enum.
+
See Also
DescriptorType for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptorBatch::getMaxCount () const
+
+pure virtualnoexcept
+
+ +

Get maximum number of descriptors in this batch.

+
Returns
maximum number of descriptors in this batch.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptorBatch::getModelVersion () const
+
+pure virtualnoexcept
+
+ +

Get algorithm model version the descriptors in this batch were created with.

+
Note
This function only makes sense when there is at least one descriptor in the batch. It will return 0 if the batch is empty.
+
Returns
Version as integral number.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<MultiError<ISerializableObject::Error,Error> > fsdk::IDescriptorBatch::loadAndAdd (IArchivearchive)
+
+pure virtual
+
+ +

Load a descriptor/descriptors from archive and add it to the batch.

+
Note
This method supports both serialized IDescriptorBatch and IDescriptor.
+
Parameters
+ + +
[in]archivearchive to read from.
+
+
+
Returns
MultiError result with codes specified by DescriptorBatchError and SerializationError.
+
Note
This method pass exceptions from user defined IArchive, but doesnt throw its own
+
See Also
Result, IArchive, ISerializableObject::Error, Error and MultiError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<Error> fsdk::IDescriptorBatch::removeFast (uint32_t index)
+
+pure virtualnoexcept
+
+ +

Remove a descriptor from batch.

+

Remove descriptor by swapping it with the last descriptor in batch. This breaks descriptor order.

+
Parameters
+ + +
[in]indexdescriptor index.
+
+
+
Returns
Result with one of the error codes specified by DescriptorBatchError.
+
See Also
Result and Error for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<Error> fsdk::IDescriptorBatch::removeSlow (uint32_t index)
+
+pure virtualnoexcept
+
+ +

Remove a descriptor from batch.

+

Remove descriptor by shifting all the following descriptors back. This preserves descriptor order.

+
Parameters
+ + +
[in]indexdescriptor index.
+
+
+
Returns
Result with one of the error codes specified by DescriptorBatchError.
+
See Also
Result and Error for details.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.js b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.js new file mode 100644 index 0000000..a69e72b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.js @@ -0,0 +1,25 @@ +var structfsdk_1_1_i_descriptor_batch = +[ + [ "Error", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93", [ + [ "Ok", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aa60852f204ed8028c1c58808b746d115", null ], + [ "InvalidInput", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93ad8f78ca9a692a9411afbc7584b69d043", null ], + [ "BatchFull", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a04b15c03f3f8d523b85b4698e1bc56cb", null ], + [ "Incompatible", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a2a208768bc7995cc26b7f3797d24b0b1", null ], + [ "Internal", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93aafbf0897a5a83fdd873dfb032ec695d3", null ], + [ "IoError", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93af05cfcbf5123775f7c73e520a8d861e1", null ], + [ "OutOfRange", "structfsdk_1_1_i_descriptor_batch.html#af8054a7215c500c856b6b10e41e4be93a365b2699d38b61ef4b4c8a1066c8468f", null ] + ] ], + [ "add", "structfsdk_1_1_i_descriptor_batch.html#acdebdf5cd4b73082fb1f69b7c3673b3e", null ], + [ "add", "structfsdk_1_1_i_descriptor_batch.html#a61596b9c2071cf35b9f7b36f78338b31", null ], + [ "add", "structfsdk_1_1_i_descriptor_batch.html#ab13b6d9a8bc83a2319a2df12ea8fb385", null ], + [ "getCount", "structfsdk_1_1_i_descriptor_batch.html#a786779cf2e2c286ce80f95907c23ff1d", null ], + [ "getDescriptorFast", "structfsdk_1_1_i_descriptor_batch.html#a4e0a961f7736f00dae3327dd58d39f68", null ], + [ "getDescriptorLength", "structfsdk_1_1_i_descriptor_batch.html#a7cf7c4ae4d831ff0bc9b7187eb866e9e", null ], + [ "getDescriptorSlow", "structfsdk_1_1_i_descriptor_batch.html#a61d0c7378db1a1a4e336c0b12f9af7e5", null ], + [ "getDescriptorType", "structfsdk_1_1_i_descriptor_batch.html#ac044ea615c32aa4433c60e0491e8c958", null ], + [ "getMaxCount", "structfsdk_1_1_i_descriptor_batch.html#a48090c46fcc1613d4d08c082f21b40ce", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor_batch.html#a88c11b85fc5a8b3eede0d7a2c6f251d6", null ], + [ "loadAndAdd", "structfsdk_1_1_i_descriptor_batch.html#a1e40e982bc2bd2fe5a18e8a7f43cbf99", null ], + [ "removeFast", "structfsdk_1_1_i_descriptor_batch.html#a8f32454a4158e732938e6b9812b6ceb5", null ], + [ "removeSlow", "structfsdk_1_1_i_descriptor_batch.html#ac98c97ca906f99236c7065d51f82c65a", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.png b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.png new file mode 100644 index 0000000..89de626 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_descriptor_batch.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor-members.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor-members.html new file mode 100644 index 0000000..49d5366 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor-members.html @@ -0,0 +1,143 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDescriptorExtractor Member List
+
+
+ +

This is the complete list of members for fsdk::IDescriptorExtractor, including all inherited members.

+ + + + + + + + + + + + + + + + +
extractFromWarpedImage(const Image &warp, IDescriptor *descriptor) const noexcept=0fsdk::IDescriptorExtractorpure virtual
extractFromWarpedImageBatch(Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const noexcept=0fsdk::IDescriptorExtractorpure virtual
extractFromWarpedImageBatch(Span< const Image > warps, IDescriptorBatch *descriptorBatch, Span< float > garbageScoreBatch) const noexcept=0fsdk::IDescriptorExtractorpure virtual
extractFromWarpedImageBatchAsync(Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const =0fsdk::IDescriptorExtractorpure virtual
FutureResult typedeffsdk::IDescriptorExtractor
getDescriptorType() const noexcept=0fsdk::IDescriptorExtractorpure virtual
getModelVersion() const noexcept=0fsdk::IDescriptorExtractorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IDescriptorExtractorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.html new file mode 100644 index 0000000..84d7d0a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.html @@ -0,0 +1,586 @@ + + + + + + +Face Engine SDK: fsdk::IDescriptorExtractor Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDescriptorExtractor Struct Referenceabstract
+
+
+ +

Descriptor extractor interface. + More...

+ +

#include <IDescriptor.h>

+
+Inheritance diagram for fsdk::IDescriptorExtractor:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + +

+Public Types

+using FutureResult = vlc::future< float >
 Common aliases for BestShotQuality asynchronous interface.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+float > 
extractFromWarpedImage (const Image &warp, IDescriptor *descriptor) const noexcept=0
 Extract descriptor from a warped image. More...
 
virtual ResultValue< FSDKError,
+float > 
extractFromWarpedImageBatch (Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const noexcept=0
 Extract batch of descriptors from a batch of images and perform aggregation. More...
 
virtual Result< FSDKErrorextractFromWarpedImageBatch (Span< const Image > warps, IDescriptorBatch *descriptorBatch, Span< float > garbageScoreBatch) const noexcept=0
 Extract batch of descriptors from a batch of images. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual uint32_t getModelVersion () const noexcept=0
 Get algorithm model version this extractor works with. More...
 
virtual DescriptorType getDescriptorType () const noexcept=0
 Get type of descriptor this extractor works with. More...
 
virtual FutureResult extractFromWarpedImageBatchAsync (Span< const Image > warps, IDescriptorBatch *descriptorBatch, IDescriptor *aggregation, Span< float > garbageScoreBatch) const =0
 Asynchronously extract batch of descriptors from a batch of images. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Descriptor extractor interface.

+

Extracts face descriptors from images. The descriptors can be later used for face matching.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, float> fsdk::IDescriptorExtractor::extractFromWarpedImage (const Imagewarp,
IDescriptordescriptor 
) const
+
+pure virtualnoexcept
+
+ +

Extract descriptor from a warped image.

+
Parameters
+ + +
[in]warpimage with warped face or human warp.
+
+
+
Note
Warp should be a valid 250x250 image in R8G8B8 format for DT_FACE descriptor type.
+
+Warp should be a valid 128x256 image in R8G8B8 format for DT_HUMAN descriptor type.
+
Parameters
+ + +
[out]descriptordescriptor to fill with data.
+
+
+
Returns
ResultValue with error code and score of descriptor normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp.
+
Note
human descriptor does not support garbage score, 1.0 will be returned.
+
See Also
Image, IDescriptor, ResultValue and FSDKError for details.
+
Note
warp format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, float> fsdk::IDescriptorExtractor::extractFromWarpedImageBatch (Span< const Imagewarps,
IDescriptorBatchdescriptorBatch,
IDescriptoraggregation,
Span< float > garbageScoreBatch 
) const
+
+pure virtualnoexcept
+
+ +

Extract batch of descriptors from a batch of images and perform aggregation.

+
Parameters
+ + +
[in]warpsspan of images with warped faces or human warps.
+
+
+
Note
Warps should be in R8G8B8 format, with size 250x250 for DT_FACE descriptor type.
+
+Warps should be in R8G8B8 format, with size 128x256 for DT_HUMAN descriptor type.
+
Parameters
+ + +
[out]descriptorBatchdescriptor batch to fill with data.
+
+
+
Note
DT_HUMAN descriptor does not support garbage score.
+
Parameters
+ + + +
[out]aggregationdescriptor with aggregation based on descriptor batch.
[out]garbageScoreBatchspan of descriptor scores normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp.
+
+
+
Note
human descriptor does not support garbage score, 1.0 will be returned.
+
Returns
ResultValue with error code and aggregated garbage score.
+
See Also
Span, Image, IDescriptor, IDescriptorBatch, ResultValue and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IDescriptorExtractor::extractFromWarpedImageBatch (Span< const Imagewarps,
IDescriptorBatchdescriptorBatch,
Span< float > garbageScoreBatch 
) const
+
+pure virtualnoexcept
+
+ +

Extract batch of descriptors from a batch of images.

+
Parameters
+ + +
[in]warpsspan of images with warped faces or human warps.
+
+
+
Note
Warps should be in R8G8B8 format, with size 250x250 for DT_FACE descriptor type.
+
+Warps should be in R8G8B8 format, with size 128x256 for DT_HUMAN descriptor type.
+
Parameters
+ + + +
[out]descriptorBatchdescriptor batch to fill with data.
[out]garbageScoreBatchspan of descriptor scores normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp. DT_HUMAN descriptor does not support garbage score. In a case of DT_HUMAN descriptor, you'll get batch filled by 1.0.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, IDescriptorBatch, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual FutureResult fsdk::IDescriptorExtractor::extractFromWarpedImageBatchAsync (Span< const Imagewarps,
IDescriptorBatchdescriptorBatch,
IDescriptoraggregation,
Span< float > garbageScoreBatch 
) const
+
+pure virtual
+
+ +

Asynchronously extract batch of descriptors from a batch of images.

+
Parameters
+ + +
[in]warpsspan of images with warped faces or human warps.
+
+
+
Note
Warps should be in R8G8B8 format, with size 250x250 for DT_FACE descriptor type.
+
+Warps should be in R8G8B8 format, with size 128x256 for DT_HUMAN descriptor type.
+
Parameters
+ + + + +
[out]descriptorBatchdescriptor batch to fill with data.
[out]aggregationdescriptor with aggregation based on descriptor batch.
[out]garbageScoreBatchspan of descriptor scores normalized in range [0, 1] 1 - face on the input warp; 0 - garbage on the input warp. DT_HUMAN descriptor does not support garbage score. In a case of DT_HUMAN descriptor, you'll get batch filled by 1.0.
+
+
+
Returns
Result with error code and aggregated garbage score.
+
See Also
Span, Image, IDescriptorBatch, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+
+this method is experimental and interface may be changed in the future.
+
+this method is not marked as noexcept and may throw an exception.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual DescriptorType fsdk::IDescriptorExtractor::getDescriptorType () const
+
+pure virtualnoexcept
+
+ +

Get type of descriptor this extractor works with.

+
Returns
type as enum
+
See Also
DescriptorType.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptorExtractor::getModelVersion () const
+
+pure virtualnoexcept
+
+ +

Get algorithm model version this extractor works with.

+
Returns
Version as integral number.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IDescriptorExtractor::validate (Span< const Imagewarps,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces or human warps.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.js b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.js new file mode 100644 index 0000000..21f8f1e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.js @@ -0,0 +1,11 @@ +var structfsdk_1_1_i_descriptor_extractor = +[ + [ "FutureResult", "structfsdk_1_1_i_descriptor_extractor.html#a99a4f2d66cd4fc28a69cd02b9348817c", null ], + [ "extractFromWarpedImage", "structfsdk_1_1_i_descriptor_extractor.html#ae6fdfb87662991d62af362b06982728e", null ], + [ "extractFromWarpedImageBatch", "structfsdk_1_1_i_descriptor_extractor.html#a3bdb3f914db81bef8b849e4973566f88", null ], + [ "extractFromWarpedImageBatch", "structfsdk_1_1_i_descriptor_extractor.html#a5c1d36e3c3362aa8160bcc89933bcf1b", null ], + [ "extractFromWarpedImageBatchAsync", "structfsdk_1_1_i_descriptor_extractor.html#af35cadc879d6ceb1429a95c4fee6509d", null ], + [ "getDescriptorType", "structfsdk_1_1_i_descriptor_extractor.html#afdd1464778a55727acaef93b9fc5d443", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor_extractor.html#ad1e6f85a654cc0d5b7e61e1a5caad36d", null ], + [ "validate", "structfsdk_1_1_i_descriptor_extractor.html#a02a1049adb8088b270111afb8cb438da", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.png b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.png new file mode 100644 index 0000000..c23019b Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_descriptor_extractor.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher-members.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher-members.html new file mode 100644 index 0000000..24d34a0 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher-members.html @@ -0,0 +1,140 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDescriptorMatcher Member List
+
+
+ +

This is the complete list of members for fsdk::IDescriptorMatcher, including all inherited members.

+ + + + + + + + + + + + + +
calcDistance(Span< MatchingResult > similarities) const noexcept=0fsdk::IDescriptorMatcherpure virtual
calcSimilarity(Span< MatchingResult > distances) const noexcept=0fsdk::IDescriptorMatcherpure virtual
getModelVersion() const noexcept=0fsdk::IDescriptorMatcherpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
match(const IDescriptor *first, const IDescriptor *second) noexcept=0fsdk::IDescriptorMatcherpure virtual
match(const IDescriptor *reference, const IDescriptorBatch *candidates, Span< MatchingResult > results) noexcept=0fsdk::IDescriptorMatcherpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.html b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.html new file mode 100644 index 0000000..31b6854 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.html @@ -0,0 +1,395 @@ + + + + + + +Face Engine SDK: fsdk::IDescriptorMatcher Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDescriptorMatcher Struct Referenceabstract
+
+
+ +

Descriptor matcher interface. + More...

+ +

#include <IDescriptor.h>

+
+Inheritance diagram for fsdk::IDescriptorMatcher:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+MatchingResult
match (const IDescriptor *first, const IDescriptor *second) noexcept=0
 Match descriptors 1:1. More...
 
virtual Result< FSDKErrormatch (const IDescriptor *reference, const IDescriptorBatch *candidates, Span< MatchingResult > results) noexcept=0
 Match descriptors 1:M. More...
 
virtual uint32_t getModelVersion () const noexcept=0
 Get algorithm model version this matcher works with. More...
 
virtual Result< FSDKErrorcalcSimilarity (Span< MatchingResult > distances) const noexcept=0
 Calculates similarity based on distance. More...
 
virtual Result< FSDKErrorcalcDistance (Span< MatchingResult > similarities) const noexcept=0
 Calculates distance from similarity. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Descriptor matcher interface.

+

Matches descriptors 1:1 and 1:M (

+
See Also
IDescriptor and IDescriptorBatch interfaces).
+

As a result of the matching process the calling site gets a MatchingResult (or several of them in case of 1:M matching). The MatchingResult structure contains distance and similarity metrics.

+

Distance is measured in abstract units and tends to 0 for similar descriptors and to infinity for different ones. Similarity is the opposite metric and shows probability of two descriptors belonging to the same person; therfore it is normalized to [0..1] range.

+
See Also
MatchingResult for details.
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<FSDKError> fsdk::IDescriptorMatcher::calcDistance (Span< MatchingResultsimilarities) const
+
+pure virtualnoexcept
+
+ +

Calculates distance from similarity.

+

The method gets similarity from similarities[i].similarity and assigns the result to similarities[i].distance.

+
Parameters
+ + +
[in]similaritiesis a mutable span of matching results with calculated similarity.
+
+
+
Returns
Result with error code.
+
See Also
Span, MatchingResult, Result and FSDKError for details.
+
Note
all spans should be based on user owned continuous collections.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<FSDKError> fsdk::IDescriptorMatcher::calcSimilarity (Span< MatchingResultdistances) const
+
+pure virtualnoexcept
+
+ +

Calculates similarity based on distance.

+

The method gets distance from distances[i].distances. and assigns the result to distances[i].similarity.

+
Parameters
+ + +
[in]dinstancesis a mutable span of matching results with calculated distances.
+
+
+
Returns
Result with error code.
+
See Also
Span, MatchingResult, Result and FSDKError for details.
+
Note
all spans should be based on user owned continuous collections.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IDescriptorMatcher::getModelVersion () const
+
+pure virtualnoexcept
+
+ +

Get algorithm model version this matcher works with.

+
Returns
Version as integral number.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResultValue< FSDKError, MatchingResult> fsdk::IDescriptorMatcher::match (const IDescriptorfirst,
const IDescriptorsecond 
)
+
+pure virtualnoexcept
+
+ +

Match descriptors 1:1.

+
Parameters
+ + + +
[in]firstfirst descriptor.
[in]secondsecond descriptor.
+
+
+
Returns
ResultValue with error code and matching result.
+
See Also
MatchingResult, IDescriptor, ResultValue and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IDescriptorMatcher::match (const IDescriptorreference,
const IDescriptorBatchcandidates,
Span< MatchingResultresults 
)
+
+pure virtualnoexcept
+
+ +

Match descriptors 1:M.

+

Matches a reference descriptor to a batch of candidate descriptors. The results are layed out in the same order as the candidate descriptors in the batch.

+
Parameters
+ + + + +
[in]referencethe reference descriptor.
[in]candidatesthe candidate descriptor batch to match with the reference.
[out]resultsspan of matching results.
+
+
+
Note
Length of results must be at least the same as the length of the candidates batch.
+
See Also
IDescriptorBatch::getMaxCount().
+
Returns
Result with error code.
+
See Also
Span, MatchingResult, IDescriptor, IDescriptorBatch, Result and FSDKError for details.
+
Note
all spans should be based on user owned continuous collections.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.js b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.js new file mode 100644 index 0000000..838e611 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_i_descriptor_matcher = +[ + [ "calcDistance", "structfsdk_1_1_i_descriptor_matcher.html#a686369ae167cf3a4829845a37abfa620", null ], + [ "calcSimilarity", "structfsdk_1_1_i_descriptor_matcher.html#a5f0fa94452bc1690b1f687c0ddd80c98", null ], + [ "getModelVersion", "structfsdk_1_1_i_descriptor_matcher.html#ac18bfe74c35189d18c4ae0d9c6757e11", null ], + [ "match", "structfsdk_1_1_i_descriptor_matcher.html#ae6a1c205c90fc302ac60888500b751ba", null ], + [ "match", "structfsdk_1_1_i_descriptor_matcher.html#af8ca338dac43b61892815153c2eb960f", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.png b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.png new file mode 100644 index 0000000..cf9899c Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_descriptor_matcher.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_detector-members.html b/doc/fsdk/html/structfsdk_1_1_i_detector-members.html new file mode 100644 index 0000000..1c7786a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_detector-members.html @@ -0,0 +1,149 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDetector Member List
+
+
+ +

This is the complete list of members for fsdk::IDetector, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
detect(Span< const Image > images, Span< const Rect > ROIs, uint32_t perImageNum, DetectionType type=DT_BBOX) noexcept=0fsdk::IDetectorpure virtual
detectAsync(Span< const Image > images, Span< const Rect > rectangles, uint32_t perImageNum, DetectionType type=DT_BBOX) const =0fsdk::IDetectorpure virtual
detectOne(const Image &image, const Rect &rect, DetectionType type=DT_BBOX) noexcept=0fsdk::IDetectorpure virtual
FaceBatchFuture typedef (defined in fsdk::IDetector)fsdk::IDetector
FaceBatchResult typedeffsdk::IDetector
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
redetect(Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, DetectionType type=DT_BBOX) noexcept=0fsdk::IDetectorpure virtual
redetect(Span< const Image > images, Span< Span< const Detection >> detections, DetectionType type=DT_BBOX) noexcept=0fsdk::IDetectorpure virtual
redetectAsync(Span< const Image > images, IFaceDetectionBatchPtr detectionBatch, DetectionType type=DT_BBOX) const =0fsdk::IDetectorpure virtual
redetectOne(const Image &image, const Detection &detection, DetectionType type=DT_BBOX) noexcept=0fsdk::IDetectorpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
setCustomDetectionComparer(const IDetectionComparer *comparer) noexcept=0fsdk::IDetectorpure virtual
setDetectionComparer(DetectionComparerType comparerType) noexcept=0fsdk::IDetectorpure virtual
validate(Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0fsdk::IDetectorpure virtual
validate(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> outErrors) const noexcept=0fsdk::IDetectorpure virtual
validate(Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, Span< Result< FSDKError >> outErrors) const noexcept=0fsdk::IDetectorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_detector.html b/doc/fsdk/html/structfsdk_1_1_i_detector.html new file mode 100644 index 0000000..70d0d6b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_detector.html @@ -0,0 +1,893 @@ + + + + + + +Face Engine SDK: fsdk::IDetector Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDetector Struct Referenceabstract
+
+
+ +

face detector interface. + More...

+ +

#include <IDetector.h>

+
+Inheritance diagram for fsdk::IDetector:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + +

+Public Types

+using FaceBatchResult = ResultValue< FSDKError, IFaceDetectionBatchPtr >
 Common aliases for IDetector asynchronous interface.
 
+using FaceBatchFuture = vlc::future< IFaceDetectionBatchPtr >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+Ref< IFaceDetectionBatch > > 
detect (Span< const Image > images, Span< const Rect > ROIs, uint32_t perImageNum, DetectionType type=DT_BBOX) noexcept=0
 Detect faces and their parameters on multiple images. More...
 
virtual ResultValue< FSDKError,
+Face
detectOne (const Image &image, const Rect &rect, DetectionType type=DT_BBOX) noexcept=0
 Light function to get just one best detection from single input image. More...
 
virtual ResultValue< FSDKError,
+Ref< IFaceDetectionBatch > > 
redetect (Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, DetectionType type=DT_BBOX) noexcept=0
 Batched redetect faces on multiple images. based on the detection results for the previous frames. More...
 
virtual ResultValue< FSDKError,
+Ref< IFaceDetectionBatch > > 
redetect (Span< const Image > images, Span< Span< const Detection >> detections, DetectionType type=DT_BBOX) noexcept=0
 Batched redetect faces on multiple images. based on the detection results for the previous frames. More...
 
virtual ResultValue< FSDKError,
+Face
redetectOne (const Image &image, const Detection &detection, DetectionType type=DT_BBOX) noexcept=0
 Redetect face. More...
 
virtual void setDetectionComparer (DetectionComparerType comparerType) noexcept=0
 Set detection comparer from SDK defined list. More...
 
virtual void setCustomDetectionComparer (const IDetectionComparer *comparer) noexcept=0
 Set custom detection comparer object. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> outErrors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Ref< IFaceDetectionBatch > detectionBatch, Span< Result< FSDKError >> outErrors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual FaceBatchFuture detectAsync (Span< const Image > images, Span< const Rect > rectangles, uint32_t perImageNum, DetectionType type=DT_BBOX) const =0
 Asynchronously detect faces and their parameters on multiple images. More...
 
virtual FaceBatchFuture redetectAsync (Span< const Image > images, IFaceDetectionBatchPtr detectionBatch, DetectionType type=DT_BBOX) const =0
 Asynchronously redetect faces on multiple images. based on the detection results for the previous frames. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

face detector interface.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Ref<IFaceDetectionBatch> > fsdk::IDetector::detect (Span< const Imageimages,
Span< const RectROIs,
uint32_t perImageNum,
DetectionType type = DT_BBOX 
)
+
+pure virtualnoexcept
+
+ +

Detect faces and their parameters on multiple images.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]rectanglesinput rectangles of interest (ROI) span.
[in]perImageNumthe max number of detections per input image.
[in]typetype of the detection.
+
+
+
Returns
ResultValue with error code and IFaceDetectionBatch object.
+
See Also
Ref, Span, Image, Rect, DetectionType, IFaceDetectionBatch, ResultValue and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual FaceBatchFuture fsdk::IDetector::detectAsync (Span< const Imageimages,
Span< const Rectrectangles,
uint32_t perImageNum,
DetectionType type = DT_BBOX 
) const
+
+pure virtual
+
+ +

Asynchronously detect faces and their parameters on multiple images.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]rectanglesinput rectangles of interest (ROI) span.
[in]perImageNumthe max number of detections per input image.
[in]typetype of the detection.
+
+
+
Returns
Future ResultValue with error code and IFaceDetectionBatch object.
+
See Also
Ref, Span, Image, Rect, DetectionType, IFaceDetectionBatch, ResultValue, FSDKError and vlc::future for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+
+this method is experimental and interface may be changed in the future.
+
+this method is not marked as noexcept and may throw an exception.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Face> fsdk::IDetector::detectOne (const Imageimage,
const Rectrect,
DetectionType type = DT_BBOX 
)
+
+pure virtualnoexcept
+
+ +

Light function to get just one best detection from single input image.

+
Parameters
+ + + + +
[in]imagesource image.
[in]rectrectangle of interest in the image.
[in]typetype of detection: BBox, 5landmarks or 68landmarks.
+
+
+
Returns
ResultValue with error code and a Face object (detection bbox, landmarks, etc).
+
See Also
Face, Image, Rect, DetectionType, ResultValue and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Ref<IFaceDetectionBatch> > fsdk::IDetector::redetect (Span< const Imageimages,
Ref< IFaceDetectionBatchdetectionBatch,
DetectionType type = DT_BBOX 
)
+
+pure virtualnoexcept
+
+ +

Batched redetect faces on multiple images. based on the detection results for the previous frames.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionBatchresult of detection on the previous frames - Ref with an IFaceDetectionBatch object.
[in]typetype of redetection.
+
+
+
Returns
ResultValue with error code and IFaceDetectionBatch object.
+
See Also
Ref, Span, Image, DetectionType, IFaceDetectionBatch, ResultValue and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+images span should be the same size with detectionBatch size.
+
+In case if some face from the input detectionBatch was not found the corresponding detection in the output IFaceDetectionBatch object will be invalid.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Ref<IFaceDetectionBatch> > fsdk::IDetector::redetect (Span< const Imageimages,
Span< Span< const Detection >> detections,
DetectionType type = DT_BBOX 
)
+
+pure virtualnoexcept
+
+ +

Batched redetect faces on multiple images. based on the detection results for the previous frames.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space from the previous frames. It is a two dimensional Span. There is one Span of the rectangles for each image.
[in]typetype of redetection.
+
+
+
Returns
ResultValue with error code and IFaceDetectionBatch object.
+
See Also
Ref, Span, Image, DetectionType, Detection, IFaceDetectionBatch, ResultValue and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+
+If for some of the input detections the redetected face will not be found the appropriate detection in the IFaceDetectionBatch object will be invalid.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual FaceBatchFuture fsdk::IDetector::redetectAsync (Span< const Imageimages,
IFaceDetectionBatchPtr detectionBatch,
DetectionType type = DT_BBOX 
) const
+
+pure virtual
+
+ +

Asynchronously redetect faces on multiple images. based on the detection results for the previous frames.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionBatchresult of detection on the previous frames - Ref with an IFaceDetectionBatch object.
[in]typetype of redetection.
+
+
+
Returns
Future ResultValue with error code and IFaceDetectionBatch object.
+
See Also
Ref, Span, Image, DetectionType, IFaceDetectionBatch, ResultValue, FSDKError and vlc::future for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+images span should be the same size with detectionBatch size.
+
+In case if some face from the input detectionBatch was not found the corresponding detection in the output IFaceDetectionBatch object will be invalid.
+
+this method is experimental and interface may be changed in the future.
+
+this method is not marked as noexcept and may throw an exception.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Face> fsdk::IDetector::redetectOne (const Imageimage,
const Detectiondetection,
DetectionType type = DT_BBOX 
)
+
+pure virtualnoexcept
+
+ +

Redetect face.

+
Parameters
+ + + + +
[in]imagesource image. Format must be R8G8B8.
[in]detectiondetection coordinates in image space from the previous frame to make redetect.
[in]typetype of detection: BBox, 5landmarks or 68landmarks.
+
+
+
Returns
ResultValue with error code and Face.
+
See Also
Face, Image, DetectionType, Detection, ResultValue and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IDetector::setCustomDetectionComparer (const IDetectionComparercomparer)
+
+pure virtualnoexcept
+
+ +

Set custom detection comparer object.

+
Parameters
+ + +
[in]comparerpointer to user defined comparer object.
+
+
+
See Also
IDetectionComparer for details.
+
Note
Client code still owns comparer object
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IDetector::setDetectionComparer (DetectionComparerType comparerType)
+
+pure virtualnoexcept
+
+ +

Set detection comparer from SDK defined list.

+
Parameters
+ + +
[in]comparerTypetype of the comparer for detections.
+
+
+
See Also
DetectionComparerType for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IDetector::validate (Span< const Imageimages,
Span< Span< const Detection >> detections,
Span< Span< Result< FSDKError >>> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space from the previous frames. It is a two dimensional Span. There is one Span of Detections for each image.
[out]errorsoutput span of errors for each image. It is a two dimensional Span. There is one Span of the errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Detection, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IDetector::validate (Span< const Imageimages,
Span< const Rectrects,
uint32_t detectionPerImageNum,
Span< Result< FSDKError >> outErrors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]rectsspan of rectangle coordinates of corresponding source images.
[in]detectionPerImageNummax number of detections per input image.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Rect, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IDetector::validate (Span< const Imageimages,
Ref< IFaceDetectionBatchdetectionBatch,
Span< Result< FSDKError >> outErrors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionBatchresult of detection on the previous frames - Ref with an IFaceDetectionBatch object.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Ref, Span, Image, IFaceDetectionBatch, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_detector.js b/doc/fsdk/html/structfsdk_1_1_i_detector.js new file mode 100644 index 0000000..71e64a7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_detector.js @@ -0,0 +1,17 @@ +var structfsdk_1_1_i_detector = +[ + [ "FaceBatchFuture", "structfsdk_1_1_i_detector.html#adbb9c77a4c0ca459733b84b74a658ffe", null ], + [ "FaceBatchResult", "structfsdk_1_1_i_detector.html#ad1a6d103e55a64c4e0b4eb02478e64cd", null ], + [ "detect", "structfsdk_1_1_i_detector.html#abc50559be5a5f781d515ff37c0569672", null ], + [ "detectAsync", "structfsdk_1_1_i_detector.html#a46857380f1a9b542b99eed236d32c29c", null ], + [ "detectOne", "structfsdk_1_1_i_detector.html#a407bdaacb3a35f11a6b41c2bdf2d3949", null ], + [ "redetect", "structfsdk_1_1_i_detector.html#ae95fa3fe533fe5f3a15a7359446502d4", null ], + [ "redetect", "structfsdk_1_1_i_detector.html#a2b7b9a113d7f80fc6e6613d642b3943d", null ], + [ "redetectAsync", "structfsdk_1_1_i_detector.html#a31069412a8be899db49866d9651aa35b", null ], + [ "redetectOne", "structfsdk_1_1_i_detector.html#aad8aeff6c35f03740fc018a9b295a157", null ], + [ "setCustomDetectionComparer", "structfsdk_1_1_i_detector.html#aaf4ac12ce269c0cc293f9348f9ef1c3d", null ], + [ "setDetectionComparer", "structfsdk_1_1_i_detector.html#a19a8d0891929e7e922a2f1282076d8a9", null ], + [ "validate", "structfsdk_1_1_i_detector.html#a6c671781f42357e244a74e23bb9f3571", null ], + [ "validate", "structfsdk_1_1_i_detector.html#a57282cf9f0556a17670fc2274710863a", null ], + [ "validate", "structfsdk_1_1_i_detector.html#ac0600108abda046570741ed6cac302c1", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_detector.png b/doc/fsdk/html/structfsdk_1_1_i_detector.png new file mode 100644 index 0000000..9f52f93 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_detector.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage-members.html b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage-members.html new file mode 100644 index 0000000..74d19e7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage-members.html @@ -0,0 +1,134 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDynamicDescriptorStorage Member List
+
+
+ +

This is the complete list of members for fsdk::IDynamicDescriptorStorage, including all inherited members.

+ + + + + + + +
appendBatch(const IDescriptorBatch *batch) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
appendDescriptor(const IDescriptor *descriptor) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
descriptorByIndex(const DescriptorId index, IDescriptor *descriptor) const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getDescriptorVersion() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
removeDescriptor(const DescriptorId index) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
size() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.html b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.html new file mode 100644 index 0000000..8c7c798 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.html @@ -0,0 +1,294 @@ + + + + + + +Face Engine SDK: fsdk::IDynamicDescriptorStorage Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDynamicDescriptorStorage Struct Referenceabstract
+
+
+ +

Dynamic descriptor storage interface. + More...

+ +

#include <IIndex.h>

+
+Inheritance diagram for fsdk::IDynamicDescriptorStorage:
+
+
+ + +fsdk::IStaticDescriptorStorage +fsdk::IDynamicIndex +fsdk::IIndexBuilder + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+DescriptorId
appendDescriptor (const IDescriptor *descriptor) noexcept=0
 Appends descriptor to internal storage. If used on. More...
 
virtual ResultValue< FSDKError,
+DescriptorId
appendBatch (const IDescriptorBatch *batch) noexcept=0
 Appends batch of descriptors to internal storage. If used on. More...
 
virtual Result< FSDKErrorremoveDescriptor (const DescriptorId index) noexcept=0
 Removes descriptor out of internal storage. If used on. More...
 
- Public Member Functions inherited from fsdk::IStaticDescriptorStorage
virtual Result< FSDKErrordescriptorByIndex (const DescriptorId index, IDescriptor *descriptor) const noexcept=0
 Requests descriptor data out of internal storage. More...
 
virtual uint32_t getDescriptorVersion () const noexcept=0
 Return version of stored descriptors. More...
 
virtual uint64_t size () const noexcept=0
 Return size of internal storage. More...
 
+

Detailed Description

+

Dynamic descriptor storage interface.

+

You may think of it as read+write access to some internal container.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, DescriptorId> fsdk::IDynamicDescriptorStorage::appendBatch (const IDescriptorBatchbatch)
+
+pure virtualnoexcept
+
+ +

Appends batch of descriptors to internal storage. If used on.

+
See Also
IDynamicIndex graph updates itself too.
+
Parameters
+ + +
[in]batchBatch of descriptors with correct length, version and data.
+
+
+
Returns
ResultValue with error code and identification of the first appended descriptor. Other descriptors from batch are appended sequentially in the same order as they are in the batch. Such identification might be used to query descriptor with
+
See Also
IStaticDescriptorStorage::descriptorByIndex or remove it from storage with
+
+removeDescriptor.
+
+IDescriptorBatch, DescriptorId, ResultValue and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, DescriptorId> fsdk::IDynamicDescriptorStorage::appendDescriptor (const IDescriptordescriptor)
+
+pure virtualnoexcept
+
+ +

Appends descriptor to internal storage. If used on.

+
See Also
IDynamicIndex graph updates itself too.
+
Parameters
+ + +
[in]descriptorPtr to created descriptor with correct length, version and data.
+
+
+
Returns
ResultValue with error code and identification of appended descriptor. Such identification might be used to query descriptor with
+
See Also
IStaticDescriptorStorage::descriptorByIndex or remove it from storage with
+
+removeDescriptor.
+
+IDescriptor, DescriptorId, ResultValue and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<FSDKError> fsdk::IDynamicDescriptorStorage::removeDescriptor (const DescriptorId index)
+
+pure virtualnoexcept
+
+ +

Removes descriptor out of internal storage. If used on.

+
See Also
IDynamicIndex graph updates itself too.
+
Note
IMPORTANT: If used on
+
See Also
IDynamicIndex it will NOT actually erase descriptor with given index out of internal storage. Instead, it will remove it out of graph, so it is not searchable.
+
Note
If used on
+
See Also
IIndexBuilder, it WILL actually erase it. But beware: if your storage is big enough performance might be very poor, because descriptors are stored sequentially in vector-like data structure, so every element after erased will be moved.
+
Parameters
+ + +
[in]indexIdentification of descriptors position in internal storage. Is received by using append methods or ::search.
+
+
+
Returns
Result with error code.
+
See Also
DescriptorId, Result and FSDKError for details.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.js b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.js new file mode 100644 index 0000000..c524172 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_i_dynamic_descriptor_storage = +[ + [ "appendBatch", "structfsdk_1_1_i_dynamic_descriptor_storage.html#acee6a3d1822e97dad564278715b3a596", null ], + [ "appendDescriptor", "structfsdk_1_1_i_dynamic_descriptor_storage.html#a78a1d8242a8574bcde70c070602bc1fa", null ], + [ "removeDescriptor", "structfsdk_1_1_i_dynamic_descriptor_storage.html#a67d89300f3cfc098aac035d446c395f8", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.png b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.png new file mode 100644 index 0000000..3579d3f Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_dynamic_descriptor_storage.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_index-members.html b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index-members.html new file mode 100644 index 0000000..4bb5237 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index-members.html @@ -0,0 +1,145 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IDynamicIndex Member List
+
+
+ +

This is the complete list of members for fsdk::IDynamicIndex, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
appendBatch(const IDescriptorBatch *batch) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
appendDescriptor(const IDescriptor *descriptor) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
countOfIndexedDescriptors() const noexcept=0fsdk::IDynamicIndexpure virtual
descriptorByIndex(const DescriptorId index, IDescriptor *descriptor) const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getDescriptorVersion() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
removeDescriptor(const DescriptorId index) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
saveToDenseIndex(const char *path) const noexcept=0fsdk::IDynamicIndexpure virtual
saveToDynamicIndex(const char *path) const noexcept=0fsdk::IDynamicIndexpure virtual
search(const IDescriptor *reference, int maxResultsCount, SearchResult *results) const noexcept=0fsdk::IIndexpure virtual
size() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.html b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.html new file mode 100644 index 0000000..9dc494e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.html @@ -0,0 +1,318 @@ + + + + + + +Face Engine SDK: fsdk::IDynamicIndex Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IDynamicIndex Struct Referenceabstract
+
+
+ +

Dynamic index interface. + More...

+ +

#include <IIndex.h>

+
+Inheritance diagram for fsdk::IDynamicIndex:
+
+
+ + +fsdk::IDynamicDescriptorStorage +fsdk::IIndex +fsdk::IStaticDescriptorStorage +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorsaveToDenseIndex (const char *path) const noexcept=0
 Saves index as dense. More...
 
virtual Result< FSDKErrorsaveToDynamicIndex (const char *path) const noexcept=0
 Saves index as dynamic. More...
 
virtual uint64_t countOfIndexedDescriptors () const noexcept=0
 Returns count of indexed descriptors. More...
 
- Public Member Functions inherited from fsdk::IDynamicDescriptorStorage
virtual ResultValue< FSDKError,
+DescriptorId
appendDescriptor (const IDescriptor *descriptor) noexcept=0
 Appends descriptor to internal storage. If used on. More...
 
virtual ResultValue< FSDKError,
+DescriptorId
appendBatch (const IDescriptorBatch *batch) noexcept=0
 Appends batch of descriptors to internal storage. If used on. More...
 
virtual Result< FSDKErrorremoveDescriptor (const DescriptorId index) noexcept=0
 Removes descriptor out of internal storage. If used on. More...
 
- Public Member Functions inherited from fsdk::IStaticDescriptorStorage
virtual Result< FSDKErrordescriptorByIndex (const DescriptorId index, IDescriptor *descriptor) const noexcept=0
 Requests descriptor data out of internal storage. More...
 
virtual uint32_t getDescriptorVersion () const noexcept=0
 Return version of stored descriptors. More...
 
virtual uint64_t size () const noexcept=0
 Return size of internal storage. More...
 
- Public Member Functions inherited from fsdk::IIndex
virtual ResultValue< FSDKError,
+int > 
search (const IDescriptor *reference, int maxResultsCount, SearchResult *results) const noexcept=0
 Search for descriptors with the shorter distance to passed descriptor. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Dynamic index interface.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint64_t fsdk::IDynamicIndex::countOfIndexedDescriptors () const
+
+pure virtualnoexcept
+
+ +

Returns count of indexed descriptors.

+

You may wonder why this method exists if IDynamicIndex already inherits IStaticDescriptorStorage::size method. The reason is that

+
See Also
IDynamicDescriptorStorage::removeDescriptor behaves differently on
+
+IIndexBuild and IDynamicIndex. On builder it does actually erases descriptor out of internal storage, but it does not erase it if used on IDynamicIndex. The reason is that graph data structure relies on indexes being constant, so removeDescriptor only removes it out of graph, so it is not discoverable by
+
+IIndex::search. So this methods returns actuall data storage size minus count of removed descriptors.
+
Returns
Count of indexed descriptors.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<FSDKError> fsdk::IDynamicIndex::saveToDenseIndex (const char * path) const
+
+pure virtualnoexcept
+
+ +

Saves index as dense.

+

To load saved index use

+
See Also
IFaceEngine::loadDenseIndex method. Dense index cannot be loaded as dynamic.
+
Parameters
+ + +
[in]pathPath to file to be created and filled with index data. Any extension is acceptable.
+
+
+
Returns
Result with error code.
+
See Also
Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<FSDKError> fsdk::IDynamicIndex::saveToDynamicIndex (const char * path) const
+
+pure virtualnoexcept
+
+ +

Saves index as dynamic.

+

To load saved index use

+
See Also
IFaceEngine::loadDynamicIndex method. Dynamic index cannot be loaded as dense.
+
Parameters
+ + +
[in]pathPath to file to be created and filled with index data. Any extension is acceptable.
+
+
+
Returns
Result with error code.
+
See Also
Result and FSDKError for details.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.js b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.js new file mode 100644 index 0000000..a8bef83 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_i_dynamic_index = +[ + [ "countOfIndexedDescriptors", "structfsdk_1_1_i_dynamic_index.html#a39700ae4d6cd22ea3d8c8b4e94af0f3b", null ], + [ "saveToDenseIndex", "structfsdk_1_1_i_dynamic_index.html#af7c7947059b6876546e0a712cf32d5bb", null ], + [ "saveToDynamicIndex", "structfsdk_1_1_i_dynamic_index.html#a589098df084d6e99c80574726fc4bca7", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.png b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.png new file mode 100644 index 0000000..460a121 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_dynamic_index.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_eye_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator-members.html new file mode 100644 index 0000000..8dd7e6c --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator-members.html @@ -0,0 +1,138 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IEyeEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::IEyeEstimator, including all inherited members.

+ + + + + + + + + + + +
estimate(const Image &warp, const EyeCropper::EyesRects &eyeRects, EyesEstimation &eyesEstimation) const noexcept=0fsdk::IEyeEstimatorpure virtual
estimate(Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< EyesEstimation > eyesEstimations) const noexcept=0fsdk::IEyeEstimatorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IEyeEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.html new file mode 100644 index 0000000..762b73c --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.html @@ -0,0 +1,365 @@ + + + + + + +Face Engine SDK: fsdk::IEyeEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IEyeEstimator Struct Referenceabstract
+
+
+ +

Eye estimator interface. + More...

+ +

#include <IEyeEstimator.h>

+
+Inheritance diagram for fsdk::IEyeEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorestimate (const Image &warp, const EyeCropper::EyesRects &eyeRects, EyesEstimation &eyesEstimation) const noexcept=0
 Estimate the attributes. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< EyesEstimation > eyesEstimations) const noexcept=0
 Estimate the attributes of multiple warped images in a single estimate function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > warps, Span< const EyeCropper::EyesRects > eyeRects, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Eye estimator interface.

+
Note
This estimator is designed to work with a person face image; you should pass a warped face detection image.
+
See Also
IWarper for details. Eye estimator detects:
    +
  • eyes state;
  • +
  • landmarks describing iris.
  • +
+
+
+EyesEstimation for output details
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IEyeEstimator::estimate (const Imagewarp,
const EyeCropper::EyesRectseyeRects,
EyesEstimationeyesEstimation 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the attributes.

+
Parameters
+ + + + +
[in]warpimage with warped face.
[in]eyeRectsEyeCropper::EyesRects structure with valid rectangle coordinates of each eye.
[out]eyesEstimationEstimation of both eyes. Iris and Eyelid output landmarks are in warpedImage coordinates. If you want them in source of warpedImage image coordinates, use IWarper::unwarp
+
+
+
See Also
IWarper::unwarp.
+
Returns
Result with error code.
+
See Also
EyesEstimation, EyeCropper::EyesRects, Image, Result and FSDKError for details.
+
Note
warp format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IEyeEstimator::estimate (Span< const Imagewarps,
Span< const EyeCropper::EyesRectseyeRects,
Span< EyesEstimationeyesEstimations 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the attributes of multiple warped images in a single estimate function call.

+
Parameters
+ + + + +
[in]warpsspan of images with warped faces.
[in]eyeRectsspan of EyesRects structure of corresponding warped image with valid rectangle coordinates of each eye.
[out]eyesEstimationsspan of EyesEstimation of corresponding warped images. Iris and Eyelid output landmarks are in warpedImage coordinates. If you want them in source of warpedImage image coordinates, use IWarper::unwarp
+
+
+
See Also
IWarper::unwarp.
+
Returns
Result with error code.
+
See Also
Span, EyesEstimation, EyeCropper::EyesRects, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IEyeEstimator::validate (Span< const Imagewarps,
Span< const EyeCropper::EyesRectseyeRects,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]warpsspan of images with warped faces.
[in]eyeRectsspan of EyesRects structure of corresponding warped image with valid rectangle coordinates of each eye.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, EyeCropper::EyesRects, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.js new file mode 100644 index 0000000..d35f87b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_i_eye_estimator = +[ + [ "estimate", "structfsdk_1_1_i_eye_estimator.html#aecb52fbe13f80a38b9c48e760d42d243", null ], + [ "estimate", "structfsdk_1_1_i_eye_estimator.html#ae44bc0302755581d81733c5bc7ed83ef", null ], + [ "validate", "structfsdk_1_1_i_eye_estimator.html#a4534d4ee1854c38b89238ff294a1a0cb", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.png new file mode 100644 index 0000000..c0892bc Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_eye_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch-members.html b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch-members.html new file mode 100644 index 0000000..547287d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch-members.html @@ -0,0 +1,141 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IFaceDetectionBatch Member List
+
+
+ +

This is the complete list of members for fsdk::IFaceDetectionBatch, including all inherited members.

+ + + + + + + + + + + + + + +
getDetections(size_t index=0) const noexcept=0fsdk::IFaceDetectionBatchpure virtual
getFace(const Image &img, size_t imageIndex, size_t detectionIndex) const noexcept=0fsdk::IFaceDetectionBatchpure virtual
getLandmarks5(size_t index=0) const noexcept=0fsdk::IFaceDetectionBatchpure virtual
getLandmarks68(size_t index=0) const noexcept=0fsdk::IFaceDetectionBatchpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getSize() const noexcept=0fsdk::IFaceDetectionBatchpure virtual
getSize(size_t imageIndex) const noexcept=0fsdk::IFaceDetectionBatchpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.html b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.html new file mode 100644 index 0000000..22b7ca2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.html @@ -0,0 +1,433 @@ + + + + + + +Face Engine SDK: fsdk::IFaceDetectionBatch Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IFaceDetectionBatch Struct Referenceabstract
+
+
+ +

Face detection result batch interface. + More...

+ +

#include <IFaceDetectionBatch.h>

+
+Inheritance diagram for fsdk::IFaceDetectionBatch:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual size_t getSize () const noexcept=0
 Returns size. More...
 
virtual size_t getSize (size_t imageIndex) const noexcept=0
 Returns size of the results for the target index. More...
 
virtual Face getFace (const Image &img, size_t imageIndex, size_t detectionIndex) const noexcept=0
 Returns detected face. More...
 
virtual Span< const DetectiongetDetections (size_t index=0) const noexcept=0
 Returns detection Span. More...
 
virtual Span< const Landmarks5getLandmarks5 (size_t index=0) const noexcept=0
 Returns Landmarks5 Span. More...
 
virtual Span< const Landmarks68getLandmarks68 (size_t index=0) const noexcept=0
 Returns Landmarks68 Span. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Face detection result batch interface.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Span<const Detection> fsdk::IFaceDetectionBatch::getDetections (size_t index = 0) const
+
+pure virtualnoexcept
+
+ +

Returns detection Span.

+
Parameters
+ + +
[in]indexindex of the detection.
+
+
+
Returns
span of detection coordinates in corresponding source images space.
+
See Also
Span and Detection for details.
+
Note
all spans should be based on user owned continuous collections.
+
+Result Span could be empty in two cases:
    +
  1. If no any faces were detected on the target image.
  2. +
  3. If detection request didn't contain the DT_BOX flag.
  4. +
+
+
See Also
DetectionType
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Face fsdk::IFaceDetectionBatch::getFace (const Imageimg,
size_t imageIndex,
size_t detectionIndex 
) const
+
+pure virtualnoexcept
+
+ +

Returns detected face.

+
Parameters
+ + + + +
[in]imgsource image.
[in]imageIndexindex of the image.
[in]detectionIndexindex of the detection.
+
+
+
Returns
Detected face.
+
See Also
Face and Image for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
Result Face could be invalid if no any faces were detected on the target image or parameters are invalid.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Span<const Landmarks5> fsdk::IFaceDetectionBatch::getLandmarks5 (size_t index = 0) const
+
+pure virtualnoexcept
+
+ +

Returns Landmarks5 Span.

+
Parameters
+ + +
[in]indexindex of the landmarks object.
+
+
+
Returns
Span of Landmarks5.
+
See Also
Span and Landmarks5 for details.
+
Note
all spans should be based on user owned continuous collections.
+
+Result Span could be empty in two cases:
    +
  1. If no any faces were detected on the target image.
  2. +
  3. If detection request didn't contain the DT_LANDMARKS5 flag.
  4. +
+
+
See Also
DetectionType
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Span<const Landmarks68> fsdk::IFaceDetectionBatch::getLandmarks68 (size_t index = 0) const
+
+pure virtualnoexcept
+
+ +

Returns Landmarks68 Span.

+
Parameters
+ + +
[in]indexindex of the landmarks object.
+
+
+
Returns
Span of Landmarks68.
+
See Also
Span and Landmarks68 for details.
+
Note
all spans should be based on user owned continuous collections.
+
+Result Span could be empty in two cases:
    +
  1. If no any faces were detected on the target image.
  2. +
  3. If detection request didn't contain the DT_LANDMARKS68 flag.
  4. +
+
+
See Also
DetectionType
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t fsdk::IFaceDetectionBatch::getSize () const
+
+pure virtualnoexcept
+
+ +

Returns size.

+
Returns
size of the detections.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual size_t fsdk::IFaceDetectionBatch::getSize (size_t imageIndex) const
+
+pure virtualnoexcept
+
+ +

Returns size of the results for the target index.

+
Parameters
+ + +
[in]imageIndexindex of the image.
+
+
+
Returns
size of the results for the target index.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.js b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.js new file mode 100644 index 0000000..be0f53f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.js @@ -0,0 +1,9 @@ +var structfsdk_1_1_i_face_detection_batch = +[ + [ "getDetections", "structfsdk_1_1_i_face_detection_batch.html#ac0796f34dff278d15e0e43d0b0e7bbd5", null ], + [ "getFace", "structfsdk_1_1_i_face_detection_batch.html#ab6887616ae757035b33d1e2ac49dcc8f", null ], + [ "getLandmarks5", "structfsdk_1_1_i_face_detection_batch.html#aa09422deb3ce7aa52e2cd12c59b067df", null ], + [ "getLandmarks68", "structfsdk_1_1_i_face_detection_batch.html#a2cc9d8ceb774e6d2c8cdcc061efb2ed8", null ], + [ "getSize", "structfsdk_1_1_i_face_detection_batch.html#a9899fff6f6d701762674c01bdce558a3", null ], + [ "getSize", "structfsdk_1_1_i_face_detection_batch.html#a9e870513feb39ea2a28ee3ae5a932585", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.png b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.png new file mode 100644 index 0000000..0ea5320 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_face_detection_batch.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile-members.html b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile-members.html new file mode 100644 index 0000000..acbe63e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile-members.html @@ -0,0 +1,158 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IFaceEngineMobile Member List
+
+
+ +

This is the complete list of members for fsdk::IFaceEngineMobile, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
createAGSEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createBestShotQualityEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createDescriptor(uint32_t version=0) noexcept=0fsdk::IFaceEngineMobilepure virtual
createDescriptor(IArchive *archive, uint32_t flags=0) noexcept=0fsdk::IFaceEngineMobilepure virtual
createDescriptorBatch(int32_t size, uint32_t version=0) noexcept=0fsdk::IFaceEngineMobilepure virtual
createDetector() noexcept=0fsdk::IFaceEngineMobilepure virtual
createExtractor(uint32_t version=0) noexcept=0fsdk::IFaceEngineMobilepure virtual
createEyeEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createGlassesEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createHeadPoseEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createLivenessOneShotRGBEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createMatcher(uint32_t version=0) noexcept=0fsdk::IFaceEngineMobilepure virtual
createMedicalMaskEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createQualityEstimator() noexcept=0fsdk::IFaceEngineMobilepure virtual
createWarper() noexcept=0fsdk::IFaceEngineMobilepure virtual
getDataDirectory() const noexcept=0fsdk::IFaceEngineMobilepure virtual
getFaceEngineEdition() const noexcept=0fsdk::IFaceEngineMobilepure virtual
getLicense() const noexcept=0fsdk::IFaceEngineMobilepure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getRuntimeSettingsProvider() const noexcept=0fsdk::IFaceEngineMobilepure virtual
getSettingsProvider() const noexcept=0fsdk::IFaceEngineMobilepure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
setDataDirectory(const char *path) noexcept=0fsdk::IFaceEngineMobilepure virtual
setRuntimeSettingsProvider(ISettingsProvider *provider) noexcept=0fsdk::IFaceEngineMobilepure virtual
setSettingsProvider(ISettingsProvider *provider) noexcept=0fsdk::IFaceEngineMobilepure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.html b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.html new file mode 100644 index 0000000..b71cb32 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.html @@ -0,0 +1,259 @@ + + + + + + +Face Engine SDK: fsdk::IFaceEngineMobile Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IFaceEngineMobile Struct Referenceabstract
+
+
+ +

Root LUNA SDK object interface. + More...

+ +

#include <IFaceEngineMobile.h>

+
+Inheritance diagram for fsdk::IFaceEngineMobile:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+IDetectorPtr > 
createDetector () noexcept=0
 Creates a detector of given type. More...
 
virtual ResultValue< FSDKError,
+IHeadPoseEstimatorPtr > 
createHeadPoseEstimator () noexcept=0
 Creates Head pose estimator. More...
 
virtual ResultValue< FSDKError,
+IAGSEstimatorPtr > 
createAGSEstimator () noexcept=0
 Creates AGS estimator. More...
 
virtual ResultValue< FSDKError,
+IEyeEstimatorPtr > 
createEyeEstimator () noexcept=0
 Creates Eye estimator. More...
 
virtual ResultValue< FSDKError,
+IMedicalMaskEstimatorPtr > 
createMedicalMaskEstimator () noexcept=0
 Creates MedicalMask estimator. More...
 
virtual ResultValue< FSDKError,
+IGlassesEstimatorPtr > 
createGlassesEstimator () noexcept=0
 Creates Glasses estimator. More...
 
virtual ResultValue< FSDKError,
+IQualityEstimatorPtr > 
createQualityEstimator () noexcept=0
 Creates Quality estimator. More...
 
virtual ResultValue< FSDKError,
+IBestShotQualityEstimatorPtr > 
createBestShotQualityEstimator () noexcept=0
 Creates BestShotQuality estimator. More...
 
virtual ResultValue< FSDKError,
+ILivenessOneShotRGBEstimatorPtr > 
createLivenessOneShotRGBEstimator () noexcept=0
 Creates Liveness OneShot estimator. More...
 
virtual ResultValue< FSDKError,
+IDescriptorPtr > 
createDescriptor (uint32_t version=0) noexcept=0
 Creates Descriptor. More...
 
virtual ResultValue< FSDKError,
+IDescriptorPtr > 
createDescriptor (IArchive *archive, uint32_t flags=0) noexcept=0
 Creates and loads Descriptor from Archive. More...
 
virtual ResultValue< FSDKError,
+IDescriptorBatchPtr > 
createDescriptorBatch (int32_t size, uint32_t version=0) noexcept=0
 Creates Batch of descriptors. More...
 
virtual ResultValue< FSDKError,
+IDescriptorExtractorPtr > 
createExtractor (uint32_t version=0) noexcept=0
 Creates descriptor extractor. More...
 
virtual ResultValue< FSDKError,
+IDescriptorMatcherPtr > 
createMatcher (uint32_t version=0) noexcept=0
 Creates descriptor matcher. More...
 
virtual ResultValue< FSDKError,
+IWarperPtr > 
createWarper () noexcept=0
 Creates warper. More...
 
virtual FaceEngineEdition getFaceEngineEdition () const noexcept=0
 Get LUNA SDK ditribution edition. More...
 
virtual void setDataDirectory (const char *path) noexcept=0
 Sets data directory. More...
 
virtual const char * getDataDirectory () const noexcept=0
 Gets data directory. More...
 
virtual void setSettingsProvider (ISettingsProvider *provider) noexcept=0
 Sets settings provider. More...
 
virtual void setRuntimeSettingsProvider (ISettingsProvider *provider) noexcept=0
 Sets runtime settings provider. More...
 
virtual ISettingsProvidergetSettingsProvider () const noexcept=0
 Gets settings provider. More...
 
virtual ISettingsProvidergetRuntimeSettingsProvider () const noexcept=0
 Gets runtime settings provider. More...
 
virtual ILicensegetLicense () const noexcept=0
 Get current License object, which was set for FaceEngine object. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Root LUNA SDK object interface.

+
Note
Face Engine also implements factory interface so all usual factory options apply.
+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.js b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.js new file mode 100644 index 0000000..d9f1104 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.js @@ -0,0 +1,26 @@ +var structfsdk_1_1_i_face_engine_mobile = +[ + [ "createAGSEstimator", "group___core_group.html#ga7a8dada6aaffd748670b10af9b046a18", null ], + [ "createBestShotQualityEstimator", "group___core_group.html#ga82e87dfd7117d3763343ae6078009efb", null ], + [ "createDescriptor", "group___core_group.html#gae1c6db8b544293bc9d766179e60e1c9a", null ], + [ "createDescriptor", "group___core_group.html#ga7c21f0d0ebda0e2781587c4997d2a074", null ], + [ "createDescriptorBatch", "group___core_group.html#gaabd68d9f71a2fec2fbf5dce797f3f73f", null ], + [ "createDetector", "group___core_group.html#gab4e15bad5b0652a07740dd42c3f94b0e", null ], + [ "createExtractor", "group___core_group.html#ga6d171cca36e4bad1c168446af23bc1f7", null ], + [ "createEyeEstimator", "group___core_group.html#gaa34107647b69d70c58a3af02e0048c12", null ], + [ "createGlassesEstimator", "group___core_group.html#ga94b00826d57a09e377fb6c1129b495e9", null ], + [ "createHeadPoseEstimator", "group___core_group.html#ga6566961928a6f4baa9894df55e1c7c42", null ], + [ "createLivenessOneShotRGBEstimator", "group___core_group.html#ga4f583287b3fe2c550aec979adc633fa6", null ], + [ "createMatcher", "group___core_group.html#ga7201c2b88cc0ea2c205984980b15d907", null ], + [ "createMedicalMaskEstimator", "group___core_group.html#gaf71707f01d6c22abce1c3b04c58e698d", null ], + [ "createQualityEstimator", "group___core_group.html#ga48d0e10395506ba4632304c49d0e076a", null ], + [ "createWarper", "group___core_group.html#ga8f4b3b0e8896608c769e841fca849e3d", null ], + [ "getDataDirectory", "group___core_group.html#ga217e0e83b975735419e174ee80ba36fb", null ], + [ "getFaceEngineEdition", "group___core_group.html#ga74540f3cf43d5a029db8f4875744557f", null ], + [ "getLicense", "group___core_group.html#gaaaf25fb20c78b3252073b7789e45769c", null ], + [ "getRuntimeSettingsProvider", "group___core_group.html#gaf750282898a3426064f2911ad82a3caf", null ], + [ "getSettingsProvider", "group___core_group.html#gaea8316288bbea8bde5fe36dd6909356e", null ], + [ "setDataDirectory", "group___core_group.html#ga297a0bb88bf7d2a79939e4936067d5d3", null ], + [ "setRuntimeSettingsProvider", "group___core_group.html#ga4d091c486f5157e8f0f42630fa4c7d78", null ], + [ "setSettingsProvider", "group___core_group.html#ga807383acfa6e302fce4fdc6254884735", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.png b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.png new file mode 100644 index 0000000..a3aa8c4 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_face_engine_mobile.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator-members.html new file mode 100644 index 0000000..0491c3f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator-members.html @@ -0,0 +1,138 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IGlassesEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::IGlassesEstimator, including all inherited members.

+ + + + + + + + + + + +
estimate(const Image &warp) const noexcept=0fsdk::IGlassesEstimatorpure virtual
estimate(Span< const Image > warps, Span< GlassesEstimation > glassesEstimations) const noexcept=0fsdk::IGlassesEstimatorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IGlassesEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.html new file mode 100644 index 0000000..86f3628 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.html @@ -0,0 +1,321 @@ + + + + + + +Face Engine SDK: fsdk::IGlassesEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IGlassesEstimator Struct Referenceabstract
+
+
+ +

Glasses estimator interface. + More...

+ +

#include <IGlassesEstimator.h>

+
+Inheritance diagram for fsdk::IGlassesEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+GlassesEstimation
estimate (const Image &warp) const noexcept=0
 
virtual Result< FSDKErrorestimate (Span< const Image > warps, Span< GlassesEstimation > glassesEstimations) const noexcept=0
 Checks if people are wearing glasses or not for multiple warped images in a single estimate function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Glasses estimator interface.

+
Note
This estimator is designed to work with a person face image;
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, GlassesEstimation> fsdk::IGlassesEstimator::estimate (const Imagewarp) const
+
+pure virtualnoexcept
+
+

brief checks whether person wearing any glasses or not.

+
Parameters
+ + +
[in]warpimage with warped face;
+
+
+
See Also
IWarper for details.
+
Returns
ResultValue with error code and output enum value inside.
+
See Also
GlassesEstimation, Image, ResultValue and FSDKError for details.
+
Note
warp format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IGlassesEstimator::estimate (Span< const Imagewarps,
Span< GlassesEstimationglassesEstimations 
) const
+
+pure virtualnoexcept
+
+ +

Checks if people are wearing glasses or not for multiple warped images in a single estimate function call.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]glassesEstimationsoutput GlassesEstimation span.
+
+
+
Returns
Result with error code.
+
See Also
Span, GlassesEstimation, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IGlassesEstimator::validate (Span< const Imagewarps,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.js new file mode 100644 index 0000000..744bc18 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_i_glasses_estimator = +[ + [ "estimate", "structfsdk_1_1_i_glasses_estimator.html#af53d83b93974db797a78623420369f3c", null ], + [ "estimate", "structfsdk_1_1_i_glasses_estimator.html#aecd2ff74057c6d5e1e587080b5981eed", null ], + [ "validate", "structfsdk_1_1_i_glasses_estimator.html#a56e29006f163d67139790002d020e952", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.png new file mode 100644 index 0000000..3af5c8f Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_glasses_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator-members.html new file mode 100644 index 0000000..58e00d6 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator-members.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IHeadPoseEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::IHeadPoseEstimator, including all inherited members.

+ + + + + + + + + + + + +
estimate(const Landmarks68 &landmarks, HeadPoseEstimation &out) const noexcept=0fsdk::IHeadPoseEstimatorpure virtual
estimate(const Image &image, const Detection &detection, HeadPoseEstimation &out) const noexcept=0fsdk::IHeadPoseEstimatorpure virtual
estimate(Span< const Image > images, Span< const Detection > detections, Span< HeadPoseEstimation > out) const noexcept=0fsdk::IHeadPoseEstimatorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IHeadPoseEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.html new file mode 100644 index 0000000..868699e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.html @@ -0,0 +1,409 @@ + + + + + + +Face Engine SDK: fsdk::IHeadPoseEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IHeadPoseEstimator Struct Referenceabstract
+
+
+ +

Head pose angles estimator interface. + More...

+ +

#include <IHeadPoseEstimator.h>

+
+Inheritance diagram for fsdk::IHeadPoseEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorestimate (const Landmarks68 &landmarks, HeadPoseEstimation &out) const noexcept=0
 Estimate the angles. More...
 
virtual Result< FSDKErrorestimate (const Image &image, const Detection &detection, HeadPoseEstimation &out) const noexcept=0
 Estimate the angles. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > images, Span< const Detection > detections, Span< HeadPoseEstimation > out) const noexcept=0
 Estimate headpose angles of multiple frames in a single estimate function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Head pose angles estimator interface.

+
Note
This estimator is designed to work with 68 facial landmarks or with raw image data;
+
See Also
IDetector for details.
+

Estimated angles are:

+
    +
  • pitch;
  • +
  • yaw;
  • +
  • roll.
    See Also
    HeadPoseEstimation structure for details about how exactly the estimations are reported.
    +
  • +
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHeadPoseEstimator::estimate (const Landmarks68landmarks,
HeadPoseEstimationout 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the angles.

+
Parameters
+ + + +
[in]landmarksLandmarks68 structure.
[out]outoutput estimation.
+
+
+
Returns
Result with error code.
+
See Also
Landmarks, HeadPoseEstimation, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHeadPoseEstimator::estimate (const Imageimage,
const Detectiondetection,
HeadPoseEstimationout 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the angles.

+
Parameters
+ + + + +
[in]imagesource image.
[in]detectiondetection coordinates in image space.
[out]outoutput estimation.
+
+
+
Returns
Result with error code.
+
See Also
HeadPoseEstimation, Detection, Image, Result and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHeadPoseEstimator::estimate (Span< const Imageimages,
Span< const Detectiondetections,
Span< HeadPoseEstimationout 
) const
+
+pure virtualnoexcept
+
+ +

Estimate headpose angles of multiple frames in a single estimate function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[out]outestimations array of corresponding images.
+
+
+
Returns
Result with error code.
+
See Also
Span, HeadPoseEstimation, Detection, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHeadPoseEstimator::validate (Span< const Imageimages,
Span< const Detectiondetections,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Detection, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.js new file mode 100644 index 0000000..51cb348 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.js @@ -0,0 +1,7 @@ +var structfsdk_1_1_i_head_pose_estimator = +[ + [ "estimate", "structfsdk_1_1_i_head_pose_estimator.html#aed7809cea5e183b63ac017e48fc7885c", null ], + [ "estimate", "structfsdk_1_1_i_head_pose_estimator.html#af943ad9ab70f158a03624c3cec6de47e", null ], + [ "estimate", "structfsdk_1_1_i_head_pose_estimator.html#a235406bf3e8aa9bf8b89e06b72f21a50", null ], + [ "validate", "structfsdk_1_1_i_head_pose_estimator.html#a934b364e035980966cb7f09faf0b9a7b", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.png new file mode 100644 index 0000000..40ee12d Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_head_pose_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch-members.html b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch-members.html new file mode 100644 index 0000000..da6d839 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch-members.html @@ -0,0 +1,140 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IHumanDetectionBatch Member List
+
+
+ +

This is the complete list of members for fsdk::IHumanDetectionBatch, including all inherited members.

+ + + + + + + + + + + + + +
getDetections(size_t index=0) const noexcept=0fsdk::IHumanDetectionBatchpure virtual
getHuman(const Image &image, size_t imageIndex, size_t detectionIndex) const noexcept=0fsdk::IHumanDetectionBatchpure virtual
getLandmarks17(size_t index=0) const noexcept=0fsdk::IHumanDetectionBatchpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getSize() const noexcept=0fsdk::IHumanDetectionBatchpure virtual
getSize(size_t imageIndex) const noexcept=0fsdk::IHumanDetectionBatchpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.html b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.html new file mode 100644 index 0000000..8068163 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.html @@ -0,0 +1,362 @@ + + + + + + +Face Engine SDK: fsdk::IHumanDetectionBatch Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IHumanDetectionBatch Struct Referenceabstract
+
+
+ +

Human detection result batch interface. + More...

+ +

#include <IHumanDetectionBatch.h>

+
+Inheritance diagram for fsdk::IHumanDetectionBatch:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual size_t getSize () const noexcept=0
 Returns size.
 
virtual size_t getSize (size_t imageIndex) const noexcept=0
 Returns size of the results for the target index. More...
 
virtual Human getHuman (const Image &image, size_t imageIndex, size_t detectionIndex) const noexcept=0
 Returns detected Human. More...
 
virtual Span< const DetectiongetDetections (size_t index=0) const noexcept=0
 Returns detection Span. More...
 
virtual Span< const
+HumanLandmarks17
getLandmarks17 (size_t index=0) const noexcept=0
 Returns HumanLandmarks17 Span. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Human detection result batch interface.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual Span<const Detection> fsdk::IHumanDetectionBatch::getDetections (size_t index = 0) const
+
+pure virtualnoexcept
+
+ +

Returns detection Span.

+
Parameters
+ + +
[in]indexindex of the detections Span.
+
+
+
Returns
Span of detections.
+
See Also
Span and Detection for details.
+
Note
all spans should be based on user owned continuous collections.
+
+Result Span could be empty in two cases:
    +
  1. If no humans were detected in the target image.
  2. +
  3. If detection request didn't contain the DCT_BOX flag.
  4. +
+
+
See Also
HumanDetectionType.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Human fsdk::IHumanDetectionBatch::getHuman (const Imageimage,
size_t imageIndex,
size_t detectionIndex 
) const
+
+pure virtualnoexcept
+
+ +

Returns detected Human.

+
Parameters
+ + + + +
[in]imagesource image.
[in]imageIndexindex of the image.
[in]detectionIndexindex of the detection.
+
+
+
Returns
Detected Human.
+
See Also
Human and Image for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+
Note
Result Human could be invalid if no humans were detected on the target image or parameters are invalid.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Span<const HumanLandmarks17> fsdk::IHumanDetectionBatch::getLandmarks17 (size_t index = 0) const
+
+pure virtualnoexcept
+
+ +

Returns HumanLandmarks17 Span.

+
Parameters
+ + +
[in]indexindex of the HumanLandmarks17 Span.
+
+
+
Returns
Span of HumanLandmarks17.
+
Note
all spans should be based on user owned continuous collections.
+
See Also
Span and HumanLandmarks17 for details.
+
Note
Result Span could be empty in two cases:
    +
  1. If no humans were detected in the target image.
  2. +
  3. If detection request didn't contain the DCT_POINTS flag.
  4. +
+
+
See Also
HumanDetectionType.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual size_t fsdk::IHumanDetectionBatch::getSize (size_t imageIndex) const
+
+pure virtualnoexcept
+
+ +

Returns size of the results for the target index.

+
Parameters
+ + +
[in]imageIndexindex of the image.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.js b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.js new file mode 100644 index 0000000..04477ed --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_i_human_detection_batch = +[ + [ "getDetections", "structfsdk_1_1_i_human_detection_batch.html#a5511e8e94005c3b0c6c24d30ff29ef8b", null ], + [ "getHuman", "structfsdk_1_1_i_human_detection_batch.html#a3222f0a8c14c75838a99266429df3674", null ], + [ "getLandmarks17", "structfsdk_1_1_i_human_detection_batch.html#a80e43b927498b58505b123e546ed49c4", null ], + [ "getSize", "structfsdk_1_1_i_human_detection_batch.html#a142181747d516561d1bd15e55f269c70", null ], + [ "getSize", "structfsdk_1_1_i_human_detection_batch.html#a09fa3881045e629773e79e41deb5831e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.png b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.png new file mode 100644 index 0000000..9a65a44 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_human_detection_batch.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detector-members.html b/doc/fsdk/html/structfsdk_1_1_i_human_detector-members.html new file mode 100644 index 0000000..e7ec8ef --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_detector-members.html @@ -0,0 +1,143 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IHumanDetector Member List
+
+
+ +

This is the complete list of members for fsdk::IHumanDetector, including all inherited members.

+ + + + + + + + + + + + + + + + +
detect(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, HumanDetectionType type=HDT_BOX) const noexcept=0fsdk::IHumanDetectorpure virtual
detectOne(const Image &image, const Rect &rect, HumanDetectionType type=HDT_BOX) const noexcept=0fsdk::IHumanDetectorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
redetect(Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, HumanDetectionType type=HDT_BOX) const noexcept=0fsdk::IHumanDetectorpure virtual
redetect(Span< const Image > images, Span< Span< const Detection >> detections, HumanDetectionType type=HDT_BOX) const noexcept=0fsdk::IHumanDetectorpure virtual
redetectOne(const Image &image, const Detection &detection, HumanDetectionType type=HDT_BOX) const noexcept=0fsdk::IHumanDetectorpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IHumanDetectorpure virtual
validate(Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IHumanDetectorpure virtual
validate(Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0fsdk::IHumanDetectorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detector.html b/doc/fsdk/html/structfsdk_1_1_i_human_detector.html new file mode 100644 index 0000000..29686bb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_detector.html @@ -0,0 +1,672 @@ + + + + + + +Face Engine SDK: fsdk::IHumanDetector Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IHumanDetector Struct Referenceabstract
+
+
+ +

human body detector interface. + More...

+ +

#include <IHumanDetector.h>

+
+Inheritance diagram for fsdk::IHumanDetector:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+Ref< IHumanDetectionBatch > > 
detect (Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, HumanDetectionType type=HDT_BOX) const noexcept=0
 Batched detect of human bodies. More...
 
virtual ResultValue< FSDKError,
+Human
detectOne (const Image &image, const Rect &rect, HumanDetectionType type=HDT_BOX) const noexcept=0
 Detect one person on input image. More...
 
virtual ResultValue< FSDKError,
+Human
redetectOne (const Image &image, const Detection &detection, HumanDetectionType type=HDT_BOX) const noexcept=0
 redetect one person from input image. More...
 
virtual ResultValue< FSDKError,
+IHumanDetectionBatchPtr > 
redetect (Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, HumanDetectionType type=HDT_BOX) const noexcept=0
 Batched redetect humans on multiple images based on the detection results for the previous frames. More...
 
virtual ResultValue< FSDKError,
+IHumanDetectionBatchPtr > 
redetect (Span< const Image > images, Span< Span< const Detection >> detections, HumanDetectionType type=HDT_BOX) const noexcept=0
 Batched redetect humans on multiple images based on the detection results for the previous frames. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< const Rect > rects, uint32_t detectionPerImageNum, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Ref< IHumanDetectionBatch > detectionBatch, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< Span< const Detection >> detections, Span< Span< Result< FSDKError >>> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

human body detector interface.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Ref<IHumanDetectionBatch> > fsdk::IHumanDetector::detect (Span< const Imageimages,
Span< const Rectrects,
uint32_t detectionPerImageNum,
HumanDetectionType type = HDT_BOX 
) const
+
+pure virtualnoexcept
+
+ +

Batched detect of human bodies.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]rectsspan of input rectangles of interest.
[in]detectionPerImageNummax number of detections per input image.
[in]typeHuman detection type.
+
+
+
Returns
ResultValue with error code and IHumanDetectionBatch object.
+
See Also
Ref, Span, Image, Rect, IHumanDetectionBatch, HumanDetectionType, ResultValue and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Human> fsdk::IHumanDetector::detectOne (const Imageimage,
const Rectrect,
HumanDetectionType type = HDT_BOX 
) const
+
+pure virtualnoexcept
+
+ +

Detect one person on input image.

+
Parameters
+ + + + +
[in]imagesource image.
[in]rectrectangle of interest in the image.
[in]typeHuman detection type.
+
+
+
Returns
ResultValue with ErrorCode and Human (invalid - if detection not found).
+
See Also
Image, Rect, Human, HumanDetectionType, ResultValue and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, IHumanDetectionBatchPtr> fsdk::IHumanDetector::redetect (Span< const Imageimages,
Ref< IHumanDetectionBatchdetectionBatch,
HumanDetectionType type = HDT_BOX 
) const
+
+pure virtualnoexcept
+
+ +

Batched redetect humans on multiple images based on the detection results for the previous frames.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionBatchresult of detection on the previous frames - Ref with an IHumanDetectionBatch object.
[in]typetype of redetection.
+
+
+
Returns
ResultValue with error code and IHumanDetectionBatch object.
+
See Also
Ref, Span, Image, IHumanDetectionBatch, HumanDetectionType, ResultValue and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+images span should be the same size with detectionBatch size.
+
+In case if some human from the input detectionBatch was not found the corresponding detection in the output IHumanDetectionBatch object will be invalid.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, IHumanDetectionBatchPtr> fsdk::IHumanDetector::redetect (Span< const Imageimages,
Span< Span< const Detection >> detections,
HumanDetectionType type = HDT_BOX 
) const
+
+pure virtualnoexcept
+
+ +

Batched redetect humans on multiple images based on the detection results for the previous frames.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space from the previous frames. It is a two dimensional Span. There is one Span of the rectangles for each image.
[in]typetype of redetection.
+
+
+
Returns
ResultValue with error code and IHumanDetectionBatch object.
+
See Also
Span, Image, Detection, IHumanDetectionBatch, HumanDetectionType, ResultValue and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+
+If for some of the input detections the redetected human will not be found the appropriate detection in the IHumanDetectionBatch object will be invalid.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Human> fsdk::IHumanDetector::redetectOne (const Imageimage,
const Detectiondetection,
HumanDetectionType type = HDT_BOX 
) const
+
+pure virtualnoexcept
+
+ +

redetect one person from input image.

+
Parameters
+ + + + +
[in]imagesource image.
[in]detectionspan of detection coordinates in corresponding source images space to make a redetect.
[in]typeHuman detection type.
+
+
+
Returns
ResultValue with ErrorCode and Human (invalid - if detection not found).
+
See Also
Image, Detection, Human, HumanDetectionType, ResultValue and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHumanDetector::validate (Span< const Imageimages,
Span< const Rectrects,
uint32_t detectionPerImageNum,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]rectsspan of rectangle coordinates of corresponding source images.
[in]detectionPerImageNummax number of detections per input image.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Rect, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHumanDetector::validate (Span< const Imageimages,
Ref< IHumanDetectionBatchdetectionBatch,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionBatchresult of detection on the previous frames - Ref with an IHumanDetectionBatch object.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Ref, Span, Image, IHumanDetectionBatch, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHumanDetector::validate (Span< const Imageimages,
Span< Span< const Detection >> detections,
Span< Span< Result< FSDKError >>> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space from the previous frames. It is a two dimensional Span. There is one Span of the Detections for each image.
[out]errorsoutput span of errors for each image. It is a two dimensional Span. There is one Span of the errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Detection, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detector.js b/doc/fsdk/html/structfsdk_1_1_i_human_detector.js new file mode 100644 index 0000000..9137ab8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_detector.js @@ -0,0 +1,11 @@ +var structfsdk_1_1_i_human_detector = +[ + [ "detect", "structfsdk_1_1_i_human_detector.html#a8f7c76c7487445b59e498b49a1e3b216", null ], + [ "detectOne", "structfsdk_1_1_i_human_detector.html#a68b933f48f92ea3b1aa1986e3d8b30d8", null ], + [ "redetect", "structfsdk_1_1_i_human_detector.html#aa646c7b7ae2dda414b967a24092f3948", null ], + [ "redetect", "structfsdk_1_1_i_human_detector.html#a1a427579c96e2df17d7b445235a3f8fe", null ], + [ "redetectOne", "structfsdk_1_1_i_human_detector.html#a4f7351750b7ec8547778511a9129af60", null ], + [ "validate", "structfsdk_1_1_i_human_detector.html#a727b86aedb5fc1b9b614c57d2a0b0a3a", null ], + [ "validate", "structfsdk_1_1_i_human_detector.html#a7a47983761d58676a373231521a8181b", null ], + [ "validate", "structfsdk_1_1_i_human_detector.html#a6be4169b418fb07ccc9d6c6bb6721570", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_detector.png b/doc/fsdk/html/structfsdk_1_1_i_human_detector.png new file mode 100644 index 0000000..2180178 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_human_detector.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_warper-members.html b/doc/fsdk/html/structfsdk_1_1_i_human_warper-members.html new file mode 100644 index 0000000..7407dd2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_warper-members.html @@ -0,0 +1,137 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IHumanWarper Member List
+
+
+ +

This is the complete list of members for fsdk::IHumanWarper, including all inherited members.

+ + + + + + + + + + +
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
warp(const Image image, const Detection &detection, Image &transformedImage) const noexcept=0fsdk::IHumanWarperpure virtual
warp(Span< const Image > images, Span< const Detection > detections, Span< Image > transformedImages) const noexcept=0fsdk::IHumanWarperpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_warper.html b/doc/fsdk/html/structfsdk_1_1_i_human_warper.html new file mode 100644 index 0000000..d2c221b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_warper.html @@ -0,0 +1,297 @@ + + + + + + +Face Engine SDK: fsdk::IHumanWarper Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IHumanWarper Struct Referenceabstract
+
+
+ +

Human detection area warper interface. + More...

+ +

#include <IHumanWarper.h>

+
+Inheritance diagram for fsdk::IHumanWarper:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorwarp (const Image image, const Detection &detection, Image &transformedImage) const noexcept=0
 Warp human detection. More...
 
virtual Result< FSDKErrorwarp (Span< const Image > images, Span< const Detection > detections, Span< Image > transformedImages) const noexcept=0
 Warps humans on multiple images. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Human detection area warper interface.

+

Performs cropping and resizing of an image for human descriptor extraction.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHumanWarper::warp (const Image image,
const Detectiondetection,
ImagetransformedImage 
) const
+
+pure virtualnoexcept
+
+ +

Warp human detection.

+
Parameters
+ + + + +
[in]imagesource image.
[in]detectiondetection coordinates in image space.
[in/out]transformedImage warped image output.
+
+
+
Note
if transformedImage has the same width, height, format as the standard human warp and the same memory residence as source image has, then output data will be just copied to transformedImage without any memory allocation. New image will be allocated otherwise.
+
Returns
Result with error code.
+
See Also
Image, Detection, Result and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IHumanWarper::warp (Span< const Imageimages,
Span< const Detectiondetections,
Span< ImagetransformedImages 
) const
+
+pure virtualnoexcept
+
+ +

Warps humans on multiple images.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[in/out]transformedImages span of input/output images where result will be stored.
+
+
+
Note
each detection in detections span corresponds to an image where this detection was taken from by the same index(i.e detections[i] <–> images[i]), therefore, if there are multiple detections on the same image user must duplicate those images in order for the first statement to hold true.
+
+if output images in transformed images span has the same image parameters as the standard warped image, then output data will be just copied to those images without any memory allocation. New images will be allocated otherwise.
+
Returns
Result with error code.
+
See Also
Span, Image, Detection, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_warper.js b/doc/fsdk/html/structfsdk_1_1_i_human_warper.js new file mode 100644 index 0000000..5eb2231 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_human_warper.js @@ -0,0 +1,5 @@ +var structfsdk_1_1_i_human_warper = +[ + [ "warp", "structfsdk_1_1_i_human_warper.html#a9b838530778bb1133fef48b524ce3770", null ], + [ "warp", "structfsdk_1_1_i_human_warper.html#af7340f0338893b20f3559543c94fc8b9", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_human_warper.png b/doc/fsdk/html/structfsdk_1_1_i_human_warper.png new file mode 100644 index 0000000..032887f Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_human_warper.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_index-members.html b/doc/fsdk/html/structfsdk_1_1_i_index-members.html new file mode 100644 index 0000000..dc3e7d8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_index-members.html @@ -0,0 +1,136 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IIndex Member List
+
+
+ +

This is the complete list of members for fsdk::IIndex, including all inherited members.

+ + + + + + + + + +
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
search(const IDescriptor *reference, int maxResultsCount, SearchResult *results) const noexcept=0fsdk::IIndexpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_index.html b/doc/fsdk/html/structfsdk_1_1_i_index.html new file mode 100644 index 0000000..f557525 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_index.html @@ -0,0 +1,235 @@ + + + + + + +Face Engine SDK: fsdk::IIndex Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IIndex Struct Referenceabstract
+
+
+ +

Base index interface. + More...

+ +

#include <IIndex.h>

+
+Inheritance diagram for fsdk::IIndex:
+
+
+ + +fsdk::IRefCounted +fsdk::IDenseIndex +fsdk::IDynamicIndex + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+int > 
search (const IDescriptor *reference, int maxResultsCount, SearchResult *results) const noexcept=0
 Search for descriptors with the shorter distance to passed descriptor. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Base index interface.

+

You may think of index as some data structure optimized for search queries.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, int> fsdk::IIndex::search (const IDescriptorreference,
int maxResultsCount,
SearchResultresults 
) const
+
+pure virtualnoexcept
+
+ +

Search for descriptors with the shorter distance to passed descriptor.

+
Parameters
+ + + + +
[in]referenceDescriptor to match against index.
[in]maxResultsCountMaximum count of results. It is upper bound value, it does not guarantee to return exactly this amount of results.
[out]resultsC-Array of at least
+
+
+
See Also
maxResultsCount size. Is filled with query results.
+
Returns
ResultValue with error code and count of found descriptors.
+
See Also
IDescriptor, SearchResult, ResultValue and FSDKError for details.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_index.js b/doc/fsdk/html/structfsdk_1_1_i_index.js new file mode 100644 index 0000000..6c2dfa2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_index.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_index = +[ + [ "search", "structfsdk_1_1_i_index.html#a0f14bf62346477137a85525c03cbf1e5", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_index.png b/doc/fsdk/html/structfsdk_1_1_i_index.png new file mode 100644 index 0000000..3427aaf Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_index.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_index_builder-members.html b/doc/fsdk/html/structfsdk_1_1_i_index_builder-members.html new file mode 100644 index 0000000..10c73eb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_index_builder-members.html @@ -0,0 +1,143 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IIndexBuilder Member List
+
+
+ +

This is the complete list of members for fsdk::IIndexBuilder, including all inherited members.

+ + + + + + + + + + + + + + + + +
appendBatch(const IDescriptorBatch *batch) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
appendDescriptor(const IDescriptor *descriptor) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
buildIndex(const IProgressTracker *const progressTracker=nullptr) noexcept=0fsdk::IIndexBuilderpure virtual
buildIndexAsync(IAsyncContext *const asyncContext, const IProgressTracker *const progressTracker=nullptr) noexcept=0fsdk::IIndexBuilderpure virtual
descriptorByIndex(const DescriptorId index, IDescriptor *descriptor) const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getDescriptorVersion() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
removeDescriptor(const DescriptorId index) noexcept=0fsdk::IDynamicDescriptorStoragepure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
size() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_index_builder.html b/doc/fsdk/html/structfsdk_1_1_i_index_builder.html new file mode 100644 index 0000000..5b88e1a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_index_builder.html @@ -0,0 +1,289 @@ + + + + + + +Face Engine SDK: fsdk::IIndexBuilder Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IIndexBuilder Struct Referenceabstract
+
+
+ +

Index builder interface. + More...

+ +

#include <IIndex.h>

+
+Inheritance diagram for fsdk::IIndexBuilder:
+
+
+ + +fsdk::IDynamicDescriptorStorage +fsdk::IRefCounted +fsdk::IStaticDescriptorStorage + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+IDynamicIndex * > 
buildIndex (const IProgressTracker *const progressTracker=nullptr) noexcept=0
 Builds index with every descriptor appended. Blocks until completed. More...
 
virtual ResultValue< FSDKError,
+Future< ResultValue< FSDKError,
+IDynamicIndex * > > > 
buildIndexAsync (IAsyncContext *const asyncContext, const IProgressTracker *const progressTracker=nullptr) noexcept=0
 Builds index with every descriptor appended. Non blocking operation. More...
 
- Public Member Functions inherited from fsdk::IDynamicDescriptorStorage
virtual ResultValue< FSDKError,
+DescriptorId
appendDescriptor (const IDescriptor *descriptor) noexcept=0
 Appends descriptor to internal storage. If used on. More...
 
virtual ResultValue< FSDKError,
+DescriptorId
appendBatch (const IDescriptorBatch *batch) noexcept=0
 Appends batch of descriptors to internal storage. If used on. More...
 
virtual Result< FSDKErrorremoveDescriptor (const DescriptorId index) noexcept=0
 Removes descriptor out of internal storage. If used on. More...
 
- Public Member Functions inherited from fsdk::IStaticDescriptorStorage
virtual Result< FSDKErrordescriptorByIndex (const DescriptorId index, IDescriptor *descriptor) const noexcept=0
 Requests descriptor data out of internal storage. More...
 
virtual uint32_t getDescriptorVersion () const noexcept=0
 Return version of stored descriptors. More...
 
virtual uint64_t size () const noexcept=0
 Return size of internal storage. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Index builder interface.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, IDynamicIndex*> fsdk::IIndexBuilder::buildIndex (const IProgressTracker *const progressTracker = nullptr)
+
+pure virtualnoexcept
+
+ +

Builds index with every descriptor appended. Blocks until completed.

+

Is very heavy method in terms of computing load.

+
Parameters
+ + +
[in]progressTrackerSome object that is being reported to with progress. If its nullptr, dont report progress.
+
+
+
Returns
ResultValue with error code and created index object.
+
See Also
IProgressTracker, IDynamicIndex, ResultValue and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ResultValue<FSDKError, Future<ResultValue<FSDKError, IDynamicIndex*> > > fsdk::IIndexBuilder::buildIndexAsync (IAsyncContext *const asyncContext,
const IProgressTracker *const progressTracker = nullptr 
)
+
+pure virtualnoexcept
+
+ +

Builds index with every descriptor appended. Non blocking operation.

+

Is very heavy method in terms of computing load.

+
Parameters
+ + + +
[in]asyncContextAsynchronous context to run build on.
[in]progressTrackerSome object that is being reported to with progress. If its nullptr, dont report progress.
+
+
+
Returns
ResultValue with error code and created index object.
+
See Also
IAsyncContext, IProgressTracker, Future, IDynamicIndex, ResultValue and FSDKError for details.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_index_builder.js b/doc/fsdk/html/structfsdk_1_1_i_index_builder.js new file mode 100644 index 0000000..bb4662b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_index_builder.js @@ -0,0 +1,5 @@ +var structfsdk_1_1_i_index_builder = +[ + [ "buildIndex", "structfsdk_1_1_i_index_builder.html#a7416163824700dcead008ac25011a80f", null ], + [ "buildIndexAsync", "structfsdk_1_1_i_index_builder.html#a9893a17a91bba8a2f19d3745b6757528", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_index_builder.png b/doc/fsdk/html/structfsdk_1_1_i_index_builder.png new file mode 100644 index 0000000..9a5b667 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_index_builder.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_license-members.html b/doc/fsdk/html/structfsdk_1_1_i_license-members.html new file mode 100644 index 0000000..d5cc3be --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_license-members.html @@ -0,0 +1,141 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ILicense Member List
+
+
+ +

This is the complete list of members for fsdk::ILicense, including all inherited members.

+ + + + + + + + + + + + + + +
checkFeatureId(LicenseFeature feature) const noexcept=0fsdk::ILicensepure virtual
FSDK_DEPRECATED("loadFromFile is deprecated since v.5.5.0,"" Use loadFromFile(const char* path, const ISettingsProvider* settings) instead") loadFromFile(const char *path) noexcept=0fsdk::ILicensepure virtual
getExpirationDate(LicenseFeature feature) const noexcept=0fsdk::ILicensepure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
isActivated() const noexcept=0fsdk::ILicensepure virtual
loadFromFile(const char *path, const ISettingsProvider *settings) noexcept=0fsdk::ILicensepure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
saveToFile(const char *path) const noexcept=0fsdk::ILicensepure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_license.html b/doc/fsdk/html/structfsdk_1_1_i_license.html new file mode 100644 index 0000000..d2d3178 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_license.html @@ -0,0 +1,419 @@ + + + + + + +Face Engine SDK: fsdk::ILicense Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ILicense Struct Referenceabstract
+
+
+ +

License objects interface. + More...

+ +

#include <ILicense.h>

+
+Inheritance diagram for fsdk::ILicense:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ResultValue< FSDKError,
+bool > 
checkFeatureId (LicenseFeature feature) const noexcept=0
 Checks if the feature with featureId is available in this license. More...
 
virtual ResultValue< FSDKError,
+bool > 
isActivated () const noexcept=0
 Checks if current license object is activated and could be used by FaceEngine. More...
 
virtual Result< FSDKErrorFSDK_DEPRECATED ("loadFromFile is deprecated since v.5.5.0,"" Use loadFromFile(const char* path, const ISettingsProvider* settings) instead") loadFromFile(const char *path) noexcept=0
 Loads license from file. More...
 
virtual Result< FSDKErrorloadFromFile (const char *path, const ISettingsProvider *settings) noexcept=0
 Loads license from file. More...
 
virtual Result< FSDKErrorsaveToFile (const char *path) const noexcept=0
 Saves license as raw format to the file. This file could be used in the next run of the application. More...
 
virtual ResultValue< FSDKError,
+uint32_t > 
getExpirationDate (LicenseFeature feature) const noexcept=0
 Gets license expiration date. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

License objects interface.

+
Note
Use License objects to adopt FaceEngine functionality.
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, bool> fsdk::ILicense::checkFeatureId (LicenseFeature feature) const
+
+pure virtualnoexcept
+
+ +

Checks if the feature with featureId is available in this license.

+
Parameters
+ + +
[in]featureLicenseFeature type.
+
+
+
Returns
ResultValue with error code and true if feature is available, false if there is no such feature in this license or feature is expired or license was not activated.
+
See Also
LicenseFeature, ResultValue and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::ILicense::FSDK_DEPRECATED ("loadFromFile is deprecated since v.5.5. 0,
""Use loadFromFile(const char *path, const ISettingsProvider *settings) instead"  
) const
+
+pure virtualnoexcept
+
+ +

Loads license from file.

+
Parameters
+ + +
[in]pathpath to the file.
+
+
+
Returns
Result with error code.
+
See Also
Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual ResultValue<FSDKError, uint32_t> fsdk::ILicense::getExpirationDate (LicenseFeature feature) const
+
+pure virtualnoexcept
+
+ +

Gets license expiration date.

+
Parameters
+ + +
[in]featureLicenseFeature type.
+
+
+
Returns
ResultValue with error code and uint32_t Unix Timestamp.
+
See Also
LicenseFeature, ResultValue and FSDKError for details.
+
Note
License settings should be set before using this method!
+
+License should be activated before calling this method!
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual ResultValue<FSDKError, bool> fsdk::ILicense::isActivated () const
+
+pure virtualnoexcept
+
+ +

Checks if current license object is activated and could be used by FaceEngine.

+
Returns
ResultValue with error code and true if object is activated.
+
See Also
ResultValue and FSDKError for details.
+
Note
License object which was not activated could not be used because all features are disabled by default.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::ILicense::loadFromFile (const char * path,
const ISettingsProvidersettings 
)
+
+pure virtualnoexcept
+
+ +

Loads license from file.

+
Parameters
+ + + +
[in]pathpath to the file.
[in]settingsLicense settings provider.
+
+
+
Returns
Result with error code.
+
See Also
ISettingsProvider, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<FSDKError> fsdk::ILicense::saveToFile (const char * path) const
+
+pure virtualnoexcept
+
+ +

Saves license as raw format to the file. This file could be used in the next run of the application.

+
Parameters
+ + +
[in]pathpath to the file.
+
+
+
Returns
Result with error code.
+
See Also
Result and FSDKError for details.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_license.js b/doc/fsdk/html/structfsdk_1_1_i_license.js new file mode 100644 index 0000000..57b1b24 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_license.js @@ -0,0 +1,9 @@ +var structfsdk_1_1_i_license = +[ + [ "checkFeatureId", "structfsdk_1_1_i_license.html#aec5f52e8c189d5cfd99cc13ea1badb51", null ], + [ "FSDK_DEPRECATED", "structfsdk_1_1_i_license.html#a2909d1bc7946cc82772cfafa2d22c32e", null ], + [ "getExpirationDate", "structfsdk_1_1_i_license.html#adbf5141e706837b4ba738a82386e94e1", null ], + [ "isActivated", "structfsdk_1_1_i_license.html#a7d8127d5ba3a36e37ae985f6ad5ab62a", null ], + [ "loadFromFile", "structfsdk_1_1_i_license.html#a66238b1c9c5bf349a27a20676f278f3b", null ], + [ "saveToFile", "structfsdk_1_1_i_license.html#a0d6ceffe612d0f87dc6ae96bfb4bdb9f", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_license.png b/doc/fsdk/html/structfsdk_1_1_i_license.png new file mode 100644 index 0000000..f602c77 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_license.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator-members.html new file mode 100644 index 0000000..61a2045 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator-members.html @@ -0,0 +1,138 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ILivenessOneShotRGBEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::ILivenessOneShotRGBEstimator, including all inherited members.

+ + + + + + + + + + + +
estimate(const Image &image, const Detection &detection, const Landmarks5 &landmarks5, LivenessOneShotRGBEstimation &estimation, const float qualityThreshold=-1.f) const noexcept=0fsdk::ILivenessOneShotRGBEstimatorpure virtual
estimate(Span< const Image > images, Span< const Detection > detections, Span< const Landmarks5 > landmarks5, Span< LivenessOneShotRGBEstimation > estimations, const float qualityThreshold=-1.f, LivenessOneShotRGBEstimation *aggregation=nullptr) const noexcept=0fsdk::ILivenessOneShotRGBEstimatorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > images, Span< const Detection > detections, Span< const Landmarks5 > landmarks5, Span< Result< FSDKError >> errors) const noexcept=0fsdk::ILivenessOneShotRGBEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html new file mode 100644 index 0000000..475f147 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html @@ -0,0 +1,395 @@ + + + + + + +Face Engine SDK: fsdk::ILivenessOneShotRGBEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ILivenessOneShotRGBEstimator Struct Referenceabstract
+
+
+ +

OneShot RGB Liveness estimator interface. + More...

+ +

#include <ILivenessOneShotRGBEstimator.h>

+
+Inheritance diagram for fsdk::ILivenessOneShotRGBEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorestimate (const Image &image, const Detection &detection, const Landmarks5 &landmarks5, LivenessOneShotRGBEstimation &estimation, const float qualityThreshold=-1.f) const noexcept=0
 OneShot RGB Liveness estimation. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > images, Span< const Detection > detections, Span< const Landmarks5 > landmarks5, Span< LivenessOneShotRGBEstimation > estimations, const float qualityThreshold=-1.f, LivenessOneShotRGBEstimation *aggregation=nullptr) const noexcept=0
 OneShot RGB Liveness estimation. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< const Detection > detections, Span< const Landmarks5 > landmarks5, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

OneShot RGB Liveness estimator interface.

+
Note
This estimator is designed for liveness detection.
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::ILivenessOneShotRGBEstimator::estimate (const Imageimage,
const Detectiondetection,
const Landmarks5landmarks5,
LivenessOneShotRGBEstimationestimation,
const float qualityThreshold = -1.f 
) const
+
+pure virtualnoexcept
+
+ +

OneShot RGB Liveness estimation.

+
Parameters
+ + + + + + +
[in]imagesource image.
[in]detectiondetection coordinates in image space;
[in]landmarks5Landmarks5 for the detection;
[out]estimationestimation results.
[in]qualityThresholdquality threshold;
+
+
+
Returns
Result with error code.
+
See Also
Detection, LivenessOneShotRGBEstimation, Landmarks, Image, Result and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::ILivenessOneShotRGBEstimator::estimate (Span< const Imageimages,
Span< const Detectiondetections,
Span< const Landmarks5landmarks5,
Span< LivenessOneShotRGBEstimationestimations,
const float qualityThreshold = -1.f,
LivenessOneShotRGBEstimationaggregation = nullptr 
) const
+
+pure virtualnoexcept
+
+ +

OneShot RGB Liveness estimation.

+
Parameters
+ + + + + + + +
[in]imagesspan of source images;
[in]detectionsspan of detection coordinates in corresponding source images space;
[in]landmarks5span of Landmarks5;
[out]estimationsspan of estimations;
[in]qualityThresholdquality threshold;
[out]aggregationaggregated value based on estimations;
+
+
+
Returns
Result with error code.
+
See Also
Span, Detection, LivenessOneShotRGBEstimation, Landmarks, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::ILivenessOneShotRGBEstimator::validate (Span< const Imageimages,
Span< const Detectiondetections,
Span< const Landmarks5landmarks5,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[in]landmarks5span of landmarks
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Landmarks, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.js new file mode 100644 index 0000000..9e60337 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator = +[ + [ "estimate", "structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a6b38d2e4cd89f319b1a21a3ada06f07c", null ], + [ "estimate", "structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a1c4668c9963ceb1fb7db01b688968688", null ], + [ "validate", "structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.html#a540933fe78bc701f7762b3422e8bb499", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.png new file mode 100644 index 0000000..c26e5a1 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_liveness_one_shot_r_g_b_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator-members.html new file mode 100644 index 0000000..8d546aa --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator-members.html @@ -0,0 +1,145 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IMedicalMaskEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::IMedicalMaskEstimator, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
estimate(const Image &warp, MedicalMaskEstimation &estimation) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
estimate(const Image &warp, MedicalMaskEstimationExtended &estimation) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
estimate(const Image &image, const Detection &detection, MedicalMaskEstimation &estimation) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
estimate(const Image &image, const Detection &detection, MedicalMaskEstimationExtended &estimation) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
estimate(Span< const Image > warps, Span< MedicalMaskEstimation > estimations) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
estimate(Span< const Image > warps, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
estimate(Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimation > estimations) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
estimate(Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
validate(Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IMedicalMaskEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.html new file mode 100644 index 0000000..2f47566 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.html @@ -0,0 +1,729 @@ + + + + + + +Face Engine SDK: fsdk::IMedicalMaskEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IMedicalMaskEstimator Struct Referenceabstract
+
+
+ +

MedicalMask estimator interface. + More...

+ +

#include <IMedicalMaskEstimator.h>

+
+Inheritance diagram for fsdk::IMedicalMaskEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorestimate (const Image &warp, MedicalMaskEstimation &estimation) const noexcept=0
 Estimate MedicalMask probabilities. More...
 
virtual Result< FSDKErrorestimate (const Image &warp, MedicalMaskEstimationExtended &estimation) const noexcept=0
 Estimate MedicalMask probabilities. More...
 
virtual Result< FSDKErrorestimate (const Image &image, const Detection &detection, MedicalMaskEstimation &estimation) const noexcept=0
 Estimate MedicalMask probabilities. More...
 
virtual Result< FSDKErrorestimate (const Image &image, const Detection &detection, MedicalMaskEstimationExtended &estimation) const noexcept=0
 Estimate MedicalMask probabilities. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > warps, Span< MedicalMaskEstimation > estimations) const noexcept=0
 Estimate Medical Mask probabilities. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > warps, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0
 Estimate Medical Mask probabilities. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimation > estimations) const noexcept=0
 Estimate Medical Mask probabilities. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > images, Span< const Detection > detections, Span< MedicalMaskEstimationExtended > estimations) const noexcept=0
 Estimate Medical Mask probabilities. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Span< const Detection > detections, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

MedicalMask estimator interface.

+
Note
Estimator predicts mask.
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (const Imagewarp,
MedicalMaskEstimationestimation 
) const
+
+pure virtualnoexcept
+
+ +

Estimate MedicalMask probabilities.

+
Parameters
+ + + +
[in]warpimage with warped face.
[out]estimationestimation results.
+
+
+
Returns
Result with error code.
+
See Also
MedicalMaskEstimation, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (const Imagewarp,
MedicalMaskEstimationExtendedestimation 
) const
+
+pure virtualnoexcept
+
+ +

Estimate MedicalMask probabilities.

+
Parameters
+ + + +
[in]warpimage with warped face.
[out]estimationestimation results.
+
+
+
Returns
Result with error code.
+
See Also
MedicalMaskEstimationExtended, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (const Imageimage,
const Detectiondetection,
MedicalMaskEstimationestimation 
) const
+
+pure virtualnoexcept
+
+ +

Estimate MedicalMask probabilities.

+
Parameters
+ + + + +
[in]imagesource image.
[in]detectiondetection coordinates in image space.
[out]estimationestimation results.
+
+
+
Returns
Result with error code.
+
See Also
MedicalMaskEstimation, Detection, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (const Imageimage,
const Detectiondetection,
MedicalMaskEstimationExtendedestimation 
) const
+
+pure virtualnoexcept
+
+ +

Estimate MedicalMask probabilities.

+
Parameters
+ + + + +
[in]imagesource image.
[in]detectiondetection coordinates in image space.
[out]estimationestimation results.
+
+
+
Returns
Result with error code.
+
See Also
MedicalMaskEstimationExtended, Detection, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (Span< const Imagewarps,
Span< MedicalMaskEstimationestimations 
) const
+
+pure virtualnoexcept
+
+ +

Estimate Medical Mask probabilities.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]estimationsspan of estimations.
+
+
+
Returns
Result with error code.
+
See Also
Span, MedicalMaskEstimation, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (Span< const Imagewarps,
Span< MedicalMaskEstimationExtendedestimations 
) const
+
+pure virtualnoexcept
+
+ +

Estimate Medical Mask probabilities.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]estimationsspan of estimations.
+
+
+
Returns
Result with error code.
+
See Also
Span, MedicalMaskEstimationExtended, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (Span< const Imageimages,
Span< const Detectiondetections,
Span< MedicalMaskEstimationestimations 
) const
+
+pure virtualnoexcept
+
+ +

Estimate Medical Mask probabilities.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[out]estimationsspan of estimations.
+
+
+
Returns
Result with error code.
+
See Also
Span, Detection, MedicalMaskEstimation, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::estimate (Span< const Imageimages,
Span< const Detectiondetections,
Span< MedicalMaskEstimationExtendedestimations 
) const
+
+pure virtualnoexcept
+
+ +

Estimate Medical Mask probabilities.

+
Parameters
+ + + + +
[in]imagesspan of source images;
[in]detectionsspan of detection coordinates in corresponding source images space.
[out]estimationsspan of estimations;
+
+
+
Returns
Result with error code.
+
See Also
Span, Detection, MedicalMaskEstimationExtended, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::validate (Span< const Imagewarps,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IMedicalMaskEstimator::validate (Span< const Imageimages,
Span< const Detectiondetections,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]detectionsspan of detection coordinates in corresponding source images space.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Detection, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.js new file mode 100644 index 0000000..8b4e0fb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.js @@ -0,0 +1,13 @@ +var structfsdk_1_1_i_medical_mask_estimator = +[ + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#a3b1b2079ddd9fcb2ba4214786672f2ad", null ], + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#a44bd4605cbb30233f9917e39abcf0683", null ], + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#ad3c72d0d6cf3eb3e72790e19f201cbc7", null ], + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#af4f0b22091b8425dad74219839283d51", null ], + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#a6b4ea30e87d87c91993ff44c32d14ab8", null ], + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#ae05d68e52524bbddb94a71bb22c1a547", null ], + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#a486ff6fc49bf7575114abb6ff0627ec4", null ], + [ "estimate", "structfsdk_1_1_i_medical_mask_estimator.html#ac923e26a07ddf1c26370d36f0acd2e56", null ], + [ "validate", "structfsdk_1_1_i_medical_mask_estimator.html#a73dde47ed832da47eedf47921af4e42d", null ], + [ "validate", "structfsdk_1_1_i_medical_mask_estimator.html#a2d09801e30812ea464f897cef0e4c4a9", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.png new file mode 100644 index 0000000..bfcd42f Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_medical_mask_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_progress_tracker-members.html b/doc/fsdk/html/structfsdk_1_1_i_progress_tracker-members.html new file mode 100644 index 0000000..ce5a94d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_progress_tracker-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IProgressTracker Member List
+
+
+ +

This is the complete list of members for fsdk::IProgressTracker, including all inherited members.

+ + +
progress(const float completion) const noexcept=0fsdk::IProgressTrackerpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_progress_tracker.html b/doc/fsdk/html/structfsdk_1_1_i_progress_tracker.html new file mode 100644 index 0000000..a4b0c7f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_progress_tracker.html @@ -0,0 +1,180 @@ + + + + + + +Face Engine SDK: fsdk::IProgressTracker Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IProgressTracker Struct Referenceabstract
+
+
+ +

Progress tracker interface. + More...

+ +

#include <IIndex.h>

+ + + + + +

+Public Member Functions

virtual void progress (const float completion) const noexcept=0
 Function is called on some operation progress change. More...
 
+

Detailed Description

+

Progress tracker interface.

+

Implement this interface to be able to get progress info on some operation.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void fsdk::IProgressTracker::progress (const float completion) const
+
+pure virtualnoexcept
+
+ +

Function is called on some operation progress change.

+
Parameters
+ + +
[in]completionfloat value in [0..1] range.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_progress_tracker.js b/doc/fsdk/html/structfsdk_1_1_i_progress_tracker.js new file mode 100644 index 0000000..6f52553 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_progress_tracker.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_progress_tracker = +[ + [ "progress", "structfsdk_1_1_i_progress_tracker.html#a79ab3dfe56481122e2d9540279c55abc", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_quality_estimator-members.html b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator-members.html new file mode 100644 index 0000000..f18542a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator-members.html @@ -0,0 +1,140 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IQualityEstimator Member List
+
+
+ +

This is the complete list of members for fsdk::IQualityEstimator, including all inherited members.

+ + + + + + + + + + + + + +
estimate(const Image &warp, Quality &quality) const noexcept=0fsdk::IQualityEstimatorpure virtual
estimate(Span< const Image > warps, Span< Quality > quality) const noexcept=0fsdk::IQualityEstimatorpure virtual
estimate(const Image &warp, SubjectiveQuality &quality) const noexcept=0fsdk::IQualityEstimatorpure virtual
estimate(Span< const Image > warps, Span< SubjectiveQuality > quality) const noexcept=0fsdk::IQualityEstimatorpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
validate(Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0fsdk::IQualityEstimatorpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.html b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.html new file mode 100644 index 0000000..9921e10 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.html @@ -0,0 +1,441 @@ + + + + + + +Face Engine SDK: fsdk::IQualityEstimator Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IQualityEstimator Struct Referenceabstract
+
+
+ +

Image quality estimator interface. + More...

+ +

#include <IQualityEstimator.h>

+
+Inheritance diagram for fsdk::IQualityEstimator:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrorestimate (const Image &warp, Quality &quality) const noexcept=0
 Estimate the quality. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > warps, Span< Quality > quality) const noexcept=0
 Estimate the quality of multiple warped images in a single estimate function call. More...
 
virtual Result< FSDKErrorestimate (const Image &warp, SubjectiveQuality &quality) const noexcept=0
 Estimate the quality. More...
 
virtual Result< FSDKErrorestimate (Span< const Image > warps, Span< SubjectiveQuality > quality) const noexcept=0
 Estimate the subjective quality of multiple warped images in a single estimate function call. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > warps, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Image quality estimator interface.

+
Note
This estimator is designed to work with a person face image; you should pass a warped face detection image.
+
See Also
IWarper for details. Quality estimator detects the same attributes as all the other estimators:
    +
  • over/under exposure;
  • +
  • blurriness;
  • +
  • natural/unnatural colors; It is different in the sense that it computes all the estimations at once and returns the results merged somehow into a single value instead of several separate values. This way one can obtain a single scalar quality metric of a person face image. The estimated value is a probability that the image is good for both recognition and viewing purposes.
  • +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IQualityEstimator::estimate (const Imagewarp,
Qualityquality 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the quality.

+
Parameters
+ + + +
[in]warpimage with warped face.
[out]qualityoutput structure with quality params. Complex quality estimation available by method getQuality.
+
+
+
Returns
Result with error code.
+
See Also
Quality, Image, Result and FSDKError for details.
+
Note
warp format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IQualityEstimator::estimate (Span< const Imagewarps,
Span< Qualityquality 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the quality of multiple warped images in a single estimate function call.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]qualityoutput quality span.
+
+
+
Returns
Result with error code.
+
See Also
Span, Quality, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IQualityEstimator::estimate (const Imagewarp,
SubjectiveQualityquality 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the quality.

+
Parameters
+ + + +
[in]warpimage with warped face.
[out]qualityoutput structure with subjective quality params.
+
+
+
Returns
Result with error code.
+
See Also
SubjectiveQuality, Image, Result and FSDKError for details.
+
Note
warp format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IQualityEstimator::estimate (Span< const Imagewarps,
Span< SubjectiveQualityquality 
) const
+
+pure virtualnoexcept
+
+ +

Estimate the subjective quality of multiple warped images in a single estimate function call.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]qualityoutput SubjectiveQuality span.
+
+
+
Returns
Result with error code.
+
See Also
Span, SubjectiveQuality, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IQualityEstimator::validate (Span< const Imagewarps,
Span< Result< FSDKError >> errors 
) const
+
+pure virtualnoexcept
+
+ +

Validate input of multiple frames in a single function call.

+
Parameters
+ + + +
[in]warpsspan of images with warped faces.
[out]errorsoutput span of errors for each image.
+
+
+
Returns
Result with error code.
+
See Also
Span, Image, Result and FSDKError for details.
+
Note
warps format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.js b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.js new file mode 100644 index 0000000..3616f9a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_i_quality_estimator = +[ + [ "estimate", "structfsdk_1_1_i_quality_estimator.html#afe1b7b67b42d2cbac44f2ac244620ef0", null ], + [ "estimate", "structfsdk_1_1_i_quality_estimator.html#aae851d39ce2253e18d0a8ccbc45f6d15", null ], + [ "estimate", "structfsdk_1_1_i_quality_estimator.html#a76dbb486ab7b5c2a8bf7e632aacb1aeb", null ], + [ "estimate", "structfsdk_1_1_i_quality_estimator.html#a2b512a5f2af69901f10124f3af55d73c", null ], + [ "validate", "structfsdk_1_1_i_quality_estimator.html#adf7141013baf6da3881d901339064180", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.png b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.png new file mode 100644 index 0000000..72f7f8b Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_quality_estimator.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_ref_counted-members.html b/doc/fsdk/html/structfsdk_1_1_i_ref_counted-members.html new file mode 100644 index 0000000..77f9883 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_ref_counted-members.html @@ -0,0 +1,135 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IRefCounted Member List
+
+
+ +

This is the complete list of members for fsdk::IRefCounted, including all inherited members.

+ + + + + + + + +
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_ref_counted.html b/doc/fsdk/html/structfsdk_1_1_i_ref_counted.html new file mode 100644 index 0000000..d09a569 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_ref_counted.html @@ -0,0 +1,385 @@ + + + + + + +Face Engine SDK: fsdk::IRefCounted Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IRefCounted Struct Referenceabstract
+
+
+ +

Base strong reference counted object interface. + More...

+ +

#include <IRefCounted.h>

+
+Inheritance diagram for fsdk::IRefCounted:
+
+
+ + +fsdk::IAGSEstimator +fsdk::IAsyncContext +fsdk::IBestShotQualityEstimator +fsdk::IDescriptorExtractor +fsdk::IDescriptorMatcher +fsdk::IDetector +fsdk::IEyeEstimator +fsdk::IFaceDetectionBatch +fsdk::IFaceEngineMobile +fsdk::IGlassesEstimator +fsdk::IHeadPoseEstimator +fsdk::IHumanDetectionBatch +fsdk::IHumanDetector +fsdk::IHumanWarper +fsdk::IIndex +fsdk::IIndexBuilder +fsdk::ILicense +fsdk::ILivenessOneShotRGBEstimator +fsdk::IMedicalMaskEstimator +fsdk::IQualityEstimator +fsdk::IResultBatch< T > +fsdk::ISerializableObject +fsdk::ISettingsProvider +fsdk::IWarper + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Base strong reference counted object interface.

+

Implements common reference counting routines to control object life time.

+

Use retain() to notify the object you are going to use it, thus sharing it's ownership. Use release() to release object reference when it is no longer needed. Use getRefCount() to obtain current reference count of the object.

+

All objects are created with initial strong reference count of 1 and weak reference count of 1.

+

When object reference count drops to 0, it's destroyed and deallocated automatically.

+

All functions of this interface have thread safe implementations in SDK classes.

+
Note
You should always destroy reference counted objects by calling appropriate release() function and never try to call delete on them directly!
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual int32_t fsdk::IRefCounted::getRefCount () const
+
+pure virtualnoexcept
+
+ +

Get actual strong reference count.

+
Returns
actual reference counter value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual int32_t fsdk::IRefCounted::getWeakRefCount () const
+
+pure virtualnoexcept
+
+ +

Get actual weak reference count.

+
Returns
actual reference counter value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual int32_t fsdk::IRefCounted::release ()
+
+pure virtualnoexcept
+
+ +

Decrease strong reference count.

+
Returns
actual reference counter value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual int32_t fsdk::IRefCounted::releaseWeak ()
+
+pure virtualnoexcept
+
+ +

Decrease weak reference count.

+
Returns
actual reference counter value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual int32_t fsdk::IRefCounted::retain ()
+
+pure virtualnoexcept
+
+ +

Increase strong reference count.

+
Returns
actual reference counter value. If less than 1 is returned, it has failed
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual int32_t fsdk::IRefCounted::retainLocked ()
+
+pure virtualnoexcept
+
+ +

Increase strong reference count thread safely.

+
Returns
actual reference counter value. If less than 1 is returned, it has failed
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual int32_t fsdk::IRefCounted::retainWeak ()
+
+pure virtualnoexcept
+
+ +

Increase weak reference count.

+
Returns
actual reference counter value. If less than 1 is returned, it has failed
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_ref_counted.js b/doc/fsdk/html/structfsdk_1_1_i_ref_counted.js new file mode 100644 index 0000000..6d8c9d5 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_ref_counted.js @@ -0,0 +1,10 @@ +var structfsdk_1_1_i_ref_counted = +[ + [ "getRefCount", "structfsdk_1_1_i_ref_counted.html#a0e9c300055d88ac0ef739d1e424c8634", null ], + [ "getWeakRefCount", "structfsdk_1_1_i_ref_counted.html#a230ba9c884c16e9e316344b9b901a480", null ], + [ "release", "structfsdk_1_1_i_ref_counted.html#a1b045b30c43c70150e553b7bd796e92a", null ], + [ "releaseWeak", "structfsdk_1_1_i_ref_counted.html#a89a2ad867e5ded45c0b3764a48fc6ff3", null ], + [ "retain", "structfsdk_1_1_i_ref_counted.html#a8cb7a6ecf064e4b8a99038cf08a29e7f", null ], + [ "retainLocked", "structfsdk_1_1_i_ref_counted.html#a7362292166bdff4b2463e25f8003671a", null ], + [ "retainWeak", "structfsdk_1_1_i_ref_counted.html#aaea14dbe2f8eee5deefced4ef3a126b5", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_ref_counted.png b/doc/fsdk/html/structfsdk_1_1_i_ref_counted.png new file mode 100644 index 0000000..04b1b0f Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_ref_counted.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_result_batch-members.html b/doc/fsdk/html/structfsdk_1_1_i_result_batch-members.html new file mode 100644 index 0000000..1180276 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_result_batch-members.html @@ -0,0 +1,137 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IResultBatch< T > Member List
+
+
+ +

This is the complete list of members for fsdk::IResultBatch< T >, including all inherited members.

+ + + + + + + + + + +
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getResults(size_t index=0) const =0 (defined in fsdk::IResultBatch< T >)fsdk::IResultBatch< T >pure virtual
getSize() const =0 (defined in fsdk::IResultBatch< T >)fsdk::IResultBatch< T >pure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_result_batch.html b/doc/fsdk/html/structfsdk_1_1_i_result_batch.html new file mode 100644 index 0000000..e42158b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_result_batch.html @@ -0,0 +1,173 @@ + + + + + + +Face Engine SDK: fsdk::IResultBatch< T > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IResultBatch< T > Struct Template Referenceabstract
+
+
+
+Inheritance diagram for fsdk::IResultBatch< T >:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual Span< T > getResults (size_t index=0) const =0
 
+virtual size_t getSize () const =0
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_result_batch.js b/doc/fsdk/html/structfsdk_1_1_i_result_batch.js new file mode 100644 index 0000000..04f74eb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_result_batch.js @@ -0,0 +1,5 @@ +var structfsdk_1_1_i_result_batch = +[ + [ "getResults", "structfsdk_1_1_i_result_batch.html#a8b8d4eea77368cbf5e38c4d36c237f3d", null ], + [ "getSize", "structfsdk_1_1_i_result_batch.html#a6135908320f68c471f729bded8035d77", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_result_batch.png b/doc/fsdk/html/structfsdk_1_1_i_result_batch.png new file mode 100644 index 0000000..a773637 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_result_batch.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_serializable_object-members.html b/doc/fsdk/html/structfsdk_1_1_i_serializable_object-members.html new file mode 100644 index 0000000..3a03bfb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_serializable_object-members.html @@ -0,0 +1,142 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISerializableObject Member List
+
+
+ +

This is the complete list of members for fsdk::ISerializableObject, including all inherited members.

+ + + + + + + + + + + + + + + +
Default enum valuefsdk::ISerializableObject
Error enum namefsdk::ISerializableObject
Flags enum namefsdk::ISerializableObject
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getSize(Sizer &sizer, uint32_t flags=Default) const noexcept=0fsdk::ISerializableObjectpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
load(IArchive *archive, uint32_t flags=Default)=0fsdk::ISerializableObjectpure virtual
NoSignature enum valuefsdk::ISerializableObject
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
save(IArchive *archive, uint32_t flags=Default) const =0fsdk::ISerializableObjectpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_serializable_object.html b/doc/fsdk/html/structfsdk_1_1_i_serializable_object.html new file mode 100644 index 0000000..bc6327b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_serializable_object.html @@ -0,0 +1,416 @@ + + + + + + +Face Engine SDK: fsdk::ISerializableObject Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISerializableObject Struct Referenceabstract
+
+
+ +

Serializable object interface. + More...

+ +

#include <IObject.h>

+
+Inheritance diagram for fsdk::ISerializableObject:
+
+
+ + +fsdk::IRefCounted +fsdk::IDataStorageObject +fsdk::IDescriptor +fsdk::IDescriptorBatch + +
+ + + + + + + + +

+Public Types

enum  Error : uint32_t {
+  Error::Ok, +Error::Size, +Error::Signature, +Error::ArchiveRead, +
+  Error::InputArchive, +Error::ArchiveWrite +
+ }
 Serialization nerror codes. More...
 
enum  Flags { Default = 0, +NoSignature = 1 + }
 Serialization flags. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void getSize (Sizer &sizer, uint32_t flags=Default) const noexcept=0
 Estimate size of this object binary data. More...
 
virtual Result< Errorload (IArchive *archive, uint32_t flags=Default)=0
 Load object from archive. More...
 
virtual Result< Errorsave (IArchive *archive, uint32_t flags=Default) const =0
 Save object to archive. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Serializable object interface.

+

Provides common functions for all serializable objects.

+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum fsdk::ISerializableObject::Error : uint32_t
+
+strong
+
+ +

Serialization nerror codes.

+ + + + + + + +
Enumerator
Ok  +

Ok.

+
Size  +

Not enough space.

+
Signature  +

Invalid signature.

+
ArchiveRead  +

Error during archive reading,.

+
InputArchive  +

Input archive is nullptr.

+
ArchiveWrite  +

Error during archive writing,.

+
+ +
+
+ +
+
+ +

Serialization flags.

+

These flags control advanced options and should not be set to anything else from Default in normal conditions.

+
Note
The same set of flags should be specified for both save() and load().
+ + + +
Enumerator
Default  +

Default serialization mode.

+
NoSignature  +

Omit object signature.

+

Helps to save space if there are several objects of the same type coming in a stream or where type is known for sure.

+
Note
This effectively disables signature check on loading. This may cause undefined results in case of mismatched input data.
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void fsdk::ISerializableObject::getSize (Sizersizer,
uint32_t flags = Default 
) const
+
+pure virtualnoexcept
+
+ +

Estimate size of this object binary data.

+
Parameters
+ + + +
[in,out]sizersizer object to append result to.
[in]flags[optional] serialization flags
+
+
+
See Also
Flags.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<Error> fsdk::ISerializableObject::load (IArchivearchive,
uint32_t flags = Default 
)
+
+pure virtual
+
+ +

Load object from archive.

+
Parameters
+ + + +
[in]archivearchive to read from.
[in]flags[optional] serialization flags
+
+
+
See Also
Flags.
+
Returns
Result with error code specified by ISerializableObject::SerializationError.
+
Note
This method pass exceptions from user defined IArchive, but doesnt throw its own
+
See Also
Result and ISerializableObject::SerializationError.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<Error> fsdk::ISerializableObject::save (IArchivearchive,
uint32_t flags = Default 
) const
+
+pure virtual
+
+ +

Save object to archive.

+
Parameters
+ + + +
[in]archivearchive to write to.
[in]flags[optional] serialization flags
+
+
+
See Also
Flags.
+
Returns
Result with error code specified by ISerializableObject::SerializationError.
+
Note
This method pass exceptions from user defined IArchive, but doesnt throw its own
+
See Also
Result and ISerializableObject::SerializationError.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_serializable_object.js b/doc/fsdk/html/structfsdk_1_1_i_serializable_object.js new file mode 100644 index 0000000..4a9017e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_serializable_object.js @@ -0,0 +1,18 @@ +var structfsdk_1_1_i_serializable_object = +[ + [ "Error", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0", [ + [ "Ok", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0aa60852f204ed8028c1c58808b746d115", null ], + [ "Size", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a6f6cb72d544962fa333e2e34ce64f719", null ], + [ "Signature", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a8c09001c99ecb6fdd8d6023fcf039054", null ], + [ "ArchiveRead", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a475e42b82c23aaaa94f66c43f80a14d1", null ], + [ "InputArchive", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0af7d6ea2b343a99ac0a2cd306ed96b5c7", null ], + [ "ArchiveWrite", "structfsdk_1_1_i_serializable_object.html#a2e8ee7bbbbc97731f3dddfcf9c5276f0a5b9364e023e7cee301db9754a421d258", null ] + ] ], + [ "Flags", "structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79", [ + [ "Default", "structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79a6e4800456cd37d67c1cdcfecaac8afab", null ], + [ "NoSignature", "structfsdk_1_1_i_serializable_object.html#ac02b734576139d792a928b0a9ade7d79abe2164cbc91b390163c0c9af3448acf6", null ] + ] ], + [ "getSize", "structfsdk_1_1_i_serializable_object.html#a22ce2c43e668e4d5dbd79dc0056e2032", null ], + [ "load", "structfsdk_1_1_i_serializable_object.html#a9217958c8ff2aeb970db02c3324a017b", null ], + [ "save", "structfsdk_1_1_i_serializable_object.html#a5171a97d79c639d613ec9d6ee694c8e1", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_serializable_object.png b/doc/fsdk/html/structfsdk_1_1_i_serializable_object.png new file mode 100644 index 0000000..3ab6896 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_serializable_object.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider-members.html new file mode 100644 index 0000000..e8293d4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider-members.html @@ -0,0 +1,153 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
clear() noexcept=0fsdk::ISettingsProviderpure virtual
Error enum namefsdk::ISettingsProvider
getDefaultPath() const noexcept=0fsdk::ISettingsProviderpure virtual
getDesc(const Key &key) const noexceptfsdk::ISettingsProvider
getDesc(const char *section, const char *parameter) const noexceptfsdk::ISettingsProvider
getEntry(const Key &key) const noexcept=0fsdk::ISettingsProviderpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getValue(const Key &key) const noexceptfsdk::ISettingsProvider
getValue(const char *section, const char *parameter) const noexceptfsdk::ISettingsProvider
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
isEmpty() const noexcept=0fsdk::ISettingsProviderpure virtual
load(const char *path) noexcept=0fsdk::ISettingsProviderpure virtual
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
save(const char *path) const noexcept=0fsdk::ISettingsProviderpure virtual
setDesc(const Key &key, const Desc &desc) noexcept=0fsdk::ISettingsProviderpure virtual
setDesc(const char *section, const char *parameter, const Desc &desc) noexceptfsdk::ISettingsProvider
setEntry(const Key &key, Entry &&entry) noexcept=0fsdk::ISettingsProviderpure virtual
setEntry(const Key &key, const Desc &desc, Value &&value) noexceptfsdk::ISettingsProvider
setEntry(const char *section, const char *parameter, const Desc &desc, Value &&value) noexceptfsdk::ISettingsProvider
setValue(const Key &key, Value &&value) noexcept=0fsdk::ISettingsProviderpure virtual
setValue(const char *section, const char *parameter, Value &&value) noexceptfsdk::ISettingsProvider
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider.html new file mode 100644 index 0000000..31a8144 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider.html @@ -0,0 +1,1027 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider Struct Referenceabstract
+
+
+ +

SDK settings provider interface. + More...

+ +

#include <ISettingsProvider.h>

+
+Inheritance diagram for fsdk::ISettingsProvider:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + + + + + + + + +

+Classes

struct  Desc
 Configuration parameter description. More...
 
struct  Entry
 Configuration parameter entry. More...
 
struct  Key
 Configuration parameter key. More...
 
struct  Value
 Configuration parameter value. More...
 
+ + + + +

+Public Types

enum  Error : uint32_t {
+  Error::Ok, +Error::IOError, +Error::Memory, +Error::Internal, +
+  Error::InvalidPi, +Error::InvalidTag, +Error::InvalidCdata, +Error::FileNotFound, +
+  Error::InvalidPcdata, +Error::InvalidDocType, +Error::InvalidSettings, +Error::InvalidComment, +
+  Error::InvalidAttribute, +Error::InvalidEndElement, +Error::AppendInvalidRoot, +Error::NoDocumentElement, +
+  Error::EndElementMismatch, +Error::InvalidStartElement, +Error::MemoryAllocationFailed +
+ }
 Config parsing error codes. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual const char * getDefaultPath () const noexcept=0
 Get settings path this provider is bound to. More...
 
virtual Result< Errorload (const char *path) noexcept=0
 Load settings from given path. More...
 
virtual bool save (const char *path) const noexcept=0
 Save settings values using the default path. More...
 
virtual void clear () noexcept=0
 Clear settings. More...
 
virtual bool isEmpty () const noexcept=0
 
virtual void setDesc (const Key &key, const Desc &desc) noexcept=0
 Set parameter description. More...
 
void setDesc (const char *section, const char *parameter, const Desc &desc) noexcept
 Set parameter description. More...
 
virtual void setValue (const Key &key, Value &&value) noexcept=0
 Set parameter value. More...
 
void setValue (const char *section, const char *parameter, Value &&value) noexcept
 Set parameter value. More...
 
virtual void setEntry (const Key &key, Entry &&entry) noexcept=0
 Set parameter. More...
 
void setEntry (const Key &key, const Desc &desc, Value &&value) noexcept
 Set parameter. More...
 
void setEntry (const char *section, const char *parameter, const Desc &desc, Value &&value) noexcept
 Set parameter. More...
 
virtual const EntrygetEntry (const Key &key) const noexcept=0
 Find parameter entry. More...
 
Desc getDesc (const Key &key) const noexcept
 Get parameter description. More...
 
Desc getDesc (const char *section, const char *parameter) const noexcept
 Get parameter description. More...
 
const ValuegetValue (const Key &key) const noexcept
 Get parameter value. More...
 
const ValuegetValue (const char *section, const char *parameter) const noexcept
 Get parameter value. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

SDK settings provider interface.

+

Takes care of loading and parsing of SDK configuration files.

+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum fsdk::ISettingsProvider::Error : uint32_t
+
+strong
+
+ +

Config parsing error codes.

+ + + + + + + + + + + + + + + + + + + + +
Enumerator
Ok  +

No error.

+
IOError  +

Error reading from file/stream.

+
Memory  +

Could not allocate memory.

+
Internal  +

Internal error occurred.

+
InvalidPi  +

Parsing error occurred while parsing document declaration/processing instruction.

+
InvalidTag  +

Parser could not determine tag type.

+
InvalidCdata  +

Parsing error occurred while parsing CDATA section.

+
FileNotFound  +

File was not found during load_file()

+
InvalidPcdata  +

Parsing error occurred while parsing PCDATA section.

+
InvalidDocType  +

Parsing error occurred while parsing document type declaration.

+
InvalidSettings  +

Settings section is invalid or absent.

+
InvalidComment  +

Parsing error occurred while parsing comment.

+
InvalidAttribute  +

Parsing error occurred while parsing element attribute.

+
InvalidEndElement  +

Parsing error occurred while parsing end element tag.

+
AppendInvalidRoot  +

Unable to append nodes since root type is not node_element or node_document (exclusive to xml_node::append_buffer)

+
NoDocumentElement  +

Parsing resulted in a document without element nodes.

+
EndElementMismatch  +

There was a mismatch of start-end tags (closing tag had incorrect name, some tag was not closed or there was an excessive closing tag)

+
InvalidStartElement  +

Parsing error occurred while parsing start element tag.

+
MemoryAllocationFailed  +

memory allocation failed for internal data

+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual void fsdk::ISettingsProvider::clear ()
+
+pure virtualnoexcept
+
+ +

Clear settings.

+
Returns
true if succeded, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual const char* fsdk::ISettingsProvider::getDefaultPath () const
+
+pure virtualnoexcept
+
+ +

Get settings path this provider is bound to.

+

This is the same path that was given to load().

+
Returns
path string.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Desc fsdk::ISettingsProvider::getDesc (const Keykey) const
+
+noexcept
+
+ +

Get parameter description.

+

Lookup parameter by key. Return empty description if the parameters does not exist.

+
Parameters
+ + +
keyparameter key.
+
+
+
Returns
parameter description.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Desc fsdk::ISettingsProvider::getDesc (const char * section,
const char * parameter 
) const
+
+noexcept
+
+ +

Get parameter description.

+

Lookup parameter by key. Return empty description if the parameters does not exist.

+
Parameters
+ + + +
sectionparameter section.
parameterparameter name.
+
+
+
Returns
parameter description.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual const Entry& fsdk::ISettingsProvider::getEntry (const Keykey) const
+
+pure virtualnoexcept
+
+ +

Find parameter entry.

+

Lookup parameter by key. Return empty entry if the parameters does not exist.

+
Parameters
+ + +
keyparameter key.
+
+
+
Returns
parameter entry.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
const Value& fsdk::ISettingsProvider::getValue (const Keykey) const
+
+noexcept
+
+ +

Get parameter value.

+

Lookup parameter by key. Return empty value if the parameters does not exist.

+
Parameters
+ + +
keyparameter key.
+
+
+
Returns
parameter value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
const Value& fsdk::ISettingsProvider::getValue (const char * section,
const char * parameter 
) const
+
+noexcept
+
+ +

Get parameter value.

+

Lookup parameter by key. Return empty value if the parameters does not exist.

+
Parameters
+ + + +
sectionparameter section.
parameterparameter name.
+
+
+
Returns
parameter value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual bool fsdk::ISettingsProvider::isEmpty () const
+
+pure virtualnoexcept
+
+

Check if there are loaded settings.

+
Returns
true if provider is empty.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual Result<Error> fsdk::ISettingsProvider::load (const char * path)
+
+pure virtualnoexcept
+
+ +

Load settings from given path.

+

if path is null, load from the default path;

+
See Also
getDefaultPath().
+
Returns
Result with error code specified by ISettingsProvider::ParseError.
+
See Also
Result and ISettingsProvider::ParseError.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool fsdk::ISettingsProvider::save (const char * path) const
+
+pure virtualnoexcept
+
+ +

Save settings values using the default path.

+

path may be null, in this case a path from getDefaultPath() will be used.

+
Returns
true if succeded, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void fsdk::ISettingsProvider::setDesc (const Keykey,
const Descdesc 
)
+
+pure virtualnoexcept
+
+ +

Set parameter description.

+

Lookup parameter by key. Creates a parameter if it does not already exist.

+
Parameters
+ + + +
keyparameter key.
descparameter description.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::setDesc (const char * section,
const char * parameter,
const Descdesc 
)
+
+noexcept
+
+ +

Set parameter description.

+

Lookup parameter by key. Creates a parameter if it does not already exist.

+
Parameters
+ + + + +
sectionparameter section.
parameterparameter name.
descparameter description.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void fsdk::ISettingsProvider::setEntry (const Keykey,
Entry && entry 
)
+
+pure virtualnoexcept
+
+ +

Set parameter.

+

Lookup parameter by key. Creates a parameter if it does not already exist.

+
Parameters
+ + + +
keyparameter key.
entryparameter entry.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::setEntry (const Keykey,
const Descdesc,
Value && value 
)
+
+noexcept
+
+ +

Set parameter.

+

Lookup parameter by key. Creates a parameter if it does not already exist.

+
Parameters
+ + + + +
keyparameter key.
descparameter description.
valueparameter value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::setEntry (const char * section,
const char * parameter,
const Descdesc,
Value && value 
)
+
+noexcept
+
+ +

Set parameter.

+

Lookup parameter by key. Creates a parameter if it does not already exist.

+
Parameters
+ + + + + +
sectionparameter section.
parameterparameter name.
descparameter description.
valueparameter value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void fsdk::ISettingsProvider::setValue (const Keykey,
Value && value 
)
+
+pure virtualnoexcept
+
+ +

Set parameter value.

+

Lookup parameter by key. Creates a parameter if it does not already exist.

+
Parameters
+ + + +
keyparameter key.
valueparameter value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::setValue (const char * section,
const char * parameter,
Value && value 
)
+
+noexcept
+
+ +

Set parameter value.

+

Lookup parameter by key. Creates a parameter if it does not already exist.

+
Parameters
+ + + + +
sectionparameter section.
parameterparameter name.
valueparameter value.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider.js new file mode 100644 index 0000000..425701e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider.js @@ -0,0 +1,45 @@ +var structfsdk_1_1_i_settings_provider = +[ + [ "Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html", "structfsdk_1_1_i_settings_provider_1_1_desc" ], + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html", "structfsdk_1_1_i_settings_provider_1_1_entry" ], + [ "Key", "structfsdk_1_1_i_settings_provider_1_1_key.html", "structfsdk_1_1_i_settings_provider_1_1_key" ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html", "structfsdk_1_1_i_settings_provider_1_1_value" ], + [ "Error", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5", [ + [ "Ok", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aa60852f204ed8028c1c58808b746d115", null ], + [ "IOError", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a5206bd7472156351d2d9a99633ac9580", null ], + [ "Memory", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a4789f23283b3a61f858b641a1bef19a3", null ], + [ "Internal", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5aafbf0897a5a83fdd873dfb032ec695d3", null ], + [ "InvalidPi", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a96fe5a2a900fba7e5dd6fe5519f09e90", null ], + [ "InvalidTag", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5af155a86534ba8c83bd9ced7c8f510b4c", null ], + [ "InvalidCdata", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a20c6429b7ff545070b48df0668d686fe", null ], + [ "FileNotFound", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a2767828026039e8ba7b38973cbb701f2", null ], + [ "InvalidPcdata", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a65d83fd76501c29718cc8fde8b8f33db", null ], + [ "InvalidDocType", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a93650de0861d0516977f25b86ee42e5a", null ], + [ "InvalidSettings", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a37a5f254c366f6c4dcba8bfd75f1070e", null ], + [ "InvalidComment", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5ac51b09d66c17f113d52d2822fb71a757", null ], + [ "InvalidAttribute", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a49069827e26a70a158193ed0595b485b", null ], + [ "InvalidEndElement", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a811a6b500aa2374e3a70057141dccbbf", null ], + [ "AppendInvalidRoot", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a29ebf8fe305fd42de0b208c9dc226559", null ], + [ "NoDocumentElement", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a655f7706c6b80b169803c2854e43f207", null ], + [ "EndElementMismatch", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a491cc2103be52c3b503686a792baf206", null ], + [ "InvalidStartElement", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5a17b7fccdd65da9c5a54552c3685041a4", null ], + [ "MemoryAllocationFailed", "structfsdk_1_1_i_settings_provider.html#a645a0b8fb7db4e4d2ddc5bdb68a5cad5accc756faa9c309bf0bd9ed5e43dee2a0", null ] + ] ], + [ "clear", "structfsdk_1_1_i_settings_provider.html#a80367779f65239e656e0a20a6204224a", null ], + [ "getDefaultPath", "structfsdk_1_1_i_settings_provider.html#a6c0a658442e821b9f8f7dfd77d1efcb7", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider.html#a40af7f105aed6ee83863bda1f0f2219e", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider.html#a49a4727e0cf0a90cc1536440a049cc07", null ], + [ "getEntry", "structfsdk_1_1_i_settings_provider.html#af4b9a97e6472e46ba644f7a41418e5d8", null ], + [ "getValue", "structfsdk_1_1_i_settings_provider.html#acd929b0985eb547bf1c40e494e36e1f8", null ], + [ "getValue", "structfsdk_1_1_i_settings_provider.html#a5f5381f466e214ba4a2c7565bc89dba2", null ], + [ "isEmpty", "structfsdk_1_1_i_settings_provider.html#acedb7b69472de81a44c6d69511c9e908", null ], + [ "load", "structfsdk_1_1_i_settings_provider.html#a882a7671cc283d81028ddeeae9da1a23", null ], + [ "save", "structfsdk_1_1_i_settings_provider.html#a24c6329c41291b32cdecf5d10cb90a90", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider.html#ac9dd8729888381082f1fd9ec46734db2", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider.html#aabb9a7e6bd022bc5fd89d019a74628d0", null ], + [ "setEntry", "structfsdk_1_1_i_settings_provider.html#a24483db5f2e2b8434cb226d23e8f767d", null ], + [ "setEntry", "structfsdk_1_1_i_settings_provider.html#abedbf12597aee1d33e7f42c47fa9b18a", null ], + [ "setEntry", "structfsdk_1_1_i_settings_provider.html#a44255bcd4c2f6697782082033f1c062e", null ], + [ "setValue", "structfsdk_1_1_i_settings_provider.html#a98efbcbf26e39e5cf70b3215514d5975", null ], + [ "setValue", "structfsdk_1_1_i_settings_provider.html#a6472ad96f6b21bbf36fbbd4e4473bb50", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider.png b/doc/fsdk/html/structfsdk_1_1_i_settings_provider.png new file mode 100644 index 0000000..51e0b17 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_settings_provider.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc-members.html new file mode 100644 index 0000000..bb5622f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc-members.html @@ -0,0 +1,134 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Desc Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Desc, including all inherited members.

+ + + + + + + +
Desc() noexceptfsdk::ISettingsProvider::Desc
Desc(const char *desc) noexceptfsdk::ISettingsProvider::Desc
getDesc() const noexceptfsdk::ISettingsProvider::Desc
m_bufferLength (defined in fsdk::ISettingsProvider::Desc)fsdk::ISettingsProvider::Descprotectedstatic
m_descfsdk::ISettingsProvider::Descprotected
setDesc(const char *desc) noexceptfsdk::ISettingsProvider::Desc
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc.html new file mode 100644 index 0000000..ebed438 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc.html @@ -0,0 +1,263 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Desc Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Desc Struct Reference
+
+
+ +

Configuration parameter description. + More...

+ +

#include <ISettingsProvider.h>

+ + + + + + + + + + + + + + +

+Public Member Functions

Desc () noexcept
 Initialize an empty description.
 
 Desc (const char *desc) noexcept
 Initialize a description. More...
 
const char * getDesc () const noexcept
 Get description text. More...
 
void setDesc (const char *desc) noexcept
 Set description text. More...
 
+ + + + +

+Protected Attributes

+char m_desc [m_bufferLength]
 Parameter description text.
 
+ + + +

+Static Protected Attributes

+static const unsigned int m_bufferLength = 256
 
+

Detailed Description

+

Configuration parameter description.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Desc::Desc (const char * desc)
+
+noexcept
+
+ +

Initialize a description.

+
Parameters
+ + +
descdescription text.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
const char* fsdk::ISettingsProvider::Desc::getDesc () const
+
+noexcept
+
+ +

Get description text.

+
Returns
description text.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Desc::setDesc (const char * desc)
+
+noexcept
+
+ +

Set description text.

+
Parameters
+ + +
descdescription text.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc.js new file mode 100644 index 0000000..361be41 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_desc.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_i_settings_provider_1_1_desc = +[ + [ "Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#ac5b3c770ae3ec11839e56ba4b5bb1270", null ], + [ "Desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#a5f4b610fa970c3719789a0413c9eab4a", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#a8a848bcc48f7ede8a50f46c5c811fb48", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#af5c231731f8657154468cfc4ba7e3096", null ], + [ "m_desc", "structfsdk_1_1_i_settings_provider_1_1_desc.html#acca51618f5f65a44723b8396207535be", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry-members.html new file mode 100644 index 0000000..0f9271f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry-members.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Entry Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Entry, including all inherited members.

+ + + + + + + + + + + + +
Entry() noexcept=defaultfsdk::ISettingsProvider::Entry
Entry(Entry &&right) (defined in fsdk::ISettingsProvider::Entry)fsdk::ISettingsProvider::Entry
Entry(const Desc &desc, Value &&value) noexceptfsdk::ISettingsProvider::Entry
getDesc() const noexceptfsdk::ISettingsProvider::Entry
getValue() const noexceptfsdk::ISettingsProvider::Entry
m_descfsdk::ISettingsProvider::Entry
m_valuefsdk::ISettingsProvider::Entry
operator=(Entry &&right) (defined in fsdk::ISettingsProvider::Entry)fsdk::ISettingsProvider::Entry
setDesc(const Desc &desc) noexceptfsdk::ISettingsProvider::Entry
setValue(Value &&value) noexceptfsdk::ISettingsProvider::Entry
swap(Entry &first, Entry &second) (defined in fsdk::ISettingsProvider::Entry)fsdk::ISettingsProvider::Entry
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry.html new file mode 100644 index 0000000..72edd05 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry.html @@ -0,0 +1,344 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Entry Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Entry Struct Reference
+
+
+ +

Configuration parameter entry. + More...

+ +

#include <ISettingsProvider.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Entry () noexcept=default
 Initialize an empty entry.
 
Entry (Entry &&right)
 
+Entryoperator= (Entry &&right)
 
+void swap (Entry &first, Entry &second)
 
 Entry (const Desc &desc, Value &&value) noexcept
 Initialize an entry. More...
 
void setDesc (const Desc &desc) noexcept
 Set description. More...
 
void setValue (Value &&value) noexcept
 Set value. More...
 
const DescgetDesc () const noexcept
 Get description. More...
 
const ValuegetValue () const noexcept
 Get value. More...
 
+ + + + + + + +

+Public Attributes

+Value m_value
 Parameter value.
 
+Desc m_desc
 Parameter description.
 
+

Detailed Description

+

Configuration parameter entry.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Entry::Entry (const Descdesc,
Value && value 
)
+
+noexcept
+
+ +

Initialize an entry.

+
Parameters
+ + + +
descdescription.
valuevalue.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
const Desc& fsdk::ISettingsProvider::Entry::getDesc () const
+
+noexcept
+
+ +

Get description.

+
Returns
description.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
const Value& fsdk::ISettingsProvider::Entry::getValue () const
+
+noexcept
+
+ +

Get value.

+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Entry::setDesc (const Descdesc)
+
+noexcept
+
+ +

Set description.

+
Parameters
+ + +
descdescription.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Entry::setValue (Value && value)
+
+noexcept
+
+ +

Set value.

+
Parameters
+ + +
valuevalue.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry.js new file mode 100644 index 0000000..30762f7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_entry.js @@ -0,0 +1,14 @@ +var structfsdk_1_1_i_settings_provider_1_1_entry = +[ + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a2a436c5de00e2ae0972f2678d6e1d35c", null ], + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a76c3a1fc463fc29c392d0a5b25e50b0c", null ], + [ "Entry", "structfsdk_1_1_i_settings_provider_1_1_entry.html#aa56d52bb2b36a95778b68f9ef3d5f37d", null ], + [ "getDesc", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a0b98e0168b42f322a92c912529b450ec", null ], + [ "getValue", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a673ccd7aa4e1ceed022216588cfff06c", null ], + [ "operator=", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a00387b57774580fd07bc4c2bc2ae16ed", null ], + [ "setDesc", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a462b8686b4b770c5204a4a5031514fb9", null ], + [ "setValue", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a0f18fe3e34e0546f8bb7e8ec89ac2b7f", null ], + [ "swap", "structfsdk_1_1_i_settings_provider_1_1_entry.html#a12378000c5e82a764cc23ba0ced3b0aa", null ], + [ "m_desc", "structfsdk_1_1_i_settings_provider_1_1_entry.html#ab62a7d512a201be88694b03f89a4f44a", null ], + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_entry.html#ac2bba965cd886b1f53b60ddf24f35df3", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key-members.html new file mode 100644 index 0000000..24084e4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key-members.html @@ -0,0 +1,138 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Key Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Key, including all inherited members.

+ + + + + + + + + + + +
getParameter() const noexceptfsdk::ISettingsProvider::Key
getSection() const noexceptfsdk::ISettingsProvider::Key
Key() noexceptfsdk::ISettingsProvider::Key
Key(const char *section, const char *parameter) noexceptfsdk::ISettingsProvider::Key
m_bufferLength (defined in fsdk::ISettingsProvider::Key)fsdk::ISettingsProvider::Keyprotectedstatic
m_parameterfsdk::ISettingsProvider::Keyprotected
m_sectionfsdk::ISettingsProvider::Keyprotected
operator<(const ISettingsProvider::Key &other) const noexceptfsdk::ISettingsProvider::Key
setParameter(const char *parameter) noexceptfsdk::ISettingsProvider::Key
setSection(const char *section) noexceptfsdk::ISettingsProvider::Key
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key.html new file mode 100644 index 0000000..fe753f0 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key.html @@ -0,0 +1,378 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Key Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Key Struct Reference
+
+
+ +

Configuration parameter key. + More...

+ +

#include <ISettingsProvider.h>

+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Key () noexcept
 Initialize an empty key.
 
 Key (const char *section, const char *parameter) noexcept
 Initialize a key. More...
 
const char * getSection () const noexcept
 Get section name. More...
 
const char * getParameter () const noexcept
 Get parameter name. More...
 
void setSection (const char *section) noexcept
 Set section name. More...
 
void setParameter (const char *parameter) noexcept
 Set parameter name. More...
 
bool operator< (const ISettingsProvider::Key &other) const noexcept
 Operator Less. More...
 
+ + + + + + + +

+Protected Attributes

+char m_section [m_bufferLength]
 Config section name.
 
+char m_parameter [m_bufferLength]
 Config parameter name.
 
+ + + +

+Static Protected Attributes

+static const unsigned int m_bufferLength = 128
 
+

Detailed Description

+

Configuration parameter key.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Key::Key (const char * section,
const char * parameter 
)
+
+noexcept
+
+ +

Initialize a key.

+
Parameters
+ + + +
sectionsection name.
parameterparameter name.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
const char* fsdk::ISettingsProvider::Key::getParameter () const
+
+noexcept
+
+ +

Get parameter name.

+
Returns
parameter name.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
const char* fsdk::ISettingsProvider::Key::getSection () const
+
+noexcept
+
+ +

Get section name.

+
Returns
section name.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Key::operator< (const ISettingsProvider::Keyother) const
+
+noexcept
+
+ +

Operator Less.

+
Parameters
+ + +
otherother key.
+
+
+
Returns
comparison result.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Key::setParameter (const char * parameter)
+
+noexcept
+
+ +

Set parameter name.

+
Parameters
+ + +
parameterparameter name.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Key::setSection (const char * section)
+
+noexcept
+
+ +

Set section name.

+
Parameters
+ + +
sectionsection name.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key.js new file mode 100644 index 0000000..2c20fe6 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_key.js @@ -0,0 +1,12 @@ +var structfsdk_1_1_i_settings_provider_1_1_key = +[ + [ "Key", "structfsdk_1_1_i_settings_provider_1_1_key.html#a67d333ee0b4c658d8ebe9cd6b2f293f8", null ], + [ "Key", "structfsdk_1_1_i_settings_provider_1_1_key.html#a8119c6cd5cc92e235c39f333abdfc5ad", null ], + [ "getParameter", "structfsdk_1_1_i_settings_provider_1_1_key.html#ac2c40cfd491b56908d2f90e71da997f7", null ], + [ "getSection", "structfsdk_1_1_i_settings_provider_1_1_key.html#a3b0d1a48c5eb2e6255fd51fcc3d28df4", null ], + [ "operator<", "structfsdk_1_1_i_settings_provider_1_1_key.html#a09f319d67c581d9eab31d16bb20062db", null ], + [ "setParameter", "structfsdk_1_1_i_settings_provider_1_1_key.html#a4806cf422efe957999b8b1578f716d4b", null ], + [ "setSection", "structfsdk_1_1_i_settings_provider_1_1_key.html#acb298366c5ad703f47add965f31420ed", null ], + [ "m_parameter", "structfsdk_1_1_i_settings_provider_1_1_key.html#a4a9ac00ecf0318698499bc7ca5a3dd6d", null ], + [ "m_section", "structfsdk_1_1_i_settings_provider_1_1_key.html#a47c4fb20308ffab842f8c6b8771482c2", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value-members.html new file mode 100644 index 0000000..3e6505d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value-members.html @@ -0,0 +1,199 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
asBool(bool defaultValue=false) const noexceptfsdk::ISettingsProvider::Value
asFloat(float defaultValue=0.f) const noexceptfsdk::ISettingsProvider::Value
asInt(int defaultValue=0) const noexceptfsdk::ISettingsProvider::Value
asPoint2f(const Point2f &defaultValue=Point2f()) const noexceptfsdk::ISettingsProvider::Value
asPoint2i(const Point2i &defaultValue=Point2i()) const noexceptfsdk::ISettingsProvider::Value
asRect(const Rect &defaultValue=Rect()) const noexceptfsdk::ISettingsProvider::Value
asSize(const Size &defaultValue=Size()) const noexceptfsdk::ISettingsProvider::Value
asString(const char *defaultValue="") const noexceptfsdk::ISettingsProvider::Value
Float1 enum valuefsdk::ISettingsProvider::Value
Float2 enum valuefsdk::ISettingsProvider::Value
Float3 enum valuefsdk::ISettingsProvider::Value
Float4 enum valuefsdk::ISettingsProvider::Value
getBool(bool *x) const noexceptfsdk::ISettingsProvider::Value
getFloat(float *x) const noexceptfsdk::ISettingsProvider::Value
getFloat(float *x, float *y) const noexceptfsdk::ISettingsProvider::Value
getFloat(float *x, float *y, float *z) const noexceptfsdk::ISettingsProvider::Value
getFloat(float *x, float *y, float *z, float *w) const noexceptfsdk::ISettingsProvider::Value
getInt(int *x) const noexceptfsdk::ISettingsProvider::Value
getInt(int *x, int *y) const noexceptfsdk::ISettingsProvider::Value
getInt(int *x, int *y, int *z) const noexceptfsdk::ISettingsProvider::Value
getInt(int *x, int *y, int *z, int *w) const noexceptfsdk::ISettingsProvider::Value
getPoint2f(Point2f *point) const noexceptfsdk::ISettingsProvider::Value
getPoint2i(Point2i *point) const noexceptfsdk::ISettingsProvider::Value
getRect(Rect *rect) const noexceptfsdk::ISettingsProvider::Value
getSize(Size *size) const noexceptfsdk::ISettingsProvider::Value
getString(char *string) const noexceptfsdk::ISettingsProvider::Value
Int1 enum valuefsdk::ISettingsProvider::Value
Int2 enum valuefsdk::ISettingsProvider::Value
Int3 enum valuefsdk::ISettingsProvider::Value
Int4 enum valuefsdk::ISettingsProvider::Value
is(Type type) const noexceptfsdk::ISettingsProvider::Value
m_datafsdk::ISettingsProvider::Value
m_typefsdk::ISettingsProvider::Value
operator bool() const noexceptfsdk::ISettingsProvider::Value
operator=(const Value &other)=delete (defined in fsdk::ISettingsProvider::Value)fsdk::ISettingsProvider::Valueinline
operator=(Value &&other) (defined in fsdk::ISettingsProvider::Value)fsdk::ISettingsProvider::Value
setBool(bool x) noexceptfsdk::ISettingsProvider::Value
setFloat(float x) noexceptfsdk::ISettingsProvider::Value
setFloat(float x, float y) noexceptfsdk::ISettingsProvider::Value
setFloat(float x, float y, float z) noexceptfsdk::ISettingsProvider::Value
setFloat(float x, float y, float z, float w) noexceptfsdk::ISettingsProvider::Value
setInt(int x) noexceptfsdk::ISettingsProvider::Value
setInt(int x, int y) noexceptfsdk::ISettingsProvider::Value
setInt(int x, int y, int z) noexceptfsdk::ISettingsProvider::Value
setInt(int x, int y, int z, int w) noexceptfsdk::ISettingsProvider::Value
setPoint2f(const Point2f &point) noexceptfsdk::ISettingsProvider::Value
setPoint2i(const Point2i &point) noexceptfsdk::ISettingsProvider::Value
setRect(const Rect &rect) noexceptfsdk::ISettingsProvider::Value
setSize(const Size &size) noexceptfsdk::ISettingsProvider::Value
setString(const char *string) noexceptfsdk::ISettingsProvider::Value
String enum valuefsdk::ISettingsProvider::Value
swap(Value &first, Value &second) (defined in fsdk::ISettingsProvider::Value)fsdk::ISettingsProvider::Value
Type enum namefsdk::ISettingsProvider::Value
Undefined enum valuefsdk::ISettingsProvider::Value
Value() noexceptfsdk::ISettingsProvider::Value
Value(int x) noexceptfsdk::ISettingsProvider::Value
Value(int x, int y) noexceptfsdk::ISettingsProvider::Value
Value(int x, int y, int z) noexceptfsdk::ISettingsProvider::Value
Value(int x, int y, int z, int w) noexceptfsdk::ISettingsProvider::Value
Value(float x) noexceptfsdk::ISettingsProvider::Value
Value(float x, float y) noexceptfsdk::ISettingsProvider::Value
Value(float x, float y, float z) noexceptfsdk::ISettingsProvider::Value
Value(float x, float y, float z, float w) noexceptfsdk::ISettingsProvider::Value
Value(const char *string) noexceptfsdk::ISettingsProvider::Value
Value(const Rect &rect) noexceptfsdk::ISettingsProvider::Value
Value(const Size &size) noexceptfsdk::ISettingsProvider::Value
Value(const Point2f &point) noexceptfsdk::ISettingsProvider::Value
Value(bool x) noexceptfsdk::ISettingsProvider::Value
Value(const Value &other)=delete (defined in fsdk::ISettingsProvider::Value)fsdk::ISettingsProvider::Valueinline
Value(Value &&other) (defined in fsdk::ISettingsProvider::Value)fsdk::ISettingsProvider::Value
~Value() (defined in fsdk::ISettingsProvider::Value)fsdk::ISettingsProvider::Value
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value.html new file mode 100644 index 0000000..6974ef2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value.html @@ -0,0 +1,2428 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value Struct Reference
+
+
+ +

Configuration parameter value. + More...

+ +

#include <ISettingsProvider.h>

+ + + + + +

+Classes

union  Data
 Value data. More...
 
+ + + + +

+Public Types

enum  Type {
+  Undefined, +Int1, +Int2, +Int3, +
+  Int4, +Float1, +Float2, +Float3, +
+  Float4, +String +
+ }
 Value type. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Value () noexcept
 Initialize an empty value. More...
 
 Value (int x) noexcept
 Initialize an integer value. More...
 
 Value (int x, int y) noexcept
 Initialize a 2d integer value. More...
 
 Value (int x, int y, int z) noexcept
 Initialize a 3d integer value. More...
 
 Value (int x, int y, int z, int w) noexcept
 Initialize a 4d integer value. More...
 
 Value (float x) noexcept
 Initialize a float value. More...
 
 Value (float x, float y) noexcept
 Initialize a 2d float value. More...
 
 Value (float x, float y, float z) noexcept
 Initialize a 3d float value. More...
 
 Value (float x, float y, float z, float w) noexcept
 Initialize a 4d float value. More...
 
 Value (const char *string) noexcept
 Initialize a string value. More...
 
 Value (const Rect &rect) noexcept
 Initialize a rect value. More...
 
 Value (const Size &size) noexcept
 Initialize a size value. More...
 
 Value (const Point2f &point) noexcept
 Initialize a point value. More...
 
 Value (bool x) noexcept
 Initialize a bool value. More...
 
 operator bool () const noexcept
 Check if value type is not Undefined. More...
 
bool is (Type type) const noexcept
 Check if value type is of concrete type. More...
 
bool setString (const char *string) noexcept
 Set a string value. More...
 
bool getString (char *string) const noexcept
 Get a string value. More...
 
void setRect (const Rect &rect) noexcept
 Set a rect value. More...
 
bool getRect (Rect *rect) const noexcept
 Get a rect value. More...
 
void setSize (const Size &size) noexcept
 Set a size value. More...
 
bool getSize (Size *size) const noexcept
 Get a size value. More...
 
void setPoint2i (const Point2i &point) noexcept
 Set a Point2i value. More...
 
bool getPoint2i (Point2i *point) const noexcept
 Get a Point2i value. More...
 
void setPoint2f (const Point2f &point) noexcept
 Set a setPoint2f value. More...
 
bool getPoint2f (Point2f *point) const noexcept
 Get a Point2f value. More...
 
void setBool (bool x) noexcept
 Set a bool value. More...
 
bool getBool (bool *x) const noexcept
 Get a bool value. More...
 
void setInt (int x) noexcept
 Set an int value. More...
 
bool getInt (int *x) const noexcept
 Get an int value. More...
 
void setInt (int x, int y) noexcept
 Set a 2d int value. More...
 
bool getInt (int *x, int *y) const noexcept
 Get a 2d int value. More...
 
void setInt (int x, int y, int z) noexcept
 Set a 3d int value. More...
 
bool getInt (int *x, int *y, int *z) const noexcept
 Get a 3d int value. More...
 
void setInt (int x, int y, int z, int w) noexcept
 Set a 4d int value. More...
 
bool getInt (int *x, int *y, int *z, int *w) const noexcept
 Get a 4d int value. More...
 
void setFloat (float x) noexcept
 Set a float value. More...
 
bool getFloat (float *x) const noexcept
 Get a float value. More...
 
void setFloat (float x, float y) noexcept
 Set a 2d float value. More...
 
bool getFloat (float *x, float *y) const noexcept
 Get a 2d float value. More...
 
void setFloat (float x, float y, float z) noexcept
 Set a 3d float value. More...
 
bool getFloat (float *x, float *y, float *z) const noexcept
 Get a 3d float value. More...
 
void setFloat (float x, float y, float z, float w) noexcept
 Set a 4d float value. More...
 
bool getFloat (float *x, float *y, float *z, float *w) const noexcept
 Get a 4d float value. More...
 
float asFloat (float defaultValue=0.f) const noexcept
 Safely get a float. More...
 
Point2f asPoint2f (const Point2f &defaultValue=Point2f()) const noexcept
 Safely get a Point2f. More...
 
bool asBool (bool defaultValue=false) const noexcept
 Safely get a boolean. More...
 
int asInt (int defaultValue=0) const noexcept
 Safely get an integer. More...
 
Size asSize (const Size &defaultValue=Size()) const noexcept
 Safely get a Size. More...
 
Point2i asPoint2i (const Point2i &defaultValue=Point2i()) const noexcept
 Safely get a Point2i. More...
 
Rect asRect (const Rect &defaultValue=Rect()) const noexcept
 Safely get a Rect. More...
 
const char * asString (const char *defaultValue="") const noexcept
 Safely get a string. More...
 
Value (const Value &other)=delete
 
Value (Value &&other)
 
+Valueoperator= (const Value &other)=delete
 
+Valueoperator= (Value &&other)
 
+void swap (Value &first, Value &second)
 
+ + + + + + + +

+Public Attributes

+union
+fsdk::ISettingsProvider::Value::Data 
m_data
 Data storage.
 
+enum
+fsdk::ISettingsProvider::Value::Type 
m_type
 Data type..
 
+

Detailed Description

+

Configuration parameter value.

+

Member Enumeration Documentation

+ +
+
+ +

Value type.

+ + + + + + + + + + + +
Enumerator
Undefined  +

Unkown value type.

+
Int1  +

Integer.

+
Int2  +

2D integer.

+
Int3  +

3D integer.

+
Int4  +

4D integer.

+
Float1  +

floating point.

+
Float2  +

2D floating point.

+
Float3  +

3D floating point.

+
Float4  +

4D floating point.

+
String  +

Short string.

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + +
fsdk::ISettingsProvider::Value::Value ()
+
+noexcept
+
+ +

Initialize an empty value.

+

Value type will be set to Undefined.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Value::Value (int x)
+
+noexcept
+
+ +

Initialize an integer value.

+
Parameters
+ + +
xinteger value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Value::Value (int x,
int y 
)
+
+noexcept
+
+ +

Initialize a 2d integer value.

+
Parameters
+ + + +
x1st value.
y2nd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Value::Value (int x,
int y,
int z 
)
+
+noexcept
+
+ +

Initialize a 3d integer value.

+
Parameters
+ + + + +
x1st value.
y2nd value.
z3rd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Value::Value (int x,
int y,
int z,
int w 
)
+
+noexcept
+
+ +

Initialize a 4d integer value.

+
Parameters
+ + + + + +
x1st value.
y2nd value.
z3rd value.
w4th value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Value::Value (float x)
+
+noexcept
+
+ +

Initialize a float value.

+
Parameters
+ + +
xfloat value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Value::Value (float x,
float y 
)
+
+noexcept
+
+ +

Initialize a 2d float value.

+
Parameters
+ + + +
x1st value.
y2nd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Value::Value (float x,
float y,
float z 
)
+
+noexcept
+
+ +

Initialize a 3d float value.

+
Parameters
+ + + + +
x1st value.
y2nd value.
z3rd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::ISettingsProvider::Value::Value (float x,
float y,
float z,
float w 
)
+
+noexcept
+
+ +

Initialize a 4d float value.

+
Parameters
+ + + + + +
x1st value.
y2nd value.
z3rd value.
w4th value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Value::Value (const char * string)
+
+noexcept
+
+ +

Initialize a string value.

+
Note
Only short strings (<64 chars) are supported.
+
Parameters
+ + +
stringstring value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Value::Value (const Rectrect)
+
+noexcept
+
+ +

Initialize a rect value.

+
Parameters
+ + +
rectrect value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Value::Value (const Sizesize)
+
+noexcept
+
+ +

Initialize a size value.

+
Parameters
+ + +
sizesize value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Value::Value (const Point2fpoint)
+
+noexcept
+
+ +

Initialize a point value.

+
Parameters
+ + +
pointpoint value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::ISettingsProvider::Value::Value (bool x)
+
+noexcept
+
+ +

Initialize a bool value.

+
Parameters
+ + +
xbool value.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::asBool (bool defaultValue = false) const
+
+noexcept
+
+ +

Safely get a boolean.

+

If actual value type is convertible to bool, the value is returned; if not a fallback value is returned.

+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
float fsdk::ISettingsProvider::Value::asFloat (float defaultValue = 0.f) const
+
+noexcept
+
+ +

Safely get a float.

+

If actual value type is float, the value is returned; if not a fallback value is returned.

+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
int fsdk::ISettingsProvider::Value::asInt (int defaultValue = 0) const
+
+noexcept
+
+ +

Safely get an integer.

+

If actual value type is Int, the value is returned; if not a fallback value is returned.

+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Point2f fsdk::ISettingsProvider::Value::asPoint2f (const Point2fdefaultValue = Point2f()) const
+
+noexcept
+
+ +

Safely get a Point2f.

+

If actual value type is convertible to Point2f, the value is returned; if not a fallback value is returned.

+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Point2i fsdk::ISettingsProvider::Value::asPoint2i (const Point2idefaultValue = Point2i()) const
+
+noexcept
+
+ +

Safely get a Point2i.

+

If actual value type is convertible to Point2i, the value is returned; if not a fallback value is returned.

+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Rect fsdk::ISettingsProvider::Value::asRect (const RectdefaultValue = Rect()) const
+
+noexcept
+
+ +

Safely get a Rect.

+

If actual value type is convertible to Rect, the value is returned; if not a fallback value is returned.

+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Size fsdk::ISettingsProvider::Value::asSize (const SizedefaultValue = Size()) const
+
+noexcept
+
+ +

Safely get a Size.

+

If actual value type is convertible to Size, the value is returned; if not a fallback value is returned.

+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
const char* fsdk::ISettingsProvider::Value::asString (const char * defaultValue = "") const
+
+noexcept
+
+ +

Safely get a string.

+

If actual value type is String, the value is returned; if not a fallback value is returned.

+
Note
Doesn't allocate or copy memory.
+
Parameters
+ + +
defaultValuefallback value (optional).
+
+
+
Returns
value.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getBool (bool * x) const
+
+noexcept
+
+ +

Get a bool value.

+
Parameters
+ + +
[out]xthe value.
+
+
+
Note
function fails if actual value type is not convertible to bool; in this case x isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getFloat (float * x) const
+
+noexcept
+
+ +

Get a float value.

+
Parameters
+ + +
[out]xthe value.
+
+
+
Note
function fails if actual value type is not a float; in this case 'x' isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool fsdk::ISettingsProvider::Value::getFloat (float * x,
float * y 
) const
+
+noexcept
+
+ +

Get a 2d float value.

+
Parameters
+ + + +
[out]x1st value.
[out]y2nd value.
+
+
+
Note
function fails if actual value type is not a 2d float; in this case output parameters aren't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool fsdk::ISettingsProvider::Value::getFloat (float * x,
float * y,
float * z 
) const
+
+noexcept
+
+ +

Get a 3d float value.

+
Parameters
+ + + + +
[out]x1st value.
[out]y2nd value.
[out]z3rd value.
+
+
+
Note
function fails if actual value type is not a 3d float; in this case output parameters aren't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool fsdk::ISettingsProvider::Value::getFloat (float * x,
float * y,
float * z,
float * w 
) const
+
+noexcept
+
+ +

Get a 4d float value.

+
Parameters
+ + + + + +
[out]x1st value.
[out]y2nd value.
[out]z3rd value.
[out]w4th value.
+
+
+
Note
function fails if actual value type is not a 4d float; in this case output parameters aren't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getInt (int * x) const
+
+noexcept
+
+ +

Get an int value.

+
Parameters
+ + +
[out]xthe value.
+
+
+
Note
function fails if actual value type is not an int; in this case x isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool fsdk::ISettingsProvider::Value::getInt (int * x,
int * y 
) const
+
+noexcept
+
+ +

Get a 2d int value.

+
Parameters
+ + + +
[out]x1st value.
[out]y2nd value.
+
+
+
Note
function fails if actual value type is not a 2d int; in this case output parameters aren't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool fsdk::ISettingsProvider::Value::getInt (int * x,
int * y,
int * z 
) const
+
+noexcept
+
+ +

Get a 3d int value.

+
Parameters
+ + + + +
[out]x1st value.
[out]y2nd value.
[out]z3rd value.
+
+
+
Note
function fails if actual value type is not a 3d int; in this case output parameters aren't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool fsdk::ISettingsProvider::Value::getInt (int * x,
int * y,
int * z,
int * w 
) const
+
+noexcept
+
+ +

Get a 4d int value.

+
Parameters
+ + + + + +
[out]x1st value.
[out]y2nd value.
[out]z3rd value.
[out]w4th value.
+
+
+
Note
function fails if actual value type is not a 4d int; in this case output parameters aren't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getPoint2f (Point2fpoint) const
+
+noexcept
+
+ +

Get a Point2f value.

+
Parameters
+ + +
[out]pointthe value.
+
+
+
Note
function fails if actual value type is not convertible to Point2f; in this case point isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getPoint2i (Point2ipoint) const
+
+noexcept
+
+ +

Get a Point2i value.

+
Parameters
+ + +
[out]pointthe value.
+
+
+
Note
function fails if actual value type is not convertible to Point2i; in this case point isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getRect (Rectrect) const
+
+noexcept
+
+ +

Get a rect value.

+
Parameters
+ + +
[out]rectthe value.
+
+
+
Note
function fails if actual value type is not convertible to rect; in this case rect isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getSize (Sizesize) const
+
+noexcept
+
+ +

Get a size value.

+
Parameters
+ + +
[out]sizethe value.
+
+
+
Note
function fails if actual value type is not convertible to size; in this case size isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::getString (char * string) const
+
+noexcept
+
+ +

Get a string value.

+
Parameters
+ + +
[out]stringthe value.
+
+
+
Note
function fails if actual value type is not string; in this case string isn't modified.
+
Returns
true if succeeded; false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::is (Type type) const
+
+noexcept
+
+ +

Check if value type is of concrete type.

+
Parameters
+ + +
typetype to check.
+
+
+
Returns
true if value type is equal to type.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
fsdk::ISettingsProvider::Value::operator bool () const
+
+noexcept
+
+ +

Check if value type is not Undefined.

+
Returns
true if value type is not Undefined.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Value::setBool (bool x)
+
+noexcept
+
+ +

Set a bool value.

+
Parameters
+ + +
xthe value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Value::setFloat (float x)
+
+noexcept
+
+ +

Set a float value.

+
Parameters
+ + +
xthe value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::Value::setFloat (float x,
float y 
)
+
+noexcept
+
+ +

Set a 2d float value.

+
Parameters
+ + + +
x1st value.
y2nd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::Value::setFloat (float x,
float y,
float z 
)
+
+noexcept
+
+ +

Set a 3d float value.

+
Parameters
+ + + + +
x1st value.
y2nd value.
z3rd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::Value::setFloat (float x,
float y,
float z,
float w 
)
+
+noexcept
+
+ +

Set a 4d float value.

+
Parameters
+ + + + + +
x1st value.
y2nd value.
z3rd value.
w4th value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Value::setInt (int x)
+
+noexcept
+
+ +

Set an int value.

+
Parameters
+ + +
xthe value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::Value::setInt (int x,
int y 
)
+
+noexcept
+
+ +

Set a 2d int value.

+
Parameters
+ + + +
x1st value.
y2nd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::Value::setInt (int x,
int y,
int z 
)
+
+noexcept
+
+ +

Set a 3d int value.

+
Parameters
+ + + + +
x1st value.
y2nd value.
z3rd value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void fsdk::ISettingsProvider::Value::setInt (int x,
int y,
int z,
int w 
)
+
+noexcept
+
+ +

Set a 4d int value.

+
Parameters
+ + + + + +
x1st value.
y2nd value.
z3rd value.
w4th value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Value::setPoint2f (const Point2fpoint)
+
+noexcept
+
+ +

Set a setPoint2f value.

+
Parameters
+ + +
pointthe value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Value::setPoint2i (const Point2ipoint)
+
+noexcept
+
+ +

Set a Point2i value.

+
Parameters
+ + +
pointthe value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Value::setRect (const Rectrect)
+
+noexcept
+
+ +

Set a rect value.

+
Parameters
+ + +
rectthe value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::ISettingsProvider::Value::setSize (const Sizesize)
+
+noexcept
+
+ +

Set a size value.

+
Parameters
+ + +
sizethe value.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::ISettingsProvider::Value::setString (const char * string)
+
+noexcept
+
+ +

Set a string value.

+
Parameters
+ + +
stringthe value.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value.js new file mode 100644 index 0000000..f81f853 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value.js @@ -0,0 +1,76 @@ +var structfsdk_1_1_i_settings_provider_1_1_value = +[ + [ "Data", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data" ], + [ "Type", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947", [ + [ "Undefined", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a99ad8e5a64bab96bf5f777dc1b51d88f", null ], + [ "Int1", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a95a8d18f7debfc437b1669849e7dd925", null ], + [ "Int2", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947adf23e4f8136317e83ee4579ba2a5e066", null ], + [ "Int3", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ab6b18a107e12ec3a414343d93b4d69ec", null ], + [ "Int4", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac4b020c2b070595a491d27e82c03ab5d", null ], + [ "Float1", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947afce0cbbaf3da4fd239865223a2cafd2d", null ], + [ "Float2", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947acab9b95fc0f8e22586956c7b2831c742", null ], + [ "Float3", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac1e9d375777e2ca4631b5e4851a8e70c", null ], + [ "Float4", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947a96cf9d7a2ede9c47b110b3a4178f3401", null ], + [ "String", "structfsdk_1_1_i_settings_provider_1_1_value.html#a593ad9694be5ec4dfe8982cef26fe947ac62a83138afcfe41b9c64a6e6026f5fb", null ] + ] ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#ade9870a88b9fa5247d9f82c943001100", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5b698f499b70e5d43fce29e0d9aaec45", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#acf068436955aef306ffe0ca7eb2d5eaa", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a3ff3a44e47d48d850e79e32602ec2998", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#aff30902febdfdfd0d643f8610b68de9f", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a637a0f66f4f6449c868e1fd51d844387", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5ac724fe6b158f9f22e0e5cebad63a1d", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#ad4524374bafcce36a1349f0648dbefd4", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#acd744c00433c524a120bb97fcb0694e9", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#aa0d8c8295aa8659f811339346676afda", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#ab99aac88b065b701b60fa4fbe2ec0b72", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#aac66334b8d4bb178545ae4821d2451a6", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a44bd12725bb7ead2c5c8dfbd53001fd5", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a253a8ea6fa125871c60351d1488a8ef7", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a65ad04619431c95aff284087f1a5c23d", null ], + [ "Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9b2d860be94b53a84331ca5351f28685", null ], + [ "~Value", "structfsdk_1_1_i_settings_provider_1_1_value.html#a351856d77b04742d7c62bb4a3fa1dd9e", null ], + [ "asBool", "structfsdk_1_1_i_settings_provider_1_1_value.html#a81865a1f56ef1450a47de5d8e8866c6d", null ], + [ "asFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a6070b50e16d3cbcd5a49c018b6d631c8", null ], + [ "asInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9dc95a2a7f10e8860915a14565a86f73", null ], + [ "asPoint2f", "structfsdk_1_1_i_settings_provider_1_1_value.html#a89993c2d966d24f4d8f1800d25af4071", null ], + [ "asPoint2i", "structfsdk_1_1_i_settings_provider_1_1_value.html#a62b3eff07e0687047a65e18939f4a1af", null ], + [ "asRect", "structfsdk_1_1_i_settings_provider_1_1_value.html#a320c5395ac81284ee738283ef07f6f32", null ], + [ "asSize", "structfsdk_1_1_i_settings_provider_1_1_value.html#ac401f96faea0d11e79f92e66416e560d", null ], + [ "asString", "structfsdk_1_1_i_settings_provider_1_1_value.html#acf75100534bf1b7c7d9536ace5b8dca8", null ], + [ "getBool", "structfsdk_1_1_i_settings_provider_1_1_value.html#a7dc84becec0ff1614a11c85c268b2571", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#ade18ca8709878512682fa7b69fc0cfc1", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a35cc96b6aae0ecbbc0c1079ea3142899", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5c4c474afda291a09a19f69f43c43abc", null ], + [ "getFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a681b8d01c5a5112fae15ec244f97ee84", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9a2643462aaff211e15a57fd5c6e348e", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#af9f2f9595e49580129d8502768fdc080", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a9b264cc5dd478ec7e113819addd0d807", null ], + [ "getInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#affa5d3f08168c5ffa1fcf815b32d4513", null ], + [ "getPoint2f", "structfsdk_1_1_i_settings_provider_1_1_value.html#a8dcc7bc3027a4462188342bf0fb1fbc9", null ], + [ "getPoint2i", "structfsdk_1_1_i_settings_provider_1_1_value.html#a3b53f8c1e07a0403aaadde5e9bac69ae", null ], + [ "getRect", "structfsdk_1_1_i_settings_provider_1_1_value.html#acbe915c78434291060b0a4159405ec45", null ], + [ "getSize", "structfsdk_1_1_i_settings_provider_1_1_value.html#a1fbb01df32dceb4539a852113a27c752", null ], + [ "getString", "structfsdk_1_1_i_settings_provider_1_1_value.html#ac5551406db04db1db8f54279c737fff3", null ], + [ "is", "structfsdk_1_1_i_settings_provider_1_1_value.html#a0712a27f674f611a777f8067bb6c9c5e", null ], + [ "operator bool", "structfsdk_1_1_i_settings_provider_1_1_value.html#aee7766a54dfb9dce2606aef1f88f2b3c", null ], + [ "operator=", "structfsdk_1_1_i_settings_provider_1_1_value.html#aeb4a8584bac9b97ee89ddc67ec1ac288", null ], + [ "operator=", "structfsdk_1_1_i_settings_provider_1_1_value.html#ad741f2aa88c7982c302fe2fe66bb6471", null ], + [ "setBool", "structfsdk_1_1_i_settings_provider_1_1_value.html#afbdabfa895b18e2ae63429b99accb87b", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a4e86e07ec3d3dd9fa6df83af423b147e", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#a5720f7b47ca5264c9da56cb8659fff40", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#af6de22e8a4956661ef47b65adbc7684f", null ], + [ "setFloat", "structfsdk_1_1_i_settings_provider_1_1_value.html#aefc7af5a886571f1e510c1eb51558c06", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a8ffc8d4baa19ff98c25b3ca1cdec419d", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a4b8b66e59cbdc206fc389f486ac9da69", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#abf9c6a2457cf1f7cc856533aefd85d9d", null ], + [ "setInt", "structfsdk_1_1_i_settings_provider_1_1_value.html#a999198508b6f0f7ec19daff50424343b", null ], + [ "setPoint2f", "structfsdk_1_1_i_settings_provider_1_1_value.html#a97c411b847afda41ec7b64a0e646e6e6", null ], + [ "setPoint2i", "structfsdk_1_1_i_settings_provider_1_1_value.html#a2a6a2b04795f4be07002b554877951b0", null ], + [ "setRect", "structfsdk_1_1_i_settings_provider_1_1_value.html#a33745b6b63863e2153867c888257a373", null ], + [ "setSize", "structfsdk_1_1_i_settings_provider_1_1_value.html#a98e8b1488035f0329ffc81180143398e", null ], + [ "setString", "structfsdk_1_1_i_settings_provider_1_1_value.html#a730243dec9aa8addb47d58b11806dafa", null ], + [ "swap", "structfsdk_1_1_i_settings_provider_1_1_value.html#a35b338eaba92786d687532a27101fe89", null ], + [ "m_data", "structfsdk_1_1_i_settings_provider_1_1_value.html#a2b853c76f9e36682a6955399565855d3", null ], + [ "m_type", "structfsdk_1_1_i_settings_provider_1_1_value.html#a2eacc17be55f5b7c45b0b14dae8dabed", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1-members.html new file mode 100644 index 0000000..d85665b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Float1 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Float1, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Float1)fsdk::ISettingsProvider::Value::Data::Float1
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html new file mode 100644 index 0000000..cbd213c --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Float1 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Float1 Struct Reference
+
+
+ + + + +

+Public Attributes

+float m_value
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.js new file mode 100644 index 0000000..1872594 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html#ae63a9c7288b98e3ee010a0d71ddf66b0", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2-members.html new file mode 100644 index 0000000..a9433c5 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Float2 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Float2, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Float2)fsdk::ISettingsProvider::Value::Data::Float2
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html new file mode 100644 index 0000000..b12fed2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Float2 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Float2 Struct Reference
+
+
+ + + + +

+Public Attributes

+float m_value [2]
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.js new file mode 100644 index 0000000..fcf92a9 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html#a54ef03e3764f6c9d717428f00d7dcac0", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3-members.html new file mode 100644 index 0000000..14783aa --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Float3 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Float3, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Float3)fsdk::ISettingsProvider::Value::Data::Float3
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html new file mode 100644 index 0000000..10e3c83 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Float3 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Float3 Struct Reference
+
+
+ + + + +

+Public Attributes

+float m_value [3]
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.js new file mode 100644 index 0000000..d695455 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html#a2c65cd019d53b98e9c7228b0728b0672", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4-members.html new file mode 100644 index 0000000..555aec4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Float4 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Float4, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Float4)fsdk::ISettingsProvider::Value::Data::Float4
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html new file mode 100644 index 0000000..21dcb59 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Float4 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Float4 Struct Reference
+
+
+ + + + +

+Public Attributes

+float m_value [4]
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.js new file mode 100644 index 0000000..805a3bc --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html#ae56a2030465c842ae2cf680ed000e9f5", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1-members.html new file mode 100644 index 0000000..453460d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Int1 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Int1, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Int1)fsdk::ISettingsProvider::Value::Data::Int1
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html new file mode 100644 index 0000000..4e77217 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Int1 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Int1 Struct Reference
+
+
+ + + + +

+Public Attributes

+int m_value
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.js new file mode 100644 index 0000000..c6fbebd --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html#ac1c85d9f4a766988ba3e44895851e3d2", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2-members.html new file mode 100644 index 0000000..cb60e2d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Int2 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Int2, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Int2)fsdk::ISettingsProvider::Value::Data::Int2
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html new file mode 100644 index 0000000..6448a2b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Int2 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Int2 Struct Reference
+
+
+ + + + +

+Public Attributes

+int m_value [2]
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.js new file mode 100644 index 0000000..c198277 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html#a4c55e81f7dea9e29a0021985ee3858bd", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3-members.html new file mode 100644 index 0000000..84aefa0 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Int3 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Int3, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Int3)fsdk::ISettingsProvider::Value::Data::Int3
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html new file mode 100644 index 0000000..b95a705 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Int3 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Int3 Struct Reference
+
+
+ + + + +

+Public Attributes

+int m_value [3]
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.js new file mode 100644 index 0000000..ebb3640 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html#ab4ead299cf9fdf2e8a88d3837f0e4637", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4-members.html new file mode 100644 index 0000000..acaf4ec --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::Int4 Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::Int4, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::Int4)fsdk::ISettingsProvider::Value::Data::Int4
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html new file mode 100644 index 0000000..524e13c --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::Int4 Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::Int4 Struct Reference
+
+
+ + + + +

+Public Attributes

+int m_value [4]
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.js new file mode 100644 index 0000000..ce607c4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4 = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html#a4a066c64f5fa448328eaa181e4a9b650", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string-members.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string-members.html new file mode 100644 index 0000000..b16b88e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string-members.html @@ -0,0 +1,129 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ISettingsProvider::Value::Data::String Member List
+
+
+ +

This is the complete list of members for fsdk::ISettingsProvider::Value::Data::String, including all inherited members.

+ + +
m_value (defined in fsdk::ISettingsProvider::Value::Data::String)fsdk::ISettingsProvider::Value::Data::String
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html new file mode 100644 index 0000000..d0b39ca --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data::String Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data::String Struct Reference
+
+
+ + + + +

+Public Attributes

+char * m_value
 
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.js b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.js new file mode 100644 index 0000000..f3befeb --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.js @@ -0,0 +1,4 @@ +var structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string = +[ + [ "m_value", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html#aef4bb8f9515dc54644cd37ee57c46a05", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage-members.html b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage-members.html new file mode 100644 index 0000000..ef7710e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage-members.html @@ -0,0 +1,131 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IStaticDescriptorStorage Member List
+
+
+ +

This is the complete list of members for fsdk::IStaticDescriptorStorage, including all inherited members.

+ + + + +
descriptorByIndex(const DescriptorId index, IDescriptor *descriptor) const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
getDescriptorVersion() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
size() const noexcept=0fsdk::IStaticDescriptorStoragepure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.html b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.html new file mode 100644 index 0000000..4ae4dbe --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.html @@ -0,0 +1,273 @@ + + + + + + +Face Engine SDK: fsdk::IStaticDescriptorStorage Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IStaticDescriptorStorage Struct Referenceabstract
+
+
+ +

Static descriptor storage interface. + More...

+ +

#include <IIndex.h>

+
+Inheritance diagram for fsdk::IStaticDescriptorStorage:
+
+
+ + +fsdk::IDenseIndex +fsdk::IDynamicDescriptorStorage +fsdk::IDynamicIndex +fsdk::IIndexBuilder + +
+ + + + + + + + + + + +

+Public Member Functions

virtual Result< FSDKErrordescriptorByIndex (const DescriptorId index, IDescriptor *descriptor) const noexcept=0
 Requests descriptor data out of internal storage. More...
 
virtual uint32_t getDescriptorVersion () const noexcept=0
 Return version of stored descriptors. More...
 
virtual uint64_t size () const noexcept=0
 Return size of internal storage. More...
 
+

Detailed Description

+

Static descriptor storage interface.

+

You may think of it as read only access to some internal container.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IStaticDescriptorStorage::descriptorByIndex (const DescriptorId index,
IDescriptordescriptor 
) const
+
+pure virtualnoexcept
+
+ +

Requests descriptor data out of internal storage.

+
Parameters
+ + +
[in]indexIdentification value of some descriptor. Might be received either by using
+
+
+
See Also
IDynamicDescriptorStorage::append methods, or as output of
+
+IIndex::search query. Must be less than
+
+size().
+
Parameters
+ + +
[out]descriptorPtr to created descriptor object with correctly set version and length. Only changes data of passed descriptor.
+
+
+
Returns
Result with error code.
+
See Also
IDescriptor, DescriptorId, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t fsdk::IStaticDescriptorStorage::getDescriptorVersion () const
+
+pure virtualnoexcept
+
+ +

Return version of stored descriptors.

+
Returns
Version of stored descriptors. If not initialized, 0 is returned.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual uint64_t fsdk::IStaticDescriptorStorage::size () const
+
+pure virtualnoexcept
+
+ +

Return size of internal storage.

+
Returns
Size of internal storage. If not initialized, 0 is returned.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.js b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.js new file mode 100644 index 0000000..2cdc14d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_i_static_descriptor_storage = +[ + [ "descriptorByIndex", "structfsdk_1_1_i_static_descriptor_storage.html#ad7b5bde8ec689c73656628920b8aebad", null ], + [ "getDescriptorVersion", "structfsdk_1_1_i_static_descriptor_storage.html#a9ca188c040ecfae3b940589dcd8e8998", null ], + [ "size", "structfsdk_1_1_i_static_descriptor_storage.html#aee1e7ce2800e384e546d7d99de7ca586", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.png b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.png new file mode 100644 index 0000000..96f7417 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_static_descriptor_storage.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_i_warper-members.html b/doc/fsdk/html/structfsdk_1_1_i_warper-members.html new file mode 100644 index 0000000..07a3d5e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_warper-members.html @@ -0,0 +1,147 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::IWarper Member List
+
+
+ +

This is the complete list of members for fsdk::IWarper, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
createTransformation(const Detection &detection, const Landmarks5 &landmarks) const noexcept=0fsdk::IWarperpure virtual
getRefCount() const noexcept=0fsdk::IRefCountedpure virtual
getWeakRefCount() const noexcept=0fsdk::IRefCountedpure virtual
ImageBatch typedeffsdk::IWarper
ImageBatchFuture typedef (defined in fsdk::IWarper)fsdk::IWarper
release() noexcept=0fsdk::IRefCountedpure virtual
releaseWeak() noexcept=0fsdk::IRefCountedpure virtual
retain() noexcept=0fsdk::IRefCountedpure virtual
retainLocked() noexcept=0fsdk::IRefCountedpure virtual
retainWeak() noexcept=0fsdk::IRefCountedpure virtual
unwarp(const EyesEstimation &eyesEstimationInWarpCoordinates, const Transformation &transformation, EyesEstimation &eyesEstimation) const noexcept=0fsdk::IWarperpure virtual
unwarp(const Landmarks5 &warpedLandmarks5, const Transformation &transformation, Landmarks5 &landmarks5) const noexcept=0fsdk::IWarperpure virtual
unwarp(const Landmarks68 &warpedLandmarks68, const Transformation &transformation, Landmarks68 &landmarks68) const noexcept=0fsdk::IWarperpure virtual
unwarp(const GazeEstimation &warpedAngles, const Transformation &transformation, GazeEstimation &angles) const noexcept=0 (defined in fsdk::IWarper)fsdk::IWarperpure virtual
warp(const Image &image, const Transformation &transformation, Image &transformedImage) const noexcept=0fsdk::IWarperpure virtual
warp(Span< const Image > images, Span< const Transformation > transformations, Span< Image > transformedImages) const noexcept=0fsdk::IWarperpure virtual
warp(const Landmarks5 &landmarks, const Transformation &transformation, Landmarks5 &transformedLandmarks) const noexcept=0fsdk::IWarperpure virtual
warp(const Landmarks68 &landmarks68, const Transformation &transformation, Landmarks68 &transformedLandmarks68) const noexcept=0fsdk::IWarperpure virtual
warpAsync(Span< const Image > images, Span< const Transformation > transformations) const =0fsdk::IWarperpure virtual
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_warper.html b/doc/fsdk/html/structfsdk_1_1_i_warper.html new file mode 100644 index 0000000..4574b98 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_warper.html @@ -0,0 +1,693 @@ + + + + + + +Face Engine SDK: fsdk::IWarper Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::IWarper Struct Referenceabstract
+
+
+ +

Face detection area warper interface. + More...

+ +

#include <IWarper.h>

+
+Inheritance diagram for fsdk::IWarper:
+
+
+ + +fsdk::IRefCounted + +
+ + + + + + + +

+Public Types

+using ImageBatch = std::vector< Image >
 Common aliases for IWarper asynchronous interface.
 
+using ImageBatchFuture = vlc::future< ImageBatch >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual Transformation createTransformation (const Detection &detection, const Landmarks5 &landmarks) const noexcept=0
 Create transformation data struct. More...
 
virtual Result< FSDKErrorwarp (const Image &image, const Transformation &transformation, Image &transformedImage) const noexcept=0
 Warp image. More...
 
virtual Result< FSDKErrorwarp (Span< const Image > images, Span< const Transformation > transformations, Span< Image > transformedImages) const noexcept=0
 Warp faces on multiple images. More...
 
virtual Result< FSDKErrorwarp (const Landmarks5 &landmarks, const Transformation &transformation, Landmarks5 &transformedLandmarks) const noexcept=0
 Warp landmarks of size 5. More...
 
virtual Result< FSDKErrorwarp (const Landmarks68 &landmarks68, const Transformation &transformation, Landmarks68 &transformedLandmarks68) const noexcept=0
 Warp landmarks of size 68. More...
 
virtual Result< FSDKErrorunwarp (const EyesEstimation &eyesEstimationInWarpCoordinates, const Transformation &transformation, EyesEstimation &eyesEstimation) const noexcept=0
 Warp irisLandmarks in EyesEstimation struct for both eyes. More...
 
virtual Result< FSDKErrorunwarp (const Landmarks5 &warpedLandmarks5, const Transformation &transformation, Landmarks5 &landmarks5) const noexcept=0
 Warp landmarks of size 5 back to source image coordinates. More...
 
virtual Result< FSDKErrorunwarp (const Landmarks68 &warpedLandmarks68, const Transformation &transformation, Landmarks68 &landmarks68) const noexcept=0
 Warp landmarks of size 68 back to source image coordinates. More...
 
+virtual Result< FSDKErrorunwarp (const GazeEstimation &warpedAngles, const Transformation &transformation, GazeEstimation &angles) const noexcept=0
 
virtual ImageBatchFuture warpAsync (Span< const Image > images, Span< const Transformation > transformations) const =0
 Asynchronously warp faces on multiple images. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 
+

Detailed Description

+

Face detection area warper interface.

+

Perform affine transformations on an image to properly align depicted face for descriptor extraction.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual Transformation fsdk::IWarper::createTransformation (const Detectiondetection,
const Landmarks5landmarks 
) const
+
+pure virtualnoexcept
+
+ +

Create transformation data struct.

+
Parameters
+ + + +
[in]detectiondetection coordinates in image space.
[in]landmarksvector of landmarks to calculate warping angles.
+
+
+
Returns
Transformation object.
+
See Also
Transformation, Detection and Landmarks5 for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IWarper::unwarp (const EyesEstimationeyesEstimationInWarpCoordinates,
const Transformationtransformation,
EyesEstimationeyesEstimation 
) const
+
+pure virtualnoexcept
+
+ +

Warp irisLandmarks in EyesEstimation struct for both eyes.

+

Warps from warped image coord. space to source image coordinates space, the one that was used to create transformation.

+
Parameters
+ + + + +
[in]eyesEstimationInWarpCoordinatesEyesEstimation straight out of EyeEstimator. Should be create from warpedImage, that was created with the same transformation object as the one passed.
[in]transformationtransformation data.
[out]eyesEstimationeyes estimation with iris landmarks warped to source image coordinates space.
+
+
+
Returns
Result with error code.
+
See Also
Transformation, EyesEstimation, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IWarper::unwarp (const Landmarks5warpedLandmarks5,
const Transformationtransformation,
Landmarks5landmarks5 
) const
+
+pure virtualnoexcept
+
+ +

Warp landmarks of size 5 back to source image coordinates.

+
Parameters
+ + + + +
[in]warpedLandmarks5warped landmarks array of size 5.
[in]transformationtransformation data.
[out]landmarks5landmarks of size 5 warped back to source image coordinates.
+
+
+
Returns
Result with error code.
+
See Also
Transformation, Landmarks5, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IWarper::unwarp (const Landmarks68warpedLandmarks68,
const Transformationtransformation,
Landmarks68landmarks68 
) const
+
+pure virtualnoexcept
+
+ +

Warp landmarks of size 68 back to source image coordinates.

+
Parameters
+ + + + +
[in]warpedLandmarks5warped landmarks array of size 68.
[in]transformationtransformation data.
[out]landmarks5landmarks of size 68 warped back to source image coordinates.
+
+
+
Returns
Result with error code.
+
See Also
Transformation, Landmarks68, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IWarper::warp (const Imageimage,
const Transformationtransformation,
ImagetransformedImage 
) const
+
+pure virtualnoexcept
+
+ +

Warp image.

+
Parameters
+ + + + +
[in]imagesource image.
[in]transformationtransformation data.
[out]transformedImageoutput transformed image.
+
+
+
Returns
Result with error code.
+
See Also
Transformation, Image, Result and FSDKError for details.
+
Note
image format must be R8G8B8,
+
See Also
Format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IWarper::warp (Span< const Imageimages,
Span< const Transformationtransformations,
Span< ImagetransformedImages 
) const
+
+pure virtualnoexcept
+
+ +

Warp faces on multiple images.

+
Parameters
+ + + + +
[in]imagesspan of source images.
[in]transformationsspan of transformation structures.
[in/out]transformedImages span of output warped images.
+
+
+
Note
: all input images must have the same memory residence.
+
+: Each entry index in transformations span corresponds to the same index in images span to make warps from(i.e. transformations[i] <–> images[i]), so if there are multiple warps on the same image then this image must be duplicated in images span in order for the first statement to hold true.
+
+: if images in transformedImages span has the same parameters as the standard warped image has then no memory will be allocated and output data will be just copied to the backing memory of the output images. New images will be allocated otherwise.
+
Returns
Result with error code.
+
See Also
Span, Transformation, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IWarper::warp (const Landmarks5landmarks,
const Transformationtransformation,
Landmarks5transformedLandmarks 
) const
+
+pure virtualnoexcept
+
+ +

Warp landmarks of size 5.

+
Parameters
+ + + + +
[in]landmarkslandmarks array of size 5
[in]transformationtransformation data.
[out]transformedLandmarksoutput transformed landmarks. If transformation is created with detection, it's in the coordinates of transformed warped image, otherwise in the coordinates of detection.
+
+
+
Returns
Result with error code.
+
See Also
Transformation, Landmarks5, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual Result<FSDKError> fsdk::IWarper::warp (const Landmarks68landmarks68,
const Transformationtransformation,
Landmarks68transformedLandmarks68 
) const
+
+pure virtualnoexcept
+
+ +

Warp landmarks of size 68.

+
Parameters
+ + + + +
[in]landmarks68landmarks to warp.
[in]transformationtransformation data.
[out]transformedLandmarks68output transformed landmarks of size 68. If transformation is created with detection, it's in the coordinates of transformed warped image, otherwise in the coordinates of detection.
+
+
+
Returns
Result with error code.
+
See Also
Transformation, Landmarks68, Result and FSDKError for details.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual ImageBatchFuture fsdk::IWarper::warpAsync (Span< const Imageimages,
Span< const Transformationtransformations 
) const
+
+pure virtual
+
+ +

Asynchronously warp faces on multiple images.

+
Parameters
+ + + +
[in]imagesspan of source images.
[in]transformationsspan of transformation structures.
+
+
+
Returns
Future result object with error code and warped image batch.
+
See Also
Span, Transformation, Image, Result and FSDKError for details.
+
Note
images format must be R8G8B8,
+
See Also
Format.
+
Note
all spans should be based on user owned continuous collections.
+
+all spans should be equal size.
+
+this method is experimental and interface may be changed in the future.
+
+this method is not marked as noexcept and may throw an exception.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_i_warper.js b/doc/fsdk/html/structfsdk_1_1_i_warper.js new file mode 100644 index 0000000..a7920b7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_i_warper.js @@ -0,0 +1,15 @@ +var structfsdk_1_1_i_warper = +[ + [ "ImageBatch", "structfsdk_1_1_i_warper.html#ab13e3ac4b4ae69fafe86d10f94de8e64", null ], + [ "ImageBatchFuture", "structfsdk_1_1_i_warper.html#afa16f59973b79e9c3f237b16485d4917", null ], + [ "createTransformation", "structfsdk_1_1_i_warper.html#a8c4565064f4ff437b90d3784bcf256ca", null ], + [ "unwarp", "structfsdk_1_1_i_warper.html#a84d916dc3296244f29270128f77b6536", null ], + [ "unwarp", "structfsdk_1_1_i_warper.html#a20355c3fc081074b92b2a6d7f25523ab", null ], + [ "unwarp", "structfsdk_1_1_i_warper.html#a3c896d2a8f1ad3deaf1ff12c6f8a35d8", null ], + [ "unwarp", "structfsdk_1_1_i_warper.html#af0de23380b963ea58c0ae1dadf199618", null ], + [ "warp", "structfsdk_1_1_i_warper.html#ac1445d1b93d7f5713907839abdc990b1", null ], + [ "warp", "structfsdk_1_1_i_warper.html#a32bf26ffe79f9910f495eba4778d5c81", null ], + [ "warp", "structfsdk_1_1_i_warper.html#a3fdd8dd219fb6fdbe5dfd71e5833893d", null ], + [ "warp", "structfsdk_1_1_i_warper.html#afff8929ae7ea37b52d2a3e2b2d27efb7", null ], + [ "warpAsync", "structfsdk_1_1_i_warper.html#a384238fd902cbf424f1ec141e81b6927", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_i_warper.png b/doc/fsdk/html/structfsdk_1_1_i_warper.png new file mode 100644 index 0000000..294d052 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_i_warper.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_image-members.html b/doc/fsdk/html/structfsdk_1_1_image-members.html new file mode 100644 index 0000000..fa29be4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_image-members.html @@ -0,0 +1,218 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Image Member List
+
+
+ +

This is the complete list of members for fsdk::Image, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allocate(int size) noexceptfsdk::Imageprotectedstatic
clone() const noexceptfsdk::Imageinline
convert(Image &dest, int x, int y, int width, int height, Format format, TargetDevice device=TargetDevice::CPU) const noexceptfsdk::Image
convert(Image &dest, const Point2i &origin, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexceptfsdk::Imageinline
convert(Image &dest, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexceptfsdk::Imageinline
convert(Image &dest, const Rect &rect, Format format, TargetDevice device=TargetDevice::CPU) const noexceptfsdk::Imageinline
convert(Image &dest, Format format, TargetDevice device=TargetDevice::CPU) const noexceptfsdk::Imageinline
create(int width, int height, Format format, bool cleanup=true, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
create(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
create(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
create(const fsdk::Image &source, MemoryResidence residence, int deviceId=0) noexceptfsdk::Image
deallocate(void *memory) noexceptfsdk::Imageprotectedstatic
equalStrong(const fsdk::Image &other) noexceptfsdk::Imageinline
equalWeak(const fsdk::Image &other) noexceptfsdk::Imageinline
Error enum namefsdk::Image
extract(int x, int y, int width, int height) const noexceptfsdk::Image
extract(const Rect &rect) const noexceptfsdk::Imageinline
extract(const Size &size) const noexceptfsdk::Imageinline
extract(const Point2i &origin, const Size &size) const noexceptfsdk::Imageinline
getAspectRatio() const noexceptfsdk::Imageinline
getData() noexceptfsdk::Imageinline
getData() const noexceptfsdk::Imageinline
getDataAs() noexceptfsdk::Imageinline
getDataAs() const noexceptfsdk::Imageinline
getDataSize() const noexceptfsdk::Image
getDataSize(Sizer &sizer) const noexceptfsdk::Image
getDeviceId() const noexcept (defined in fsdk::Image)fsdk::Imageinline
getFormat() const noexceptfsdk::Imageinline
getHeight() const noexceptfsdk::Imageinline
getMemoryResidence() const noexcept (defined in fsdk::Image)fsdk::Imageinline
getRect() const noexceptfsdk::Imageinline
getRefCount() const noexceptfsdk::Imageprotected
getRowSize() const noexceptfsdk::Imageinline
getScanLine(int y) noexceptfsdk::Image
getScanLine(int y) const noexceptfsdk::Image
getScanLineAs(int y) noexceptfsdk::Imageinline
getScanLineAs(int y) const noexceptfsdk::Imageinline
getSize() const noexceptfsdk::Imageinline
getWidth() const noexceptfsdk::Imageinline
guessTypeFromMemory(const void *data, const uint32_t sizeInBytes, Type &type) noexceptfsdk::Imagestatic
Image() noexceptfsdk::Image
Image(int width, int height, Format format, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
Image(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
Image(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
Image(const Image &other) noexceptfsdk::Image
Image(Image &&other) noexceptfsdk::Image
Image(const SubImage &subImage) noexceptfsdk::Imageexplicit
ImageCompression enum namefsdk::Image
isNull() const noexceptfsdk::Imageinline
isSharedWith(const Image &other) const noexceptfsdk::Imageinline
isValid() const noexceptfsdk::Imageinline
load(const char *path) noexceptfsdk::Image
load(const char *path, const Format format) noexceptfsdk::Image
loadFromMemory(const void *data, const uint32_t sizeInBytes) noexceptfsdk::Image
loadFromMemory(const void *data, const uint32_t sizeInBytes, const Format format) noexceptfsdk::Image
loadFromMemoryOfType(const void *data, const uint32_t sizeInBytes, const Type type) noexceptfsdk::Image
loadFromMemoryOfType(const void *data, const uint32_t sizeInBytes, const Type type, const Format format) noexceptfsdk::Image
m_datafsdk::Imageprotected
m_deviceIdfsdk::Imageprotected
m_formatfsdk::Imageprotected
m_heightfsdk::Imageprotected
m_reffsdk::Imageprotected
m_residence (defined in fsdk::Image)fsdk::Imageprotected
m_widthfsdk::Imageprotected
map(int x, int y, int width, int height) const noexceptfsdk::Image
map(const Rect &rect) const noexceptfsdk::Imageinline
map(const Size &size) const noexceptfsdk::Imageinline
map(const Point2i &origin, const Size &size) const noexceptfsdk::Imageinline
MemoryResidence enum namefsdk::Image
operator bool() const noexceptfsdk::Imageinline
operator=(const Image &other) noexceptfsdk::Imageinline
operator=(Image &&other) noexceptfsdk::Imageinline
ownsData() const noexceptfsdk::Imageinline
putPixel(uint32_t x, uint32_t y) noexcept (defined in fsdk::Image)fsdk::Image
release() noexceptfsdk::Imageprotected
rescale(float scale) const noexceptfsdk::Image
reset() noexceptfsdk::Imageinline
retain() noexceptfsdk::Imageprotected
save(const char *path, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexceptfsdk::Image
save(const char *path, const Format format) const noexceptfsdk::Image
saveToMemory(Image::Type type, IArchive *archive, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexceptfsdk::Image
saveToMemory(Image::Type type, IArchive *archive, const Format format) const noexceptfsdk::Image
set(int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
set(int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexceptfsdk::Image
set(const Image &other) noexceptfsdk::Image
set(const SubImage &subImage) noexceptfsdk::Image
swap(Image &other) noexceptfsdk::Imageinline
TargetDevice enum namefsdk::Image
Type enum namefsdk::Image
~Image() (defined in fsdk::Image)fsdk::Image
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_image.html b/doc/fsdk/html/structfsdk_1_1_image.html new file mode 100644 index 0000000..17e4dbd --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_image.html @@ -0,0 +1,3680 @@ + + + + + + +Face Engine SDK: fsdk::Image Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ + +
+ +

Image. + More...

+ +

#include <Image.h>

+ + + + + + + + + + + + + + + + + +

+Public Types

enum  Type : uint8_t {
+  BMP, +JPG, +PNG, +PPM, +
+  TIFF, +Unknown +
+ }
 Supported image types.
 
enum  TargetDevice { CPU, +GPU, +NPU + }
 Target device that fsdk::Image algorithms will be running on.
 
enum  ImageCompression {
+  ImageCompression::IC_NO_COMPRESSION, +ImageCompression::IC_SMALL_COMPRESSION, +ImageCompression::IC_MEDIUM_COMPRESSION, +ImageCompression::IC_HARD_COMPRESSION, +
+  ImageCompression::IC_BEST_COMPRESSION +
+ }
 Supported compression type is used only for jpg and png types. More...
 
enum  Error : uint32_t {
+  Error::Ok, +Error::InvalidWidth, +Error::InvalidHeight, +Error::InvalidDataPtr, +
+  Error::InvalidDataSize, +Error::InvalidImage, +Error::InvalidArchive, +Error::InvalidPath, +
+  Error::InvalidType, +Error::InvalidFormat, +Error::InvalidBitmap, +Error::InvalidMemory, +
+  Error::InvalidConversion, +Error::InvalidResidence, +Error::InvalidDevice, +Error::FailedToSave, +
+  Error::FailedToLoad, +Error::FailedToInitialize, +Error::ReleasedInOtherThread +
+ }
 Image error codes. More...
 
enum  MemoryResidence : uint32_t { MemoryResidence::MemoryCPU, +MemoryResidence::MemoryGPU, +MemoryResidence::MemoryNPU, +MemoryResidence::MemoryNPU_DPP + }
 Memory residence. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+FSDK_API Image () noexcept
 Initializes an empty image.
 
FSDK_API Image (int width, int height, Format format, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an empty image and preallocates storage buffer of given size. More...
 
FSDK_API Image (int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an empty image and preallocates storage buffer of given size. Fills image contents with provided data. More...
 
FSDK_API Image (int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an image. If copy is true, this allocates a new buffer of given size and fills image contents with provided data (copies it). If copy is false (which is default) this will just reference the provided data. More...
 
FSDK_API Image (const Image &other) noexcept
 Initializes an image as a reference to an other image. More...
 
FSDK_API Image (Image &&other) noexcept
 Initializes an image with contents of an other image. Source image is then invalidated. More...
 
FSDK_API Image (const SubImage &subImage) noexcept
 Initializes an image with contents of a sub image. Since sub images do not handle data life time, image contents are always copied. More...
 
FSDK_API Result< Errorcreate (int width, int height, Format format, bool cleanup=true, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an empty image and preallocates storage buffer of given size. More...
 
FSDK_API Result< Errorcreate (int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an empty image and preallocates storage buffer of given size. Fills image contents with provided data. More...
 
FSDK_API Result< Errorcreate (int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an image. If copy is true, this allocates a new buffer of given size and fills image contents with provided data (copies it). If copy is false (which is default) this will just reference the provided data. More...
 
FSDK_API Result< Errorcreate (const fsdk::Image &source, MemoryResidence residence, int deviceId=0) noexcept
 Creates image with given memory residence based on other image instance. If source image has another MemoryResidence or device id, all memory will be copied to the new residence. In the other case new instance will be just a reference for the source. More...
 
FSDK_API Result< Errorset (int width, int height, Format format, const void *data, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an image with provided data. If current image is not empty and it's size and format match the provided ones, no memory reallocation is performed. Otherwise image is re-created to match requirements. More...
 
FSDK_API Result< Errorset (int width, int height, Format format, void *data, bool copy, MemoryResidence residence=MemoryResidence::MemoryCPU, int deviceId=0) noexcept
 Initializes an image with provided data. If copy is true and if current image is not empty and it's size and format match the provided ones, no memory reallocation is performed. Otherwise image is re-created to match requirements. If copy is false (which is default) this will just reference the provided data. More...
 
FSDK_API Result< Errorset (const Image &other) noexcept
 Initializes an image as a reference to an other image. More...
 
FSDK_API Result< Errorset (const SubImage &subImage) noexcept
 Initializes an image with contents of a sub image. Since sub images do not handle data life time, image contents are always copied. More...
 
FSDK_API SubImage map (int x, int y, int width, int height) const noexcept
 Map image contents to a given area. More...
 
SubImage map (const Rect &rect) const noexcept
 Map image contents to a given area. More...
 
SubImage map (const Size &size) const noexcept
 Map image contents to a given area. More...
 
SubImage map (const Point2i &origin, const Size &size) const noexcept
 Map image contents to a given area. More...
 
FSDK_API Image extract (int x, int y, int width, int height) const noexcept
 Extract a sub image of this image. The new image will have it's own reference count. More...
 
Image extract (const Rect &rect) const noexcept
 Extract a sub image of this image. The new image will have it's own reference count. More...
 
Image extract (const Size &size) const noexcept
 Extract a sub image of this image. The new image will have it's own reference count. More...
 
Image extract (const Point2i &origin, const Size &size) const noexcept
 Extract a sub image of this image. The new image will have it's own reference count. More...
 
Image clone () const noexcept
 Create a copy of this image. The new image will have it's own reference count. More...
 
FSDK_API Result< Image::Errorconvert (Image &dest, int x, int y, int width, int height, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
 Convert image format. More...
 
Result< Image::Errorconvert (Image &dest, const Point2i &origin, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
 Convert image format. More...
 
Result< Image::Errorconvert (Image &dest, const Size &size, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
 Convert image format. More...
 
Result< Image::Errorconvert (Image &dest, const Rect &rect, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
 Convert image format. More...
 
Result< Image::Errorconvert (Image &dest, Format format, TargetDevice device=TargetDevice::CPU) const noexcept
 Convert image format. More...
 
FSDK_API Image rescale (float scale) const noexcept
 Rescale image keeping proportions. More...
 
FSDK_API Result< Image::Errorsave (const char *path, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept
 Save image. More...
 
FSDK_API Result< Errorsave (const char *path, const Format format) const noexcept
 Convert and Save image. More...
 
FSDK_API Result< Image::ErrorsaveToMemory (Image::Type type, IArchive *archive, fsdk::Image::ImageCompression additionalFlag=fsdk::Image::ImageCompression::IC_NO_COMPRESSION) const noexcept
 Save image to memory buffer. More...
 
FSDK_API Result< Image::ErrorsaveToMemory (Image::Type type, IArchive *archive, const Format format) const noexcept
 Convert and save image to memory buffer. More...
 
FSDK_API Result< Errorload (const char *path) noexcept
 Load image from file. More...
 
FSDK_API Result< Errorload (const char *path, const Format format) noexcept
 Load image from file and convert it to required format. More...
 
FSDK_API Result< ErrorloadFromMemory (const void *data, const uint32_t sizeInBytes) noexcept
 Load image from memory. More...
 
FSDK_API Result< ErrorloadFromMemory (const void *data, const uint32_t sizeInBytes, const Format format) noexcept
 Load image from memory and convert it to required format. More...
 
FSDK_API Result< ErrorloadFromMemoryOfType (const void *data, const uint32_t sizeInBytes, const Type type) noexcept
 Load image from memory of specific type. More...
 
FSDK_API Result< ErrorloadFromMemoryOfType (const void *data, const uint32_t sizeInBytes, const Type type, const Format format) noexcept
 Load image from memory of specific type and convert it to required format. More...
 
Imageoperator= (const Image &other) noexcept
 Assign other image. More...
 
Imageoperator= (Image &&other) noexcept
 Move other image. More...
 
bool isNull () const noexcept
 
bool isValid () const noexcept
 
 operator bool () const noexcept
 Implicit cast to boolean; results in true if image is valid, false if not. More...
 
FSDK_API void * getScanLine (int y) noexcept
 Get image scanline data. More...
 
FSDK_API const void * getScanLine (int y) const noexcept
 Get image scanline data. More...
 
FSDK_API int getDataSize () const noexcept
 
FSDK_API void getDataSize (Sizer &sizer) const noexcept
 Get actual image size in bytes. More...
 
template<typename T >
T * getScanLineAs (int y) noexcept
 Get image scanline data. More...
 
template<typename T >
const T * getScanLineAs (int y) const noexcept
 Get image scanline data. More...
 
void * getData () noexcept
 
const void * getData () const noexcept
 
template<typename T >
T * getDataAs () noexcept
 
template<typename T >
const T * getDataAs () const noexcept
 
int getRowSize () const noexcept
 
int getWidth () const noexcept
 
int getHeight () const noexcept
 
float getAspectRatio () const noexcept
 
Format getFormat () const noexcept
 
+MemoryResidence getMemoryResidence () const noexcept
 
+int getDeviceId () const noexcept
 
Size getSize () const noexcept
 
Rect getRect () const noexcept
 
bool ownsData () const noexcept
 
bool isSharedWith (const Image &other) const noexcept
 
void swap (Image &other) noexcept
 Swap contents with another image. More...
 
+void reset () noexcept
 Reset image contents.
 
+bool equalWeak (const fsdk::Image &other) noexcept
 Performs weak comparison of this image with other. Weak in this context means only image parameters should be equal i.e width, height, format and residence. Actual data pointer of two images might differ.
 
bool equalStrong (const fsdk::Image &other) noexcept
 Performs strong comparison of this image with other. Beside weak comparison strong comparison also checks whether two images point to the same block of pixels. More...
 
+FSDK_API void putPixel (uint32_t x, uint32_t y) noexcept
 
+ + + + +

+Static Public Member Functions

static FSDK_API Result< ErrorguessTypeFromMemory (const void *data, const uint32_t sizeInBytes, Type &type) noexcept
 Guess type of image written into memory. More...
 
+ + + + + + + + + + +

+Protected Member Functions

FSDK_API int retain () noexcept
 Increase reference count. More...
 
FSDK_API int release () noexcept
 Decrease reference count. More...
 
FSDK_API int getRefCount () const noexcept
 Obtain reference count. More...
 
+ + + + + + + +

+Static Protected Member Functions

static FSDK_API void * allocate (int size) noexcept
 Allocate memory. More...
 
static FSDK_API void deallocate (void *memory) noexcept
 Free memory. More...
 
+ + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+void * m_data
 raw image data.
 
+int * m_ref
 reference counter. nullptr if image does not own data.
 
+int m_height
 image height.
 
+int m_width
 image width.
 
+int m_deviceId
 id of the device where image memory is allocated
 
Format m_format
 image format ( More...
 
+MemoryResidence m_residence
 
+

Detailed Description

+

Image.

+

Image objects embed an implicit reference counter to automatically track consumers perform assignments without unnecessary reallocations in a thread-safe manner.

+

Every time you assign or set an other image as the source of the current image, the current image data reference count is decreased, new data pointer is referenced, and it's counter is increased. When data reference count drops to zero, the data is deallocated.

+

Image can also reference external data without an actual ownership. This way you can operate on your data buffer using methods of Image and still own it and cotrol it's life time.

+
Note
be careful when initializing Image via set() or create() and do NOT provide pointer to data owned by an other image, since this way the destination image will be unaware of data reference counter which will lead to undefined behavior. Always use appropriate overloads to set image data.
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum fsdk::Image::Error : uint32_t
+
+strong
+
+ +

Image error codes.

+ + + + + + + + + + + + + + + + + + + + +
Enumerator
Ok  +

Ok.

+
InvalidWidth  +

Invalid width.

+
InvalidHeight  +

Invalid height.

+
InvalidDataPtr  +

Bad input data pointer.

+
InvalidDataSize  +

Bad input data size.

+
InvalidImage  +

Invalid image.

+
InvalidArchive  +

Archive error.

+
InvalidPath  +

Bad path for saving / loading.

+
InvalidType  +

Unsupported type.

+
See Also
Image::Type for more information.
+
InvalidFormat  +

Unsupported format.

+
See Also
Image::Format for more information.
+
InvalidBitmap  +

Bitmap error occurred.

+
InvalidMemory  +

Error at memory opening.

+
InvalidConversion  +

Conversion not implemented.

+
InvalidResidence  +

Invalid memory residence.

+
InvalidDevice  +

Target Device is not supported for this system.

+
FailedToSave  +

Error during image saving.

+
FailedToLoad  +

Error during image loading.

+
FailedToInitialize  +

Error during initialization.

+
ReleasedInOtherThread  +

Failed to retain image: it was released in another thread.

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::Image::ImageCompression
+
+strong
+
+ +

Supported compression type is used only for jpg and png types.

+

JPG case: the higher level of compression corresponds to the lower quality. Compression/decompression speed are constant. PNG case: the higher level of compression corresponds to the lower compression speed. Quality are constant.

+ + + + + + +
Enumerator
IC_NO_COMPRESSION  +

no compression (only for png or jpg image)

+
IC_SMALL_COMPRESSION  +

compression with minimal (or without) quality loss (only for png or jpg image)

+
IC_MEDIUM_COMPRESSION  +

medium compression (only for png or jpg)

+
IC_HARD_COMPRESSION  +

more than medium compression (only for png or jpg)

+
IC_BEST_COMPRESSION  +

maximum compression level (only for png or jpg)

+
+ +
+
+ +
+
+ + + + + +
+ + + + +
enum fsdk::Image::MemoryResidence : uint32_t
+
+strong
+
+ +

Memory residence.

+
Note
MemoryGPU residence is not supported for mobile platforms! Attempt to use such image on such platforms will cause an error.
+ + + + + +
Enumerator
MemoryCPU  +

Image in Host device memory.

+
MemoryGPU  +

Image in Cuda device memory.

+
MemoryNPU  +

Image in NPU device memory.

+
MemoryNPU_DPP  +

Image in NPU PreProcessing module memory.

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API fsdk::Image::Image (int width,
int height,
Format format,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an empty image and preallocates storage buffer of given size.

+
Parameters
+ + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]deviceIdindex of a device where image will be allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API fsdk::Image::Image (int width,
int height,
Format format,
const void * data,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an empty image and preallocates storage buffer of given size. Fills image contents with provided data.

+
Parameters
+ + + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]dataimage data.
[in]deviceIdindex of a device where image will be allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API fsdk::Image::Image (int width,
int height,
Format format,
void * data,
bool copy,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an image. If copy is true, this allocates a new buffer of given size and fills image contents with provided data (copies it). If copy is false (which is default) this will just reference the provided data.

+
Parameters
+ + + + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]dataimage data.
[in]copy[optional] whether to copy or reference data.
[in]deviceIdindex of a device where image will be allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API fsdk::Image::Image (const Imageother)
+
+noexcept
+
+ +

Initializes an image as a reference to an other image.

+
Parameters
+ + +
[in]otherother image.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API fsdk::Image::Image (Image && other)
+
+noexcept
+
+ +

Initializes an image with contents of an other image. Source image is then invalidated.

+
Parameters
+ + +
[in]otherother image.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API fsdk::Image::Image (const SubImagesubImage)
+
+explicitnoexcept
+
+ +

Initializes an image with contents of a sub image. Since sub images do not handle data life time, image contents are always copied.

+
Parameters
+ + +
[in]subImagesub image.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
static FSDK_API void* fsdk::Image::allocate (int size)
+
+staticprotectednoexcept
+
+ +

Allocate memory.

+
Parameters
+ + +
[in]sizememory region size in bytes.
+
+
+
Returns
Memory region pointer.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Image fsdk::Image::clone () const
+
+inlinenoexcept
+
+ +

Create a copy of this image. The new image will have it's own reference count.

+
Returns
new image with copied data.
+
Note
empty image returned in case of an error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Image::Error> fsdk::Image::convert (Imagedest,
int x,
int y,
int width,
int height,
Format format,
TargetDevice device = TargetDevice::CPU 
) const
+
+noexcept
+
+ +

Convert image format.

+
Note
specifying out of bounds area will result in runtime error.
+
Parameters
+ + + + + + + + +
[in,out]destdestination image.
[in]xhorisontal coordinate of top left corner of image rect to convert.
[in]yvertical coordinate of top left corner of image rect to convert.
[in]widthwidth of image rect to convert.
[in]heightheight of image rect to convert.
[in]formatnew format.
[in]devicetarget device to run convert on.
+
+
+
Note
dest should not be the same as this image.
+
+memory will not be reallocated if dest was already created with appropriate dimensions and format.
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Result<Image::Error> fsdk::Image::convert (Imagedest,
const Point2iorigin,
const Sizesize,
Format format,
TargetDevice device = TargetDevice::CPU 
) const
+
+inlinenoexcept
+
+ +

Convert image format.

+
Note
specifying out of bounds area will result in runtime error.
+
Parameters
+ + + + + + +
[in,out]destdestination image.
[in]originconverted image origin.
[in]sizeimage size to convert.
[in]formatnew format.
[in]devicetarget device to run convert on.
+
+
+
Note
dest should not be the same as this image.
+
+memory will not be reallocated if dest was already created with appropriate dimensions and format.
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Result<Image::Error> fsdk::Image::convert (Imagedest,
const Sizesize,
Format format,
TargetDevice device = TargetDevice::CPU 
) const
+
+inlinenoexcept
+
+ +

Convert image format.

+
Note
specifying out of bounds area will result in runtime error.
+
+new image origin is assumed at the top-left corner of the existing one.
+
Parameters
+ + + + + +
[in,out]destdestination image.
[in]formatnew format.
[in]sizeimage area size to convert.
[in]devicetarget device to run convert on.
+
+
+
Note
dest should not be the same as this image.
+
+memory will not be reallocated if dest was already created with appropriate dimensions and format.
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Result<Image::Error> fsdk::Image::convert (Imagedest,
const Rectrect,
Format format,
TargetDevice device = TargetDevice::CPU 
) const
+
+inlinenoexcept
+
+ +

Convert image format.

+
Note
specifying out of bounds area will result in runtime error.
+
Parameters
+ + + + + +
[in,out]destdestination image.
[in]formatnew format.
[in]rectimage area rect to convert.
[in]devicetarget device to run convert on.
+
+
+
Note
dest should not be the same as this image.
+
+memory will not be reallocated if dest was already created with appropriate dimensions and format.
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Result<Image::Error> fsdk::Image::convert (Imagedest,
Format format,
TargetDevice device = TargetDevice::CPU 
) const
+
+inlinenoexcept
+
+ +

Convert image format.

+
Parameters
+ + + + +
[in,out]destdestination image.
[in]formatnew format.
[in]devicetarget device to run convert on.
+
+
+
Note
dest should not be the same as this image.
+
+memory will not be reallocated if dest was already created with appropriate dimensions and format.
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::create (int width,
int height,
Format format,
bool cleanup = true,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an empty image and preallocates storage buffer of given size.

+
Parameters
+ + + + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]cleanupinitializes internal image memory to default value.
[in]residencememory residence of a data pointer.
[in]deviceIdindex of a device where image will be allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+output image will have memory residence of the provided data pointer.
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+
Returns
true in case of success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::create (int width,
int height,
Format format,
const void * data,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an empty image and preallocates storage buffer of given size. Fills image contents with provided data.

+
Parameters
+ + + + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]dataimage data.
[in]memoryresidence of a data pointer.
[in]deviceIdindex of a device where data pointer was allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+output image will have memory residence of the provided data pointer.
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+
Returns
true in case of success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::create (int width,
int height,
Format format,
void * data,
bool copy,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an image. If copy is true, this allocates a new buffer of given size and fills image contents with provided data (copies it). If copy is false (which is default) this will just reference the provided data.

+
Parameters
+ + + + + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]dataimage data.
[in]copywhether to copy or reference data
[in]memoryresidence of a data pointer.
[in]deviceIdindex of a device where data pointer was allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+output image will have memory residence of the provided data pointer.
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+
Returns
true in case of success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::create (const fsdk::Imagesource,
MemoryResidence residence,
int deviceId = 0 
)
+
+noexcept
+
+ +

Creates image with given memory residence based on other image instance. If source image has another MemoryResidence or device id, all memory will be copied to the new residence. In the other case new instance will be just a reference for the source.

+
Parameters
+ + + + +
[in]imageinstance to create copy for
[in]residencememory residence for the target image
[in]deviceIdindex of a device for the target image
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
Returns
true in case of success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
static FSDK_API void fsdk::Image::deallocate (void * memory)
+
+staticprotectednoexcept
+
+ +

Free memory.

+
Parameters
+ + +
[in]memorymemory region pointer.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::Image::equalStrong (const fsdk::Imageother)
+
+inlinenoexcept
+
+ +

Performs strong comparison of this image with other. Beside weak comparison strong comparison also checks whether two images point to the same block of pixels.

+
See Also
equalWeak().
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Image fsdk::Image::extract (int x,
int y,
int width,
int height 
) const
+
+noexcept
+
+ +

Extract a sub image of this image. The new image will have it's own reference count.

+
Parameters
+ + + + + +
[in]xhorisontal coordinate of top left corner of image rect to extract.
[in]yvertical coordinate of top left corner of image rect to extract.
[in]widthwidth of image rect to extract.
[in]heightheight of image rect to extract.
+
+
+
Returns
new image with copied data.
+
Note
empty image returned in case of an memory allocation error.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Image fsdk::Image::extract (const Rectrect) const
+
+inlinenoexcept
+
+ +

Extract a sub image of this image. The new image will have it's own reference count.

+
Parameters
+ + +
[in]rectimage rect to extract.
+
+
+
Returns
new image with copied data.
+
Note
empty image returned in case of an memory allocation error.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Image fsdk::Image::extract (const Sizesize) const
+
+inlinenoexcept
+
+ +

Extract a sub image of this image. The new image will have it's own reference count.

+
Note
new image origin is assumed at the top-left corner of the existing one.
+
Parameters
+ + +
[in]sizeimage size to extract.
+
+
+
Returns
new image with copied data.
+
Note
empty image returned in case of an memory allocation error.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Image fsdk::Image::extract (const Point2iorigin,
const Sizesize 
) const
+
+inlinenoexcept
+
+ +

Extract a sub image of this image. The new image will have it's own reference count.

+
Parameters
+ + + +
[in]originextracted image origin.
[in]sizeimage size to extract.
+
+
+
Returns
new image with copied data.
+
Note
empty image returned in case of an memory allocation error.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
float fsdk::Image::getAspectRatio () const
+
+inlinenoexcept
+
+
Returns
image aspect ratio (width to height).
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void* fsdk::Image::getData ()
+
+inlinenoexcept
+
+
Returns
pointer to raw image data.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
const void* fsdk::Image::getData () const
+
+inlinenoexcept
+
+
Returns
pointer to raw image data.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
T* fsdk::Image::getDataAs ()
+
+inlinenoexcept
+
+
Returns
pointer to image data cast to a given type.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T* fsdk::Image::getDataAs () const
+
+inlinenoexcept
+
+
Returns
pointer to image data cast to a given type.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API int fsdk::Image::getDataSize () const
+
+noexcept
+
+
Returns
actual image size in bytes.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API void fsdk::Image::getDataSize (Sizersizer) const
+
+noexcept
+
+ +

Get actual image size in bytes.

+
Parameters
+ + +
[in,out]sizersizer to append result to.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Format fsdk::Image::getFormat () const
+
+inlinenoexcept
+
+
Returns
image format.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Image::getHeight () const
+
+inlinenoexcept
+
+
Returns
image height.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Rect fsdk::Image::getRect () const
+
+inlinenoexcept
+
+
Returns
image rectangle.
+
Note
resulting rectangle top left corner is lways at (0, 0).
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API int fsdk::Image::getRefCount () const
+
+protectednoexcept
+
+ +

Obtain reference count.

+
Returns
Current reference count.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Image::getRowSize () const
+
+inlinenoexcept
+
+
Returns
size of image pixel row in bytes.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API void* fsdk::Image::getScanLine (int y)
+
+noexcept
+
+ +

Get image scanline data.

+
Parameters
+ + +
[in]yscanline number.
+
+
+
Returns
pointer to raw data.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API const void* fsdk::Image::getScanLine (int y) const
+
+noexcept
+
+ +

Get image scanline data.

+
Parameters
+ + +
[in]yscanline number.
+
+
+
Returns
pointer to raw data.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
T* fsdk::Image::getScanLineAs (int y)
+
+inlinenoexcept
+
+ +

Get image scanline data.

+
Parameters
+ + +
[in]yscanline number.
+
+
+
Returns
pointer image data cast to a given type.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
const T* fsdk::Image::getScanLineAs (int y) const
+
+inlinenoexcept
+
+ +

Get image scanline data.

+
Parameters
+ + +
[in]yscanline number.
+
+
+
Returns
pointer image data cast to a given type.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Size fsdk::Image::getSize () const
+
+inlinenoexcept
+
+
Returns
image size.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int fsdk::Image::getWidth () const
+
+inlinenoexcept
+
+
Returns
image width.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static FSDK_API Result<Error> fsdk::Image::guessTypeFromMemory (const void * data,
const uint32_t sizeInBytes,
Typetype 
)
+
+staticnoexcept
+
+ +

Guess type of image written into memory.

+
Parameters
+ + + + +
[in]dataPointer to memory containing image.
[in]sizeInBytesCount of bytes containing image pointed to by data.
[out]typeType of passed image.
+
+
+
Returns
true if success, false if some error occured.
+
Note
Unknown type of image is not an error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Image::isNull () const
+
+inlinenoexcept
+
+
Returns
true if image data is not allocated.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::Image::isSharedWith (const Imageother) const
+
+inlinenoexcept
+
+
Returns
true if this image shares the same memory chunk for it's data as the other one.
+
Parameters
+ + +
[in]otherother image to check againts.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Image::isValid () const
+
+inlinenoexcept
+
+
Returns
true if image is not null and has valid dimenstions and format.
+
See Also
isNull.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API Result<Error> fsdk::Image::load (const char * path)
+
+noexcept
+
+ +

Load image from file.

+

This function loads image contents from disk. Supported types are: bmp, png, ppm, jpeg, tiff. If image is not empty, it's content will be freed and memory will be reallocated to fit in the data from the file if:

+ + +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::load (const char * path,
const Format format 
)
+
+noexcept
+
+ +

Load image from file and convert it to required format.

+

This function does exact same thing as method above, and additionally converts loaded image to input format.

+
Parameters
+ + + +
[in]pathInput file path.
[in]formatrequired image format.
+
+
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+
Note
Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::loadFromMemory (const void * data,
const uint32_t sizeInBytes 
)
+
+noexcept
+
+ +

Load image from memory.

+

This function loads image contents from memory. Supported types are: bmp, png, ppm, jpeg, tiff. If image is not empty, it's content will be freed and memory will be reallocated to fit in the data from the file if:

+
    +
  • the file can be opened
  • +
  • the file is of supported format
    Parameters
    + + + +
    [in]dataPointer to input memory.
    [in]sizeInBytesCount of bytes of image pointed to by data.
    +
    +
    +
    Returns
    Result with error code specified by Image::Error.
    +
    See Also
    Result and Image::Error.
    +
    Note
    Memory residence must be MemoryResidence::MemoryCPU.
    +
  • +
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::loadFromMemory (const void * data,
const uint32_t sizeInBytes,
const Format format 
)
+
+noexcept
+
+ +

Load image from memory and convert it to required format.

+

This function does exact same thing as method above, and additionally converts loaded image to input format.

+
Parameters
+ + + + +
[in]dataPointer to input memory.
[in]sizeInBytesCount of bytes of image pointed to by data.
[in]formatrequired image format.
+
+
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+
Note
Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::loadFromMemoryOfType (const void * data,
const uint32_t sizeInBytes,
const Type type 
)
+
+noexcept
+
+ +

Load image from memory of specific type.

+

This function loads specific type image contents from memory. If data points to image of another type, not the one passed, does nothing. Supported types are: bmp, png, ppm, jpeg, tiff. If image is not empty, it's content will be freed and memory will be reallocated to fit in the data from the file if:

+
    +
  • the file can be opened
  • +
  • the file is of supported format
    Parameters
    + + + + +
    [in]dataPointer to input memory.
    [in]sizeInBytesCount of bytes of image pointed to by data.
    [in]typeType of image to be loaded.
    +
    +
    +
    Returns
    Result with error code specified by Image::Error.
    +
    See Also
    Result and Image::Error.
    +
    Note
    Memory residence must be MemoryResidence::MemoryCPU.
    +
  • +
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::loadFromMemoryOfType (const void * data,
const uint32_t sizeInBytes,
const Type type,
const Format format 
)
+
+noexcept
+
+ +

Load image from memory of specific type and convert it to required format.

+

This function does exact same thing as method above, and additionally converts loaded image to input format.

+
Parameters
+ + + + + +
[in]dataPointer to input memory.
[in]sizeInBytesCount of bytes of image pointed to by data.
[in]typeType of image to be loaded.
[in]formatrequired image format.
+
+
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+
Note
Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API SubImage fsdk::Image::map (int x,
int y,
int width,
int height 
) const
+
+noexcept
+
+ +

Map image contents to a given area.

+
Note
specifying out of bounds area will result in runtime error.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+
Parameters
+ + + + + +
[in]xhorizontal coordinate of top left corner of image rect to map.
[in]yvertical coordinate of top left corner of image rect to map.
[in]widthwidth of image rect to map
[in]heightheight of image rect to map
+
+
+
Returns
sub image corresponding to the given area.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
SubImage fsdk::Image::map (const Rectrect) const
+
+inlinenoexcept
+
+ +

Map image contents to a given area.

+
Note
specifying out of bounds area will result in runtime error.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+
Parameters
+ + +
[in]rectimage rect to extract
+
+
+
Returns
sub image corresponding to the given area.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
SubImage fsdk::Image::map (const Sizesize) const
+
+inlinenoexcept
+
+ +

Map image contents to a given area.

+
Note
specifying out of bounds area will result in runtime error.
+
+sub image origin is assumed at the top-left corner of the existing one.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+
Parameters
+ + +
[in]sizeimage size to map.
+
+
+
Returns
sub image corresponding to the given area.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
SubImage fsdk::Image::map (const Point2iorigin,
const Sizesize 
) const
+
+inlinenoexcept
+
+ +

Map image contents to a given area.

+
Note
specifying out of bounds area will result in runtime error.
+
+Memory residence must be MemoryResidence::MemoryCPU.
+
Parameters
+ + + +
[in]originsub image image origin.
[in]sizesub image size to extract.
+
+
+
Returns
sub image corresponding to the given area.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
fsdk::Image::operator bool () const
+
+inlinenoexcept
+
+ +

Implicit cast to boolean; results in true if image is valid, false if not.

+
See Also
isValid.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Image& fsdk::Image::operator= (const Imageother)
+
+inlinenoexcept
+
+ +

Assign other image.

+
Parameters
+ + +
[in]otherimage to assign.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Image& fsdk::Image::operator= (Image && other)
+
+inlinenoexcept
+
+ +

Move other image.

+
Parameters
+ + +
[in]otherimage to move.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Image::ownsData () const
+
+inlinenoexcept
+
+
Returns
true, if this image data was allocated by the image itself (via ctor or create()). Otherwise returns false.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API int fsdk::Image::release ()
+
+protectednoexcept
+
+ +

Decrease reference count.

+
Returns
Current reference count.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API Image fsdk::Image::rescale (float scale) const
+
+noexcept
+
+ +

Rescale image keeping proportions.

+
Note
Performs bilinear interpolation.
+
Parameters
+ + +
[in]scalefactor. Must be positive.
+
+
+
Returns
scaled image.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
FSDK_API int fsdk::Image::retain ()
+
+protectednoexcept
+
+ +

Increase reference count.

+
Returns
Current reference count.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
FSDK_API Result<Image::Error> fsdk::Image::save (const char * path,
fsdk::Image::ImageCompression additionalFlag = fsdk::Image::ImageCompression::IC_NO_COMPRESSION 
) const
+
+noexcept
+
+ +

Save image.

+

This function saves image contents to disk. Type is extracted from provided file extension. If it is unknown, function fails. Supported types are: bmp, png, ppm, jpeg, tiff.

+
Note
Memory residence must be MemoryResidence::MemoryCPU.
+
Parameters
+ + + +
[in]pathoutput file path with proper file extension.
[in]additionalFlagadditional flag for saving of png or jpg image
+
+
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::save (const char * path,
const Format format 
) const
+
+noexcept
+
+ +

Convert and Save image.

+

This function converts image to required format and saves image contents to disk. Type is extracted from provided file extension. If it is unknown, function fails. Supported types are: bmp, png, ppm, jpeg, tiff.

+
Parameters
+ + + +
[in]pathoutput file path with proper file extension.
[in]formatrequired image format.
+
+
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+
Note
Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Image::Error> fsdk::Image::saveToMemory (Image::Type type,
IArchivearchive,
fsdk::Image::ImageCompression additionalFlag = fsdk::Image::ImageCompression::IC_NO_COMPRESSION 
) const
+
+noexcept
+
+ +

Save image to memory buffer.

+

This function saves image contents to memory buffer (IArchive). Passed IArchvie will call setSizeHint for resize.

+
Parameters
+ + + + +
[in]Image::Typeformat used to encode.
[in]IArchiveto store contents of encoded image.
[in]additionalFlagadditional flag for saving of png or jpg image
+
+
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+
Note
Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Image::Error> fsdk::Image::saveToMemory (Image::Type type,
IArchivearchive,
const Format format 
) const
+
+noexcept
+
+ +

Convert and save image to memory buffer.

+

This function converts image to required format and saves image contents to memory buffer (IArchive). Passed IArchvie will call setSizeHint for resize.

+
Parameters
+ + + + +
[in]Image::Typeformat used to encode.
[in]IArchiveto store contents of encoded image.
[in]formatrequired image format.
+
+
+
Returns
Result with error code specified by Image::Error.
+
See Also
Result and Image::Error.
+
Note
Memory residence must be MemoryResidence::MemoryCPU.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::set (int width,
int height,
Format format,
const void * data,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an image with provided data. If current image is not empty and it's size and format match the provided ones, no memory reallocation is performed. Otherwise image is re-created to match requirements.

+
Parameters
+ + + + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]dataimage data.
[in]memoryresidence of a data pointer.
[in]deviceIdindex of a device where data pointer was allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+output image will have memory residence of the provided data pointer.
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+
Returns
true in case of success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FSDK_API Result<Error> fsdk::Image::set (int width,
int height,
Format format,
void * data,
bool copy,
MemoryResidence residence = MemoryResidence::MemoryCPU,
int deviceId = 0 
)
+
+noexcept
+
+ +

Initializes an image with provided data. If copy is true and if current image is not empty and it's size and format match the provided ones, no memory reallocation is performed. Otherwise image is re-created to match requirements. If copy is false (which is default) this will just reference the provided data.

+
Parameters
+ + + + + + + + +
[in]widthimage width.
[in]heightimage height.
[in]formatimage format.
[in]dataimage data.
[in]copywhether to copy or reference data.
[in]memoryresidence of a data pointer.
[in]deviceIdindex of a device where data pointer was allocated
+
+
+
Note
deviceId is ignored for residence = MemoryResidence::MemoryCPU
+
+output image will have memory residence of the provided data pointer.
+
+if memory allocation fails, no exception is thrown; function call results in empty image.
+
Returns
true in case of success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API Result<Error> fsdk::Image::set (const Imageother)
+
+noexcept
+
+ +

Initializes an image as a reference to an other image.

+
Parameters
+ + +
[in]otherother image.
+
+
+
Returns
true in case of success, false otherwise.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
FSDK_API Result<Error> fsdk::Image::set (const SubImagesubImage)
+
+noexcept
+
+ +

Initializes an image with contents of a sub image. Since sub images do not handle data life time, image contents are always copied.

+
Parameters
+ + +
[in]subImagesub image.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::Image::swap (Imageother)
+
+inlinenoexcept
+
+ +

Swap contents with another image.

+
Parameters
+ + +
[in,out]otherimage to swap with.
+
+
+ +
+
+

Member Data Documentation

+ +
+
+ + + + + +
+ + + + +
Format fsdk::Image::m_format
+
+protected
+
+ +

image format (

+
See Also
Format).
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_image.js b/doc/fsdk/html/structfsdk_1_1_image.js new file mode 100644 index 0000000..322b3ec --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_image.js @@ -0,0 +1,132 @@ +var structfsdk_1_1_image = +[ + [ "Error", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936", [ + [ "Ok", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aa60852f204ed8028c1c58808b746d115", null ], + [ "InvalidWidth", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a6518a24cb2d8166f5c57016e65e3f419", null ], + [ "InvalidHeight", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaff424fc1ea568827830b838a80cd934", null ], + [ "InvalidDataPtr", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a588c80ae8885b51a5f0700894da5affe", null ], + [ "InvalidDataSize", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a0a86fcdcc2094e925e3166b9710f8d82", null ], + [ "InvalidImage", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a107a93f5ad9b48f874341eaa0141e0f9", null ], + [ "InvalidArchive", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a538273d971a3da3f944bfb95091df5d8", null ], + [ "InvalidPath", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a5d0744802b24f44a161d350c25d76c7b", null ], + [ "InvalidType", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ac85f85f7c13ed006eed130ec183aa810", null ], + [ "InvalidFormat", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade236a235b4e8ffc9141676624753b2d", null ], + [ "InvalidBitmap", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936abcdbc5068527815bd978d3cbba5e7deb", null ], + [ "InvalidMemory", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a83fe3c82514cc399b416bbb9d25ac9a9", null ], + [ "InvalidConversion", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936aaf9d45225e9d3edf59f2fd40d4b9f157", null ], + [ "InvalidResidence", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a2a7695a194a2f785215c4ed058e2bf7b", null ], + [ "InvalidDevice", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a3634e01cc1296daece9832c5396808c2", null ], + [ "FailedToSave", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a70fa83b68f2d20d1c607a2864627f13d", null ], + [ "FailedToLoad", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a023fe093cb8dbc5a80d2a2259d4c97a5", null ], + [ "FailedToInitialize", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936ade906b82a6f70f5f75ea0a11da932a36", null ], + [ "ReleasedInOtherThread", "structfsdk_1_1_image.html#a7929a4eb6155bd9430dac56142672936a014e56b039fd19b57e203c1fb371f5ce", null ] + ] ], + [ "ImageCompression", "structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5d", [ + [ "IC_NO_COMPRESSION", "structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dab75738e569f17ad386d0ff4cb90eabb9", null ], + [ "IC_SMALL_COMPRESSION", "structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5dae811dec1e75f575972a667e83a23bd34", null ], + [ "IC_MEDIUM_COMPRESSION", "structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daf526f9c09cd1a065f528dc6518895615", null ], + [ "IC_HARD_COMPRESSION", "structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5da60cdeb7647e393444a05d358810293f5", null ], + [ "IC_BEST_COMPRESSION", "structfsdk_1_1_image.html#acb272c751b60925b57a543cf19f31a5daccd72f086a3257b06c12b790a683f2d6", null ] + ] ], + [ "MemoryResidence", "structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07", [ + [ "MemoryCPU", "structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a2795bef6531632efb72ad70348fb5993", null ], + [ "MemoryGPU", "structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07af9b0ab7ae4fae4c4b922abbce4b9bebf", null ], + [ "MemoryNPU", "structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a40657ac0e763be1c1a745957006c3555", null ], + [ "MemoryNPU_DPP", "structfsdk_1_1_image.html#abe735660a541cb213facb543b93f4e07a1359bce90afb193bac4435d19c8864dd", null ] + ] ], + [ "TargetDevice", "structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4", [ + [ "CPU", "structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4a2b55387dd066c5bac646ac61543d152d", null ], + [ "GPU", "structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4a52f9ec21735243ad9917cda3ca077d32", null ], + [ "NPU", "structfsdk_1_1_image.html#a8a60bf4ecd1f111e034ff9a8478e62f4a06ffe3e2e31d93153e443e4161294b99", null ] + ] ], + [ "Type", "structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7", [ + [ "BMP", "structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7aa5d5ca1447586e23dc011f8c0cc0a6db", null ], + [ "JPG", "structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a92769fe7c40229f4301d6125e0a9e928", null ], + [ "PNG", "structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a55505ba281b015ec31f03ccb151b2a34", null ], + [ "PPM", "structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a4bb1ebdeeb70354069bc644b9c94ee5f", null ], + [ "TIFF", "structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7ace0dbe5045edda1a0e9686ce899798ea", null ], + [ "Unknown", "structfsdk_1_1_image.html#ad7383fff1a8c54a0b2153ea475b607b7a88183b946cc5f0e8c96b2e66e1c74a7e", null ] + ] ], + [ "Image", "structfsdk_1_1_image.html#ad208540be1ae2fa9ca0ed192aee75182", null ], + [ "Image", "structfsdk_1_1_image.html#a624947f81acd14120076f42860e51611", null ], + [ "Image", "structfsdk_1_1_image.html#a348af5fca41e5b170c0487a055f6ebbb", null ], + [ "Image", "structfsdk_1_1_image.html#ac4d7421e28a9d81fed4de88dcc3fecf4", null ], + [ "Image", "structfsdk_1_1_image.html#a021abfa7a95a7d6a1e9f4edabf2043a2", null ], + [ "Image", "structfsdk_1_1_image.html#aac20796ff887ec564cee62c826374384", null ], + [ "Image", "structfsdk_1_1_image.html#a6c85de74e85305f06232bdfb49331e0e", null ], + [ "~Image", "structfsdk_1_1_image.html#a25d4c97bcd4ef0e980e195b51c1c7277", null ], + [ "clone", "structfsdk_1_1_image.html#a523b0c28a4003c75c3907d0c93110493", null ], + [ "convert", "structfsdk_1_1_image.html#ab0c8024817b8e634f5ec18f1a0f08916", null ], + [ "convert", "structfsdk_1_1_image.html#a566dd9391571379fed5e1da2ed9975c8", null ], + [ "convert", "structfsdk_1_1_image.html#a3ddea03d5ee948a5c2d0aa81a4fe8027", null ], + [ "convert", "structfsdk_1_1_image.html#a9a8a6abf162c095d6f1e62919cf4dabf", null ], + [ "convert", "structfsdk_1_1_image.html#a10e36f6ea8f5e293f7bd58658ecb1653", null ], + [ "create", "structfsdk_1_1_image.html#a1596737bcf2aea4a1c8fc336f6f1b182", null ], + [ "create", "structfsdk_1_1_image.html#aafa5e102bd9b4ccda1f827f1a12499db", null ], + [ "create", "structfsdk_1_1_image.html#a99fd0c30cf7d2fd3c26ff6f1771a356b", null ], + [ "create", "structfsdk_1_1_image.html#aeb3e38807e56a77419a073eea1e6d2ec", null ], + [ "equalStrong", "structfsdk_1_1_image.html#a22f36f59a67cc867a96686dcf18b8f6d", null ], + [ "equalWeak", "structfsdk_1_1_image.html#a386e2313d25f5f3107e1a47a347e04d8", null ], + [ "extract", "structfsdk_1_1_image.html#add9bb121cb86eb35e669b6321a267926", null ], + [ "extract", "structfsdk_1_1_image.html#a3f9f9c61324959b028b645b0a873ae21", null ], + [ "extract", "structfsdk_1_1_image.html#a4cd2e1c9c500087bcfb65f750cef09e4", null ], + [ "extract", "structfsdk_1_1_image.html#a01e37e8244745a1645c7f44356c98cfa", null ], + [ "getAspectRatio", "structfsdk_1_1_image.html#a28a2f942184d21b0e4270c30adef7916", null ], + [ "getData", "structfsdk_1_1_image.html#a177197485010936725923806ed693187", null ], + [ "getData", "structfsdk_1_1_image.html#adb87ac4315e08d3474b87dd1819748d5", null ], + [ "getDataAs", "structfsdk_1_1_image.html#ab0f6a417fa00693acfc22af05fdaddaf", null ], + [ "getDataAs", "structfsdk_1_1_image.html#a2ffa58c82ae839a8804721def179ccb6", null ], + [ "getDataSize", "structfsdk_1_1_image.html#ad7702083887209a2c4e188b500215e96", null ], + [ "getDataSize", "structfsdk_1_1_image.html#a494e5a70e35f8a9965c9c655faf71694", null ], + [ "getDeviceId", "structfsdk_1_1_image.html#a265dd8891566653b2bc83fc6de58f568", null ], + [ "getFormat", "structfsdk_1_1_image.html#a3a096c49b65cb9b3ddc864a1fe0bbc5f", null ], + [ "getHeight", "structfsdk_1_1_image.html#ad5823d56f2b75a94424adef45c9d23c2", null ], + [ "getMemoryResidence", "structfsdk_1_1_image.html#a7df80646fa1526cfdb4d767a84acf6a0", null ], + [ "getRect", "structfsdk_1_1_image.html#a5841db4b37f8e3f633f9ee31e29e28b6", null ], + [ "getRefCount", "structfsdk_1_1_image.html#a48773dce5d77377aa6415084ff2a612f", null ], + [ "getRowSize", "structfsdk_1_1_image.html#a02d33587be44369699ff0c77bf918f7e", null ], + [ "getScanLine", "structfsdk_1_1_image.html#a81b837c8ebacc00461ced25cc6299176", null ], + [ "getScanLine", "structfsdk_1_1_image.html#aaf7e663816bd542c1f80d42e29c22014", null ], + [ "getScanLineAs", "structfsdk_1_1_image.html#afb6c77133c3cbe2f5f7825286096ec46", null ], + [ "getScanLineAs", "structfsdk_1_1_image.html#adb2d3b84e0b3c81a8f1528e884fa655a", null ], + [ "getSize", "structfsdk_1_1_image.html#ac38de3f8f7136d3011bc49b399efcd5a", null ], + [ "getWidth", "structfsdk_1_1_image.html#a6cb445da4dc6f7949c992f6bdcd6787f", null ], + [ "isNull", "structfsdk_1_1_image.html#a935733a13b5a2d62758f63a0fa2580e9", null ], + [ "isSharedWith", "structfsdk_1_1_image.html#a33771e3d4141977d08be1302020ff6cd", null ], + [ "isValid", "structfsdk_1_1_image.html#a42bb8bc044a084b7779760c20701fa0d", null ], + [ "load", "structfsdk_1_1_image.html#a8f17c7659871533d5eed712b3967944b", null ], + [ "load", "structfsdk_1_1_image.html#a50d05981de264e977f4fbd90990f084a", null ], + [ "loadFromMemory", "structfsdk_1_1_image.html#a824376f7ac69c83fc8026cf38a235806", null ], + [ "loadFromMemory", "structfsdk_1_1_image.html#a27b9eae4a7a4bf22182bb98debf8c45d", null ], + [ "loadFromMemoryOfType", "structfsdk_1_1_image.html#a7d560518bf9a96c0fc8795edb4374a31", null ], + [ "loadFromMemoryOfType", "structfsdk_1_1_image.html#ae7015b5e7e8c21af7fb23a93a1235301", null ], + [ "map", "structfsdk_1_1_image.html#ae05f21724f71ad844532ec46310bd252", null ], + [ "map", "structfsdk_1_1_image.html#ac085efbd15cc73fea521d9067d551d61", null ], + [ "map", "structfsdk_1_1_image.html#aa4c32526ccd387fb89500e766ae3ce7f", null ], + [ "map", "structfsdk_1_1_image.html#a5e5e5885d7e3e85d8d07b2c5a84937c5", null ], + [ "operator bool", "structfsdk_1_1_image.html#a94659c183621f3be301832e3673936c6", null ], + [ "operator=", "structfsdk_1_1_image.html#a6e64bb21715b54c2b208c370d4c6bb2d", null ], + [ "operator=", "structfsdk_1_1_image.html#acbc748fe0bdd194deb00b26e06a51ed9", null ], + [ "ownsData", "structfsdk_1_1_image.html#adf5ed625bd338c55677dee58043de494", null ], + [ "putPixel", "structfsdk_1_1_image.html#a8bce66953fc250acf5c729d5168d6310", null ], + [ "release", "structfsdk_1_1_image.html#a32f3e84a17a9e47a516d2f9cef50c040", null ], + [ "rescale", "structfsdk_1_1_image.html#a6ed2d1d79094102bed624f40f14f4acb", null ], + [ "reset", "structfsdk_1_1_image.html#aae4044994b8cebfdd3f94e13606b9b07", null ], + [ "retain", "structfsdk_1_1_image.html#aadc0669fe4f2632fb259d2cba1a06738", null ], + [ "save", "structfsdk_1_1_image.html#ae3bd0f9b7e1dd8871e7110d566c0eb3b", null ], + [ "save", "structfsdk_1_1_image.html#a9551bec72e3e4798bce2ddd116b53f6e", null ], + [ "saveToMemory", "structfsdk_1_1_image.html#a394ec678da307c9f6f73b673567bc9ae", null ], + [ "saveToMemory", "structfsdk_1_1_image.html#a4031cca84864d83a5361968eaec0809e", null ], + [ "set", "structfsdk_1_1_image.html#ae43bcd728b9b3389a5d45e20dee1205d", null ], + [ "set", "structfsdk_1_1_image.html#a85ddf384c606013f7c2aa2815eaeccf4", null ], + [ "set", "structfsdk_1_1_image.html#af449e5eaada6b033205fec916c758aff", null ], + [ "set", "structfsdk_1_1_image.html#a62466dd45bd37cdd3c73bdeb7b268b20", null ], + [ "swap", "structfsdk_1_1_image.html#a6cc848e22d99f4d2d8b34d240c0bba47", null ], + [ "m_data", "structfsdk_1_1_image.html#a378b11d6fc5fe3baa1f2e1a6fc0c7e68", null ], + [ "m_deviceId", "structfsdk_1_1_image.html#a8435a72e723aa1b3c818867457276c9a", null ], + [ "m_format", "structfsdk_1_1_image.html#aefe4793bcc5d38d828d5ead04cb4f75e", null ], + [ "m_height", "structfsdk_1_1_image.html#aa4dee2d753540eb26aac388ed8d94ce9", null ], + [ "m_ref", "structfsdk_1_1_image.html#a4309931e1a59c9b88469a5633df36769", null ], + [ "m_residence", "structfsdk_1_1_image.html#a39ddccc55b57eb96c8140cd6e869aab4", null ], + [ "m_width", "structfsdk_1_1_image.html#a32c6a6ef3700e9babb0943ce4aac6155", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_landmarks-members.html b/doc/fsdk/html/structfsdk_1_1_landmarks-members.html new file mode 100644 index 0000000..aadeabd --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_landmarks-members.html @@ -0,0 +1,136 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Landmarks< numOfLandmarks > Member List
+
+
+ +

This is the complete list of members for fsdk::Landmarks< numOfLandmarks >, including all inherited members.

+ + + + + + + + + +
landmarkCount (defined in fsdk::Landmarks< numOfLandmarks >)fsdk::Landmarks< numOfLandmarks >static
landmarksfsdk::Landmarks< numOfLandmarks >
Landmarks()=default (defined in fsdk::Landmarks< numOfLandmarks >)fsdk::Landmarks< numOfLandmarks >
Landmarks(const Landmarks &cp) (defined in fsdk::Landmarks< numOfLandmarks >)fsdk::Landmarks< numOfLandmarks >inline
Landmarks(Landmarks &&mv) (defined in fsdk::Landmarks< numOfLandmarks >)fsdk::Landmarks< numOfLandmarks >inline
operator=(const Landmarks &cp) (defined in fsdk::Landmarks< numOfLandmarks >)fsdk::Landmarks< numOfLandmarks >inline
operator=(Landmarks &&mv) (defined in fsdk::Landmarks< numOfLandmarks >)fsdk::Landmarks< numOfLandmarks >inline
~Landmarks()=default (defined in fsdk::Landmarks< numOfLandmarks >)fsdk::Landmarks< numOfLandmarks >
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_landmarks.html b/doc/fsdk/html/structfsdk_1_1_landmarks.html new file mode 100644 index 0000000..deb2061 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_landmarks.html @@ -0,0 +1,176 @@ + + + + + + +Face Engine SDK: fsdk::Landmarks< numOfLandmarks > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Landmarks< numOfLandmarks > Struct Template Reference
+
+
+ +

Face landmarks template structure. + More...

+ +

#include <Landmarks.h>

+ + + + + + + + + + +

+Public Member Functions

Landmarks (const Landmarks &cp)
 
Landmarks (Landmarks &&mv)
 
+Landmarksoperator= (const Landmarks &cp)
 
+Landmarksoperator= (Landmarks &&mv)
 
+ + + + +

+Public Attributes

+Landmark landmarks [landmarkCount]
 Detected landmarks.
 
+ + + +

+Static Public Attributes

+static constexpr uint64_t landmarkCount = numOfLandmarks
 
+

Detailed Description

+

template<size_t numOfLandmarks>
+struct fsdk::Landmarks< numOfLandmarks >

+ +

Face landmarks template structure.

+

Face detector is capable of face landmarks detection. Contain's not fixed, but provided at compile time amount of landmarks

+
Note
You can only use
+
See Also
Landmarks5Indexes to access landmarks of this structure if it's filled by detector and is of size 5
+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_landmarks.js b/doc/fsdk/html/structfsdk_1_1_landmarks.js new file mode 100644 index 0000000..df77f48 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_landmarks.js @@ -0,0 +1,10 @@ +var structfsdk_1_1_landmarks = +[ + [ "Landmarks", "structfsdk_1_1_landmarks.html#a871cb01ce3bfa0389ed0b7a7c84c8670", null ], + [ "~Landmarks", "structfsdk_1_1_landmarks.html#a96d14717c8f959aabaf27520f231a0c4", null ], + [ "Landmarks", "structfsdk_1_1_landmarks.html#a4906dfbf4268044bda3d79a1e2ea1e5b", null ], + [ "Landmarks", "structfsdk_1_1_landmarks.html#a4335bbf6079c27b2d33623959e8e4e68", null ], + [ "operator=", "structfsdk_1_1_landmarks.html#a0d1913c01d8366233bcb3087517c9228", null ], + [ "operator=", "structfsdk_1_1_landmarks.html#aef2cf9531163b1a4d6b86300f1b4d892", null ], + [ "landmarks", "structfsdk_1_1_landmarks.html#a9ef9034a3e49efa99333b0b01d707fd7", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes-members.html b/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes-members.html new file mode 100644 index 0000000..9fbe915 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes-members.html @@ -0,0 +1,134 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes.html b/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes.html new file mode 100644 index 0000000..82c2624 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes.html @@ -0,0 +1,187 @@ + + + + + + +Face Engine SDK: fsdk::Landmarks5Indexes Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Landmarks5Indexes Struct Reference
+
+
+ +

Enumerates detected landmarks. Only valid for template with 5 landmarks. + More...

+ +

#include <Landmarks.h>

+ + + + +

+Public Types

enum  {
+  LandmarkLeftEye = 0, +LandmarkRightEye, +LandmarkNose, +LandmarkMouthLeftCorner, +
+  LandmarkMouthRightCorner, +LandmarkCount +
+ }
 
+

Detailed Description

+

Enumerates detected landmarks. Only valid for template with 5 landmarks.

+

Member Enumeration Documentation

+ +
+
+ + + + +
anonymous enum
+
+ + + + + + + +
Enumerator
LandmarkLeftEye  +

Left eye center.

+
LandmarkRightEye  +

Right eye center.

+
LandmarkNose  +

Nose tip. Same as FL_NOSE_TIP.

+
LandmarkMouthLeftCorner  +

Mouth left corner. Same as FL_MOUTH_LEFT_CORNER.

+
LandmarkMouthRightCorner  +

Mouth right corner. Same as FL_MOUTH_RIGHT_CORENR.

+
LandmarkCount  +

Not a landmark; counts number of detected landmarks.

+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes.js b/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes.js new file mode 100644 index 0000000..438bbd7 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_landmarks5_indexes.js @@ -0,0 +1,9 @@ +var structfsdk_1_1_landmarks5_indexes = +[ + [ "LandmarkLeftEye", "structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7ad3566c44c6de999dfc157bc178093e94", null ], + [ "LandmarkRightEye", "structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aca84a9be871065c03172c26db6fc025c", null ], + [ "LandmarkNose", "structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a572a622e295b81f5ee4578e7e290aa39", null ], + [ "LandmarkMouthLeftCorner", "structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a8e22313b8661da3a61347417a8e61ca6", null ], + [ "LandmarkMouthRightCorner", "structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7a69e618c0af0d1130966997ad32b5e4b0", null ], + [ "LandmarkCount", "structfsdk_1_1_landmarks5_indexes.html#a9eae145170941117cc76738a0c0a5ff7aec5fb21288f98e092c4fb19e9fd9dc3c", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_launch_options-members.html b/doc/fsdk/html/structfsdk_1_1_launch_options-members.html new file mode 100644 index 0000000..40e2a9e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_launch_options-members.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::LaunchOptions Member List
+
+
+ +

This is the complete list of members for fsdk::LaunchOptions, including all inherited members.

+ + + + + +
defaultDeviceId (defined in fsdk::LaunchOptions)fsdk::LaunchOptionsstatic
deviceClass (defined in fsdk::LaunchOptions)fsdk::LaunchOptions
deviceId (defined in fsdk::LaunchOptions)fsdk::LaunchOptions
runConcurrently (defined in fsdk::LaunchOptions)fsdk::LaunchOptions
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_launch_options.html b/doc/fsdk/html/structfsdk_1_1_launch_options.html new file mode 100644 index 0000000..6b074e4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_launch_options.html @@ -0,0 +1,159 @@ + + + + + + +Face Engine SDK: fsdk::LaunchOptions Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::LaunchOptions Struct Reference
+
+
+ +

LaunchOptions struct configures inference options on per-estimator/detector basis, giving user fine grained control over cpu/gpu utilisation. + More...

+ +

#include <LaunchOptions.h>

+ + + + + + + + +

+Public Attributes

+DeviceClass deviceClass = DeviceClass::CPU
 
+bool runConcurrently = true
 
+int32_t deviceId = defaultDeviceId
 
+ + + +

+Static Public Attributes

+static constexpr int32_t defaultDeviceId = -1
 
+

Detailed Description

+

LaunchOptions struct configures inference options on per-estimator/detector basis, giving user fine grained control over cpu/gpu utilisation.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_launch_options.js b/doc/fsdk/html/structfsdk_1_1_launch_options.js new file mode 100644 index 0000000..062bd49 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_launch_options.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_launch_options = +[ + [ "deviceClass", "structfsdk_1_1_launch_options.html#adfdb2abd6bba22487bfe98e441961457", null ], + [ "deviceId", "structfsdk_1_1_launch_options.html#af1078c0dbfdb3d6e1ff1686feea2c589", null ], + [ "runConcurrently", "structfsdk_1_1_launch_options.html#a46de29df294360c9e7b278129b8d9c02", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation-members.html b/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation-members.html new file mode 100644 index 0000000..baaf9df --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation-members.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html b/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html new file mode 100644 index 0000000..6e0d47e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html @@ -0,0 +1,197 @@ + + + + + + +Face Engine SDK: fsdk::LivenessOneShotRGBEstimation Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::LivenessOneShotRGBEstimation Struct Reference
+
+
+ +

Liveness OneShotRGB estimation structure. + More...

+ +

#include <ILivenessOneShotRGBEstimator.h>

+ + + + +

+Public Types

enum  State { State::Alive = 0, +State::Fake, +State::Unknown + }
 
+ + + + + + + + + + +

+Public Attributes

+float score
 Estimation score.
 
+State state
 Liveness status.
 
+float qualityScore
 Liveness quality score.
 
+

Detailed Description

+

Liveness OneShotRGB estimation structure.

+
Note
estimation score normalized between 0.0 and 1.0, where 1.0 equals to 100% confidence that person on image is alive, and 0.0 equals to 0%.
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum fsdk::LivenessOneShotRGBEstimation::State
+
+strong
+
+ + + + +
Enumerator
Alive  +

The person on image is real.

+
Fake  +

The person on image is fake (photo, printed image)

+
Unknown  +

The liveness status of person on image is Unknown.

+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation.js b/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation.js new file mode 100644 index 0000000..2ba96d4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_liveness_one_shot_r_g_b_estimation.js @@ -0,0 +1,11 @@ +var structfsdk_1_1_liveness_one_shot_r_g_b_estimation = +[ + [ "State", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56", [ + [ "Alive", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56abd9f7c5d6ab4201b138a3e51dab7056f", null ], + [ "Fake", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a52a96508c39536f0c2ef43b19a0a1e0e", null ], + [ "Unknown", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a0a15d2c39c2975369d9ad85b53392f56a88183b946cc5f0e8c96b2e66e1c74a7e", null ] + ] ], + [ "qualityScore", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#a2454222f5dc14f519d571798ad0311a8", null ], + [ "score", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#ab04c44ea4803007fed4af1267fb5b729", null ], + [ "state", "structfsdk_1_1_liveness_one_shot_r_g_b_estimation.html#aeced46122e807a731b03b28f345f211f", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_matching_result-members.html b/doc/fsdk/html/structfsdk_1_1_matching_result-members.html new file mode 100644 index 0000000..ba76454 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_matching_result-members.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::MatchingResult Member List
+
+
+ +

This is the complete list of members for fsdk::MatchingResult, including all inherited members.

+ + + + + +
distancefsdk::MatchingResult
MatchingResult(void) noexceptfsdk::MatchingResultinline
MatchingResult(float distance, float similarity) noexceptfsdk::MatchingResultinline
similarityfsdk::MatchingResult
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_matching_result.html b/doc/fsdk/html/structfsdk_1_1_matching_result.html new file mode 100644 index 0000000..b7af13f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_matching_result.html @@ -0,0 +1,215 @@ + + + + + + +Face Engine SDK: fsdk::MatchingResult Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::MatchingResult Struct Reference
+
+
+ +

Result of descriptor matching. + More...

+ +

#include <IDescriptor.h>

+
+Inheritance diagram for fsdk::MatchingResult:
+
+
+ + +fsdk::SearchResult + +
+ + + + + + + + +

+Public Member Functions

MatchingResult (void) noexcept
 Initializes result to default values.
 
 MatchingResult (float distance, float similarity) noexcept
 Initializes result. More...
 
+ + + + + + + +

+Public Attributes

+float distance
 distance between descriptor vectors.
 
+float similarity
 similarity (normalized in [0..1] range).
 
+

Detailed Description

+

Result of descriptor matching.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::MatchingResult::MatchingResult (float distance,
float similarity 
)
+
+inlinenoexcept
+
+ +

Initializes result.

+
Parameters
+ + + +
[in]distancedistance value.
[in]similaritysimilarity value.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_matching_result.js b/doc/fsdk/html/structfsdk_1_1_matching_result.js new file mode 100644 index 0000000..8ffff0b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_matching_result.js @@ -0,0 +1,7 @@ +var structfsdk_1_1_matching_result = +[ + [ "MatchingResult", "structfsdk_1_1_matching_result.html#a225957f44be2294e809c2dd59ad728ed", null ], + [ "MatchingResult", "structfsdk_1_1_matching_result.html#a913ed5d074a8c817b3a1c59e7759e526", null ], + [ "distance", "structfsdk_1_1_matching_result.html#a51e3137806e9938aa3b70557cbf1628b", null ], + [ "similarity", "structfsdk_1_1_matching_result.html#ae8b080ed7da80dd6848de80be9ffce51", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_matching_result.png b/doc/fsdk/html/structfsdk_1_1_matching_result.png new file mode 100644 index 0000000..6929002 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_matching_result.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation-members.html b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation-members.html new file mode 100644 index 0000000..2592b09 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation-members.html @@ -0,0 +1,135 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation.html b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation.html new file mode 100644 index 0000000..62a2f52 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation.html @@ -0,0 +1,238 @@ + + + + + + +Face Engine SDK: fsdk::MedicalMaskEstimation Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::MedicalMaskEstimation Struct Reference
+
+
+ +

MedicalMask estimator output structure. This structure contains the result of estimation (. + More...

+ +

#include <IMedicalMaskEstimator.h>

+ + + + + +

+Public Member Functions

float getScore (DetailedMaskType type) const
 Returns score of required detailed mask type. More...
 
+ + + + + + + + + + + + + + + + + + + +

+Public Attributes

MedicalMask result
 estimation result ( More...
 
DetailedMaskType maskType
 detailed type ( More...
 
+float maskScore
 medical mask is on the face score
 
+float noMaskScore
 no medical mask on the face score
 
+float occludedFaceScore
 face is occluded by something score
 
+float scores [static_cast< int >(DetailedMaskType::Count)]
 detailed estimation scores
 
+

Detailed Description

+

MedicalMask estimator output structure. This structure contains the result of estimation (.

+
See Also
MedicalMask enum) and probability scores for each possible estimation result. Probability scores are defined in [0,1] range.
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
float fsdk::MedicalMaskEstimation::getScore (DetailedMaskType type) const
+
+inline
+
+ +

Returns score of required detailed mask type.

+
Parameters
+ + +
[in]typedetailed mask type.
+
+
+
See Also
DetailedMaskType for more info.
+ +
+
+

Member Data Documentation

+ +
+
+ + + + +
DetailedMaskType fsdk::MedicalMaskEstimation::maskType
+
+ +

detailed type (

+
See Also
DetailedMaskType enum)
+ +
+
+ +
+
+ + + + +
MedicalMask fsdk::MedicalMaskEstimation::result
+
+ +

estimation result (

+
See Also
MedicalMask enum)
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation.js b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation.js new file mode 100644 index 0000000..dcb1c0e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation.js @@ -0,0 +1,10 @@ +var structfsdk_1_1_medical_mask_estimation = +[ + [ "getScore", "structfsdk_1_1_medical_mask_estimation.html#aaf03553b09b66a4fc9623c85246d6d26", null ], + [ "maskScore", "structfsdk_1_1_medical_mask_estimation.html#ad47aa0e8d3c14f07771adf4c6eb72624", null ], + [ "maskType", "structfsdk_1_1_medical_mask_estimation.html#a54b478e726656c252899b14719266dff", null ], + [ "noMaskScore", "structfsdk_1_1_medical_mask_estimation.html#aaeaee6d859c996eaf743b6bd79a0309d", null ], + [ "occludedFaceScore", "structfsdk_1_1_medical_mask_estimation.html#acc4a4f5b380c5e6fb2bfcc7081a60c49", null ], + [ "result", "structfsdk_1_1_medical_mask_estimation.html#a5e6d266d2125862f965e1067e92b7b90", null ], + [ "scores", "structfsdk_1_1_medical_mask_estimation.html#add99f3ecb4dbac4955949273cc9aa31a", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended-members.html b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended-members.html new file mode 100644 index 0000000..d8ed04a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended-members.html @@ -0,0 +1,133 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended.html b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended.html new file mode 100644 index 0000000..3305eb0 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended.html @@ -0,0 +1,179 @@ + + + + + + +Face Engine SDK: fsdk::MedicalMaskEstimationExtended Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::MedicalMaskEstimationExtended Struct Reference
+
+
+ +

MedicalMask estimator output structure. This structure contains the result of estimation (. + More...

+ +

#include <IMedicalMaskEstimator.h>

+ + + + + + + + + + + + + + + + + +

+Public Attributes

MedicalMaskExtended result
 estimation result ( More...
 
+float maskScore
 medical mask is on the face score
 
+float noMaskScore
 no medical mask on the face score
 
+float maskNotInPlace
 mask is not on the right place
 
+float occludedFaceScore
 face is occluded by something score
 
+

Detailed Description

+

MedicalMask estimator output structure. This structure contains the result of estimation (.

+
See Also
MedicalMaskExtended enum) and probability scores for each possible estimation result. Probability scores are defined in [0,1] range.
+

Member Data Documentation

+ +
+
+ + + + +
MedicalMaskExtended fsdk::MedicalMaskEstimationExtended::result
+
+ +

estimation result (

+
See Also
MedicalMaskExtended enum)
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended.js b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended.js new file mode 100644 index 0000000..c3992c3 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_medical_mask_estimation_extended.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_medical_mask_estimation_extended = +[ + [ "maskNotInPlace", "structfsdk_1_1_medical_mask_estimation_extended.html#aa6a5ed18f25e9998ad1dd2fc280a3121", null ], + [ "maskScore", "structfsdk_1_1_medical_mask_estimation_extended.html#a6c75dab32127e86880e8dd9726a9cd7f", null ], + [ "noMaskScore", "structfsdk_1_1_medical_mask_estimation_extended.html#a03c165564de35173c4ff7f861ab52df4", null ], + [ "occludedFaceScore", "structfsdk_1_1_medical_mask_estimation_extended.html#ad7e48aec06e8b0b3d7ebdced0451ff59", null ], + [ "result", "structfsdk_1_1_medical_mask_estimation_extended.html#a2934d2e1c5106b25b2b58495016afc3e", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_multi_error-members.html b/doc/fsdk/html/structfsdk_1_1_multi_error-members.html new file mode 100644 index 0000000..84fb24a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_multi_error-members.html @@ -0,0 +1,132 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::MultiError< E0, E1 > Member List
+
+
+ +

This is the complete list of members for fsdk::MultiError< E0, E1 >, including all inherited members.

+ + + + + +
E0Type typedef (defined in fsdk::MultiError< E0, E1 >)fsdk::MultiError< E0, E1 >
E1Type typedef (defined in fsdk::MultiError< E0, E1 >)fsdk::MultiError< E0, E1 >
m_first (defined in fsdk::MultiError< E0, E1 >)fsdk::MultiError< E0, E1 >
m_second (defined in fsdk::MultiError< E0, E1 >)fsdk::MultiError< E0, E1 >
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_multi_error.html b/doc/fsdk/html/structfsdk_1_1_multi_error.html new file mode 100644 index 0000000..5744a98 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_multi_error.html @@ -0,0 +1,163 @@ + + + + + + +Face Engine SDK: fsdk::MultiError< E0, E1 > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::MultiError< E0, E1 > Struct Template Reference
+
+
+ +

An error structure designed for functions which can return errors from different enum classes. + More...

+ +

#include <MultiError.h>

+ + + + + + +

+Public Types

+using E0Type = E0
 
+using E1Type = E1
 
+ + + + + +

+Public Attributes

+E0 m_first
 
+E1 m_second
 
+

Detailed Description

+

template<typename E0, typename E1>
+struct fsdk::MultiError< E0, E1 >

+ +

An error structure designed for functions which can return errors from different enum classes.

+

The order of isOk() check and toString() returns should be specified via ErrorTraits structure. ErrorTraits for additional information.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_multi_error.js b/doc/fsdk/html/structfsdk_1_1_multi_error.js new file mode 100644 index 0000000..eb51671 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_multi_error.js @@ -0,0 +1,7 @@ +var structfsdk_1_1_multi_error = +[ + [ "E0Type", "structfsdk_1_1_multi_error.html#a996686c502812882193802a8febe652e", null ], + [ "E1Type", "structfsdk_1_1_multi_error.html#af1c36dc424f0b5ff4555dc45fca0e5a4", null ], + [ "m_first", "structfsdk_1_1_multi_error.html#a3586c7e6ebbd127dfd608cda93dbd089", null ], + [ "m_second", "structfsdk_1_1_multi_error.html#aa8b576ddabb79c9ea03ea71914366a34", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_quality-members.html b/doc/fsdk/html/structfsdk_1_1_quality-members.html new file mode 100644 index 0000000..540791d --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_quality-members.html @@ -0,0 +1,133 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Quality Member List
+
+
+ +

This is the complete list of members for fsdk::Quality, including all inherited members.

+ + + + + + +
blur (defined in fsdk::Quality)fsdk::Quality
dark (defined in fsdk::Quality)fsdk::Quality
getQuality() const noexceptfsdk::Qualityinline
gray (defined in fsdk::Quality)fsdk::Quality
light (defined in fsdk::Quality)fsdk::Quality
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_quality.html b/doc/fsdk/html/structfsdk_1_1_quality.html new file mode 100644 index 0000000..dc43c17 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_quality.html @@ -0,0 +1,192 @@ + + + + + + +Face Engine SDK: fsdk::Quality Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Quality Struct Reference
+
+
+ +

Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings: + More...

+ +

#include <IQualityEstimator.h>

+ + + + +

+Public Member Functions

float getQuality () const noexcept
 
+ + + + + + + + + +

+Public Attributes

+float light
 
+float dark
 
+float gray
 
+float blur
 
+

Detailed Description

+

Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:

+
    +
  • light: image overlighting degree. 1 - ok, 0 - overlighted;
  • +
  • dark: image darkness degree. 1 - ok, 0 - too dark;
  • +
  • gray: image grayness degree 1 - ok, 0 - too gray;
  • +
  • blur: image blur degree. 1 - ok, 0 - too blured.
  • +
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
float fsdk::Quality::getQuality () const
+
+inlinenoexcept
+
+
Returns
complex estimation of quality (minimin of flor estimations). 0 - low quality, 1 - high quality.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_quality.js b/doc/fsdk/html/structfsdk_1_1_quality.js new file mode 100644 index 0000000..55ab7a4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_quality.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_quality = +[ + [ "getQuality", "structfsdk_1_1_quality.html#a5f2db7a08a31404d5c96f3d0424de789", null ], + [ "blur", "structfsdk_1_1_quality.html#a4f47d64e029eb530eca15364973efe69", null ], + [ "dark", "structfsdk_1_1_quality.html#aa1af5a8820579a94eb9f15836918e9b8", null ], + [ "gray", "structfsdk_1_1_quality.html#a559e50382a6d41b92b4634d602e12ab7", null ], + [ "light", "structfsdk_1_1_quality.html#a6749af7478c92099f878034c49834fab", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_ref-members.html b/doc/fsdk/html/structfsdk_1_1_ref-members.html new file mode 100644 index 0000000..6f450b4 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_ref-members.html @@ -0,0 +1,160 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Ref< T > Member List
+
+
+ +

This is the complete list of members for fsdk::Ref< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
acquire(T *ptr) noexceptfsdk::Ref< T >inline
as() const noexceptfsdk::Ref< T >inline
assign(T *ptr) noexceptfsdk::Ref< T >inline
get() const noexceptfsdk::RefBase< T >inline
getInitReference() noexceptfsdk::Ref< T >inline
isExpired() const noexceptfsdk::RefBase< T >inline
isNull() const noexceptfsdk::RefBase< T >inline
isUnique() const noexceptfsdk::RefBase< T >inline
m_ptrfsdk::RefBase< T >protected
make_ref(T *ptr) noexceptfsdk::Ref< T >inline
operator bool() const noexceptfsdk::RefBase< T >inline
operator T *() const noexceptfsdk::RefBase< T >inline
operator!=(const Ref &other) const noexceptfsdk::Ref< T >inline
fsdk::RefBase::operator!=(const RefBase &other) const noexceptfsdk::RefBase< T >inline
operator*() const noexceptfsdk::RefBase< T >inline
operator->() const noexceptfsdk::Ref< T >inline
operator=(const Ref &other) noexceptfsdk::Ref< T >inline
operator=(const Ref< D > &other) noexceptfsdk::Ref< T >inline
operator=(T *ptr) noexceptfsdk::Ref< T >inline
operator=(std::nullptr_t) noexceptfsdk::Ref< T >inline
operator==(const Ref &other) const noexceptfsdk::Ref< T >inline
fsdk::RefBase::operator==(const RefBase &other) const noexceptfsdk::RefBase< T >inline
Ref() noexcept=defaultfsdk::Ref< T >
Ref(std::nullptr_t) noexceptfsdk::Ref< T >inline
Ref(T *ptr) noexceptfsdk::Ref< T >inlineexplicit
Ref(const Ref &other)fsdk::Ref< T >inline
Ref(const Ref< D > &other)fsdk::Ref< T >inlineexplicit
RefBase() noexcept=defaultfsdk::RefBase< T >
RefBase(T *ptr) noexceptfsdk::RefBase< T >inlineexplicit
reset() noexceptfsdk::Ref< T >inline
set(T *ptr) noexceptfsdk::RefBase< T >inline
~Ref() noexceptfsdk::Ref< T >inline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_ref.html b/doc/fsdk/html/structfsdk_1_1_ref.html new file mode 100644 index 0000000..81c29a9 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_ref.html @@ -0,0 +1,784 @@ + + + + + + +Face Engine SDK: fsdk::Ref< T > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Ref< T > Struct Template Reference
+
+
+ +

Smart pointer for reference counted objects. + More...

+ +

#include <Ref.h>

+
+Inheritance diagram for fsdk::Ref< T >:
+
+
+ + +fsdk::RefBase< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Ref () noexcept=default
 Constructor. Initializes object pointer to nullptr.
 
Ref (std::nullptr_t) noexcept
 Initializes object pointer to nullptr.
 
 Ref (T *ptr) noexcept
 Initializes object pointer with ptr and retains a reference. More...
 
 Ref (const Ref &other)
 Initializes object pointer with other and retains a reference. More...
 
template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type>
 Ref (const Ref< D > &other)
 Initializes object pointer with other and retains a reference. More...
 
~Ref () noexcept
 Releases reference being held (if any).
 
T * operator-> () const noexcept
 Access pointer. More...
 
T ** getInitReference () noexcept
 Access pointer for initialization. More...
 
bool operator== (const Ref &other) const noexcept
 Check if two refs are the same. More...
 
bool operator!= (const Ref &other) const noexcept
 Check if two refs are not the same. More...
 
Refoperator= (const Ref &other) noexcept
 Assign a strong reference. More...
 
template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type>
Refoperator= (const Ref< D > &other) noexcept
 Assign a strong reference. More...
 
Refoperator= (T *ptr) noexcept
 Assign a raw pointer. More...
 
Refoperator= (std::nullptr_t) noexcept
 Assign a nullptr_t. More...
 
Refassign (T *ptr) noexcept
 Assign an object. Presumes shared ownership, increases reference count. More...
 
Refacquire (T *ptr) noexcept
 Acquire ownership of the object. More...
 
Refmake_ref (T *ptr) noexcept
 Create ref without acquiring ownership. More...
 
+T * reset () noexcept
 Reset reference counted object and assign nullptr to the pointer.
 
template<typename S >
Ref< S > as () const noexcept
 Make smart reference with relative type. More...
 
- Public Member Functions inherited from fsdk::RefBase< T >
RefBase () noexcept=default
 Initializes object pointer to nullptr.
 
 RefBase (T *ptr) noexcept
 Initializes object pointer with ptr. More...
 
 operator T * () const noexcept
 Get raw object pointer. More...
 
T & operator* () const noexcept
 Dereference operator. More...
 
 operator bool () const noexcept
 Implicit cast to bool. More...
 
bool operator== (const RefBase &other) const noexcept
 Check if two refs are the same. More...
 
bool operator!= (const RefBase &other) const noexcept
 Check if two refs are not the same. More...
 
bool isNull () const noexcept
 Check for nullptr. More...
 
bool isExpired () const noexcept
 Check is object is dead. More...
 
bool isUnique () const noexcept
 Check if object has only one strong reference. More...
 
T * get () const noexcept
 Get current raw object pointer. More...
 
void set (T *ptr) noexcept
 Replace object pointer without any checks or reference management. More...
 
+ + + + + +

+Additional Inherited Members

- Protected Attributes inherited from fsdk::RefBase< T >
+T * m_ptr {nullptr}
 Raw pointer.
 
+

Detailed Description

+

template<typename T>
+struct fsdk::Ref< T >

+ +

Smart pointer for reference counted objects.

+

Automatically calls retain/release and provides safety assertions.

+
Template Parameters
+ + +
Tobject interface (must be derived from IRefCounted)
+
+
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
fsdk::Ref< T >::Ref (T * ptr)
+
+inlineexplicitnoexcept
+
+ +

Initializes object pointer with ptr and retains a reference.

+
Note
this shares ownership.
+
Parameters
+ + +
[in]ptrraw pointer to initialize with.
+
+
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
fsdk::Ref< T >::Ref (const Ref< T > & other)
+
+inline
+
+ +

Initializes object pointer with other and retains a reference.

+
Note
this shares ownership.
+
Parameters
+ + +
[in]otherpointer to initialize with.
+
+
+ +
+
+ +
+
+
+template<typename T>
+
+template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type>
+ + + + + +
+ + + + + + + + +
fsdk::Ref< T >::Ref (const Ref< D > & other)
+
+inlineexplicit
+
+ +

Initializes object pointer with other and retains a reference.

+
Note
this shares ownership.
+
Parameters
+ + +
[in]otherpointer of derived template class to initialize with.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Ref& fsdk::Ref< T >::acquire (T * ptr)
+
+inlinenoexcept
+
+ +

Acquire ownership of the object.

+
Parameters
+ + +
[in]ptrraw object pointer to acquire.
+
+
+ +
+
+ +
+
+
+template<typename T>
+
+template<typename S >
+ + + + + +
+ + + + + + + +
Ref<S> fsdk::Ref< T >::as () const
+
+inlinenoexcept
+
+ +

Make smart reference with relative type.

+
Template Parameters
+ + +
Starget interface (must be relative to T)
+
+
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Ref& fsdk::Ref< T >::assign (T * ptr)
+
+inlinenoexcept
+
+ +

Assign an object. Presumes shared ownership, increases reference count.

+
Parameters
+ + +
[in]ptrraw object pointer to assign.
+
+
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + +
T** fsdk::Ref< T >::getInitReference ()
+
+inlinenoexcept
+
+ +

Access pointer for initialization.

+
Note
previously held pointer is released.
+
Returns
pointer to pointer to object.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Ref& fsdk::Ref< T >::make_ref (T * ptr)
+
+inlinenoexcept
+
+ +

Create ref without acquiring ownership.

+
Parameters
+ + +
[in]ptrraw object pointer.
+
+
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Ref< T >::operator!= (const Ref< T > & other) const
+
+inlinenoexcept
+
+ +

Check if two refs are not the same.

+
Returns
true if two refs are not the same.
+
Parameters
+ + +
[in]otherref to check against.
+
+
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + +
T* fsdk::Ref< T >::operator-> () const
+
+inlinenoexcept
+
+ +

Access pointer.

+
Note
pointer is checked for null in runtime.
+
Returns
pointer to object.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Ref& fsdk::Ref< T >::operator= (const Ref< T > & other)
+
+inlinenoexcept
+
+ +

Assign a strong reference.

+
Parameters
+ + +
[in]otherstrong reference.
+
+
+
Returns
reference.
+ +
+
+ +
+
+
+template<typename T>
+
+template<class D , typename = typename std::enable_if<std::is_convertible<D*, T*>::value>::type>
+ + + + + +
+ + + + + + + + +
Ref& fsdk::Ref< T >::operator= (const Ref< D > & other)
+
+inlinenoexcept
+
+ +

Assign a strong reference.

+
Parameters
+ + +
[in]otherstrong reference of derived template class.
+
+
+
Returns
reference.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Ref& fsdk::Ref< T >::operator= (T * ptr)
+
+inlinenoexcept
+
+ +

Assign a raw pointer.

+
Note
this shares ownership.
+
Parameters
+ + +
[in]ptrraw pointer.
+
+
+
Returns
reference.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Ref& fsdk::Ref< T >::operator= (std::nullptr_t )
+
+inlinenoexcept
+
+ +

Assign a nullptr_t.

+
Note
this releases previously held reference (if any).
+
Returns
reference.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Ref< T >::operator== (const Ref< T > & other) const
+
+inlinenoexcept
+
+ +

Check if two refs are the same.

+
Returns
true if two refs are the same.
+
Parameters
+ + +
[in]otherref to check against.
+
+
+ +
+
+
The documentation for this struct was generated from the following file:
    +
  • include/fsdk/Types/Ref.h
  • +
+
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_ref.js b/doc/fsdk/html/structfsdk_1_1_ref.js new file mode 100644 index 0000000..a661f60 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_ref.js @@ -0,0 +1,22 @@ +var structfsdk_1_1_ref = +[ + [ "Ref", "structfsdk_1_1_ref.html#a58e4acb99a8a874754a23e6e4f7b2251", null ], + [ "Ref", "structfsdk_1_1_ref.html#a2b302d028bf41a3299ad1a75d3078b08", null ], + [ "Ref", "structfsdk_1_1_ref.html#aa7673c14c03a88a443a5497497af5146", null ], + [ "Ref", "structfsdk_1_1_ref.html#a3fdf807e4c01d6f07e8d67f920537022", null ], + [ "Ref", "structfsdk_1_1_ref.html#a04c673df1f8297ed0330b56be72218f2", null ], + [ "~Ref", "structfsdk_1_1_ref.html#aa1d9bbc7d476649947142015f22fa7c7", null ], + [ "acquire", "structfsdk_1_1_ref.html#a5d1295bb45a634e8907e6f3ce891e93b", null ], + [ "as", "structfsdk_1_1_ref.html#a74485eedefcd2c2f032a61bce36a2492", null ], + [ "assign", "structfsdk_1_1_ref.html#aed37366a7149bed9a7d7c322bd7bef91", null ], + [ "getInitReference", "structfsdk_1_1_ref.html#a4481cd13013a52fe8ff42cf8cbd25075", null ], + [ "make_ref", "structfsdk_1_1_ref.html#a46bde60641331c01f9804db22cad3ed9", null ], + [ "operator!=", "structfsdk_1_1_ref.html#a9c64ce15d1f45608206576a704208a26", null ], + [ "operator->", "structfsdk_1_1_ref.html#a672bfe4b1b07aa8200e0c179323ffc81", null ], + [ "operator=", "structfsdk_1_1_ref.html#a4828c89609b91ef396295d9338a3966a", null ], + [ "operator=", "structfsdk_1_1_ref.html#a845904eb499a34c81fad27567bd284f2", null ], + [ "operator=", "structfsdk_1_1_ref.html#aacf7b3a1eb1afe796743ef8c9390a41c", null ], + [ "operator=", "structfsdk_1_1_ref.html#ac7b437683b2898eb84a2eb12f900b641", null ], + [ "operator==", "structfsdk_1_1_ref.html#a70f2e2f6d93a448c088311e65c17e29f", null ], + [ "reset", "structfsdk_1_1_ref.html#a24015b4f52310246a88e40ffd1e81030", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_ref.png b/doc/fsdk/html/structfsdk_1_1_ref.png new file mode 100644 index 0000000..71af0ee Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_ref.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_ref_base-members.html b/doc/fsdk/html/structfsdk_1_1_ref_base-members.html new file mode 100644 index 0000000..d4b1a92 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_ref_base-members.html @@ -0,0 +1,141 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::RefBase< T > Member List
+
+
+ +

This is the complete list of members for fsdk::RefBase< T >, including all inherited members.

+ + + + + + + + + + + + + + +
get() const noexceptfsdk::RefBase< T >inline
isExpired() const noexceptfsdk::RefBase< T >inline
isNull() const noexceptfsdk::RefBase< T >inline
isUnique() const noexceptfsdk::RefBase< T >inline
m_ptrfsdk::RefBase< T >protected
operator bool() const noexceptfsdk::RefBase< T >inline
operator T *() const noexceptfsdk::RefBase< T >inline
operator!=(const RefBase &other) const noexceptfsdk::RefBase< T >inline
operator*() const noexceptfsdk::RefBase< T >inline
operator==(const RefBase &other) const noexceptfsdk::RefBase< T >inline
RefBase() noexcept=defaultfsdk::RefBase< T >
RefBase(T *ptr) noexceptfsdk::RefBase< T >inlineexplicit
set(T *ptr) noexceptfsdk::RefBase< T >inline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_ref_base.html b/doc/fsdk/html/structfsdk_1_1_ref_base.html new file mode 100644 index 0000000..15c1d8f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_ref_base.html @@ -0,0 +1,546 @@ + + + + + + +Face Engine SDK: fsdk::RefBase< T > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::RefBase< T > Struct Template Reference
+
+
+ +

Generic base class of a pointer for reference counted objects. + More...

+ +

#include <RefBase.h>

+
+Inheritance diagram for fsdk::RefBase< T >:
+
+
+ + +fsdk::Ref< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

RefBase () noexcept=default
 Initializes object pointer to nullptr.
 
 RefBase (T *ptr) noexcept
 Initializes object pointer with ptr. More...
 
 operator T * () const noexcept
 Get raw object pointer. More...
 
T & operator* () const noexcept
 Dereference operator. More...
 
 operator bool () const noexcept
 Implicit cast to bool. More...
 
bool operator== (const RefBase &other) const noexcept
 Check if two refs are the same. More...
 
bool operator!= (const RefBase &other) const noexcept
 Check if two refs are not the same. More...
 
bool isNull () const noexcept
 Check for nullptr. More...
 
bool isExpired () const noexcept
 Check is object is dead. More...
 
bool isUnique () const noexcept
 Check if object has only one strong reference. More...
 
T * get () const noexcept
 Get current raw object pointer. More...
 
void set (T *ptr) noexcept
 Replace object pointer without any checks or reference management. More...
 
+ + + + +

+Protected Attributes

+T * m_ptr {nullptr}
 Raw pointer.
 
+

Detailed Description

+

template<typename T>
+struct fsdk::RefBase< T >

+ +

Generic base class of a pointer for reference counted objects.

+

Implements common features of Ref and WeakRef and is not meant to be used directly.

+
Note
This is to eliminate code duplication and should not be used directly.
+
Template Parameters
+ + +
Tobject interface (must be derived from IRefCounted)
+
+
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
fsdk::RefBase< T >::RefBase (T * ptr)
+
+inlineexplicitnoexcept
+
+ +

Initializes object pointer with ptr.

+
Parameters
+ + +
[in]ptrraw pointer to initialize with.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
T* fsdk::RefBase< T >::get () const
+
+inlinenoexcept
+
+ +

Get current raw object pointer.

+
Returns
current raw object pointer.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
bool fsdk::RefBase< T >::isExpired () const
+
+inlinenoexcept
+
+ +

Check is object is dead.

+
Returns
true if referenced object has no references.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
bool fsdk::RefBase< T >::isNull () const
+
+inlinenoexcept
+
+ +

Check for nullptr.

+
Returns
true if referenced object pointer is nullptr.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
bool fsdk::RefBase< T >::isUnique () const
+
+inlinenoexcept
+
+ +

Check if object has only one strong reference.

+
Returns
true if referenced object has exactly one reference.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
fsdk::RefBase< T >::operator bool () const
+
+inlinenoexcept
+
+ +

Implicit cast to bool.

+
Returns
true if ref is not null.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
fsdk::RefBase< T >::operator T * () const
+
+inlinenoexcept
+
+ +

Get raw object pointer.

+
Note
No checks are performed.
+
Returns
raw object pointer.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
bool fsdk::RefBase< T >::operator!= (const RefBase< T > & other) const
+
+inlinenoexcept
+
+ +

Check if two refs are not the same.

+
Returns
true if two refs are not the same.
+
Parameters
+ + +
[in]otherref to check against.
+
+
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
T& fsdk::RefBase< T >::operator* () const
+
+inlinenoexcept
+
+ +

Dereference operator.

+
Returns
reference to object being held.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
bool fsdk::RefBase< T >::operator== (const RefBase< T > & other) const
+
+inlinenoexcept
+
+ +

Check if two refs are the same.

+
Returns
true if two refs are the same.
+
Parameters
+ + +
[in]otherref to check against.
+
+
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
void fsdk::RefBase< T >::set (T * ptr)
+
+inlinenoexcept
+
+ +

Replace object pointer without any checks or reference management.

+
Note
This operation is unsafe!
+
Parameters
+ + +
[in]ptrraw object pointer to set.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_ref_base.js b/doc/fsdk/html/structfsdk_1_1_ref_base.js new file mode 100644 index 0000000..775ec51 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_ref_base.js @@ -0,0 +1,16 @@ +var structfsdk_1_1_ref_base = +[ + [ "RefBase", "structfsdk_1_1_ref_base.html#a53e524dddc5f820708d0db6c99069d64", null ], + [ "RefBase", "structfsdk_1_1_ref_base.html#aac9bb6fcbf9b720a6b5e7a4907cc80c1", null ], + [ "get", "structfsdk_1_1_ref_base.html#a7ea44dfe520bbe2ced2fe2c023809288", null ], + [ "isExpired", "structfsdk_1_1_ref_base.html#a7b102e6ffd4ea5e393f283169f826f6f", null ], + [ "isNull", "structfsdk_1_1_ref_base.html#a65eb00c69769063de70515387aaf7d71", null ], + [ "isUnique", "structfsdk_1_1_ref_base.html#a1f4e70a1252dce29ced35e396c0a1d87", null ], + [ "operator bool", "structfsdk_1_1_ref_base.html#a7e3a0a80186484fe19eec757ab9546d9", null ], + [ "operator T *", "structfsdk_1_1_ref_base.html#a87fa2d42cdd5da50ad56c9fcc056099b", null ], + [ "operator!=", "structfsdk_1_1_ref_base.html#a5f5a390a37bc52d7483049069ecc89a0", null ], + [ "operator*", "structfsdk_1_1_ref_base.html#a3c132b113b08dc44bc8a9150fd007d19", null ], + [ "operator==", "structfsdk_1_1_ref_base.html#a8a7d5f145b0709c08a5faf1741fafbe4", null ], + [ "set", "structfsdk_1_1_ref_base.html#a9baae9b19a0723e049bce5d641889662", null ], + [ "m_ptr", "structfsdk_1_1_ref_base.html#ab57bc3fc17e734e742c0b47ec60573ba", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_ref_base.png b/doc/fsdk/html/structfsdk_1_1_ref_base.png new file mode 100644 index 0000000..de1a424 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_ref_base.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_result-members.html b/doc/fsdk/html/structfsdk_1_1_result-members.html new file mode 100644 index 0000000..2eb883f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result-members.html @@ -0,0 +1,137 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Result< E > Member List
+
+
+ +

This is the complete list of members for fsdk::Result< E >, including all inherited members.

+ + + + + + + + + + +
ErrorType typedeffsdk::Result< E >
getError() const noexceptfsdk::Result< E >inline
isError() const noexceptfsdk::Result< E >inline
isOk() const noexceptfsdk::Result< E >inline
operator bool() const noexceptfsdk::Result< E >inline
Result(E error) noexceptfsdk::Result< E >inlineexplicit
Result() noexceptfsdk::Result< E >inline
Traits typedef (defined in fsdk::Result< E >)fsdk::Result< E >
what() const noexceptfsdk::Result< E >inline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result.html b/doc/fsdk/html/structfsdk_1_1_result.html new file mode 100644 index 0000000..cb3476c --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result.html @@ -0,0 +1,363 @@ + + + + + + +Face Engine SDK: fsdk::Result< E > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Result< E > Struct Template Reference
+
+
+ +

A structure that encapsulates an action result enumeration. + More...

+ +

#include <Result.h>

+ + + + + + + +

+Public Types

+using ErrorType = E
 Result value enumeration type.
 
+using Traits = ErrorTraits< E >
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Result (E error) noexcept
 Initializes result. More...
 
Result () noexcept
 Initializes result by default.
 
getError () const noexcept
 Gets actual result value. More...
 
bool isError () const noexcept
 Checks for an error. More...
 
bool isOk () const noexcept
 Checks for a success. More...
 
 operator bool () const noexcept
 Checks for a success. More...
 
const char * what () const noexcept
 Gets a textual description of the result. More...
 
+

Detailed Description

+

template<typename E>
+struct fsdk::Result< E >

+ +

A structure that encapsulates an action result enumeration.

+

An enum should specify a result code. By default the result is in a special uninitialized state which should be interpreted as an error. Default success value shoud be defined to zero.

+
Template Parameters
+ + +
enumerationto wrap.
+
+
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename E>
+ + + + + +
+ + + + + + + + +
fsdk::Result< E >::Result (error)
+
+inlineexplicitnoexcept
+
+ +

Initializes result.

+
Parameters
+ + +
[in]resultvalue to set.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename E>
+ + + + + +
+ + + + + + + +
E fsdk::Result< E >::getError () const
+
+inlinenoexcept
+
+ +

Gets actual result value.

+
Returns
actual result value.
+ +
+
+ +
+
+
+template<typename E>
+ + + + + +
+ + + + + + + +
bool fsdk::Result< E >::isError () const
+
+inlinenoexcept
+
+ +

Checks for an error.

+
Returns
true if result represents an error.
+ +
+
+ +
+
+
+template<typename E>
+ + + + + +
+ + + + + + + +
bool fsdk::Result< E >::isOk () const
+
+inlinenoexcept
+
+ +

Checks for a success.

+
Returns
true if result represents a success.
+ +
+
+ +
+
+
+template<typename E>
+ + + + + +
+ + + + + + + +
fsdk::Result< E >::operator bool () const
+
+inlinenoexcept
+
+ +

Checks for a success.

+
Returns
true if result represents a success.
+ +
+
+ +
+
+
+template<typename E>
+ + + + + +
+ + + + + + + +
const char* fsdk::Result< E >::what () const
+
+inlinenoexcept
+
+ +

Gets a textual description of the result.

+
Note
function toString() should be specialized for this template type T.
+
Returns
description string.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result.js b/doc/fsdk/html/structfsdk_1_1_result.js new file mode 100644 index 0000000..9cd3606 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result.js @@ -0,0 +1,12 @@ +var structfsdk_1_1_result = +[ + [ "ErrorType", "structfsdk_1_1_result.html#a38653c59ecb8bfaa04caa5a77f4df3f0", null ], + [ "Traits", "structfsdk_1_1_result.html#ac2c5fe6ec18db9b9cb5507ad18490943", null ], + [ "Result", "structfsdk_1_1_result.html#a06a734e30ac4eece206f4733b7a5d012", null ], + [ "Result", "structfsdk_1_1_result.html#aa3167e68bcb821500440dd076a6b42f3", null ], + [ "getError", "structfsdk_1_1_result.html#a75f966aa5f2402b66f000dacd18128f5", null ], + [ "isError", "structfsdk_1_1_result.html#a22fbfc59e9daa711b5f3d91a0976f5ab", null ], + [ "isOk", "structfsdk_1_1_result.html#aea4380f5ed3f6c3e71ab70d0c0d422b0", null ], + [ "operator bool", "structfsdk_1_1_result.html#a7e12d3d63d36a0551279b15c0a8176ac", null ], + [ "what", "structfsdk_1_1_result.html#a41988070a3ccb7478b18f6c4fb4779f5", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_result_value-members.html b/doc/fsdk/html/structfsdk_1_1_result_value-members.html new file mode 100644 index 0000000..d66e5bc --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value-members.html @@ -0,0 +1,137 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ResultValue< R, V, Enable > Member List
+
+
+ +

This is the complete list of members for fsdk::ResultValue< R, V, Enable >, including all inherited members.

+ + + + + + + + + + +
ErrorType typedeffsdk::Result< R >
getError() const noexceptfsdk::Result< R >inline
isError() const noexceptfsdk::Result< R >inline
isOk() const noexceptfsdk::Result< R >inline
operator bool() const noexceptfsdk::Result< R >inline
Result(Rerror) noexceptfsdk::Result< R >inlineexplicit
Result() noexceptfsdk::Result< R >inline
Traits typedef (defined in fsdk::Result< R >)fsdk::Result< R >
what() const noexceptfsdk::Result< R >inline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result_value.html b/doc/fsdk/html/structfsdk_1_1_result_value.html new file mode 100644 index 0000000..179df07 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value.html @@ -0,0 +1,195 @@ + + + + + + +Face Engine SDK: fsdk::ResultValue< R, V, Enable > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ResultValue< R, V, Enable > Struct Template Reference
+
+
+ +

Addon for Result to output some value aside the result. Specialization for copiable types. + More...

+ +

#include <ResultValue.h>

+
+Inheritance diagram for fsdk::ResultValue< R, V, Enable >:
+
+
+ + +fsdk::Result< R > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from fsdk::Result< R >
+using ErrorType = R
 Result value enumeration type.
 
+using Traits = ErrorTraits< R >
 
- Public Member Functions inherited from fsdk::Result< R >
 Result (Rerror) noexcept
 Initializes result. More...
 
Result () noexcept
 Initializes result by default.
 
getError () const noexcept
 Gets actual result value. More...
 
bool isError () const noexcept
 Checks for an error. More...
 
bool isOk () const noexcept
 Checks for a success. More...
 
 operator bool () const noexcept
 Checks for a success. More...
 
const char * what () const noexcept
 Gets a textual description of the result. More...
 
+

Detailed Description

+

template<typename R, typename V, class Enable = void>
+struct fsdk::ResultValue< R, V, Enable >

+ +

Addon for Result to output some value aside the result. Specialization for copiable types.

+
Template Parameters
+ + + +
Rresult enumeration type.
Vresult value type.
+
+
+
Note
All rules for Result template parameter aplly to R.
+
+V instance is always held by value despite -> operators.
+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result_value.png b/doc/fsdk/html/structfsdk_1_1_result_value.png new file mode 100644 index 0000000..768f5ee Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_result_value.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy20e8f1e8c7ca793dde3e517e2a299842.html b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy20e8f1e8c7ca793dde3e517e2a299842.html new file mode 100644 index 0000000..4f47cee --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy20e8f1e8c7ca793dde3e517e2a299842.html @@ -0,0 +1,146 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type > Member List
+
+
+ +

This is the complete list of members for fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
EnumType typedeffsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >
ErrorType typedeffsdk::Result< R >
getError() const noexceptfsdk::Result< R >inline
getValue() const noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >inline
isError() const noexceptfsdk::Result< R >inline
isOk() const noexceptfsdk::Result< R >inline
m_valuefsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >protected
operator bool() const noexceptfsdk::Result< R >inline
operator->() const noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >inline
Result(Rerror) noexceptfsdk::Result< R >inlineexplicit
Result() noexceptfsdk::Result< R >inline
ResultValue(R result) noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >inline
ResultValue(R result, const V &value) noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >inline
ResultValue(R result, V &&value) noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >inline
takeValue() noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >inline
Traits typedef (defined in fsdk::Result< R >)fsdk::Result< R >
ValueType typedeffsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >
what() const noexceptfsdk::Result< R >inline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html new file mode 100644 index 0000000..e677bba --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html @@ -0,0 +1,429 @@ + + + + + + +Face Engine SDK: fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type > Struct Template Reference
+
+
+
+Inheritance diagram for fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >:
+
+
+ + +fsdk::Result< R > + +
+ + + + + + + + + + + + + + +

+Public Types

+typedef R EnumType
 Result enumeration type.
 
+typedef V ValueType
 Result value type.
 
- Public Types inherited from fsdk::Result< R >
+using ErrorType = R
 Result value enumeration type.
 
+using Traits = ErrorTraits< R >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ResultValue (R result) noexcept
 Initializes result. More...
 
 ResultValue (R result, const V &value) noexcept
 Initializes result. More...
 
 ResultValue (R result, V &&value) noexcept
 Initializes result. More...
 
const V & getValue () const noexcept
 Gets result value. More...
 
V && takeValue () noexcept
 Gets result value as rvalue. More...
 
const V * operator-> () const noexcept
 Gets result value. More...
 
- Public Member Functions inherited from fsdk::Result< R >
 Result (Rerror) noexcept
 Initializes result. More...
 
Result () noexcept
 Initializes result by default.
 
getError () const noexcept
 Gets actual result value. More...
 
bool isError () const noexcept
 Checks for an error. More...
 
bool isOk () const noexcept
 Checks for a success. More...
 
 operator bool () const noexcept
 Checks for a success. More...
 
const char * what () const noexcept
 Gets a textual description of the result. More...
 
+ + + + +

+Protected Attributes

+V m_value
 Actual value.
 
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + + +
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue (result)
+
+inlinenoexcept
+
+ +

Initializes result.

+
Parameters
+ + +
[in]resultvalue to set.
+
+
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue (result,
const V & value 
)
+
+inlinenoexcept
+
+ +

Initializes result.

+
Parameters
+ + + +
[in]resultresult to set.
[in]valuevalue to set.
+
+
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::ResultValue (result,
V && value 
)
+
+inlinenoexcept
+
+ +

Initializes result.

+
Parameters
+ + + +
[in]resultresult to set.
[in]valuevalue to set.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + +
const V& fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::getValue () const
+
+inlinenoexcept
+
+ +

Gets result value.

+
Note
Result validated in runtime.
+
Returns
Value.
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + +
const V* fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::operator-> () const
+
+inlinenoexcept
+
+ +

Gets result value.

+
Note
Result validated in runtime.
+
Returns
Value.
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + +
V&& fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value >::type >::takeValue ()
+
+inlinenoexcept
+
+ +

Gets result value as rvalue.

+
Note
Result validated in runtime.
+
+Don't call more than once
+
Returns
Value.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.js b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.js new file mode 100644 index 0000000..e7ad56f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.js @@ -0,0 +1,12 @@ +var structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b = +[ + [ "EnumType", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a35a0a5551c5758edc7734354ca82b531", null ], + [ "ValueType", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ad45cf40fedbe9fec64aa87810f8654c2", null ], + [ "ResultValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ac955e75bbf5fb02d839769d9fb2ba664", null ], + [ "ResultValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a56653ed758a6407bb25489a58b348e0c", null ], + [ "ResultValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#adf265f066cbc9f58b26a480accdb1c27", null ], + [ "getValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a7f9e57a741817e165526a4b7d62fa65c", null ], + [ "operator->", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#a0e427b8b97b5b4812e982891ff390437", null ], + [ "takeValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#ade19468195453a80c350071fa4f10854", null ], + [ "m_value", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.html#afef4906788a7f335f4b5a2a372551f8d", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.png b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.png new file mode 100644 index 0000000..e15ee99 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy2f668dc7084c0a905cc04d7f40fbec0b.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy5d7672cb0d5a87a78c89e4a50ab48405.html b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy5d7672cb0d5a87a78c89e4a50ab48405.html new file mode 100644 index 0000000..512b458 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy5d7672cb0d5a87a78c89e4a50ab48405.html @@ -0,0 +1,145 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type > Member List
+
+
+ +

This is the complete list of members for fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
EnumType typedeffsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >
ErrorType typedeffsdk::Result< R >
getError() const noexceptfsdk::Result< R >inline
getValue() const noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >inline
isError() const noexceptfsdk::Result< R >inline
isOk() const noexceptfsdk::Result< R >inline
m_valuefsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >protected
operator bool() const noexceptfsdk::Result< R >inline
operator->() const noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >inline
Result(Rerror) noexceptfsdk::Result< R >inlineexplicit
Result() noexceptfsdk::Result< R >inline
ResultValue(R result) noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >inline
ResultValue(R result, V &&value) noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >inline
takeValue() noexceptfsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >inline
Traits typedef (defined in fsdk::Result< R >)fsdk::Result< R >
ValueType typedeffsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >
what() const noexceptfsdk::Result< R >inline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html new file mode 100644 index 0000000..97113db --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html @@ -0,0 +1,401 @@ + + + + + + +Face Engine SDK: fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type > Struct Template Reference
+
+
+ +

Addon for Result to output some value aside the result. Specialization for non copiable types. + More...

+ +

#include <ResultValue.h>

+
+Inheritance diagram for fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >:
+
+
+ + +fsdk::Result< R > + +
+ + + + + + + + + + + + + + +

+Public Types

+typedef R EnumType
 Result enumeration type.
 
+typedef V ValueType
 Result value type.
 
- Public Types inherited from fsdk::Result< R >
+using ErrorType = R
 Result value enumeration type.
 
+using Traits = ErrorTraits< R >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ResultValue (R result) noexcept
 Initializes result. More...
 
 ResultValue (R result, V &&value) noexcept
 Initializes result. More...
 
const V & getValue () const noexcept
 Gets result value. More...
 
V && takeValue () noexcept
 Gets result value as rvalue. More...
 
const V * operator-> () const noexcept
 Gets result value. More...
 
- Public Member Functions inherited from fsdk::Result< R >
 Result (Rerror) noexcept
 Initializes result. More...
 
Result () noexcept
 Initializes result by default.
 
getError () const noexcept
 Gets actual result value. More...
 
bool isError () const noexcept
 Checks for an error. More...
 
bool isOk () const noexcept
 Checks for a success. More...
 
 operator bool () const noexcept
 Checks for a success. More...
 
const char * what () const noexcept
 Gets a textual description of the result. More...
 
+ + + + +

+Protected Attributes

+V m_value
 Actual value.
 
+

Detailed Description

+

template<typename R, typename V>
+struct fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >

+ +

Addon for Result to output some value aside the result. Specialization for non copiable types.

+
Template Parameters
+ + + +
Rresult enumeration type.
Vresult value type.
+
+
+
Note
All rules for Result template parameter aplly to R.
+
+V instance is always held by value despite -> operators.
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + + +
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ResultValue (result)
+
+inlinenoexcept
+
+ +

Initializes result.

+
Parameters
+ + +
[in]resultvalue to set.
+
+
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::ResultValue (result,
V && value 
)
+
+inlinenoexcept
+
+ +

Initializes result.

+
Parameters
+ + + +
[in]resultresult to set.
[in]valuevalue to set.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + +
const V& fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::getValue () const
+
+inlinenoexcept
+
+ +

Gets result value.

+
Note
Result validated in runtime.
+
Returns
Value.
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + +
const V* fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::operator-> () const
+
+inlinenoexcept
+
+ +

Gets result value.

+
Note
Result validated in runtime.
+
Returns
Value.
+ +
+
+ +
+
+
+template<typename R , typename V >
+ + + + + +
+ + + + + + + +
V&& fsdk::ResultValue< R, V, typename std::enable_if< std::is_copy_constructible< V >::value==false >::type >::takeValue ()
+
+inlinenoexcept
+
+ +

Gets result value as rvalue.

+
Note
Result validated in runtime.
+
+Don't call more than once
+
Returns
Value.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.js b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.js new file mode 100644 index 0000000..61b6bf8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.js @@ -0,0 +1,11 @@ +var structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8 = +[ + [ "EnumType", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a48cc288d6f34cf1f653b309d1451bd94", null ], + [ "ValueType", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aed241c8fb37877f331a4a225090dd2db", null ], + [ "ResultValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a26f358e8c2c64299a59d98c6feaf4dd1", null ], + [ "ResultValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a046c9b256bd86bc479c39e6d731435bc", null ], + [ "getValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#abc5413378343e1ebd6669322f23c7a6c", null ], + [ "operator->", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#a33e437fb19c5c9e37e5a2086c6b6a275", null ], + [ "takeValue", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#ada51f8afb1de2cb66197e010831199db", null ], + [ "m_value", "structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.html#aa0af562d57def46e9945664991cabb73", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.png b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.png new file mode 100644 index 0000000..c5543d9 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_result_value_3_01_r_00_01_v_00_01typename_01std_1_1enable__if_3_01std_1_1is__copy9c4ba859f69d23768930bdaf370a25f8.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_search_result-members.html b/doc/fsdk/html/structfsdk_1_1_search_result-members.html new file mode 100644 index 0000000..119956b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_search_result-members.html @@ -0,0 +1,135 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::SearchResult Member List
+
+
+ +

This is the complete list of members for fsdk::SearchResult, including all inherited members.

+ + + + + + + + +
distancefsdk::MatchingResult
indexfsdk::SearchResult
MatchingResult(void) noexceptfsdk::MatchingResultinline
MatchingResult(float distance, float similarity) noexceptfsdk::MatchingResultinline
SearchResult() noexceptfsdk::SearchResultinline
SearchResult(float distance, float similarity, DescriptorId index) noexceptfsdk::SearchResultinline
similarityfsdk::MatchingResult
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_search_result.html b/doc/fsdk/html/structfsdk_1_1_search_result.html new file mode 100644 index 0000000..bc7f0c2 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_search_result.html @@ -0,0 +1,235 @@ + + + + + + +Face Engine SDK: fsdk::SearchResult Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::SearchResult Struct Reference
+
+
+ +

Result of index search. + More...

+ +

#include <IIndex.h>

+
+Inheritance diagram for fsdk::SearchResult:
+
+
+ + +fsdk::MatchingResult + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

SearchResult () noexcept
 Default constructor.
 
 SearchResult (float distance, float similarity, DescriptorId index) noexcept
 Construct structure with parameters. More...
 
- Public Member Functions inherited from fsdk::MatchingResult
MatchingResult (void) noexcept
 Initializes result to default values.
 
 MatchingResult (float distance, float similarity) noexcept
 Initializes result. More...
 
+ + + + + + + + + + + +

+Public Attributes

+DescriptorId index
 Identificator of descriptor in some storage.
 
- Public Attributes inherited from fsdk::MatchingResult
+float distance
 distance between descriptor vectors.
 
+float similarity
 similarity (normalized in [0..1] range).
 
+

Detailed Description

+

Result of index search.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
fsdk::SearchResult::SearchResult (float distance,
float similarity,
DescriptorId index 
)
+
+inlinenoexcept
+
+ +

Construct structure with parameters.

+
Parameters
+ + + + +
[in]distanceDistance between descriptors.
[in]similaritySimilarity between descriptors.
[in]indexIndex of found descriptors in some storage.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_search_result.js b/doc/fsdk/html/structfsdk_1_1_search_result.js new file mode 100644 index 0000000..bb21d6e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_search_result.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_search_result = +[ + [ "SearchResult", "structfsdk_1_1_search_result.html#a22fc4965d8484ef9ecd8540d2bc86bc8", null ], + [ "SearchResult", "structfsdk_1_1_search_result.html#aef457bbb7044f31b2d8d7e788468d2d2", null ], + [ "index", "structfsdk_1_1_search_result.html#a01dc475d417c24d5a5d21f3d5b4fd4bb", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_search_result.png b/doc/fsdk/html/structfsdk_1_1_search_result.png new file mode 100644 index 0000000..8d07fc2 Binary files /dev/null and b/doc/fsdk/html/structfsdk_1_1_search_result.png differ diff --git a/doc/fsdk/html/structfsdk_1_1_sizer-members.html b/doc/fsdk/html/structfsdk_1_1_sizer-members.html new file mode 100644 index 0000000..d186e53 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_sizer-members.html @@ -0,0 +1,147 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Sizer Member List
+
+
+ +

This is the complete list of members for fsdk::Sizer, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
append(size_t bytes) noexceptfsdk::Sizerinline
append(const Sizer &other) noexceptfsdk::Sizerinline
getBytes() const noexceptfsdk::Sizerinline
getGBytes() const noexceptfsdk::Sizerinline
getKBytes() const noexceptfsdk::Sizerinline
getMBytes() const noexceptfsdk::Sizerinline
isEmpty() const noexceptfsdk::Sizerinline
m_bytesfsdk::Sizerprotected
operator bool() const noexceptfsdk::Sizerinline
operator size_t() const noexceptfsdk::Sizerinline
operator!=(const Sizer &other) const noexceptfsdk::Sizerinline
operator<<(size_t bytes) noexceptfsdk::Sizerinline
operator<<(const Sizer &other) noexceptfsdk::Sizerinline
operator=(const Sizer &other) noexceptfsdk::Sizerinline
operator==(const Sizer &other) const noexceptfsdk::Sizerinline
reset() noexceptfsdk::Sizerinline
Sizer() noexceptfsdk::Sizerinline
Sizer(const Sizer &other) noexceptfsdk::Sizerinline
swap(Sizer &other) noexceptfsdk::Sizerinline
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_sizer.html b/doc/fsdk/html/structfsdk_1_1_sizer.html new file mode 100644 index 0000000..1fe1df8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_sizer.html @@ -0,0 +1,657 @@ + + + + + + +Face Engine SDK: fsdk::Sizer Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Sizer Struct Reference
+
+
+ +

Helper entity to measure size of dynamic objects in memory. + More...

+ +

#include <Sizer.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Sizer () noexcept
 Initializes sizer with zero.
 
 Sizer (const Sizer &other) noexcept
 Initializes sizer with another sizer value. More...
 
void append (size_t bytes) noexcept
 Append bytes to current byte count. More...
 
void append (const Sizer &other) noexcept
 Append other sizer byte count to current byte count. More...
 
+void reset () noexcept
 Reset byte count to zero.
 
size_t getBytes () const noexcept
 Get current size. More...
 
size_t getKBytes () const noexcept
 Get current size. More...
 
size_t getMBytes () const noexcept
 Get current size. More...
 
size_t getGBytes () const noexcept
 Get current size. More...
 
operator size_t () const noexcept
 Cast to size type.
 
bool isEmpty () const noexcept
 Check whether size is zero. More...
 
 operator bool () const noexcept
 Check whether size is zero. More...
 
Sizeroperator<< (size_t bytes) noexcept
 Append bytes to current byte count. More...
 
Sizeroperator<< (const Sizer &other) noexcept
 Append other sizer byte count to current byte count. More...
 
Sizeroperator= (const Sizer &other) noexcept
 Assign value of another sizer. More...
 
bool operator== (const Sizer &other) const noexcept
 Check if two sizers are equal. More...
 
bool operator!= (const Sizer &other) const noexcept
 Check if two sizers are not equal. More...
 
void swap (Sizer &other) noexcept
 
+ + + + +

+Protected Attributes

+size_t m_bytes
 Current measured size in bytes.
 
+

Detailed Description

+

Helper entity to measure size of dynamic objects in memory.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
fsdk::Sizer::Sizer (const Sizerother)
+
+inlinenoexcept
+
+ +

Initializes sizer with another sizer value.

+
Parameters
+ + +
[in]otheranother sizer.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::Sizer::append (size_t bytes)
+
+inlinenoexcept
+
+ +

Append bytes to current byte count.

+
Parameters
+ + +
[in]bytesnumber of bytes to append.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::Sizer::append (const Sizerother)
+
+inlinenoexcept
+
+ +

Append other sizer byte count to current byte count.

+
Parameters
+ + +
[in]othersizer to take bytes from.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
size_t fsdk::Sizer::getBytes () const
+
+inlinenoexcept
+
+ +

Get current size.

+
Returns
current byte count.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
size_t fsdk::Sizer::getGBytes () const
+
+inlinenoexcept
+
+ +

Get current size.

+
Returns
current size in gbytes (truncated).
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
size_t fsdk::Sizer::getKBytes () const
+
+inlinenoexcept
+
+ +

Get current size.

+
Returns
current size in kbytes (truncated).
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
size_t fsdk::Sizer::getMBytes () const
+
+inlinenoexcept
+
+ +

Get current size.

+
Returns
current size in mbytes (truncated).
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::Sizer::isEmpty () const
+
+inlinenoexcept
+
+ +

Check whether size is zero.

+
Returns
true if current byte count is zero.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
fsdk::Sizer::operator bool () const
+
+inlinenoexcept
+
+ +

Check whether size is zero.

+
Returns
true if current byte count is not zero.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::Sizer::operator!= (const Sizerother) const
+
+inlinenoexcept
+
+ +

Check if two sizers are not equal.

+
Parameters
+ + +
[in]othersizer.
+
+
+
Returns
true if sizers are not equal.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Sizer& fsdk::Sizer::operator<< (size_t bytes)
+
+inlinenoexcept
+
+ +

Append bytes to current byte count.

+
Parameters
+ + +
[in]bytesnumber of bytes to append.
+
+
+
Returns
sizer reference for call chaining.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Sizer& fsdk::Sizer::operator<< (const Sizerother)
+
+inlinenoexcept
+
+ +

Append other sizer byte count to current byte count.

+
Parameters
+ + +
[in]othersizer to take bytes from.
+
+
+
Returns
sizer reference for call chaining.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
Sizer& fsdk::Sizer::operator= (const Sizerother)
+
+inlinenoexcept
+
+ +

Assign value of another sizer.

+
Parameters
+ + +
[in]othersizer to take bytes from.
+
+
+
Returns
sizer reference for call chaining.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool fsdk::Sizer::operator== (const Sizerother) const
+
+inlinenoexcept
+
+ +

Check if two sizers are equal.

+
Parameters
+ + +
[in]othersizer.
+
+
+
Returns
true if sizers are equal.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void fsdk::Sizer::swap (Sizerother)
+
+inlinenoexcept
+
+

Swap contents with an other sizer.

+
Parameters
+ + +
[in,out]othersizer to swap with.
+
+
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_sizer.js b/doc/fsdk/html/structfsdk_1_1_sizer.js new file mode 100644 index 0000000..aeaa5ce --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_sizer.js @@ -0,0 +1,22 @@ +var structfsdk_1_1_sizer = +[ + [ "Sizer", "structfsdk_1_1_sizer.html#a9cd97626466e7e07a63fe9ff896352dc", null ], + [ "Sizer", "structfsdk_1_1_sizer.html#a491defed47cfaeaf38dd29074c8b7d89", null ], + [ "append", "structfsdk_1_1_sizer.html#adc34d459d74906d4e2a8e8efeffe1339", null ], + [ "append", "structfsdk_1_1_sizer.html#ab278930212c03f5f2dba82281b2b8a63", null ], + [ "getBytes", "structfsdk_1_1_sizer.html#aaac05d63b4fbe6c2861e971da901d1be", null ], + [ "getGBytes", "structfsdk_1_1_sizer.html#aa7aaa2a28d8d8e329b5f0ea1221c61a8", null ], + [ "getKBytes", "structfsdk_1_1_sizer.html#a72d205c5b3b4347d8a0a0ae76f8f1557", null ], + [ "getMBytes", "structfsdk_1_1_sizer.html#ad6aaf8b58724a50c2ee30f462f68aca4", null ], + [ "isEmpty", "structfsdk_1_1_sizer.html#aa3b8734b6b784a5e080e02ee4a10dfa6", null ], + [ "operator bool", "structfsdk_1_1_sizer.html#aa93c5b0d4094955935f021e7c1381998", null ], + [ "operator size_t", "structfsdk_1_1_sizer.html#ad766a4340ba8302b07454756c0c28f5f", null ], + [ "operator!=", "structfsdk_1_1_sizer.html#a264b497e04eee49c4b401a3dac00cf54", null ], + [ "operator<<", "structfsdk_1_1_sizer.html#ac8305e92c055dd645536ea0103f47308", null ], + [ "operator<<", "structfsdk_1_1_sizer.html#a5aeab8578a151d6aac54fd262c5b00fc", null ], + [ "operator=", "structfsdk_1_1_sizer.html#a43e5787f073a4e54efe7b714269d31ff", null ], + [ "operator==", "structfsdk_1_1_sizer.html#a81710ba2c9c46ef82255d8f3a6aaf092", null ], + [ "reset", "structfsdk_1_1_sizer.html#aea7fc0320b954ae96fe7454135aafbe8", null ], + [ "swap", "structfsdk_1_1_sizer.html#af49cc6ba59d47f9fd71a461260231a4e", null ], + [ "m_bytes", "structfsdk_1_1_sizer.html#a1ad20aaecf643c77e32067ac7619e59a", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_sub_image-members.html b/doc/fsdk/html/structfsdk_1_1_sub_image-members.html new file mode 100644 index 0000000..a79653f --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_sub_image-members.html @@ -0,0 +1,141 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::SubImage Member List
+
+
+ +

This is the complete list of members for fsdk::SubImage, including all inherited members.

+ + + + + + + + + + + + + + +
datafsdk::SubImage
formatfsdk::SubImage
getDataAs() noexceptfsdk::SubImageinline
getDataAs() const noexceptfsdk::SubImageinline
getOrigin() const noexceptfsdk::SubImageinline
getRect() const noexceptfsdk::SubImageinline
getSize() const noexceptfsdk::SubImageinline
heightfsdk::SubImage
pitchfsdk::SubImage
SubImage() noexceptfsdk::SubImageinline
widthfsdk::SubImage
xfsdk::SubImage
yfsdk::SubImage
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_sub_image.html b/doc/fsdk/html/structfsdk_1_1_sub_image.html new file mode 100644 index 0000000..0fc23ad --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_sub_image.html @@ -0,0 +1,317 @@ + + + + + + +Face Engine SDK: fsdk::SubImage Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::SubImage Struct Reference
+
+
+ +

Sub Image. + More...

+ +

#include <SubImage.h>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

SubImage () noexcept
 intializes empty sub image.
 
template<typename T >
T * getDataAs () noexcept
 
template<typename T >
const T * getDataAs () const noexcept
 
Point2i getOrigin () const noexcept
 
Size getSize () const noexcept
 
Rect getRect () const noexcept
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+void * data
 Beginning of data sub image data.
 
+int pitch
 Number of bytes to the next scanline of the sub image.
 
+int x
 Sub image origin x coordinate.
 
+int y
 Sub image origin y coordinate.
 
+int width
 Sub image width.
 
+int height
 Sub image height.
 
+Format format
 Sub image format.
 
+

Detailed Description

+

Sub Image.

+

Represents an image region of given size. Provides easy access to image internal data without any lifetime management capabilities.

+

Member Function Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
T* fsdk::SubImage::getDataAs ()
+
+inlinenoexcept
+
+
Returns
pointer to sub image data cast to a given type.
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
const T* fsdk::SubImage::getDataAs () const
+
+inlinenoexcept
+
+
Returns
pointer to sub image data cast to a given type.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Point2i fsdk::SubImage::getOrigin () const
+
+inlinenoexcept
+
+
Returns
sub image origin.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Rect fsdk::SubImage::getRect () const
+
+inlinenoexcept
+
+
Returns
sub image rectangle.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Size fsdk::SubImage::getSize () const
+
+inlinenoexcept
+
+
Returns
sub image size.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_sub_image.js b/doc/fsdk/html/structfsdk_1_1_sub_image.js new file mode 100644 index 0000000..e4a145e --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_sub_image.js @@ -0,0 +1,16 @@ +var structfsdk_1_1_sub_image = +[ + [ "SubImage", "structfsdk_1_1_sub_image.html#a1ccb24d83a92805fad4aa5c18f43b114", null ], + [ "getDataAs", "structfsdk_1_1_sub_image.html#a9aa3c100a4eb5d337873149991752d93", null ], + [ "getDataAs", "structfsdk_1_1_sub_image.html#ac8122856a65d0d4e30485aee798ccb69", null ], + [ "getOrigin", "structfsdk_1_1_sub_image.html#a0ae68ea83ca66e4f8db15ee4c700c811", null ], + [ "getRect", "structfsdk_1_1_sub_image.html#a681a9ea2fc9157250c0d08b50a0ee90a", null ], + [ "getSize", "structfsdk_1_1_sub_image.html#ad896ef4de97a4f7a74582fde66074cdc", null ], + [ "data", "structfsdk_1_1_sub_image.html#a60484aef73eab8df8b2fc8c20ef5f9fe", null ], + [ "format", "structfsdk_1_1_sub_image.html#abe52716506d7e423d133507007d52a89", null ], + [ "height", "structfsdk_1_1_sub_image.html#a5355e143c9d18bfad08247d86c15db3a", null ], + [ "pitch", "structfsdk_1_1_sub_image.html#ac7b1e40c980a97e6eff3fb63d1823b6f", null ], + [ "width", "structfsdk_1_1_sub_image.html#a5a08fac1419183559472faab4ca2534e", null ], + [ "x", "structfsdk_1_1_sub_image.html#a57c6dadf79686b6fa00164d7541b84d4", null ], + [ "y", "structfsdk_1_1_sub_image.html#a5c5456311bab989a15351104f1ed13b2", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_subjective_quality-members.html b/doc/fsdk/html/structfsdk_1_1_subjective_quality-members.html new file mode 100644 index 0000000..a0ab9f1 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_subjective_quality-members.html @@ -0,0 +1,139 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::SubjectiveQuality Member List
+
+
+ +

This is the complete list of members for fsdk::SubjectiveQuality, including all inherited members.

+ + + + + + + + + + + + +
blur (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
darkness (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
illumination (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
isBlurred (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
isDark (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
isGood() const noexceptfsdk::SubjectiveQualityinline
isHighlighted (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
isIlluminated (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
isNotSpecular (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
light (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
specularity (defined in fsdk::SubjectiveQuality)fsdk::SubjectiveQuality
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_subjective_quality.html b/doc/fsdk/html/structfsdk_1_1_subjective_quality.html new file mode 100644 index 0000000..82559f6 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_subjective_quality.html @@ -0,0 +1,216 @@ + + + + + + +Face Engine SDK: fsdk::SubjectiveQuality Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::SubjectiveQuality Struct Reference
+
+
+ +

Subjective Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings: + More...

+ +

#include <IQualityEstimator.h>

+ + + + +

+Public Member Functions

bool isGood () const noexcept
 
+ + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+float blur
 
+float light
 
+float darkness
 
+float illumination
 
+float specularity
 
+bool isBlurred
 
+bool isHighlighted
 
+bool isDark
 
+bool isIlluminated
 
+bool isNotSpecular
 
+

Detailed Description

+

Subjective Quality estimation structure Each estimation is given in normalized [0, 1] range. Parameter meanings:

+
    +
  • blur: image blur degree. 1 - ok, 0 - too blured.
  • +
  • light: image brightness degree. 1 - ok, 0 - too bright;
  • +
  • darkness: image darkness degree. 1 - ok, 0 - too dark;
  • +
  • illumination: image illumination uniformity degree. 1 - ok, 0 - is too illuminated;
  • +
  • specularity: image specularity degree. 1 - ok, 0 - is not specular;
  • +
  • isBlurred image is blurred flag;
  • +
  • isHighlighted image is overlighted flag;
  • +
  • isDark image image is too dark flag;
  • +
  • isIlluminated image is too illuminated flag;
  • +
  • isNotSpecular image is not specular flag;
  • +
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
bool fsdk::SubjectiveQuality::isGood () const
+
+inlinenoexcept
+
+
Returns
if all boolean flags are false returns true - high quality, else false - low quality.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_subjective_quality.js b/doc/fsdk/html/structfsdk_1_1_subjective_quality.js new file mode 100644 index 0000000..a35a17a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_subjective_quality.js @@ -0,0 +1,14 @@ +var structfsdk_1_1_subjective_quality = +[ + [ "isGood", "structfsdk_1_1_subjective_quality.html#aef4e078366ce04c34f82502014a14f36", null ], + [ "blur", "structfsdk_1_1_subjective_quality.html#aa93616076c40581d9ee7dc4ad3b27c68", null ], + [ "darkness", "structfsdk_1_1_subjective_quality.html#a0664ef03eaaff2823e05459308e1afcd", null ], + [ "illumination", "structfsdk_1_1_subjective_quality.html#a1fcc037831b275853f927256b1a73437", null ], + [ "isBlurred", "structfsdk_1_1_subjective_quality.html#a33b5854398112f5d90380b8f4c97ccec", null ], + [ "isDark", "structfsdk_1_1_subjective_quality.html#a7de917121f7318bdd74dbe19e46d7bf4", null ], + [ "isHighlighted", "structfsdk_1_1_subjective_quality.html#aa29edbac8dc25efac2dec18ca0a54d20", null ], + [ "isIlluminated", "structfsdk_1_1_subjective_quality.html#a530622210217527532267f65b97c51a4", null ], + [ "isNotSpecular", "structfsdk_1_1_subjective_quality.html#a6c0ffcd0a4851eb3603929c243711ba5", null ], + [ "light", "structfsdk_1_1_subjective_quality.html#a4f476b8f88a3e7db3ec85cea02e5bd91", null ], + [ "specularity", "structfsdk_1_1_subjective_quality.html#ab0172938c088ddb1cf55a912aadd3824", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_transformation-members.html b/doc/fsdk/html/structfsdk_1_1_transformation-members.html new file mode 100644 index 0000000..2bd8550 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_transformation-members.html @@ -0,0 +1,133 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Transformation Member List
+
+
+ +

This is the complete list of members for fsdk::Transformation, including all inherited members.

+ + + + + + +
angleDeg (defined in fsdk::Transformation)fsdk::Transformation
centerP (defined in fsdk::Transformation)fsdk::Transformation
detectionTopLeft (defined in fsdk::Transformation)fsdk::Transformation
isValid (defined in fsdk::Transformation)fsdk::Transformation
scale (defined in fsdk::Transformation)fsdk::Transformation
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_transformation.html b/doc/fsdk/html/structfsdk_1_1_transformation.html new file mode 100644 index 0000000..f06675a --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_transformation.html @@ -0,0 +1,160 @@ + + + + + + +Face Engine SDK: fsdk::Transformation Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Transformation Struct Reference
+
+
+ +

Transformation data structure, used for warping. + More...

+ +

#include <IWarper.h>

+ + + + + + + + + + + + +

+Public Attributes

+Vector2< float > centerP = {0, 0}
 
+float angleDeg = 0
 
+float scale = 0
 
+Vector2< int > detectionTopLeft = {0, 0}
 
+bool isValid = false
 
+

Detailed Description

+

Transformation data structure, used for warping.

+

Use this structure to perform image and landmarks transformations.

+
Note
In no circumstances should you create OR edit this structure by yourself
+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_transformation.js b/doc/fsdk/html/structfsdk_1_1_transformation.js new file mode 100644 index 0000000..8cdaf07 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_transformation.js @@ -0,0 +1,8 @@ +var structfsdk_1_1_transformation = +[ + [ "angleDeg", "structfsdk_1_1_transformation.html#a447a7086c9bd6fa86fb739c5cda69a45", null ], + [ "centerP", "structfsdk_1_1_transformation.html#aca1a89d8386b615db1dd029a7f897bb8", null ], + [ "detectionTopLeft", "structfsdk_1_1_transformation.html#a1aa41bade0699914dc3e0e79f1901698", null ], + [ "isValid", "structfsdk_1_1_transformation.html#a6db82eb0dd7bed0e2518474652f3ddec", null ], + [ "scale", "structfsdk_1_1_transformation.html#a2d5d4812f60ef02f39467941845cb857", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_vector2-members.html b/doc/fsdk/html/structfsdk_1_1_vector2-members.html new file mode 100644 index 0000000..0ca9e2b --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_vector2-members.html @@ -0,0 +1,160 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Vector2< T > Member List
+
+
+ +

This is the complete list of members for fsdk::Vector2< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
operator!=(const Vector2 &other) const noexceptfsdk::Vector2< T >inline
operator*(const Vector2 &rhs) const noexceptfsdk::Vector2< T >inline
operator*(T rhs) const noexceptfsdk::Vector2< T >inline
operator*=(const Vector2 &rhs) noexceptfsdk::Vector2< T >inline
operator*=(T rhs) noexceptfsdk::Vector2< T >inline
operator+(const Vector2 &rhs) const noexceptfsdk::Vector2< T >inline
operator+(T rhs) const noexceptfsdk::Vector2< T >inline
operator+=(const Vector2 &rhs) noexceptfsdk::Vector2< T >inline
operator+=(T rhs) noexceptfsdk::Vector2< T >inline
operator-(void) const noexceptfsdk::Vector2< T >inline
operator-(const Vector2 &rhs) const noexceptfsdk::Vector2< T >inline
operator-(T rhs) const noexceptfsdk::Vector2< T >inline
operator-=(const Vector2 &rhs) noexceptfsdk::Vector2< T >inline
operator-=(T rhs) noexceptfsdk::Vector2< T >inline
operator/(const Vector2 &rhs) const noexceptfsdk::Vector2< T >inline
operator/(T rhs) const noexceptfsdk::Vector2< T >inline
operator/=(const Vector2 &rhs) noexceptfsdk::Vector2< T >inline
operator/=(T rhs) noexceptfsdk::Vector2< T >inline
operator<(const Vector2 &other) const noexceptfsdk::Vector2< T >inline
operator<=(const Vector2 &other) const noexceptfsdk::Vector2< T >inline
operator=(const Vector2< Other > &other) noexceptfsdk::Vector2< T >inline
operator==(const Vector2 &other) const noexceptfsdk::Vector2< T >inline
operator>(const Vector2 &other) const noexceptfsdk::Vector2< T >inline
operator>=(const Vector2 &other) const noexceptfsdk::Vector2< T >inline
operator[](int n) noexceptfsdk::Vector2< T >inline
operator[](int n) const noexceptfsdk::Vector2< T >inline
Vector2() noexceptfsdk::Vector2< T >inline
Vector2(T x_) noexceptfsdk::Vector2< T >inlineexplicit
Vector2(T x_, T y_) noexceptfsdk::Vector2< T >inline
Vector2(const Vector2< Other > &other) noexceptfsdk::Vector2< T >inline
xfsdk::Vector2< T >
yfsdk::Vector2< T >
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_vector2.html b/doc/fsdk/html/structfsdk_1_1_vector2.html new file mode 100644 index 0000000..5065ba8 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_vector2.html @@ -0,0 +1,1280 @@ + + + + + + +Face Engine SDK: fsdk::Vector2< T > Struct Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Vector2< T > Struct Template Reference
+
+
+ +

Generic 2D vector. + More...

+ +

#include <Vector2.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Vector2 () noexcept
 Initializes a vector with zeroes.
 
 Vector2 (T x_) noexcept
 Initializes all elements with the same value. More...
 
 Vector2 (T x_, T y_) noexcept
 Initializes elements with given value. More...
 
template<typename Other >
 Vector2 (const Vector2< Other > &other) noexcept
 Copies another vector. More...
 
template<typename Other >
Vector2< T > & operator= (const Vector2< Other > &other) noexcept
 Copies another vector. More...
 
bool operator== (const Vector2 &other) const noexcept
 Checks if two vectors are equal. More...
 
bool operator!= (const Vector2 &other) const noexcept
 Checks if two vectors are not equal. More...
 
bool operator> (const Vector2 &other) const noexcept
 Checks if both coordinates are greater then respective coordinates of another vector. More...
 
bool operator>= (const Vector2 &other) const noexcept
 Checks if both coordinates are greater or equal to respective coordinates of another vector. More...
 
bool operator< (const Vector2 &other) const noexcept
 Checks if both coordinates are smaller then respective coordinates of another vector. More...
 
bool operator<= (const Vector2 &other) const noexcept
 Checks if both coordinates are smaller or equal to respective coordinates of another vector. More...
 
T & operator[] (int n) noexcept
 Indexes the vector. More...
 
const T & operator[] (int n) const noexcept
 Indexes the vector. More...
 
Vector2 operator- (void) const noexcept
 Negates all elements. More...
 
Vector2 operator+ (const Vector2 &rhs) const noexcept
 Adds (per-element) two vectors. More...
 
Vector2 operator- (const Vector2 &rhs) const noexcept
 Subtracts (per-element) two vectors. More...
 
Vector2 operator* (const Vector2 &rhs) const noexcept
 Multiplies (per-element) two vectors. More...
 
Vector2 operator/ (const Vector2 &rhs) const noexcept
 Divides (per-element) two vectors. More...
 
Vector2operator+= (const Vector2 &rhs) noexcept
 Adds (per-element) two vectors. More...
 
Vector2operator-= (const Vector2 &rhs) noexcept
 Subtracts (per-element) two vectors. More...
 
Vector2operator*= (const Vector2 &rhs) noexcept
 Multiplies (per-element) two vectors. More...
 
Vector2operator/= (const Vector2 &rhs) noexcept
 Divides (per-element) two vectors. More...
 
Vector2 operator+ (T rhs) const noexcept
 Adds (per-element) a constant to each element of the vector. More...
 
Vector2 operator- (T rhs) const noexcept
 Subtracts (per-element) a constant to each element of the vector. More...
 
Vector2 operator* (T rhs) const noexcept
 Multiplies (per-element) a constant to each element of the vector. More...
 
Vector2 operator/ (T rhs) const noexcept
 Divides (per-element) a constant to each element of the vector. More...
 
Vector2operator+= (T rhs) noexcept
 Adds (per-element) a constant to each element of the vector. More...
 
Vector2operator-= (T rhs) noexcept
 Subtracts (per-element) a constant to each element of the vector. More...
 
Vector2operator*= (T rhs) noexcept
 Multiplies (per-element) a constant to each element of the vector. More...
 
Vector2operator/= (T rhs) noexcept
 Divides (per-element) a constant to each element of the vector. More...
 
+ + + + + + + +

+Public Attributes

+T x
 x coordinate.
 
+T y
 y coordinate.
 
+

Detailed Description

+

template<typename T>
+struct fsdk::Vector2< T >

+ +

Generic 2D vector.

+
Template Parameters
+ + +
Tany POD numeric type.
+
+
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
fsdk::Vector2< T >::Vector2 (x_)
+
+inlineexplicitnoexcept
+
+ +

Initializes all elements with the same value.

+
Parameters
+ + +
[in]x_value to initialize with.
+
+
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
fsdk::Vector2< T >::Vector2 (x_,
y_ 
)
+
+inlinenoexcept
+
+ +

Initializes elements with given value.

+
Parameters
+ + + +
[in]x_x coordinate value.
[in]y_y coordinate value.
+
+
+ +
+
+ +
+
+
+template<typename T>
+
+template<typename Other >
+ + + + + +
+ + + + + + + + +
fsdk::Vector2< T >::Vector2 (const Vector2< Other > & other)
+
+inlinenoexcept
+
+ +

Copies another vector.

+
Parameters
+ + +
[in]otheranother vector.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Vector2< T >::operator!= (const Vector2< T > & other) const
+
+inlinenoexcept
+
+ +

Checks if two vectors are not equal.

+
Parameters
+ + +
[in]othervector to check against.
+
+
+
Returns
true if two vectors are not equal.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator* (const Vector2< T > & rhs) const
+
+inlinenoexcept
+
+ +

Multiplies (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to multiply by.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator* (rhs) const
+
+inlinenoexcept
+
+ +

Multiplies (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to multiply by.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator*= (const Vector2< T > & rhs)
+
+inlinenoexcept
+
+ +

Multiplies (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to multiply by.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator*= (rhs)
+
+inlinenoexcept
+
+ +

Multiplies (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to multiply by.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator+ (const Vector2< T > & rhs) const
+
+inlinenoexcept
+
+ +

Adds (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to add.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator+ (rhs) const
+
+inlinenoexcept
+
+ +

Adds (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to add.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator+= (const Vector2< T > & rhs)
+
+inlinenoexcept
+
+ +

Adds (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to add.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator+= (rhs)
+
+inlinenoexcept
+
+ +

Adds (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to add.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator- (void ) const
+
+inlinenoexcept
+
+ +

Negates all elements.

+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator- (const Vector2< T > & rhs) const
+
+inlinenoexcept
+
+ +

Subtracts (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to subtract.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator- (rhs) const
+
+inlinenoexcept
+
+ +

Subtracts (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to subtract.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator-= (const Vector2< T > & rhs)
+
+inlinenoexcept
+
+ +

Subtracts (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to subtract.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator-= (rhs)
+
+inlinenoexcept
+
+ +

Subtracts (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to subtract.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator/ (const Vector2< T > & rhs) const
+
+inlinenoexcept
+
+ +

Divides (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to divide by.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2 fsdk::Vector2< T >::operator/ (rhs) const
+
+inlinenoexcept
+
+ +

Divides (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to divide by.
+
+
+
Returns
resulting vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator/= (const Vector2< T > & rhs)
+
+inlinenoexcept
+
+ +

Divides (per-element) two vectors.

+
Parameters
+ + +
[in]rhsvector to divide by.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
Vector2& fsdk::Vector2< T >::operator/= (rhs)
+
+inlinenoexcept
+
+ +

Divides (per-element) a constant to each element of the vector.

+
Parameters
+ + +
[in]rhsvalue to divide by.
+
+
+
Returns
modified vector.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Vector2< T >::operator< (const Vector2< T > & other) const
+
+inlinenoexcept
+
+ +

Checks if both coordinates are smaller then respective coordinates of another vector.

+
Parameters
+ + +
[in]othervector to check against.
+
+
+
Returns
true if smaller.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Vector2< T >::operator<= (const Vector2< T > & other) const
+
+inlinenoexcept
+
+ +

Checks if both coordinates are smaller or equal to respective coordinates of another vector.

+
Parameters
+ + +
[in]othervector to check against.
+
+
+
Returns
true if smaller or equal.
+ +
+
+ +
+
+
+template<typename T>
+
+template<typename Other >
+ + + + + +
+ + + + + + + + +
Vector2<T>& fsdk::Vector2< T >::operator= (const Vector2< Other > & other)
+
+inlinenoexcept
+
+ +

Copies another vector.

+
Parameters
+ + +
[in]otheranother vector.
+
+
+
Returns
reference for call chaining.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Vector2< T >::operator== (const Vector2< T > & other) const
+
+inlinenoexcept
+
+ +

Checks if two vectors are equal.

+
Parameters
+ + +
[in]othervector to check against.
+
+
+
Returns
true if two vectors are equal.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Vector2< T >::operator> (const Vector2< T > & other) const
+
+inlinenoexcept
+
+ +

Checks if both coordinates are greater then respective coordinates of another vector.

+
Parameters
+ + +
[in]othervector to check against.
+
+
+
Returns
true if greater.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
bool fsdk::Vector2< T >::operator>= (const Vector2< T > & other) const
+
+inlinenoexcept
+
+ +

Checks if both coordinates are greater or equal to respective coordinates of another vector.

+
Parameters
+ + +
[in]othervector to check against.
+
+
+
Returns
true if greater or equal.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
T& fsdk::Vector2< T >::operator[] (int n)
+
+inlinenoexcept
+
+ +

Indexes the vector.

+
Parameters
+ + +
[in]nelement index.
+
+
+
Returns
element reference.
+ +
+
+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + +
const T& fsdk::Vector2< T >::operator[] (int n) const
+
+inlinenoexcept
+
+ +

Indexes the vector.

+
Parameters
+ + +
[in]nelement index.
+
+
+
Returns
element const reference.
+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_vector2.js b/doc/fsdk/html/structfsdk_1_1_vector2.js new file mode 100644 index 0000000..acf49f5 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_vector2.js @@ -0,0 +1,35 @@ +var structfsdk_1_1_vector2 = +[ + [ "Vector2", "structfsdk_1_1_vector2.html#a57e66b5d143530872dd97cebf9d4f612", null ], + [ "Vector2", "structfsdk_1_1_vector2.html#ab3c0e3b1d901a7b2ce1c6adca6ea52ef", null ], + [ "Vector2", "structfsdk_1_1_vector2.html#a917588f75f38aae344e68dc2716d4d1f", null ], + [ "Vector2", "structfsdk_1_1_vector2.html#aa07680773448e02a42ce2732888bc695", null ], + [ "operator!=", "structfsdk_1_1_vector2.html#a5cbac5fcdaafba36e50105912b15e046", null ], + [ "operator*", "structfsdk_1_1_vector2.html#a58e43c916ff907d4733b091dc75021e8", null ], + [ "operator*", "structfsdk_1_1_vector2.html#af7537f9258b5bab68b965aa8334319eb", null ], + [ "operator*=", "structfsdk_1_1_vector2.html#abff546b10f081f4cb170e10ee9fbac53", null ], + [ "operator*=", "structfsdk_1_1_vector2.html#a3772de7cc691c6d62544939ada5f741f", null ], + [ "operator+", "structfsdk_1_1_vector2.html#a11766eb4a861ba0893b9a54e654ad426", null ], + [ "operator+", "structfsdk_1_1_vector2.html#af723d6081a9e7c0275d59dfd8d99a515", null ], + [ "operator+=", "structfsdk_1_1_vector2.html#a1901f162f6d81353a3df86e3611f50ab", null ], + [ "operator+=", "structfsdk_1_1_vector2.html#a956df0b0a02e8a0a2129749129c97676", null ], + [ "operator-", "structfsdk_1_1_vector2.html#a9d794b42a1325f714bfec2433824e0e9", null ], + [ "operator-", "structfsdk_1_1_vector2.html#a3d0c0ec312b76c2915b4c6abcfc52eb4", null ], + [ "operator-", "structfsdk_1_1_vector2.html#a92c46ca31baaa100454fc2e784d67468", null ], + [ "operator-=", "structfsdk_1_1_vector2.html#a4f175def8e52677a34f4ec2387e7e0e8", null ], + [ "operator-=", "structfsdk_1_1_vector2.html#aae171d417781b18c1364475616bd299c", null ], + [ "operator/", "structfsdk_1_1_vector2.html#a4c82f3241e2d679d3162e7c53ad1afb7", null ], + [ "operator/", "structfsdk_1_1_vector2.html#af311eb73a9da48a6535898971a2eec8c", null ], + [ "operator/=", "structfsdk_1_1_vector2.html#a46e85141a5bb78673cfe23bb3ca4db41", null ], + [ "operator/=", "structfsdk_1_1_vector2.html#a3776a6caebaa364cd55f817618abbfdf", null ], + [ "operator<", "structfsdk_1_1_vector2.html#a9d255e944558f53656e8e689e82fe6b2", null ], + [ "operator<=", "structfsdk_1_1_vector2.html#a099d2a886cd88ae652fcb1ba4aa560b8", null ], + [ "operator=", "structfsdk_1_1_vector2.html#a04a185c2ceddc611bea5c939c2124898", null ], + [ "operator==", "structfsdk_1_1_vector2.html#ae8a5c741804ce2fd3c0feb7a7897fc90", null ], + [ "operator>", "structfsdk_1_1_vector2.html#a86cefdf00bbc408525a5cb93fb6aa132", null ], + [ "operator>=", "structfsdk_1_1_vector2.html#aaa3f5f7de83b0c7063a36c67cd2ae9ce", null ], + [ "operator[]", "structfsdk_1_1_vector2.html#a15132224488f37333baf143bf522f863", null ], + [ "operator[]", "structfsdk_1_1_vector2.html#a07d0a831616016167cfecb63afa91879", null ], + [ "x", "structfsdk_1_1_vector2.html#a34f9f070bb21a4c86ae186af3ea70c0e", null ], + [ "y", "structfsdk_1_1_vector2.html#ae10a702fcc91d74d442734bb050e6763", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/structfsdk_1_1_version-members.html b/doc/fsdk/html/structfsdk_1_1_version-members.html new file mode 100644 index 0000000..5edf0de --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_version-members.html @@ -0,0 +1,131 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
fsdk::Version Member List
+
+
+ +

This is the complete list of members for fsdk::Version, including all inherited members.

+ + + + +
majorfsdk::Version
minorfsdk::Version
patchfsdk::Version
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_version.html b/doc/fsdk/html/structfsdk_1_1_version.html new file mode 100644 index 0000000..8213998 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_version.html @@ -0,0 +1,152 @@ + + + + + + +Face Engine SDK: fsdk::Version Struct Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::Version Struct Reference
+
+
+ +

#include <Version.h>

+ + + + + + + + + + + +

+Public Attributes

+uint8_t major
 Major version number.
 
+uint8_t minor
 Minor version number.
 
+uint16_t patch
 Revision number.
 
+

Detailed Description

+

Version structure.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/structfsdk_1_1_version.js b/doc/fsdk/html/structfsdk_1_1_version.js new file mode 100644 index 0000000..2d87cf1 --- /dev/null +++ b/doc/fsdk/html/structfsdk_1_1_version.js @@ -0,0 +1,6 @@ +var structfsdk_1_1_version = +[ + [ "major", "structfsdk_1_1_version.html#aa51eaf974da4d0a2fdc3bd41bd43df36", null ], + [ "minor", "structfsdk_1_1_version.html#a6ac214dbaed6cb0c9af597a0ce45fa73", null ], + [ "patch", "structfsdk_1_1_version.html#a720d91d998895868039802a5e26f0df2", null ] +]; \ No newline at end of file diff --git a/doc/fsdk/html/sync_off.png b/doc/fsdk/html/sync_off.png new file mode 100644 index 0000000..3b443fc Binary files /dev/null and b/doc/fsdk/html/sync_off.png differ diff --git a/doc/fsdk/html/sync_on.png b/doc/fsdk/html/sync_on.png new file mode 100644 index 0000000..e08320f Binary files /dev/null and b/doc/fsdk/html/sync_on.png differ diff --git a/doc/fsdk/html/tab_a.png b/doc/fsdk/html/tab_a.png new file mode 100644 index 0000000..3b725c4 Binary files /dev/null and b/doc/fsdk/html/tab_a.png differ diff --git a/doc/fsdk/html/tab_b.png b/doc/fsdk/html/tab_b.png new file mode 100644 index 0000000..e2b4a86 Binary files /dev/null and b/doc/fsdk/html/tab_b.png differ diff --git a/doc/fsdk/html/tab_h.png b/doc/fsdk/html/tab_h.png new file mode 100644 index 0000000..fd5cb70 Binary files /dev/null and b/doc/fsdk/html/tab_h.png differ diff --git a/doc/fsdk/html/tab_s.png b/doc/fsdk/html/tab_s.png new file mode 100644 index 0000000..ab478c9 Binary files /dev/null and b/doc/fsdk/html/tab_s.png differ diff --git a/doc/fsdk/html/tabs.css b/doc/fsdk/html/tabs.css new file mode 100644 index 0000000..9cf578f --- /dev/null +++ b/doc/fsdk/html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data-members.html b/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data-members.html new file mode 100644 index 0000000..039ec8c --- /dev/null +++ b/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data-members.html @@ -0,0 +1,137 @@ + + + + + + +Face Engine SDK: Member List + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + diff --git a/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html b/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html new file mode 100644 index 0000000..849e3fb --- /dev/null +++ b/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html @@ -0,0 +1,210 @@ + + + + + + +Face Engine SDK: fsdk::ISettingsProvider::Value::Data Union Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Face Engine SDK +  5.8.0 +
+
A face detection, recognition and tracking engine.
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
fsdk::ISettingsProvider::Value::Data Union Reference
+
+
+ +

Value data. + More...

+ +

#include <ISettingsProvider.h>

+ + + + + + + + + + + + + + + + + + + + +

+Classes

struct  Float1
 
struct  Float2
 
struct  Float3
 
struct  Float4
 
struct  Int1
 
struct  Int2
 
struct  Int3
 
struct  Int4
 
struct  String
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+struct
+fsdk::ISettingsProvider::Value::Data::Int1 
m_int1
 Data as integer.
 
+struct
+fsdk::ISettingsProvider::Value::Data::Int2 
m_int2
 Data as 2D integer.
 
+struct
+fsdk::ISettingsProvider::Value::Data::Int3 
m_int3
 Data as 3D integer.
 
+struct
+fsdk::ISettingsProvider::Value::Data::Int4 
m_int4
 Data as 4D integer.
 
+struct
+fsdk::ISettingsProvider::Value::Data::Float1 
m_float1
 Data as float.
 
+struct
+fsdk::ISettingsProvider::Value::Data::Float2 
m_float2
 Data as 2D float.
 
+struct
+fsdk::ISettingsProvider::Value::Data::Float3 
m_float3
 Data as 3D float.
 
+struct
+fsdk::ISettingsProvider::Value::Data::Float4 
m_float4
 Data as 4D float.
 
+struct
+fsdk::ISettingsProvider::Value::Data::String 
m_string
 Data as string.
 
+

Detailed Description

+

Value data.

+

The documentation for this union was generated from the following file: +
+
+ + + + diff --git a/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.js b/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.js new file mode 100644 index 0000000..511212b --- /dev/null +++ b/doc/fsdk/html/unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.js @@ -0,0 +1,21 @@ +var unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data = +[ + [ "Float1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float1" ], + [ "Float2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float2" ], + [ "Float3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float3" ], + [ "Float4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_float4" ], + [ "Int1", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int1" ], + [ "Int2", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int2" ], + [ "Int3", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int3" ], + [ "Int4", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_int4" ], + [ "String", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string.html", "structfsdk_1_1_i_settings_provider_1_1_value_1_1_data_1_1_string" ], + [ "m_float1", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a77dc14765597fe4cf65da827a2c36d01", null ], + [ "m_float2", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#ab756fa69de93422f525aede6fd4d5dcb", null ], + [ "m_float3", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a5ec6030828e645853be71394e3d22e8e", null ], + [ "m_float4", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aec1196921ed7470f8869d930160883cf", null ], + [ "m_int1", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a19bebc0b9e17e194c981355ce0bfa90a", null ], + [ "m_int2", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a9b685dfe0da1654cdbc72215f2db04ed", null ], + [ "m_int3", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#afa87698cc37557d1cae0bdafb2663ec4", null ], + [ "m_int4", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#a3e4b62bfb96be90b38126d7af628fef5", null ], + [ "m_string", "unionfsdk_1_1_i_settings_provider_1_1_value_1_1_data.html#aea8dd6b42c5e9ffa5ffebfb8e31e5b23", null ] +]; \ No newline at end of file diff --git a/examples/.DS_Store b/examples/.DS_Store new file mode 100644 index 0000000..656aa3d Binary files /dev/null and b/examples/.DS_Store differ diff --git a/examples/cmake/FindFaceEngineSDK.cmake b/examples/cmake/FindFaceEngineSDK.cmake new file mode 100644 index 0000000..dcfca17 --- /dev/null +++ b/examples/cmake/FindFaceEngineSDK.cmake @@ -0,0 +1,189 @@ +# Find the Vision Labs Face SDK. +# Sets the usual variables expected for find_package scripts: +# FSDK_INCLUDE_DIRS - headers location +# FSDK_LIBRARIES - libraries to link against +# FSDK_RUNTIME_LIBRARIES - runtime libraries +# FSDK_FOUND - true if Face SDK was found. + +# This is the directory where the Face SDK is located. +# By default FSDKDIR environment variable value is taken. +set(FSDK_ROOT "$ENV{FSDKDIR}" CACHE PATH "Vision Labs Face SDK root directory.") + +# Look for headers. +find_path(FSDK_INCLUDE_DIRS + NAMES fsdk/FaceEngine.h fsdk/Types.h fsdk/Def.h + HINTS $ENV{FSDKDIR} + PATHS ${FSDK_ROOT} + PATH_SUFFIXES include) + +# iOS framework have different header structure: not flower/header.h, but Headers/header.h. But when you link against framework it's name is used as prefix for includes, so you still use its includes as flower/header.h in c++ code. +# Now the reason to set this variable is that its used for every other platform and its easier to fake it than rewrite most cmakelists +if(IOS OR ANDROID) + set(FSDK_INCLUDE_DIRS ${FSDK_ROOT}/include) +endif() + +#message(STATUS "FSDK: FSDK_INCLUDE_DIRS = ${FSDK_INCLUDE_DIRS}.") + +if(WIN32) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") +elseif(APPLE AND NOT IOS) # mac os + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".dylib") +else() + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") +endif() + +# Determine compiler version and architecture. +# ios has no architechture/compiler branching, because only can only use clang +# and if you need multiple architechtures there still compiled into single universal binary +if(NOT IOS) + if(MSVC10) + set(FSDK_COMPILER_NAME vs2010) + elseif(MSVC11) + set(FSDK_COMPILER_NAME vs2012) + elseif(MSVC12) + set(FSDK_COMPILER_NAME vs2013) + elseif(MSVC14) + set(FSDK_COMPILER_NAME vs2015) + elseif(CMAKE_COMPILER_IS_GNUCXX) + set(FSDK_COMPILER_NAME gcc4) + elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(FSDK_COMPILER_NAME clang) + elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") + set(FSDK_COMPILER_NAME clang) + else() + message(SEND_ERROR "[FindFSDK] Unsupported compiler: ${FSDK_COMPILER_NAME}") + endif() + + if(ANDROID) + set(FSDK_TARGET_NAME ${ANDROID_ABI}) + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(FSDK_TARGET_NAME x64) + else() + set(FSDK_TARGET_NAME x86) + endif() + + # What version of Face SDK to use. + set(FSDK_LIB_PREFIX ${FSDK_COMPILER_NAME}/${FSDK_TARGET_NAME}) +endif() + +if(IOS) + # List of all SDK libraries. + set(FSDK_LIB_NAMES fsdk) +else() + # List of all SDK libraries. + set(FSDK_LIB_NAMES FaceEngineSDK) +endif() + +if(IOS) + set(FSDK_LIB_PATH_SUFFIX Frameworks) + set(FSDK_BIN_PATH_SUFFIX Frameworks) +else() + set(FSDK_LIB_PATH_SUFFIX lib/${FSDK_LIB_PREFIX}) + set(FSDK_BIN_PATH_SUFFIX bin/${FSDK_LIB_PREFIX}) +endif() + + +macro(find_fsdk_library LIBRARY_VAR LIBRARY_NAME) + + find_library(${LIBRARY_VAR} + NAMES ${LIBRARY_NAME} + HINTS $ENV{FSDKDIR} + PATHS ${FSDK_ROOT} + PATH_SUFFIXES ${FSDK_LIB_PATH_SUFFIX} + NO_DEFAULT_PATH + ) + +endmacro() + +if(IOS) + find_fsdk_library(FSDK_LIBRARY_RELEASE fsdk) + find_fsdk_library(FSDK_LIBRARY_DEBUG fsdkd) +elseif(EMSCRIPTEN) + if(EXISTS "${FSDK_ROOT}/include/fsdk/FaceEngine.h") + message(STATUS "[FindFSDK]:${FSDK_ROOT}/include/fsdk/FaceEngine.h exists!") + set(FSDK_INCLUDE_DIRS ${FSDK_ROOT}/include) + else() + message(ERROR "[FindFSDK]:${FSDK_ROOT}/include/fsdk/FaceEngine.h not found...") + endif() + + if(EXISTS "${FSDK_ROOT}/lib/clang/x86/libFaceEngineSDK.bc") + message(STATUS "[FindFSDK]: ${FSDK_ROOT}/lib/clang/x86/libFaceEngineSDK.bc exists!") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libvlc.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libflower.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libSdkCore.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libDetector.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libEstimator.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libLicensing.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libMTCNN.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libOpticalFlow.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libWarper.bc") + list(APPEND FSDK_LIBRARY_RELEASE "${FSDK_ROOT}/lib/clang/x86/libFaceEngineSDK.bc") + else() + message(ERROR "[FindFSDK]: ${FSDK_ROOT}/lib/clang/x86/libFaceEngineSDK.bc not found...") + endif() +else() + find_fsdk_library(FSDK_LIBRARY_RELEASE FaceEngineSDK) + find_fsdk_library(FSDK_LIBRARY_DEBUG FaceEngineSDKd) +endif() + +if(WIN32) + + macro(find_fsdk_runtime_library LIBRARY_VAR LIBRARY_NAME) + find_library(${LIBRARY_VAR} + NAMES ${LIBRARY_NAME} + HINTS $ENV{FSDKDIR} + PATHS ${FSDK_ROOT} + PATH_SUFFIXES ${FSDK_BIN_PATH_SUFFIX} + NO_DEFAULT_PATH + ) + endmacro() + + find_fsdk_runtime_library(FSDK_RUNTIME_LIBRARY_RELEASE FaceEngineSDK) + find_fsdk_runtime_library(FSDK_RUNTIME_LIBRARY_DEBUG FaceEngineSDKd) +endif() + +#link components +if(FSDK_LIBRARY_RELEASE AND FSDK_LIBRARY_DEBUG) + set(FSDK_LIBRARIES optimized ${FSDK_LIBRARY_RELEASE} debug ${FSDK_LIBRARY_DEBUG}) +elseif(FSDK_LIBRARY_DEBUG) + set(FSDK_LIBRARIES ${FSDK_LIBRARY_DEBUG}) + message(STATUS "[FindFSDK]: Release libraries were not found") +elseif(FSDK_LIBRARY_RELEASE) + set(FSDK_LIBRARIES ${FSDK_LIBRARY_RELEASE}) + message(STATUS "[FindFSDK]: Debug libraries were not found") +endif() + +#runtime components +if(WIN32) + if(FSDK_RUNTIME_LIBRARY_RELEASE) + list(APPEND FSDK_RUNTIME_LIBRARIES ${FSDK_RUNTIME_LIBRARY_RELEASE}) + endif() + + if(FSDK_RUNTIME_LIBRARY_DEBUG) + list(APPEND FSDK_RUNTIME_LIBRARIES ${FSDK_RUNTIME_LIBRARY_DEBUG}) + endif() +else() + list(APPEND FSDK_RUNTIME_LIBRARIES ${FSDK_LIBRARIES}) +endif() + +message(STATUS "[FindFSDK]: FSDK_INCLUDE_DIRS: ${FSDK_INCLUDE_DIRS}") +message(STATUS "[FindFSDK]: FSDK_LIBRARIES: ${FSDK_LIBRARIES}") +message(STATUS "[FindFSDK]: FSDK_RUNTIME_LIBRARIES: ${FSDK_RUNTIME_LIBRARIES}") + +# Support the REQUIRED and QUIET arguments, and set FSDK_FOUND if found. +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(FSDK DEFAULT_MSG + FSDK_INCLUDE_DIRS + FSDK_LIBRARIES + FSDK_RUNTIME_LIBRARIES +) + +# Don't show in GUI +mark_as_advanced( + FSDK_INCLUDE_DIRS + FSDK_LIBRARIES + FSDK_COMPILER_NAME + FSDK_TARGET_NAME + FSDK_LIB_PREFIX + FSDK_LIB_NAMES +) diff --git a/examples/cmake/FindFreeImage.cmake b/examples/cmake/FindFreeImage.cmake new file mode 100644 index 0000000..e9b5b84 --- /dev/null +++ b/examples/cmake/FindFreeImage.cmake @@ -0,0 +1,160 @@ +# Find the FreeImage library. +# +# This module defines +# FREEIMAGE_FOUND - True if FREEIMAGE was found. +# FREEIMAGE_INCLUDE_DIRS - Include directories for FREEIMAGE headers. +# FREEIMAGE_LIBRARIES - Libraries for FREEIMAGE. +# +# To specify an additional directory to search, set FREEIMAGE_ROOT. +# +# Copyright (c) 2010, Ewen Cheslack-Postava +# Based on FindSQLite3.cmake by: +# Copyright (c) 2006, Jaroslaw Staniek, +# Extended by Siddhartha Chaudhuri, 2008. +# +# Redistribution and use is allowed according to the terms of the BSD license. +# + +SET(FREEIMAGE_FOUND FALSE) +SET(FREEIMAGE_INCLUDE_DIRS) +SET(FREEIMAGE_LIBRARIES) + +SET(SEARCH_PATHS + $ENV{ProgramFiles}/freeimage/include + $ENV{SystemDrive}/freeimage/include + $ENV{ProgramFiles}/freeimage + $ENV{SystemDrive}/freeimage + ) +IF(FREEIMAGE_ROOT) + SET(SEARCH_PATHS + ${FREEIMAGE_ROOT} + ${FREEIMAGE_ROOT}/include + ${SEARCH_PATHS} + ) +ENDIF() + +IF(ANDROID) + set(FREEIMAGE_INCLUDE_DIRS "${FREEIMAGE_ROOT}/include") +ELSE() + message("123 ${FREEIMAGE_INCLUDE_DIRS} ${SEARCH_PATHS}") + FIND_PATH(FREEIMAGE_INCLUDE_DIRS + NAMES FreeImage.h + PATHS ${SEARCH_PATHS} + NO_DEFAULT_PATH) + message("123 ${FREEIMAGE_INCLUDE_DIRS}") +ENDIF() + +IF(NOT FREEIMAGE_INCLUDE_DIRS) # now look in system locations + set(FREEIMAGE_ROOT CACHE PATH "Path to FreeImage lib and header") + FIND_PATH(FREEIMAGE_INCLUDE_DIRS + NAMES FreeImage.h + PATHS ${FREEIMAGE_ROOT} + NO_DEFAULT_PATH) +ENDIF(NOT FREEIMAGE_INCLUDE_DIRS) + + +SET(FREEIMAGE_LIBRARY_DIRS) +IF(FREEIMAGE_ROOT) + SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_ROOT}) + IF(ANDROID) + SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_ROOT}/lib/${ANDROID_ABI}) + ELSE() + IF(EXISTS "${FREEIMAGE_ROOT}/lib") + SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_LIBRARY_DIRS} ${FREEIMAGE_ROOT}/lib) + ENDIF() + IF(EXISTS "${FREEIMAGE_ROOT}/lib/static") + SET(FREEIMAGE_LIBRARY_DIRS ${FREEIMAGE_LIBRARY_DIRS} ${FREEIMAGE_ROOT}/lib/static) + ENDIF() + ENDIF() +ENDIF() + +# FREEIMAGE +# Without system dirs +IF(ANDROID) + SET(FREEIMAGE_LIBRARY ${FREEIMAGE_ROOT}/lib/${ANDROID_ABI}/libFreeImage.a) +ELSE() + FIND_LIBRARY(FREEIMAGE_LIBRARY + NAMES FreeImage + PATHS ${FREEIMAGE_LIBRARY_DIRS} + NO_DEFAULT_PATH + ) +ENDIF() + + +IF(NOT FREEIMAGE_LIBRARY) # now look in system locations + FIND_LIBRARY(FREEIMAGE_LIBRARY NAMES freeimage) +ENDIF(NOT FREEIMAGE_LIBRARY) + +IF(NOT FREEIMAGE_INCLUDE_DIRS) # now look in system locations + FIND_PATH(FREEIMAGE_INCLUDE_DIRS NAMES FreeImage.h) +ENDIF(NOT FREEIMAGE_INCLUDE_DIRS) + +SET(FREEIMAGE_LIBRARIES) +IF(FREEIMAGE_LIBRARY) + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARY}) + + # now find dependencies + if(MSVC) + SET(FREEIMAGE_DEPENDENCIES FreeImageToolkit jpeg LibTIFF4 Metadata libpng16 zlibstatic) + else() + SET(FREEIMAGE_DEPENDENCIES jpeg Metadata png16 z FreeImageToolkit LibTIFF4) + endif() + + FOREACH(FREEIMAGE_DEP IN LISTS FREEIMAGE_DEPENDENCIES) + IF(ANDROID) + SET(FREEIMAGE_DEP_${FREEIMAGE_DEP} ${FREEIMAGE_LIBRARY_DIRS}/lib${FREEIMAGE_DEP}.a) + ELSE() + SET(FREEIMAGE_DEP_${FREEIMAGE_DEP}) + + FIND_LIBRARY(FREEIMAGE_DEP_${FREEIMAGE_DEP} + NAMES ${FREEIMAGE_DEP} + PATHS ${FREEIMAGE_LIBRARY_DIRS} + NO_DEFAULT_PATH + ) + ENDIF() + + if(FREEIMAGE_DEP_${FREEIMAGE_DEP}) + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} ${FREEIMAGE_DEP_${FREEIMAGE_DEP}}) + endif() + + endforeach() +ENDIF() + +#----------------------------------------------------------------------- +#emscripten *.bc-files with cmake: +if(EMSCRIPTEN) + if(EXISTS "${FREEIMAGE_ROOT}/include/FreeImage.h") + message("emscripten: ${FREEIMAGE_ROOT}/include/FreeImage.h exists.") + SET(FREEIMAGE_INCLUDE_DIRS "${FREEIMAGE_ROOT}/include/") + endif() + message("FREEIMAGE_INCLUDE_DIRS:${FREEIMAGE_INCLUDE_DIRS}") + + if(EXISTS "${FREEIMAGE_ROOT}/lib/libFreeImage.bc") + message("emscripten: ${FREEIMAGE_ROOT}/lib/libFreeImage.bc exists.") + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libFreeImage.bc") + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libjpeg.bc") + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libMetadata.bc") + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libpng16.bc") + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libz.bc") + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libFreeImageToolkit.bc") + SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARIES} "${FREEIMAGE_ROOT}/lib/libLibTIFF4.bc") + SET(FREEIMAGE_DEPENDENCIES jpeg Metadata png16 z FreeImageToolkit LibTIFF4) + else() + message(ERROR "emscripten: ${FREEIMAGE_ROOT}/lib/libflower.bc NOT exists.") + endif() +endif() +#----------------------------------------------------------------------- + +IF(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES) + SET(FREEIMAGE_FOUND TRUE) + IF(NOT FREEIMAGE_FIND_QUIETLY) + MESSAGE(STATUS "Found FreeImage: headers at ${FREEIMAGE_INCLUDE_DIRS}, libraries at ${FREEIMAGE_LIBRARY_DIRS} :: ${FREEIMAGE_LIBRARIES}") + ENDIF(NOT FREEIMAGE_FIND_QUIETLY) +ELSE(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES) + SET(FREEIMAGE_FOUND FALSE) + IF(FREEIMAGE_FIND_REQUIRED) + MESSAGE(STATUS "FreeImage not found") + ENDIF(FREEIMAGE_FIND_REQUIRED) +ENDIF(FREEIMAGE_INCLUDE_DIRS AND FREEIMAGE_LIBRARIES) + +MARK_AS_ADVANCED(FREEIMAGE_INCLUDE_DIRS FREEIMAGE_LIBRARIES) diff --git a/examples/cmake/FindLivenessEngineSDK.cmake b/examples/cmake/FindLivenessEngineSDK.cmake new file mode 100644 index 0000000..0919d8f --- /dev/null +++ b/examples/cmake/FindLivenessEngineSDK.cmake @@ -0,0 +1,137 @@ +# Find the Vision Labs Liveness SDK & Face SDK. +# Sets the usual variables expected for find_package scripts: +# LSDK_INCLUDE_DIRS - headers location +# LSDK_LIBRARIES - libraries to link against +# LSDK_FOUND - true if Liveness SDK was found. + +# This is the directory where the Liveness SDK is located. +# By default LSDKDIR environment variable value is taken. + +find_package(FaceEngineSDK REQUIRED) + +set(LSDK_ROOT "$ENV{LSDKDIR}" CACHE PATH "Vision Labs Liveness SDK root directory.") + +# Look for headers. +find_path(LSDK_INCLUDE_DIRS + NAMES lsdk/LivenessEngine.h lsdk/ILiveness.h + HINTS $ENV{LSDKDIR} + PATHS ${LSDK_ROOT} + PATH_SUFFIXES include) + +# iOS framework have different header structure: not flower/header.h, but Headers/header.h. But when you link against framework it's name is used as prefix for includes, so you still use its includes as flower/header.h in c++ code. +# Now the reason to set this variable is that its used for every other platform and its easier to fake it than rewrite most cmakelists +if(IOS) + set(LSDK_INCLUDE_DIRS ${LSDK_ROOT}/include) +endif() + +#message(STATUS "LSDK [DEBUG]: LSDK_INCLUDE_DIRS = ${LSDK_INCLUDE_DIRS}.") + +# Determine compiler version and architecture. +# ios has no architechture/compiler branching, because only can only use clang +# and if you need multiple architechtures there still compiled into single universal binary +if(NOT IOS) + if(MSVC10) + set(LSDK_COMPILER_NAME vs2010) + elseif(MSVC11) + set(LSDK_COMPILER_NAME vs2012) + elseif(MSVC12) + set(LSDK_COMPILER_NAME vs2013) + elseif(MSVC14) + set(LSDK_COMPILER_NAME vs2015) + elseif(CMAKE_COMPILER_IS_GNUCXX) + set(LSDK_COMPILER_NAME gcc4) + elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(LSDK_COMPILER_NAME clang) + else() + message(SEND_ERROR "Unsupported compiler: ${LSDK_COMPILER_NAME}") + endif() + + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(LSDK_TARGET_NAME x64) + else() + set(LSDK_TARGET_NAME x86) + endif() + + # What version of Face SDK to use. + set(LSDK_LIB_PREFIX ${LSDK_COMPILER_NAME}/${LSDK_TARGET_NAME}) +endif() + +if(IOS) + # List of all SDK libraries. + set(LSDK_LIB_NAMES + LivenessEngine) +else() + # List of all SDK libraries. + set(LSDK_LIB_NAMES + LivenessEngineSDK) +endif() + +if(IOS) + set(LSDK_LIB_PATH_SUFFIX Frameworks) + set(LSDK_BIN_PATH_SUFFIX Frameworks) +else() + set(LSDK_LIB_PATH_SUFFIX lib/${LSDK_LIB_PREFIX}) + set(LSDK_BIN_PATH_SUFFIX bin/${LSDK_LIB_PREFIX}) +endif() + +# Find optimized libraries. +set(LSDK_LIB) +foreach(LIB ${LSDK_LIB_NAMES}) + set(LIB_PATH ${LIB}-NOTFOUND) + find_library(LIB_PATH + NAMES ${LIB} + HINTS $ENV{LSDKDIR} + PATHS ${LSDK_ROOT} + PATH_SUFFIXES + ${LSDK_LIB_PATH_SUFFIX} + NO_DEFAULT_PATH + ) + + list(APPEND LSDK_LIB ${LIB_PATH}) +endforeach() + +# Find debug libraries (may be missing in your distribution). +set(LSDK_LIBD) +foreach(LIB ${LSDK_LIB_NAMES}) + set(LIB_PATH ${LIB}-NOTFOUND) + find_library(LIB_PATH + NAMES ${LIB}d + HINTS $ENV{LSDKDIR} + PATHS ${LSDK_ROOT} + PATH_SUFFIXES + ${LSDK_LIB_PATH_SUFFIX} + NO_DEFAULT_PATH + ) + + list(APPEND LSDK_LIBD ${LIB_PATH}) +endforeach() +#link components +if(LSDK_LIB AND LSDK_LIBD) + set(LSDK_LIBRARIES optimized ${LSDK_LIB} debug ${LSDK_LIBD}) +elseif(LSDK_LIBD) + set(LSDK_LIBRARIES ${LSDK_LIBD}) + message(STATUS "LSDK [WARN]: Release libraries were not found") +elseif(LSDK_LIB) + set(LSDK_LIBRARIES ${LSDK_LIB}) + message(STATUS "LSDK [WARN]: Debug libraries were not found") +endif() + +# Support the REQUIRED and QUIET arguments, and set LSDK_FOUND if found. +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LSDK DEFAULT_MSG + LSDK_LIBRARIES + LSDK_INCLUDE_DIRS) + +# Don't show in GUI +mark_as_advanced( + LSDK_INCLUDE_DIRS + LSDK_LIBRARIES + LSDK_COMPILER_NAME + LSDK_TARGET_NAME + LSDK_LIB_PREFIX + LSDK_LIB_NAMES + LSDK_LIB_NAMESD + LSDK_LIB + LSDK_LIBD + LIB_PATH +) diff --git a/examples/cmake/FindTrackEngineSDK.cmake b/examples/cmake/FindTrackEngineSDK.cmake new file mode 100644 index 0000000..d5b2082 --- /dev/null +++ b/examples/cmake/FindTrackEngineSDK.cmake @@ -0,0 +1,139 @@ +# Find the Vision Labs TrackEngine SDK. +# Sets the usual variables expected for find_package scripts: +# TSDK_INCLUDE_DIRS - headers location +# TSDK_LIBRARIES - libraries to link against +# TSDK_FOUND - true if TrackEngine SDK was found. + +# This is the directory where the TrackEngine SDK is located. +# By default TSDKDIR environment variable value is taken. + +set(TSDK_ROOT "$ENV{TSDKDIR}" CACHE PATH "Vision Labs TrackEngine SDK root directory.") + +# Look for headers. +find_path(TSDK_INCLUDE_DIRS + NAMES tsdk/ITrackEngine.h tsdk/ITrackCallbacks tsdk/IStream.h tsdk/TrackEngineDefs.h tsdk/TrackEngineTypes.h + HINTS $ENV{TSDKDIR} + PATHS ${TSDK_ROOT} + PATH_SUFFIXES include) + +#message(STATUS "TSDK: TSDK_INCLUDE_DIRS = ${TSDK_INCLUDE_DIRS}.") + +# Determine compiler version and architecture. +# ios has no architechture/compiler branching, because only can only use clang +# and if you need multiple architechtures there still compiled into single universal binary +if(MSVC10) + set(TSDK_COMPILER_NAME vs2010) +elseif(MSVC11) + set(TSDK_COMPILER_NAME vs2012) +elseif(MSVC12) + set(TSDK_COMPILER_NAME vs2013) +elseif(MSVC14) + set(TSDK_COMPILER_NAME vs2015) +elseif(CMAKE_COMPILER_IS_GNUCXX) + set(TSDK_COMPILER_NAME gcc4) +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(TSDK_COMPILER_NAME clang) +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") + set(TSDK_COMPILER_NAME clang) +else() + message(SEND_ERROR "Unsupported compiler: ${TSDK_COMPILER_NAME}") +endif() + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(TSDK_TARGET_NAME x64) +else() + set(TSDK_TARGET_NAME x86) +endif() + +# What version of TrackEngine SDK to use. +if(ANDROID) + set(TSDK_LIB_PREFIX ${TSDK_COMPILER_NAME}/${ANDROID_ABI}) +else() + set(TSDK_LIB_PREFIX ${TSDK_COMPILER_NAME}/${TSDK_TARGET_NAME}) +endif() + +# List of all SDK libraries. +set(TSDK_LIB_NAMES + TrackEngineSDK) + +set(TSDK_LIB_PATH_SUFFIX lib/${TSDK_LIB_PREFIX}) +set(TSDK_BIN_PATH_SUFFIX bin/${TSDK_LIB_PREFIX}) + +set(TSDK_LIB) +foreach(LIB ${TSDK_LIB_NAMES}) + set(LIB_PATH ${LIB}-NOTFOUND) + find_library(LIB_PATH + NAMES ${LIB} + HINTS $ENV{TSDKDIR} + PATHS ${TSDK_ROOT} + PATH_SUFFIXES ${TSDK_LIB_PATH_SUFFIX} + ${TSDK_BIN_PATH_SUFFIX} + NO_DEFAULT_PATH) + list(APPEND TSDK_LIB ${LIB_PATH}) +endforeach() + +# Find debug libraries (may be missing in your distribution). +set(TSDK_LIBD) +foreach(LIB ${TSDK_LIB_NAMES}) + set(LIB_PATH ${LIB}-NOTFOUND) + find_library(LIB_PATH + NAMES ${LIB}d + HINTS $ENV{TSDKDIR} + PATHS ${TSDK_ROOT} + PATH_SUFFIXES ${TSDK_LIB_PATH_SUFFIX} + ${TSDK_BIN_PATH_SUFFIX} + NO_DEFAULT_PATH) + + list(APPEND TSDK_LIBD ${LIB_PATH}) +endforeach() + +# Support the REQUIRED and QUIET arguments, and set TSDK_FOUND if found. +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TSDK DEFAULT_MSG + TSDK_INCLUDE_DIRS) + +set(TSDK_LIBRARIES) + +if(TSDK_FOUND) + if(TSDK_LIB) + foreach(LIB ${TSDK_LIB}) + list(APPEND TSDK_LIBRARIES optimized ${LIB}) + endforeach() + message(STATUS "TSDK [INFO]: Release libraries are available.") + elseif(TSDK_LIBD) + message(STATUS "TSDK [WARN]: Release libraries are NOT available.") + else() + message(FATAL_ERROR "TSDK [ERROR]: TrackEngine libraries are NOT available.") + endif() + + if(TSDK_LIBD) + foreach(LIB ${TSDK_LIBD}) + list(APPEND TSDK_LIBRARIES debug ${LIB}) + endforeach() + message(STATUS "TSDK [INFO]: Debug libraries are available.") + elseif(TSDK_LIB) + message(STATUS "TSDK [WARN]: Debug libraries are NOT available.") + else() + message(FATAL_ERROR "TSDK [ERROR]: TrackEngine libraries are NOT available.") + endif() + + message(STATUS "TSDK [INFO]: Found TDK in ${TSDK_ROOT}.") +else() + message(STATUS "TSDK [WARN]: TrackEngineSDK was NOT found.") +endif(TSDK_FOUND) + +#message(STATUS "TSDK [DEBUG]: TSDK_LIBRARIES = ${TSDK_LIBRARIES}.") + +# Don't show in GUI +mark_as_advanced( + TSDK_INCLUDE_DIRS + TSDK_LIBRARIES + TSDK_COMPILER_NAME + TSDK_TARGET_NAME + TSDK_LIB_PREFIX + TSDK_LIB_NAMES + TSDK_LIB_NAMESD + TSDK_LIB + TSDK_LIBD + LIB_PATH +) diff --git a/examples/cmake/FindVehicleEngine.cmake b/examples/cmake/FindVehicleEngine.cmake new file mode 100644 index 0000000..ff286bf --- /dev/null +++ b/examples/cmake/FindVehicleEngine.cmake @@ -0,0 +1,71 @@ +# Find the Vision Labs Vehicle Engine SDK kit. +# Sets the usual variables expected for find_package scripts: +# VSDK_INCLUDE_DIRS - headers location +# VSDK_LIBRARIES - libraries to link against +# VSDK_FOUND - true if Vehicle SDK was found. + +# Look for headers. +find_path(VSDK_INCLUDE_DIRS + NAMES vsdk/VehicleEngine.h vsdk/VSDKStatus.h + HINTS $ENV{VSDKDIR} + PATHS ${VSDK_ROOT} + PATH_SUFFIXES include +) + +#find additional include path for fsdk headers +find_path(VSDK_ADDITIONAL_INCLUDE_DIRS + NAMES fsdk/ISettingsProvider.h fsdk/Types.h + HINTS $ENV{VSDKDIR} + PATHS ${VSDK_ROOT} + PATH_SUFFIXES include +) + +#determine compiler vendor tag +if(MSVC10) + set(VSDK_COMPILER_NAME vs2010) +elseif(MSVC11) + set(VSDK_COMPILER_NAME vs2012) +elseif(MSVC12) + set(VSDK_COMPILER_NAME vs2013) +elseif(MSVC14) + set(VSDK_COMPILER_NAME vs2015) +elseif(MSVC15) + set(VSDK_COMPILER_NAME vs2017) +elseif(CMAKE_COMPILER_IS_GNUCXX) + set(VSDK_COMPILER_NAME gcc4) +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(VSDK_COMPILER_NAME clang) +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") + set(VSDK_COMPILER_NAME clang) +else() + message(SEND_ERROR "Unsupported compiler: ${VSDK_COMPILER_NAME}") +endif() + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(VSDK_TARGET_NAME x64) +else() + set(VSDK_TARGET_NAME x86) +endif() + +find_library(VSDK_LIBRARIES + NAMES VehicleEngineSDK + PATHS ${VSDK_ROOT} + PATH_SUFFIXES lib/${VSDK_COMPILER_NAME}/${VSDK_TARGET_NAME} + NO_DEFAULT_PATH) + +if(VSDK_INCLUDE_DIRS AND VSDK_LIBRARIES) + set(VSDK_FOUND TRUE) +endif() + +message(STATUS "VSDK: VSDK_INCLUDE_DIRS = ${VSDK_INCLUDE_DIRS}. VSDK_LIBRARIES = ${VSDK_LIBRARIES}") + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(VSDK_FOUND VSDK_INCLUDE_DIRS VSDK_ADDITIONAL_INCLUDE_DIRS VSDK_LIBRARIES) + +set(VSDK_INCLUDE_DIRS ${VSDK_INCLUDE_DIRS} ${VSDK_ADDITIONAL_INCLUDE_DIRS}) + +mark_as_advanced( + VSDK_FOUND + VSDK_INCLUDE_DIRS + VSDK_LIBRARIES +) diff --git a/examples/cmake/IosOptions.cmake b/examples/cmake/IosOptions.cmake new file mode 100644 index 0000000..37eacfa --- /dev/null +++ b/examples/cmake/IosOptions.cmake @@ -0,0 +1,106 @@ +# /cmake/IosOptions.cmake functions +# functions are called from root cmake +# it is necessary once use: include(/cmake/IosOptions.cmake) + +function(set_ios_options) + set(FULL_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH} PARENT_SCOPE) + # boolean is not recognized for some reason + option(IOS_BUILD_ONLY_ACTIVE_ARCH "To build for only active architecture, not universal binary for every valid arch" OFF) + option(IOS_BUILD_WITH_BITCODE "To build iOS targets with bitcode enabled" ON) + + if(IOS_BUILD_ONLY_ACTIVE_ARCH) + set(IOS_ONLY_ACTIVE_ARCH_XCODE_FORMAT YES PARENT_SCOPE) + else() + set(IOS_ONLY_ACTIVE_ARCH_XCODE_FORMAT NO PARENT_SCOPE) + endif() + + if(IOS_BUILD_WITH_BITCODE) + set(IOS_ENABLE_BITCODE_XCODE_FORMAT YES PARENT_SCOPE) + else() + set(IOS_ENABLE_BITCODE_XCODE_FORMAT NO PARENT_SCOPE) + endif() +endfunction() + + +# OUTPUT_NAME parameter is optional, if it is empty please pass "" +# example: set_ios_framework_properties(SDK "ru.visionlabs.FaceEngine" ${FULL_VERSION} "fsdk" ${XCODE_PUBLIC_INCLUDES}) +# of if OUTPUT_NAME is empty: +# example: set_ios_framework_properties("PhotoMaker" "ru.visionlabs.PhotoMaker" ${FULL_VERSION} "" ${XCODE_PUBLIC_INCLUDES}) +# ${XCODE_PUBLIC_INCLUDES} is optional BUT better to pass it! +function(set_ios_framework_properties _TARGET_NAME _BUNDLE_IDENTIFIER _FULL_VERSION _OUT_NAME) + # setting _FULL_VERSION in internal scope + set(_HEADERS ${ARGN}) + if(_FULL_VERSION STREQUAL "..") + set(_FULL_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) + endif() + if(IOS_BUILD_WITH_BITCODE) + target_compile_options(${_TARGET_NAME} PRIVATE -fembed-bitcode) + set_target_properties(${_TARGET_NAME} PROPERTIES XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode) + endif() + + set_target_properties(${_TARGET_NAME} PROPERTIES + FRAMEWORK TRUE + # "current version" in semantic format in Mach-O binary file + VERSION "${_FULL_VERSION}" + # "compatibility version" in semantic format in Mach-O binary file + SOVERSION "${_FULL_VERSION}" + # 3 flags for info.plist: + MACOSX_FRAMEWORK_BUNDLE_VERSION "${_FULL_VERSION}" + MACOSX_FRAMEWORK_IDENTIFIER "${_BUNDLE_IDENTIFIER}" + MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${_FULL_VERSION}" + XCODE_ATTRIBUTE_ENABLE_BITCODE ${IOS_ENABLE_BITCODE_XCODE_FORMAT} + ## stripping + XCODE_ATTRIBUTE_STRIP_STYLE "non-global" + XCODE_ATTRIBUTE_SEPARATE_STRIP YES + XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING YES + # set minimum required version for framework to work + XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 8.0 + # build lib for every valid arch + XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH ${IOS_ONLY_ACTIVE_ARCH_XCODE_FORMAT} + XCODE_ATTRIBUTE_ARCHS "armv7 armv7s arm64" + XCODE_ATTRIBUTE_VALID_ARCHS "armv7 armv7s arm64" + XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" + PUBLIC_HEADER "${_HEADERS}" + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" + # very important, dont delete + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path" + INSTALL_NAME_DIR "@rpath" + MACOSX_RPATH YES + ) + + # output name of framework, optional, + if(_OUT_NAME) + set_target_properties(${_TARGET_NAME} PROPERTIES + OUTPUT_NAME ${_OUT_NAME}) + endif() + +endfunction() + + +function(set_ios_stat_lib_properties STAT_LIB_NAME) + if(IOS_BUILD_WITH_BITCODE) + target_compile_options(${STAT_LIB_NAME} PRIVATE -fembed-bitcode) + endif() + + set_target_properties( + ${STAT_LIB_NAME} + PROPERTIES + # stripping makes binary smaller. its important for large libraries + XCODE_ATTRIBUTE_STRIP_STYLE "non-global" + XCODE_ATTRIBUTE_SEPARATE_STRIP YES + XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING YES + XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 8.0 + # build lib for every valid arch + XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH ${IOS_ONLY_ACTIVE_ARCH_XCODE_FORMAT} + XCODE_ATTRIBUTE_ARCHS "armv7 armv7s arm64" + XCODE_ATTRIBUTE_VALID_ARCHS "armv7 armv7s arm64" + ) +endfunction() + + +function(install_ios_target SDK_NAME) + install(TARGETS ${SDK_NAME} + FRAMEWORK DESTINATION Frameworks) +endfunction() + \ No newline at end of file diff --git a/examples/example_bestshot/.DS_Store b/examples/example_bestshot/.DS_Store new file mode 100644 index 0000000..4c62776 Binary files /dev/null and b/examples/example_bestshot/.DS_Store differ diff --git a/examples/example_bestshot/README.md b/examples/example_bestshot/README.md new file mode 100644 index 0000000..621ab5c --- /dev/null +++ b/examples/example_bestshot/README.md @@ -0,0 +1,46 @@ +# Android example +Bestshot example project that demonstrates LUNA SDK capabilities on Android platform. + +## What it does +This example demonstrates how to work with various Luna SDK components such as : +1. Face detection; +3. Image warping; +4. Image quality estimation; +5. Best shot (choosing the face best shot on a video frame sequence) via Track Engine SDK; +6. Face descriptor extraction(available only with Luna SDK Complete edition); +7. Face descriptors matching (available only with Luna SDK Complete edition); +8. User interaction, e.g. ask a user to blink multiple times before proceeding image processing pipeline. + +It also demonstrates how to use C++ code and libraries with Java language. + +## Prerequisites +Besides system Android SDK/NDK lib, there are four dependencies: +- libflower.so +- libFaceEngineSDK.so +- libTrackEngineSDK.so + +Project is distributed as part of FaceEngine SDK and all of listed dependencies are included into distribution for Android platform. + +We expect that you have basic Android and NDK development experience, so we won't cover topics unrelated to this example. +This example assumes that you have read the **FaceEngine Handbook** already +(or at least have it somewhere nearby for reference) and know some core concepts, +like memory management, object ownership and life-time control. This sample will not explain +these aspects in detail. + +## How to run + If you want to build and run ONLINE version of demo project you need to do the following: +1. Open demo project in Android Studio and change build variant from default one (which is offlineDebug) to OnlineDebug. +You can change build variant in Android Studio by clicking at the bottom left icon called "Build Variants". +2. After project configuring is done by Gradle you can run demo project on Android device. + + If you want to build and run OFFLINE version of demo project you need to do the following: +1. Make sure you are using Luna SDK complete library edition because only this edition supports +face descriptor extraction and matching. +2. Open demo project in Android Studio and build the project by clicking Build/MakeProject. +3. After project configuring is done by Gradle you can run demo project on Android device. + +**Known issues** +- There is a known bug with cmake version 3.10.2 provided by android studio by default which fails to resolve paths to FaceEngineSDK libraries correctly while building example project. To resolve this issue please downgrade cmake to version 3.6.4 via android SDK manager. + + + diff --git a/examples/example_bestshot/example/.idea/.gitignore b/examples/example_bestshot/example/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/examples/example_bestshot/example/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/example_bestshot/example/.idea/assetWizardSettings.xml b/examples/example_bestshot/example/.idea/assetWizardSettings.xml new file mode 100644 index 0000000..8934cf4 --- /dev/null +++ b/examples/example_bestshot/example/.idea/assetWizardSettings.xml @@ -0,0 +1,47 @@ + + + + + + \ No newline at end of file diff --git a/examples/example_bestshot/example/.idea/compiler.xml b/examples/example_bestshot/example/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/examples/example_bestshot/example/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/examples/example_bestshot/example/.idea/gradle.xml b/examples/example_bestshot/example/.idea/gradle.xml new file mode 100644 index 0000000..d1123a4 --- /dev/null +++ b/examples/example_bestshot/example/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/examples/example_bestshot/example/.idea/jarRepositories.xml b/examples/example_bestshot/example/.idea/jarRepositories.xml new file mode 100644 index 0000000..5d773b1 --- /dev/null +++ b/examples/example_bestshot/example/.idea/jarRepositories.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/example_bestshot/example/.idea/misc.xml b/examples/example_bestshot/example/.idea/misc.xml new file mode 100644 index 0000000..360e6d4 --- /dev/null +++ b/examples/example_bestshot/example/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/examples/example_bestshot/example/app/.gitignore b/examples/example_bestshot/example/app/.gitignore new file mode 100644 index 0000000..7673526 --- /dev/null +++ b/examples/example_bestshot/example/app/.gitignore @@ -0,0 +1,2 @@ +/build +/obj diff --git a/examples/example_bestshot/example/app/build.gradle b/examples/example_bestshot/example/app/build.gradle new file mode 100644 index 0000000..a55d981 --- /dev/null +++ b/examples/example_bestshot/example/app/build.gradle @@ -0,0 +1,187 @@ +buildscript { + repositories { +// maven { url 'https://maven.fabric.io/public' } + google() + } + +// dependencies { +// classpath 'io.fabric.tools:gradle:1.+' +// } +} +apply plugin: 'com.android.application' +//apply plugin: 'io.fabric' + +//repositories { +// maven { url 'https://maven.fabric.io/public' } +//} + +android { + namespace "ru.visionlab.femdemo" + + compileSdkVersion 33 + buildToolsVersion '33.0.1' + ndkVersion "21.0.6113669" + +// dexOptions { +// javaMaxHeapSize "4g" +// } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + applicationId "ru.visionlab.femdemo" + minSdkVersion 24 + targetSdkVersion 31 + versionCode 1 + versionName "2.4.2" + + externalNativeBuild { + cmake { +// version = "3.10.2.4988404" + version = "3.6.4111459" //originally + + cppFlags "-std=c++11" + abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a' + + arguments "-DANDROID_STL=c++_shared", + "-DFSDK_ROOT=./../../../..", + "-DTSDK_ROOT=./../../../.." + } + } + + sourceSets.main { + jniLibs.srcDir "./../../../../lib/clang" + } + } + + externalNativeBuild { + cmake { + path "src/main/jni/CMakeLists.txt" + } + } + + signingConfigs { + release { + storeFile file(RELEASE_STORE_FILE) + storePassword RELEASE_STORE_PASSWORD + keyAlias RELEASE_KEY_ALIAS + keyPassword RELEASE_KEY_PASSWORD + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release + } + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + flavorDimensions "version" + + splits { + abi { + enable true + reset() + include 'x86', 'armeabi-v7a', 'arm64-v8a' + universalApk false + } + } + + productFlavors { + offline { + dimension "version" + applicationIdSuffix ".offline" + buildConfigField 'boolean', 'IS_OFFLINE_VERSION', "true" + resValue "string", "app_name", "LUNA Mobile Offline" + externalNativeBuild.cmake { + cppFlags '-DRUNNING_OFFLINE_VERSION' + } + } + + online { + dimension "version" + applicationIdSuffix ".online" + buildConfigField 'boolean', 'IS_OFFLINE_VERSION', "false" + resValue "string", "app_name", "LUNA Mobile Online" + } + } + + packagingOptions { + exclude 'META-INF/services/javax.annotation.processing.Processor' + } +} + +//Copy plans from data folder to assets dir +copy { + from('../../../../data') { + include 'license.conf' + include 'runtime.conf' + include 'faceengine.conf' + include 'trackengine.conf' + include 'bestshotmobile.conf' + include 'cnndescriptor_59.conf' + include 'cnn59m_*.plan' + include 'FaceDet_v2_*.plan' + include 'eyes_estimation_flwr8_*.plan' + include 'eye_status_estimation_flwr_*.plan' + include 'ags_angle_estimation_flwr_*.plan' + include 'oslm_v3_model_1_*.plan' + include 'oslm_v3_model_2_*.plan' + include 'oslm_v3_model_3_*.plan' + include 'oslm_v3_model_4_*.plan' + include 'oslm_v3_model_5_*.plan' + include 'oslm_v3_model_6_*.plan' + } + into 'src/main/assets/data' +} + +dependencies { + implementation 'javax.annotation:jsr250-api:1.0' + + implementation 'com.google.dagger:dagger:2.36' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + annotationProcessor 'com.google.dagger:dagger-compiler:2.36' + + implementation 'com.jakewharton:butterknife:9.0.0-rc1' + annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1' + +// implementation fileTree(dir: 'libs', include: ['*.jar']) + + implementation 'com.squareup.retrofit2:retrofit:2.9.0' + implementation 'com.squareup.retrofit2:converter-gson:2.1.0' + implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0' + implementation 'com.google.code.gson:gson:2.8.6' + implementation 'com.squareup.okhttp3:okhttp:4.9.1' + implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1' + implementation 'info.android15.proxypref:proxypref:0.2.0' + implementation 'com.squareup.picasso:picasso:2.5.2' + implementation 'com.jakewharton:butterknife:8.4.0' + implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.8.0@aar' + implementation 'io.reactivex:rxandroid:1.2.1' + implementation 'io.reactivex:rxjava:1.2.1' + implementation 'com.makeramen:roundedimageview:2.2.1' + implementation 'com.trello:rxlifecycle:1.0' + implementation 'com.trello:rxlifecycle-android:1.0' + implementation 'com.trello:rxlifecycle-components:1.0' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'com.google.android.material:material:1.0.0' + + + + + +// implementation 'uk.co.chrisjenx:calligraphy:2.3.0' + implementation 'io.github.inflationx:calligraphy3:3.1.1' + implementation 'io.github.inflationx:viewpump:2.0.3' + +// implementation('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') { +// transitive = true; +// } +} diff --git a/examples/example_bestshot/example/app/data/FaceDet_v2_first_arm.plan b/examples/example_bestshot/example/app/data/FaceDet_v2_first_arm.plan new file mode 100644 index 0000000..c76c25d Binary files /dev/null and b/examples/example_bestshot/example/app/data/FaceDet_v2_first_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/FaceDet_v2_first_cpu.plan b/examples/example_bestshot/example/app/data/FaceDet_v2_first_cpu.plan new file mode 100644 index 0000000..92e7fb1 Binary files /dev/null and b/examples/example_bestshot/example/app/data/FaceDet_v2_first_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/FaceDet_v2_second_arm.plan b/examples/example_bestshot/example/app/data/FaceDet_v2_second_arm.plan new file mode 100644 index 0000000..15731dd Binary files /dev/null and b/examples/example_bestshot/example/app/data/FaceDet_v2_second_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/FaceDet_v2_second_cpu.plan b/examples/example_bestshot/example/app/data/FaceDet_v2_second_cpu.plan new file mode 100644 index 0000000..e55fe9b Binary files /dev/null and b/examples/example_bestshot/example/app/data/FaceDet_v2_second_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/FaceDet_v2_third_arm.plan b/examples/example_bestshot/example/app/data/FaceDet_v2_third_arm.plan new file mode 100644 index 0000000..9bc2ce6 Binary files /dev/null and b/examples/example_bestshot/example/app/data/FaceDet_v2_third_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/FaceDet_v2_third_cpu.plan b/examples/example_bestshot/example/app/data/FaceDet_v2_third_cpu.plan new file mode 100644 index 0000000..21bffeb Binary files /dev/null and b/examples/example_bestshot/example/app/data/FaceDet_v2_third_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/ags_angle_estimation_flwr_arm.plan b/examples/example_bestshot/example/app/data/ags_angle_estimation_flwr_arm.plan new file mode 100644 index 0000000..bcef235 Binary files /dev/null and b/examples/example_bestshot/example/app/data/ags_angle_estimation_flwr_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/ags_angle_estimation_flwr_cpu.plan b/examples/example_bestshot/example/app/data/ags_angle_estimation_flwr_cpu.plan new file mode 100644 index 0000000..92f19dd Binary files /dev/null and b/examples/example_bestshot/example/app/data/ags_angle_estimation_flwr_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/ags_estimation_flwr_arm.plan b/examples/example_bestshot/example/app/data/ags_estimation_flwr_arm.plan new file mode 100644 index 0000000..6c5ad8f Binary files /dev/null and b/examples/example_bestshot/example/app/data/ags_estimation_flwr_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/ags_estimation_flwr_cpu.plan b/examples/example_bestshot/example/app/data/ags_estimation_flwr_cpu.plan new file mode 100644 index 0000000..e5d921c Binary files /dev/null and b/examples/example_bestshot/example/app/data/ags_estimation_flwr_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/angle_estimation_flwr_arm.plan b/examples/example_bestshot/example/app/data/angle_estimation_flwr_arm.plan new file mode 100644 index 0000000..82018f6 Binary files /dev/null and b/examples/example_bestshot/example/app/data/angle_estimation_flwr_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/angle_estimation_flwr_cpu.plan b/examples/example_bestshot/example/app/data/angle_estimation_flwr_cpu.plan new file mode 100644 index 0000000..02bb5f6 Binary files /dev/null and b/examples/example_bestshot/example/app/data/angle_estimation_flwr_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/bestshotmobile.conf b/examples/example_bestshot/example/app/data/bestshotmobile.conf new file mode 100644 index 0000000..ccf89c7 --- /dev/null +++ b/examples/example_bestshot/example/app/data/bestshotmobile.conf @@ -0,0 +1,40 @@ + + +
+ + +
+ +
+ + + +
+ +
+ + + + + + + + +
+ +
+ + + + +
+ +
+ + + + + +
+
+ diff --git a/examples/example_bestshot/example/app/data/cnn59m_arm.plan b/examples/example_bestshot/example/app/data/cnn59m_arm.plan new file mode 100644 index 0000000..d37d454 Binary files /dev/null and b/examples/example_bestshot/example/app/data/cnn59m_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/cnn59m_cpu.plan b/examples/example_bestshot/example/app/data/cnn59m_cpu.plan new file mode 100644 index 0000000..df45263 Binary files /dev/null and b/examples/example_bestshot/example/app/data/cnn59m_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/cnndescriptor_59.conf b/examples/example_bestshot/example/app/data/cnndescriptor_59.conf new file mode 100644 index 0000000..f709db7 --- /dev/null +++ b/examples/example_bestshot/example/app/data/cnndescriptor_59.conf @@ -0,0 +1,25 @@ + + +
+ + + + + + + + + + + + + +
+
+ +
+
+ +
+
+ diff --git a/examples/example_bestshot/example/app/data/eye_status_estimation_flwr_arm.plan b/examples/example_bestshot/example/app/data/eye_status_estimation_flwr_arm.plan new file mode 100644 index 0000000..85bb0ba Binary files /dev/null and b/examples/example_bestshot/example/app/data/eye_status_estimation_flwr_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/eye_status_estimation_flwr_cpu.plan b/examples/example_bestshot/example/app/data/eye_status_estimation_flwr_cpu.plan new file mode 100644 index 0000000..715a974 Binary files /dev/null and b/examples/example_bestshot/example/app/data/eye_status_estimation_flwr_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/eyes_estimation_flwr8_arm.plan b/examples/example_bestshot/example/app/data/eyes_estimation_flwr8_arm.plan new file mode 100644 index 0000000..fb35def Binary files /dev/null and b/examples/example_bestshot/example/app/data/eyes_estimation_flwr8_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/eyes_estimation_flwr8_cpu.plan b/examples/example_bestshot/example/app/data/eyes_estimation_flwr8_cpu.plan new file mode 100644 index 0000000..771b212 Binary files /dev/null and b/examples/example_bestshot/example/app/data/eyes_estimation_flwr8_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/faceengine.conf b/examples/example_bestshot/example/app/data/faceengine.conf new file mode 100644 index 0000000..e174a5d --- /dev/null +++ b/examples/example_bestshot/example/app/data/faceengine.conf @@ -0,0 +1,77 @@ + + +
+ +
+ +
+ + + + +
+ +
+ + + + + + + + +
+ +
+ + + + +
+ +
+ + +
+ +
+ +
+ +
+ + + + + + + + + +
+ +
+ + + + + + + +
+ +
+ + + + + +
+ +
+ + + +
+ +
diff --git a/examples/example_bestshot/example/app/data/glasses_estimation_flwr_arm.plan b/examples/example_bestshot/example/app/data/glasses_estimation_flwr_arm.plan new file mode 100644 index 0000000..1bdf282 Binary files /dev/null and b/examples/example_bestshot/example/app/data/glasses_estimation_flwr_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/glasses_estimation_flwr_cpu.plan b/examples/example_bestshot/example/app/data/glasses_estimation_flwr_cpu.plan new file mode 100644 index 0000000..2b24643 Binary files /dev/null and b/examples/example_bestshot/example/app/data/glasses_estimation_flwr_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/license.conf b/examples/example_bestshot/example/app/data/license.conf new file mode 100644 index 0000000..19ce3ad --- /dev/null +++ b/examples/example_bestshot/example/app/data/license.conf @@ -0,0 +1,11 @@ + + +
+ + + + + + +
+
diff --git a/examples/example_bestshot/example/app/data/mask_clf_v3_arm.plan b/examples/example_bestshot/example/app/data/mask_clf_v3_arm.plan new file mode 100644 index 0000000..7136f93 Binary files /dev/null and b/examples/example_bestshot/example/app/data/mask_clf_v3_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/mask_clf_v3_cpu.plan b/examples/example_bestshot/example/app/data/mask_clf_v3_cpu.plan new file mode 100644 index 0000000..cf5104a Binary files /dev/null and b/examples/example_bestshot/example/app/data/mask_clf_v3_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/model_subjective_quality_v1_arm.plan b/examples/example_bestshot/example/app/data/model_subjective_quality_v1_arm.plan new file mode 100644 index 0000000..0af7e2c Binary files /dev/null and b/examples/example_bestshot/example/app/data/model_subjective_quality_v1_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/model_subjective_quality_v1_cpu.plan b/examples/example_bestshot/example/app/data/model_subjective_quality_v1_cpu.plan new file mode 100644 index 0000000..6d1f1cc Binary files /dev/null and b/examples/example_bestshot/example/app/data/model_subjective_quality_v1_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/model_subjective_quality_v2_arm.plan b/examples/example_bestshot/example/app/data/model_subjective_quality_v2_arm.plan new file mode 100644 index 0000000..b84facb Binary files /dev/null and b/examples/example_bestshot/example/app/data/model_subjective_quality_v2_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/model_subjective_quality_v2_cpu.plan b/examples/example_bestshot/example/app/data/model_subjective_quality_v2_cpu.plan new file mode 100644 index 0000000..8d0121e Binary files /dev/null and b/examples/example_bestshot/example/app/data/model_subjective_quality_v2_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_1_arm.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_1_arm.plan new file mode 100644 index 0000000..09683fa Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_1_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_1_cpu.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_1_cpu.plan new file mode 100644 index 0000000..ef83dd8 Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_1_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_2_arm.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_2_arm.plan new file mode 100644 index 0000000..42c9651 Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_2_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_2_cpu.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_2_cpu.plan new file mode 100644 index 0000000..b1f9d6b Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_2_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_3_arm.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_3_arm.plan new file mode 100644 index 0000000..eadd439 Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_3_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_3_cpu.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_3_cpu.plan new file mode 100644 index 0000000..fa9847f Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_3_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_4_arm.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_4_arm.plan new file mode 100644 index 0000000..12ee31b Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_4_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_4_cpu.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_4_cpu.plan new file mode 100644 index 0000000..d31efb8 Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_4_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_5_arm.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_5_arm.plan new file mode 100644 index 0000000..7b1a1c0 Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_5_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_5_cpu.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_5_cpu.plan new file mode 100644 index 0000000..8c21a51 Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_5_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_6_arm.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_6_arm.plan new file mode 100644 index 0000000..2ae0558 Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_6_arm.plan differ diff --git a/examples/example_bestshot/example/app/data/oslm_v3_model_6_cpu.plan b/examples/example_bestshot/example/app/data/oslm_v3_model_6_cpu.plan new file mode 100644 index 0000000..582f83c Binary files /dev/null and b/examples/example_bestshot/example/app/data/oslm_v3_model_6_cpu.plan differ diff --git a/examples/example_bestshot/example/app/data/runtime.conf b/examples/example_bestshot/example/app/data/runtime.conf new file mode 100644 index 0000000..cdfbc07 --- /dev/null +++ b/examples/example_bestshot/example/app/data/runtime.conf @@ -0,0 +1,10 @@ + + +
+ + + + + +
+
diff --git a/examples/example_bestshot/example/app/data/trackengine.conf b/examples/example_bestshot/example/app/data/trackengine.conf new file mode 100644 index 0000000..55c926b --- /dev/null +++ b/examples/example_bestshot/example/app/data/trackengine.conf @@ -0,0 +1,162 @@ + + + + +
+ + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + +
+ + +
+ + + + + + +
+ +
diff --git a/examples/example_bestshot/example/app/fabric.properties b/examples/example_bestshot/example/app/fabric.properties new file mode 100644 index 0000000..09b47a6 --- /dev/null +++ b/examples/example_bestshot/example/app/fabric.properties @@ -0,0 +1,3 @@ +#Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public. +#Mon Nov 14 08:10:28 GMT+04:00 2016 +apiSecret=2f2d7a57b68d431bc350d6b008f4d989da3852077c19ba33efb05d83f2c9a174 diff --git a/examples/example_bestshot/example/app/proguard-rules.pro b/examples/example_bestshot/example/app/proguard-rules.pro new file mode 100644 index 0000000..cf78e12 --- /dev/null +++ b/examples/example_bestshot/example/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\R.Pozdeev\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/examples/example_bestshot/example/app/src/main/AndroidManifest.xml b/examples/example_bestshot/example/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7300e71 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/AndroidManifest.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_first_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_first_arm.plan new file mode 100644 index 0000000..c76c25d Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_first_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_first_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_first_cpu.plan new file mode 100644 index 0000000..92e7fb1 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_first_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_second_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_second_arm.plan new file mode 100644 index 0000000..15731dd Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_second_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_second_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_second_cpu.plan new file mode 100644 index 0000000..e55fe9b Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_second_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_third_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_third_arm.plan new file mode 100644 index 0000000..9bc2ce6 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_third_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_third_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_third_cpu.plan new file mode 100644 index 0000000..21bffeb Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/FaceDet_v2_third_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/ags_angle_estimation_flwr_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/ags_angle_estimation_flwr_arm.plan new file mode 100644 index 0000000..bcef235 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/ags_angle_estimation_flwr_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/ags_angle_estimation_flwr_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/ags_angle_estimation_flwr_cpu.plan new file mode 100644 index 0000000..92f19dd Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/ags_angle_estimation_flwr_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/bestshotmobile.conf b/examples/example_bestshot/example/app/src/main/assets/data/bestshotmobile.conf new file mode 100644 index 0000000..ccf89c7 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/assets/data/bestshotmobile.conf @@ -0,0 +1,40 @@ + + +
+ + +
+ +
+ + + +
+ +
+ + + + + + + + +
+ +
+ + + + +
+ +
+ + + + + +
+
+ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/cnn59m_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/cnn59m_arm.plan new file mode 100644 index 0000000..d37d454 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/cnn59m_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/cnn59m_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/cnn59m_cpu.plan new file mode 100644 index 0000000..df45263 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/cnn59m_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/cnndescriptor_59.conf b/examples/example_bestshot/example/app/src/main/assets/data/cnndescriptor_59.conf new file mode 100644 index 0000000..f709db7 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/assets/data/cnndescriptor_59.conf @@ -0,0 +1,25 @@ + + +
+ + + + + + + + + + + + + +
+
+ +
+
+ +
+
+ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/eye_status_estimation_flwr_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/eye_status_estimation_flwr_arm.plan new file mode 100644 index 0000000..85bb0ba Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/eye_status_estimation_flwr_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/eye_status_estimation_flwr_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/eye_status_estimation_flwr_cpu.plan new file mode 100644 index 0000000..715a974 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/eye_status_estimation_flwr_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/eyes_estimation_flwr8_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/eyes_estimation_flwr8_arm.plan new file mode 100644 index 0000000..fb35def Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/eyes_estimation_flwr8_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/eyes_estimation_flwr8_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/eyes_estimation_flwr8_cpu.plan new file mode 100644 index 0000000..771b212 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/eyes_estimation_flwr8_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/faceengine.conf b/examples/example_bestshot/example/app/src/main/assets/data/faceengine.conf new file mode 100644 index 0000000..e174a5d --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/assets/data/faceengine.conf @@ -0,0 +1,77 @@ + + +
+ +
+ +
+ + + + +
+ +
+ + + + + + + + +
+ +
+ + + + +
+ +
+ + +
+ +
+ +
+ +
+ + + + + + + + + +
+ +
+ + + + + + + +
+ +
+ + + + + +
+ +
+ + + +
+ +
diff --git a/examples/example_bestshot/example/app/src/main/assets/data/license.conf b/examples/example_bestshot/example/app/src/main/assets/data/license.conf new file mode 100644 index 0000000..3b7da33 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/assets/data/license.conf @@ -0,0 +1,11 @@ + + +
+ + + + + + +
+
diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_1_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_1_arm.plan new file mode 100644 index 0000000..09683fa Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_1_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_1_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_1_cpu.plan new file mode 100644 index 0000000..ef83dd8 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_1_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_2_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_2_arm.plan new file mode 100644 index 0000000..42c9651 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_2_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_2_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_2_cpu.plan new file mode 100644 index 0000000..b1f9d6b Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_2_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_3_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_3_arm.plan new file mode 100644 index 0000000..eadd439 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_3_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_3_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_3_cpu.plan new file mode 100644 index 0000000..fa9847f Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_3_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_4_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_4_arm.plan new file mode 100644 index 0000000..12ee31b Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_4_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_4_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_4_cpu.plan new file mode 100644 index 0000000..d31efb8 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_4_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_5_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_5_arm.plan new file mode 100644 index 0000000..7b1a1c0 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_5_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_5_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_5_cpu.plan new file mode 100644 index 0000000..8c21a51 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_5_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_6_arm.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_6_arm.plan new file mode 100644 index 0000000..2ae0558 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_6_arm.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_6_cpu.plan b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_6_cpu.plan new file mode 100644 index 0000000..582f83c Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/data/oslm_v3_model_6_cpu.plan differ diff --git a/examples/example_bestshot/example/app/src/main/assets/data/runtime.conf b/examples/example_bestshot/example/app/src/main/assets/data/runtime.conf new file mode 100644 index 0000000..cdfbc07 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/assets/data/runtime.conf @@ -0,0 +1,10 @@ + + +
+ + + + + +
+
diff --git a/examples/example_bestshot/example/app/src/main/assets/data/trackengine.conf b/examples/example_bestshot/example/app/src/main/assets/data/trackengine.conf new file mode 100644 index 0000000..55c926b --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/assets/data/trackengine.conf @@ -0,0 +1,162 @@ + + + + +
+ + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + +
+ + +
+ + + + + + +
+ +
diff --git a/examples/example_bestshot/example/app/src/main/assets/fonts/EtelkaMediumProRegular.ttf b/examples/example_bestshot/example/app/src/main/assets/fonts/EtelkaMediumProRegular.ttf new file mode 100644 index 0000000..2d142d0 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/assets/fonts/EtelkaMediumProRegular.ttf differ diff --git a/examples/example_bestshot/example/app/src/main/java/ru/PreferenceManager/PreferenceManager.java b/examples/example_bestshot/example/app/src/main/java/ru/PreferenceManager/PreferenceManager.java new file mode 100644 index 0000000..d9a1bc5 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/PreferenceManager/PreferenceManager.java @@ -0,0 +1,27 @@ +package ru.PreferenceManager; + +import android.content.Context; +import android.content.SharedPreferences; + +public class PreferenceManager { + + private static PreferenceManager INSTANCE; + private static SharedPreferences preferences; + + synchronized public static PreferenceManager getInstance(Context context){ + if(INSTANCE==null){ + INSTANCE=new PreferenceManager(); + preferences=context.getSharedPreferences("userinfo3",Context.MODE_PRIVATE); + } + return INSTANCE; + } + + public void setString(String key,String value){ + preferences.edit().putString(key, value).apply(); + } + + public String getString(String key){ + return preferences.getString(key,""); + } + +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/App.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/App.java new file mode 100644 index 0000000..7153f4f --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/App.java @@ -0,0 +1,94 @@ +package ru.visionlab.femdemo; + +import android.app.Application; +import android.os.StrictMode; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; + +import javax.inject.Inject; +import javax.inject.Singleton; + +import dagger.Component; +//import io.fabric.sdk.android.Fabric; +import io.github.inflationx.calligraphy3.CalligraphyConfig; +import io.github.inflationx.calligraphy3.CalligraphyInterceptor; +import io.github.inflationx.viewpump.ViewPump; +import ru.visionlab.femdemo.authentication.AuthSuccessActivity; +import ru.visionlab.femdemo.authentication.AuthenticationActivity; +import ru.visionlab.femdemo.authentication.PinFragment; +import ru.visionlab.femdemo.base.PhotoFragment; +import ru.visionlab.femdemo.di.LocationModule; +import ru.visionlab.femdemo.di.NetworkModule; +import ru.visionlab.femdemo.di.StorageModule; +import ru.visionlab.femdemo.di.VLModule; +import ru.visionlab.femdemo.login.LoginActivity; +import ru.visionlab.femdemo.register.RegisterActivity; +import ru.visionlab.femdemo.register.RegisterFragment; +import ru.visionlab.femdemo.settings.ServerSettingsActivity; +import ru.visionlab.femdemo.settings.SettingsActivity; +import ru.visionlab.femdemo.settings.VLPreferences; + +public class App extends Application { + @Inject + VLPreferences preferences; + @Inject + LocationHelper locationHelper; + + private ApplicationComponent component; + + @Override + public void onCreate() { + super.onCreate(); + + StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); + StrictMode.setVmPolicy(builder.build()); + +// Fabric.with(this, new Crashlytics()); + + component = DaggerApp_ApplicationComponent.builder() + .networkModule(new NetworkModule()) + .storageModule(new StorageModule(this)) + .locationModule(new LocationModule()) + .vLModule(new VLModule()) + .build(); + + getComponent().inject(this); + + ViewPump.init(ViewPump.builder() + .addInterceptor(new CalligraphyInterceptor( + new CalligraphyConfig.Builder() + .setDefaultFontPath("fonts/EtelkaMediumProRegular.ttf") + .setFontAttrId(R.attr.fontPath) + .build())) + .build()); + } + + public ApplicationComponent getComponent() { + return component; + } + + @Singleton + @Component(modules = {NetworkModule.class, StorageModule.class, VLModule.class, LocationModule.class}) + public interface ApplicationComponent { + void inject(SettingsActivity activity); + + void inject(App app); + + void inject(PhotoFragment fragment); + + void inject(RegisterFragment fragment); + + void inject(AuthenticationActivity activity); + + void inject(PinFragment fragment); + + void inject(RegisterActivity activity); + + void inject(LoginActivity activity); + + void inject(AuthSuccessActivity activity); + + void inject(ServerSettingsActivity activity); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInActivity.java new file mode 100644 index 0000000..4dd5c54 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInActivity.java @@ -0,0 +1,33 @@ +package ru.visionlab.femdemo; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; + +import ru.visionlab.femdemo.login.LoginActivity; +import ru.visionlab.femdemo.register.RegisterActivityNew; + +public class CheckInActivity extends AppCompatActivity { + + ImageView logout; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_checkin); + + logout = findViewById(R.id.logout); + + logout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(CheckInActivity.this, LoginActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Config.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Config.java new file mode 100644 index 0000000..68158cc --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Config.java @@ -0,0 +1,19 @@ +package ru.visionlab.femdemo; + +public class Config { + + public static final String ENDPOINT_LUNA2 = "https://luna3api.faceis.ru"; + + public static final int JPEG_QUALITY = 90; + public final static int PREVIEW_WIDTH = 640; + public final static int PREVIEW_HEIGHT = 480; + + public static final String APP_LOGIN_LUNA2 = "mobile@visionlabs.ru"; + public static final String APP_PASSWORD_LUNA2 = "Fdkhe3pass"; + + public static final int MIN_LOGIN_LENGTH = 1; + public static final double MIN_SIMILARITY = 0.6; + public static final int MAX_LOGIN_LENGTH = 20; + public static final int PIN_MAX_LENGTH = 5; + +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Core/FrameUtils.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Core/FrameUtils.java new file mode 100644 index 0000000..4d682c1 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Core/FrameUtils.java @@ -0,0 +1,108 @@ +package ru.visionlab.femdemo.Core; + +public class FrameUtils { + + public static void rotateCounterClockWise(byte[] rgba, int rgbaWidth, int rgbaHeight, byte[] rgbOut) { + for(int i = 0; i < rgbaWidth; i++) { + for( int j = 0; j < rgbaHeight * 3; j += 3) { + rgbOut[j + rgbaHeight * 3 * i] = rgba[rgbaWidth * 4 * (rgbaHeight - j/3) - 4 - i * 4]; + rgbOut[j + 1 + rgbaHeight * 3 * i] = rgba[rgbaWidth * 4 * (rgbaHeight - j/3) - 3 - i * 4]; + rgbOut[j + 2 + rgbaHeight * 3 * i] = rgba[rgbaWidth * 4 * (rgbaHeight - j/3) - 2 - i * 4]; + } + } + } + + public static void rotateClockWise(byte[] rgba, int rgbaWidth, int rgbaHeight, byte[] rgbOut) { + + for(int i = 0; i < rgbaWidth; i++) { + for(int j = 0; j < rgbaHeight * 3; j += 3) { + rgbOut[j + rgbaHeight * 3 * i] = rgba[rgbaWidth * 4 * (rgbaHeight - (j/3 + 1)) + i * 4]; + rgbOut[j + 1 + rgbaHeight * 3 * i] = rgba[rgbaWidth * 4 * (rgbaHeight - (j/3 + 1)) + 1 + i * 4]; + rgbOut[j + 2 + rgbaHeight * 3 * i] = rgba[rgbaWidth * 4 * (rgbaHeight - (j/3 + 1)) + 2 + i * 4]; + } + } + } + + public static void flip(byte[] rgba, int rgbaWidth, int rgbaHeight, byte[] rgbOut) { + for(int i = 0; i < rgbaHeight; i++) { + for(int j = 0; j < rgbaWidth; j++) { + rgbOut[j * 3 + i * rgbaWidth * 3] = rgba[rgbaWidth * 4 * (rgbaHeight - (i + 1)) + j * 4]; + rgbOut[j * 3 + 1 + i * rgbaWidth * 3] = rgba[rgbaWidth * 4 * (rgbaHeight - (i + 1)) + j * 4 + 1]; + rgbOut[j * 3 + 2 + i * rgbaWidth * 3] = rgba[rgbaWidth * 4 * (rgbaHeight - (i + 1)) + j * 4 + 2]; + } + } + } + + public static void flipInPlace(byte[] rgb, int rgbWidth, int rgbHeight) { + for(int i = 0; i < rgbHeight/2; i++) { + for(int j = 0; j < rgbWidth; j++) { + //tmp + byte R = rgb[j * 3 + rgbWidth * 3 * i]; + byte G = rgb[j * 3 + 1 + rgbWidth * 3 * i]; + byte B = rgb[j * 3 + 2 + rgbWidth * 3 * i]; + + rgb[j * 3 + rgbWidth * 3 * i] = rgb[rgbWidth * 3 * (rgbHeight - (i + 1)) + j * 3]; + rgb[j * 3 + 1 + rgbWidth * 3 * i] = rgb[rgbWidth * 3 * (rgbHeight - (i + 1)) + j * 3 + 1]; + rgb[j * 3 + 2 + rgbWidth * 3 * i] = rgb[rgbWidth * 3 * (rgbHeight - (i + 1)) + j * 3 + 2]; + + rgb[rgbWidth * 3 * (rgbHeight - (i + 1)) + j * 3] = R; + rgb[rgbWidth * 3 * (rgbHeight - (i + 1)) + j * 3 + 1] = G; + rgb[rgbWidth * 3 * (rgbHeight - (i + 1)) + j * 3 + 2] = B; + + } + } + } + + public static void rgbaToRgb(byte[] rgba, int rgbaWidth, int rgbaHeight, byte[] rgb) { + for(int i = 0; i < rgbaHeight; i++) { + for(int j = 0; j < rgbaWidth; j++) { + rgb[j * 3 + rgbaWidth * 3 * i] = rgba[j * 4 + rgbaWidth * 4 * i]; + rgb[j * 3 + 1 + rgbaWidth * 3 * i] = rgba[j * 4 + 1 + rgbaWidth * 4 * i]; + rgb[j * 3 + 2 + rgbaWidth * 3 * i] = rgba[j * 4 + 2 + rgbaWidth * 4 * i]; + } + } + } + + + public static void byteToIntArray(byte[] pixels, int[] result) { + for (int pixel = 0, resInd = 0; pixel < pixels.length; pixel += 4) { + result[resInd++] = (((int)pixels[pixel + 3] & 0xff) << 24) | (((int)pixels[pixel + 2] & 0xff) << 16) | (((int)pixels[pixel + 1] & 0xff) << 8) | ((int)pixels[pixel + 0] & 0xff); + } + } + + public static void flip(int[] picture, int width, int height) { + for (int row = 0; row < width / 2; row++) { + for (int col = 0; col < height; col++) { + final int curItemIndex = row * height + col; + final int flipItemIndex = (width - row - 1) * height + col; + final int tmp = picture[curItemIndex]; + picture[curItemIndex] = picture[flipItemIndex]; + picture[flipItemIndex] = tmp; + } + } + } + + public static int countUpper(byte[] buffer, int width, android.graphics.Rect rect, int threshold) { + int count = 0; + + for (int row = rect.top; row < rect.bottom; row++) + for (int col = rect.left; col < rect.right; col++) { + if (((int) buffer[row * width + col] & 0xff) > threshold) + ++count; + } + + return count; + } + + public static int countLower(byte[] buffer, int width, android.graphics.Rect rect, int threshold) { + int count = 0; + + for (int row = rect.top; row < rect.bottom; row++) + for (int col = rect.left; col < rect.right; col++) { + if (((int) buffer[row * width + col] & 0xff) < threshold) + ++count; + } + + return count; + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Core/PhotoProcessor.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Core/PhotoProcessor.java new file mode 100644 index 0000000..a7ece17 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Core/PhotoProcessor.java @@ -0,0 +1,441 @@ +package ru.visionlab.femdemo.Core; + +import android.content.Context; +import android.graphics.Bitmap; +import android.os.Build; +import android.os.Handler; +import android.os.Looper; +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.RenderScript; +import android.renderscript.ScriptIntrinsicYuvToRGB; +import android.renderscript.Type; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import android.util.Log; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.IntBuffer; +import java.util.concurrent.atomic.AtomicBoolean; + +import ru.visionlab.femdemo.JavaBindings.FaceEngine; +import ru.visionlab.femdemo.JavaBindings.TrackEngine; + +public final class PhotoProcessor { + + static { + try { + System.loadLibrary("c++_shared"); + System.loadLibrary("wrapper"); + System.loadLibrary("flower"); + System.loadLibrary("FaceEngineSDK"); + System.loadLibrary("TrackEngineSDK"); + System.loadLibrary("BestShotMobile"); + } catch (UnsatisfiedLinkError e) { + Log.e("Luna Mobile", "Native library failed to load: " + e); + System.exit(1); + } + } + + private final Handler handler = new Handler(Looper.getMainLooper()); + private final Object lock = new Object(); + + private final int warpSize = 250; + + private ByteBuffer buffer; + private volatile boolean BestShotfound = false; + private volatile boolean checkLiveness = false; + + private byte[] previewInRGBAFormat; + private byte[] firstCallbackBuffer; + private byte[] secondCallbackBuffer; + private byte[] inputRGBFrameBuffer; + + int stagesCount; + + private android.graphics.Rect lastFaceBound = null; + private AtomicBoolean flashTorchEnabled = new AtomicBoolean(false); + + private RenderScript renderScript; + private ScriptIntrinsicYuvToRGB yuvToRgbIntrinsic; + private Allocation renderScriptInAllocation; + private Allocation renderScriptOutAllocation; + + private int previewWidth; + private int previewHeight; + private IntBuffer bestShotData; + private boolean needPortrait = false; + @Nullable + private Listener listener; + + private int imageRotation; + private boolean mainCamera; + + private Thread thread; + + private PhotoProcessor(@NonNull Context context) { + thread = new Thread(new Runnable() { + @Override + public void run() { + PhotoProcessor.this.work(); + } + }, "photoProcessor"); + + thread.start(); + System.out.println("PATH in photoprocessor is " + context.getFilesDir()); + renderScript = RenderScript.create(context); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + yuvToRgbIntrinsic = ScriptIntrinsicYuvToRGB.create(renderScript, Element.U8_4(renderScript)); + } + } + + public class LuminanceState { + public LuminanceState(int darknessState) { + this.darknessState = darknessState; + } + + public int darknessState; + } + + /** + * Main image processing loop. It does the following: + * 1 convert from NV21 input frame to RGBA image format + * 2 image rotation (preview usually comes upside down) + * 3 feeding transformed image to Track Engine + */ + @SuppressWarnings("SuspiciousNameCombination") + private void work() { + while (!thread.isInterrupted()) { + + synchronized (lock) { + try { + lock.wait(); + } catch (InterruptedException e) { + break; + } + + if (thread.isInterrupted()) { + break; + } + + convertToRGBA(secondCallbackBuffer); + + } + + int width = previewWidth; + int height = previewHeight; + + //based on camera orientation determine which way to rotate incoming frame + if ((imageRotation == 90 && !mainCamera) || (mainCamera && imageRotation == 270)) { + FrameUtils.rotateCounterClockWise(previewInRGBAFormat, width, height, inputRGBFrameBuffer); + width = previewHeight; + height = previewWidth; + } else if ((imageRotation == 180 && !mainCamera) || (mainCamera && imageRotation == 0)) { + FrameUtils.flip(previewInRGBAFormat, width, height, inputRGBFrameBuffer); + } else if ((imageRotation == 270 && !mainCamera) || (mainCamera && imageRotation == 90)) { + FrameUtils.rotateClockWise(previewInRGBAFormat, width, height, inputRGBFrameBuffer); + width = previewHeight; + height = previewWidth; + } else { + FrameUtils.rgbaToRgb(previewInRGBAFormat, width, height, inputRGBFrameBuffer); + } + + //Send transformed rgb image to Track Engine + TrackEngine.pushFrame(inputRGBFrameBuffer, width, height); + + //checks whether detected face is inside of face-portrait bounds + updateArea(); + + //start checking liveness state after bestshot were found + if (BestShotfound) { + if (checkLiveness) + checkLiveness(); + } + + //if best shot were found, retrieve its buffer and notify UI thread + if (TrackEngine.bestShotFound() && !BestShotfound) { + BestShotfound = true; + Log.i("checkLiveness", "We have bestshot!"); + processBestShot(); + } + }//while loop + + } + + public void setFlashTorchState(boolean enabled) { + flashTorchEnabled.set(enabled); + } + + public void checkLiveness() { + + int interactionState = FaceEngine.getInteractionState(); + int livenessState = FaceEngine.getCurrentLivenessState(); + Log.d("checkLiveness", "Inter state " + interactionState + "liveness state" + livenessState); + int livenessType = FaceEngine.getLivenessType(); + handler.post(new Runnable() { + @Override + public void run() { + if (listener != null) { + + if ((livenessType == FaceEngine.LIVENESS_ONLINE && livenessState == FaceEngine.Alive) || + (interactionState == FaceEngine.INTERACTION_SUCCESS && livenessState == FaceEngine.Alive)) { + grabLastShot(); + listener.onInteractionSucceed(); + } else { + listener.onLivenessResult(livenessState, interactionState, livenessType); + } + } + } + }); + } + + public void setListener(@NonNull Listener listener) { + this.listener = listener; + stagesCount = 1; + TrackEngine.resetBestShotSearch(); + resumeSearch(); + } + + public void resumeSearch() { + FaceEngine.resetInteraction(); + TrackEngine.resetBestShotSearch(); + BestShotfound = false; + } + + + public void turnOnLiveness(int livenessType) { + FaceEngine.setLivenessType(livenessType); + checkLiveness = true; + } + + public void removeListeners() { + listener = null; + handler.removeCallbacksAndMessages(null); + } + + public int getPreviewWidth() { + return previewWidth; + } + + public int getPreviewHeight() { + return previewHeight; + } + + public void setPreviewSize(int width, int height) { + previewWidth = width; + previewHeight = height; + + final int previewNV21ArraySize = previewWidth * previewHeight * 3 / 2; + final int previewRGBAArraySize = previewWidth * previewHeight * 4; + final int inputRGBArraySize = previewWidth * previewHeight * 3; + + renderScriptAllocate(previewNV21ArraySize); + + previewInRGBAFormat = new byte[previewRGBAArraySize]; + firstCallbackBuffer = new byte[previewNV21ArraySize]; + secondCallbackBuffer = new byte[previewNV21ArraySize]; + inputRGBFrameBuffer = new byte[inputRGBArraySize]; + + buffer = ByteBuffer.allocateDirect(previewRGBAArraySize).order(ByteOrder.LITTLE_ENDIAN); + } + + public void release() { + listener = null; + handler.removeCallbacksAndMessages(null); + thread.interrupt(); + + if (renderScriptInAllocation != null) { + renderScriptInAllocation.destroy(); + } + + if (renderScriptOutAllocation != null) { + renderScriptOutAllocation.destroy(); + } + + renderScript.destroy(); + yuvToRgbIntrinsic.destroy(); + } + + public void processFrame(byte[] data) { + if (!BestShotfound || checkLiveness) { + synchronized (lock) { + System.arraycopy(data, 0, secondCallbackBuffer, 0, secondCallbackBuffer.length); + lock.notify(); + } + } + } + + private void convertToRGBA(byte[] data) { + renderScriptInAllocation.copyFrom(data); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + yuvToRgbIntrinsic.setInput(renderScriptInAllocation); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + yuvToRgbIntrinsic.forEach(renderScriptOutAllocation); + } + + renderScriptOutAllocation.copyTo(previewInRGBAFormat); + } + + private void renderScriptAllocate(int previewNV21ArraySize) { + Type.Builder yuvType = new Type.Builder(renderScript, Element.U8(renderScript)) + .setX(previewNV21ArraySize); + renderScriptInAllocation = Allocation.createTyped(renderScript, yuvType.create(), Allocation.USAGE_SCRIPT); + + Type.Builder rgbaType = new Type.Builder(renderScript, Element.RGBA_8888(renderScript)) + .setX(previewWidth) + .setY(previewHeight); + renderScriptOutAllocation = Allocation.createTyped(renderScript, rgbaType.create(), Allocation.USAGE_SCRIPT); + } + + private void updateArea() { + + if (TrackEngine.haveFaceDetection()) { + + int[] bbox = TrackEngine.getDetection(); + + final android.graphics.Rect rect = new android.graphics.Rect(bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3]); + + if (lastFaceBound == null) { + lastFaceBound = new android.graphics.Rect(); + } + + lastFaceBound.set(rect); + + final boolean fastMovement = false;//!photoMaker.isSlowMovement(); + final boolean isFrontalPose = true; + + final boolean qualityState = true; + + if (listener != null) { + handler.post(new Runnable() { + @Override + public void run() { + if (listener != null) { + listener.onFaceArea(true, rect, fastMovement, isFrontalPose, qualityState); + } + } + }); + } + } else { + lastFaceBound = null; + + if (listener != null) { + handler.post(new Runnable() { + @Override + public void run() { + if (listener != null) { + listener.onFaceArea(false, null, null, null, false); + } + } + }); + } + } + + } + + public byte[] getCallbackBuffer() { + return firstCallbackBuffer; + } + + private void grabLastShot() { + byte[] rawRGBABuffer = TrackEngine.getBestFrameBuffer(); + int[] result = new int[warpSize * warpSize]; + FrameUtils.byteToIntArray(rawRGBABuffer, result); + + bestShotData = IntBuffer.wrap(result); + } + + private void processBestShot() { + byte[] rawRGBABuffer = TrackEngine.getBestFrameBuffer(); + int[] result = new int[warpSize * warpSize]; + FrameUtils.byteToIntArray(rawRGBABuffer, result); + + bestShotData = IntBuffer.wrap(result); + if (listener != null) { + handler.post(new Runnable() { + @Override + public void run() { + if (listener != null) { + listener.onBestFrameReady(); + } + } + }); + } + } + + + @Nullable + public Bitmap getBestShot() { + final Bitmap bestShotBitmap = Bitmap.createBitmap(warpSize, warpSize, Bitmap.Config.ARGB_8888); + bestShotData.position(0); + bestShotBitmap.copyPixelsFromBuffer(bestShotData); + return bestShotBitmap; + } + + + public void setNeedPortrait(boolean value) { + needPortrait = value; + } + + public void setImageRotation(int imageRotation) { + this.imageRotation = imageRotation; + } + + public void setMainCamera(boolean mainCamera) { + this.mainCamera = mainCamera; + } + + public byte[] getFaceDescriptorByteArray() { + return FaceEngine.getFaceDescriptorFromLastWarpedShot(); + } + + public float matchDescriptors(byte[] descriptor1, byte[] descriptor2) { + return FaceEngine.matchDescriptors(descriptor1, descriptor2); + } + + public static int initFaceEngine(String path) { + return FaceEngine.initFaceEngine(path); + } + + public interface Listener { + + void onFaceArea(boolean detected, @Nullable android.graphics.Rect rect, @Nullable Boolean fastMove, @Nullable Boolean rotate, boolean qualityState); + + void onBestFrameReady(); + + void onInteractionSucceed(); + + void onInteractionWaitingOpenedEyes(); + + void onLuminanceState(PhotoProcessor.LuminanceState state); + + void onLivenessResult(int livenessState, int blinkState, int livenessType); + + boolean isFaceInsideBorder(@Nullable android.graphics.Rect rect); + + } + + public static class Builder { + + public Builder() { + + } + + /** + * Set path to VL engine files + * + * @param path path to VL engine files + */ + public Builder pathToData(String path) { + return this; + } + + public PhotoProcessor build(Context context) { + final PhotoProcessor photoProcessor = new PhotoProcessor(context); + return photoProcessor; + } + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/DeviceInfoHelper.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/DeviceInfoHelper.java new file mode 100644 index 0000000..636a298 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/DeviceInfoHelper.java @@ -0,0 +1,65 @@ +package ru.visionlab.femdemo; + +import android.os.Build; + +import java.lang.reflect.Field; + +/** + * Created by luckydotaplay on 20.01.2017. + */ + +public class DeviceInfoHelper { + + public static String getDeviceOSVersion() { + + StringBuilder builder = new StringBuilder(); + builder.append("android : ").append(Build.VERSION.RELEASE); + + Field[] fields = Build.VERSION_CODES.class.getFields(); + for (Field field : fields) { + String fieldName = field.getName(); + int fieldValue = -1; + + try { + fieldValue = field.getInt(new Object()); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (NullPointerException e) { + e.printStackTrace(); + } + + if (fieldValue == Build.VERSION.SDK_INT) { + builder.append(" : ").append(fieldName).append(" : "); + builder.append("sdk=").append(fieldValue); + } + } + + return builder.toString(); + } + + public static String getDeviceName() { + String manufacturer = Build.MANUFACTURER; + String model = Build.MODEL; + if (model.startsWith(manufacturer)) { + return capitalize(model); + } else { + return capitalize(manufacturer) + " " + model; + } + } + + private static String capitalize(String s) { + if (s == null || s.length() == 0) { + return ""; + } + char first = s.charAt(0); + if (Character.isUpperCase(first)) { + return s; + } else { + return Character.toUpperCase(first) + s.substring(1); + } + } + + +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/JavaBindings/FaceEngine.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/JavaBindings/FaceEngine.java new file mode 100644 index 0000000..f776310 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/JavaBindings/FaceEngine.java @@ -0,0 +1,60 @@ +package ru.visionlab.femdemo.JavaBindings; + +public final class FaceEngine { + + /*interaction types*/ + public static final int INTERACTION_TYPE_EYE = 0; + /*interaction state*/ + public static final int INTERACTION_FAILED = 0; + public static final int INTERACTION_STARTED = 1; + public static final int INTERACTION_EYES_OPENED = 2; + public static final int INTERACTION_EYES_CLOSED = 3; + public static final int INTERACTION_EYES_OPENED_AGAIN = 4; + public static final int INTERACTION_SUCCESS = 5; + + public static final int LIVENESS_NONE = 0; + public static final int LIVENESS_ONLINE = 1; + public static final int LIVENESS_OFFLINE = 2; + + public static final int Alive = 0; + public static final int Fake = 1; + public static final int None = 2; + public static final int NotReady = 3; + public static final int BadHeadPose = 4; + public static final int BadQuality = 5; + public static final int FaceNotFound = 6; + public static final int FaceTooClose = 7; + public static final int FaceCloseToBorder = 8; + public static final int FaceTooSmall = 9; + public static final int TooManyFaces = 10; + public static final int Timeout = 11; + public static final int CriticalError = 12; + + public static final int FACE_ENGINE_FRONTEND_VERSION = 0; + public static final int FACE_ENGINE_COMPLETE_VERSION = 1; + + public static native int initFaceEngine(String path); + + public static native int getFaceEngineVersion(); + + public static native void setLivenessType(int livenessType); + + public static native int getLivenessType(); + + public static native int getCurrentLivenessState(); + + public static native byte[] getFaceDescriptorFromLastWarpedShot(); + + public static native float matchDescriptors(byte[] first, byte[] second); + + public static native int getInteractionState(); + + public static native void setEyeInteraction(); + + public static native void resetInteraction(); + + public static native void startCheck(); + + public static native int getInteractionType(); + +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/JavaBindings/TrackEngine.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/JavaBindings/TrackEngine.java new file mode 100644 index 0000000..495de82 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/JavaBindings/TrackEngine.java @@ -0,0 +1,16 @@ +package ru.visionlab.femdemo.JavaBindings; + +public final class TrackEngine { + + public static native void pushFrame(byte[] RGBBuffer, int width, int height); + + public static native byte[] getBestFrameBuffer(); + + public static native boolean bestShotFound(); + + public static native boolean haveFaceDetection(); + + public static native int[] getDetection(); + + public static native void resetBestShotSearch(); +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LocationHelper.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LocationHelper.java new file mode 100644 index 0000000..31fcc78 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LocationHelper.java @@ -0,0 +1,35 @@ +package ru.visionlab.femdemo; + +import android.content.Context; +import android.location.Location; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/*import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationServices; +*/ + +public class LocationHelper /*implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, + LocationListener */{ + + //private final GoogleApiClient locationClient; + @Nullable + private Location lastKnowLocation; + + public LocationHelper(Context context) { + + } + + @Nullable + public Location getLastKnowLocation() { + return lastKnowLocation; + } + + public interface Listener { + + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Splashactivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Splashactivity.java new file mode 100644 index 0000000..48f1828 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Splashactivity.java @@ -0,0 +1,38 @@ +package ru.visionlab.femdemo; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.view.WindowManager; + +import ru.visionlab.femdemo.login.LoginActivity; + +public class Splashactivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, + WindowManager.LayoutParams.FLAG_FULLSCREEN); + setContentView(R.layout.activity_splashactivity); + + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + // on below line we are + // creating a new intent + Intent i = new Intent(Splashactivity.this, LoginActivity.class); + + // on below line we are + // starting a new activity. + startActivity(i); + + // on the below line we are finishing + // our current activity. + finish(); + } + }, 2000); + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Storage.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Storage.java new file mode 100644 index 0000000..65e3797 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Storage.java @@ -0,0 +1,302 @@ +package ru.visionlab.femdemo; + +import android.content.Context; +import android.content.SharedPreferences; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.ConditionVariable; +import android.util.Log; + +import org.json.JSONException; +import org.json.JSONObject; +import java.io.IOException; +import java.net.SocketException; +import java.net.SocketTimeoutException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import ru.visionlab.femdemo.api.RegisterApiImplLuna2; +import ru.visionlab.femdemo.api.VLApi; +import ru.visionlab.femdemo.models.PersonInfo; +import ru.visionlab.femdemo.models.Persons; +import rx.schedulers.Schedulers; + +import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + + +public class Storage { + + private String server; + private static volatile Storage instance; + private Context context; + private HashMap Luna2ServerData; + private HashMap LunaLocalData; + private List RawServerData; + private VLApi api; + private String EncodedUserData; + ConditionVariable Downloaded; + public boolean WrongServAddr = false; + public boolean WrongAccData = false; + public boolean TimeOut = false; + public String APIVersion; + private static final String TAG = "STORAGE"; + private boolean ServerIsEmpty = false; + private boolean isServerChanged = true; + + + public static Storage getInstance(){ + Storage localInstance = instance; + if(localInstance == null){ + synchronized (Storage.class){ + localInstance = instance; + if(localInstance == null){ + instance = localInstance = new Storage(); + } + } + } + return localInstance; + } + + public void setContext(Context context){ + this.context = context; + } + private Storage() { + Luna2ServerData = new HashMap<>(); + LunaLocalData = new HashMap<>(); + RawServerData = new ArrayList<>(); + Downloaded = new ConditionVariable(); + APIVersion = ""; + Downloaded.close(); + } + + public void addToStorageLuna2(String login, String person_id) { + if (!Luna2ServerData.containsKey(login)) { + Log.i(TAG, "Pushed new person!"+login + " id" + person_id); + Luna2ServerData.put(login, person_id); + } + else{ + Log.i(TAG, "Person with such login is already exists!"); + } + } + + public void addToStorageLunaLocal(String login, String Descriptor) { + if (!LunaLocalData.containsKey(login)){ + Log.i(TAG, "Pushed new person!: login"+login+"DESCR"+LunaLocalData.get(login)); + LunaLocalData.put(login,Descriptor); + } + else{ + Log.i(TAG, "Person with such login is already exist!"); + } + for(Map.Entry it: LunaLocalData.entrySet() ){ + Log.i(TAG,"key"+it.getKey()+"VALUE"+it.getValue()); + } + } + + public String getDescriptorLocal(String Login){ + if(LunaLocalData.containsKey(Login)){ + Log.i(TAG,"Returned descriptor is"+LunaLocalData.get(Login)); + return LunaLocalData.get(Login); + } + Log.i(TAG,"NO SUCH LOGIN!!!"); + return null; + } + + public boolean isLocalLoginExist(String Login){ + return LunaLocalData.containsKey(Login); + } + + public boolean isLoginAlreadyExists(String login){ + return Luna2ServerData.containsKey(login); + } + + public boolean isLoginAlreadyExistsLocal(String login){ + return LunaLocalData.containsKey(login); + } + + public String getPersonIdbyLogin(String login){ + if(Luna2ServerData.containsKey(login)) { + return Luna2ServerData.get(login); + } + return null; + } + + public void updateDatabase(String Server, String encodedUserData, VLApi api, boolean ServerChanged){ + Log.i(TAG,"IS server changed? in"+ServerChanged); + isServerChanged = ServerChanged; + this.server = Server; + this.EncodedUserData = encodedUserData; + this.api = api; + + Log.i(TAG,"Updating database"); + clearStorage(); + loadRawDataFromServer(); + } + + private void clearStorage(){ + Log.i("TAG", "Clearing storage!"); + Luna2ServerData.clear(); + RawServerData.clear(); + Downloaded.close(); + } + + public void clearConnectionFlags(){ + WrongServAddr = false; + WrongAccData = false; + TimeOut = false; + } + + private void loadRawDataFromServer(){ + GetRawDataLuna2(); + if(RawServerData.size()!=0) { + parseRawData(); + } + } + + public boolean isInternetConnected(Context context) { + ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); + return (activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting()); + } + + private boolean getApiVersion(){ + String jsonData = null; + try{ + OkHttpClient client = new OkHttpClient.Builder() + .connectTimeout(8, TimeUnit.SECONDS) + .writeTimeout(8, TimeUnit.SECONDS) + .readTimeout(8, TimeUnit.SECONDS) + .build(); + + Request request = new Request.Builder().url(server+"/version").build(); + Response responses = null; + responses = client.newCall(request).execute(); + jsonData = responses.body().string(); + JSONObject RootJson = new JSONObject(jsonData).getJSONObject("Version").getJSONObject("luna_api"); + APIVersion = RootJson.getString("api"); + Log.i(TAG,"API VERSION IS"+APIVersion); + } catch (IOException|JSONException|IllegalArgumentException ex){ + if(ex instanceof SocketTimeoutException || ex instanceof SocketException){ + ex.printStackTrace(); + TimeOut = true; + return false; + } + ex.printStackTrace(); + WrongServAddr = true; + return false; + } + WrongServAddr = false; + TimeOut = false; + return true; + } + + private void GetRawDataLuna2(){ + Boolean downloadedCompletely = false; + int page = 1; + Log.i(TAG,"IS SERVER CHANGED??? = "+ isServerChanged); + if(isServerChanged) { + if (!getApiVersion()) { + return; + } + } + while(!downloadedCompletely){ + api.getRawPersonsDataLuna2(server+"/"+APIVersion+"/storage/persons",EncodedUserData,String.valueOf(page),"100","_@login@_") + .subscribeOn(Schedulers.io()) + .observeOn(Schedulers.newThread()) + .subscribe(this::onRawDataSuccess, this::onRawDataFail); + + Log.i(TAG,"WAITING THREAD TO WAKEUP!"); + Downloaded.block(); + if((RawServerData.size()%100) != 0){ + downloadedCompletely = true; + } + page++; + Log.i(TAG,"PAGE IS="+page); + Downloaded.close(); + if(WrongAccData || ServerIsEmpty){break;} + } + Log.i(TAG,"size of succesfully downloaded items "+RawServerData.size()); + } + + private void parseRawData(){ + Pattern patt = Pattern.compile("^_@login@_:(.*?(?=_@pin@_|$))"); + for(PersonInfo rawPerson : RawServerData){ + if(rawPerson.user_data.matches(patt.pattern())){ + Log.i(TAG,"MATCHES!!! "+rawPerson.user_data); + Matcher matcher = patt.matcher(rawPerson.user_data); + if(matcher.find()) { + Luna2ServerData.put(matcher.group(1),rawPerson.id); + Log.i(TAG,"MATCHER GROUP 0"+matcher.group(0)); + Log.i(TAG,"MATCHER GROUP 1"+matcher.group(1)); + } + } + } + Log.i(TAG,"Clean data size is"+Luna2ServerData.size()); + for(Map.Entry it : Luna2ServerData.entrySet()){ + Log.i(TAG,""+it.getKey()+"--(ID)"+it.getValue()); + } + } + + public void saveOfflineData(){ + SharedPreferences sharedpref = context.getSharedPreferences("Offline",Context.MODE_PRIVATE); + if(sharedpref != null){ + JSONObject jsonObject = new JSONObject(LunaLocalData); + String jsonString = jsonObject.toString(); + SharedPreferences.Editor Editor = sharedpref.edit(); + Editor.remove("My_map").commit(); + Editor.putString("My_map", jsonString); + Editor.commit(); + }else{Log.i(TAG,"SAHREDPREF IS NULL!!!");} + } + + public void updateOfflineData(){ + SharedPreferences sharedpref = context.getSharedPreferences("Offline",Context.MODE_PRIVATE); + try{ + if(sharedpref != null){ + String jsonString = sharedpref.getString("My_map",(new JSONObject()).toString()); + JSONObject jsonObject = new JSONObject(jsonString); + Iterator keyStr = jsonObject.keys(); + while(keyStr.hasNext()){ + String key = keyStr.next(); + String val = (String) jsonObject.get(key); + Log.i(TAG,"KEY"+key+"VAL"+val); + LunaLocalData.put(key, val); + } + }else{Log.i(TAG,"SAHREDPREF IS NULL!!!");} + }catch (Exception e){ + e.printStackTrace(); + } + } + + private void onRawDataSuccess(Persons rawData){ + Log.i(TAG,"RawDataSuccess!"); + RawServerData.addAll(rawData.persons); + WrongServAddr = false; + WrongAccData = false; + if(rawData.persons.size() == 0){ + ServerIsEmpty = true; + }else{ + ServerIsEmpty = false; + } + Downloaded.open(); + } + + private void onRawDataFail(Throwable throwable){ + if(throwable instanceof SocketTimeoutException){ + TimeOut = true; + Downloaded.open(); + return; + } + Log.i(TAG,"RawDataFail : Failed to get any data from the server"); + Log.i(TAG, "RawDataFail : " + throwable.getMessage()); + WrongAccData = true; + Downloaded.open(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Utils.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Utils.java new file mode 100644 index 0000000..e1b1d2d --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Utils.java @@ -0,0 +1,141 @@ +package ru.visionlab.femdemo; + +import android.app.Activity; +import android.content.Context; +import android.content.res.AssetManager; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + +import androidx.annotation.Nullable; +import android.text.TextUtils; +import android.util.Base64; +import android.view.View; +import android.view.inputmethod.InputMethodManager; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; + +public class Utils { + public static final String PATH_TO_EXTRACTED_VL_DATA = "/vl/data"; + private static final String PATH_TO_VL_DATA = "/vl"; + + public static boolean createVLDataFolder(Context filesContext) + { + // create folder + final File fmd = new File(filesContext.getFilesDir() + PATH_TO_VL_DATA); + System.out.println("CREATE VL DATA FOLDER : " + filesContext.getFilesDir() + PATH_TO_VL_DATA); + + if (!(fmd.mkdirs() || fmd.isDirectory())) { + System.out.println("COULDN'T CREATE VL DATA FOLDER : " + filesContext.getFilesDir() + PATH_TO_VL_DATA); + return false; + } + return true; + } + + public static boolean createFilesFromAssetFolder(Context context, String folder){ + + final File fmd=new File(context.getFilesDir()+PATH_TO_VL_DATA+"/"+folder); + + if(!(fmd.mkdirs()||fmd.isDirectory())) { + System.out.println("Failed to create folder "+folder); + return false; + } + + try { + AssetManager assetManager = context.getAssets(); + + ArrayList files=new ArrayList<>(Arrays.asList(assetManager.list(folder))); + + if(files==null||files.size()==0){ + System.out.println("ERROR: ASSET FILE IS EMPTY!"); + return false; + } + + for(String filename:files){ + File file=new File(context.getFilesDir()+PATH_TO_VL_DATA+"/"+folder+"/"+filename); + InputStream iStream=assetManager.open(folder+"/"+filename); + + if (writeBytesToFile(iStream, file)) + System.out.println("CREATED FILE FROM ASSETS: " + folder + "/" + filename + " TO " + file.getAbsolutePath()); + else + System.out.println("ERROR CREATING FILE FROM ASSETS: " + folder + "/" + filename + " TO " + file.getAbsolutePath()); + + } + } + catch (IOException ex){ + ex.printStackTrace(); + return false; + } + + return true; + } + + + public static boolean writeBytesToFile(InputStream is, File file) throws IOException{ + boolean result = false; + FileOutputStream fos = null; + try { + byte[] data = new byte[2048]; + int nbread = 0; + fos = new FileOutputStream(file); + while((nbread=is.read(data))>-1){ + fos.write(data,0,nbread); + } + result = true; + } + catch (Exception e) { + e.printStackTrace(); + result = false; + } + finally{ + if (fos!=null){ + fos.close(); + } + } + + return result; + } + + public static void hideKeyboard(Context context, View view) { + if (view != null) { + InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } + + public static void hideKeyboardRoutine(Context context, View view) { + if (view != null && view.findFocus() != null) { + hideKeyboard(context, view.findFocus()); + view.findFocus().clearFocus(); + } + } + + + @SuppressWarnings("SimplifiableIfStatement") + public static boolean isValidEmail(CharSequence target) { + if (TextUtils.isEmpty(target)) { + return false; + } else { + return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches(); + } + } + + public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality) { + ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream(); + image.compress(compressFormat, quality, byteArrayOS); + return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT); + } + + + @Nullable + public static Bitmap decodeBase64(String input) { + byte[] decodedBytes = Base64.decode(input, 0); + return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length); + } + +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLocal.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLocal.java new file mode 100644 index 0000000..764ee41 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLocal.java @@ -0,0 +1,66 @@ +package ru.visionlab.femdemo.api; + +import android.content.Context; +import android.graphics.Bitmap; +import android.util.Base64; +import android.util.Log; + +import ru.visionlab.femdemo.Core.PhotoProcessor; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.register.RegistrationModel; + +/** + * Created by luckydotaplay on 20.01.2017. + */ + +public class RegisterApiImplLocal implements RegisterApiInterface { + + // TODO: + private RegisterApiInterface.Listener listener; + private RegistrationModel registrationModel; + private Context context; + private PhotoProcessor photoProcessor; + private Bitmap bitmap; + private static final String TAG="RegisterLocal"; + + public static class DescriptorNotExtractedException extends RuntimeException { + + public DescriptorNotExtractedException(String detailMessage) { + super(detailMessage); + } + } + + public RegisterApiImplLocal(Context context, RegistrationModel registrationModel, PhotoProcessor photoProcessor, RegisterApiInterface.Listener listener, Bitmap bitmap) + { + this.context = context; + this.registrationModel = registrationModel; + this.listener = listener; + this.photoProcessor = photoProcessor; + this.bitmap = bitmap; + } + + @Override + public void registerPerson() { + Log.i(TAG,"Login is"+registrationModel.login); + // photoProcessor.calcFaceDescriptorFromBestFrame(); + byte[] bestFrameDescriptorByteArray = photoProcessor.getFaceDescriptorByteArray(); + + if (bestFrameDescriptorByteArray == null || bestFrameDescriptorByteArray.length == 0) { + onFail(new DescriptorNotExtractedException("FAILED to register: could not extract descriptor ")); + } + else{ + String descriptorEncrypted = Base64.encodeToString(bestFrameDescriptorByteArray, Base64.DEFAULT); + onSuccess(descriptorEncrypted); + } + } + + private void onFail(Throwable throwable) { + listener.onRegistrationFail(throwable); + } + + private void onSuccess(String descriptor) { + Log.i(TAG,"Desctiptor has been saved : descr = "+descriptor); + Storage.getInstance().addToStorageLunaLocal(registrationModel.login, descriptor); + listener.onRegistrationSuccess(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLuna2.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLuna2.java new file mode 100644 index 0000000..8b82f35 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLuna2.java @@ -0,0 +1,218 @@ +package ru.visionlab.femdemo.api; + + +import android.content.Context; +import android.graphics.Bitmap; +import android.location.Location; +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Locale; + + + +import okhttp3.MediaType; +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.DeviceInfoHelper; +import ru.visionlab.femdemo.LocationHelper; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.models.CreatePersonRequest; +import ru.visionlab.femdemo.models.CreatePersonResult; +import ru.visionlab.femdemo.models.Person; +import ru.visionlab.femdemo.models.UserVerifDataBase; +import ru.visionlab.femdemo.register.RegistrationModel; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * Created by luckydotaplay on 20.01.2017. + */ + +public class RegisterApiImplLuna2 implements RegisterApiInterface { + + // TODO: + private RegisterApiInterface.Listener listener; + private RegistrationModel registrationModel; + private LocationHelper locationHelper; + private VLApi api; + private Bitmap bitmap; + private String personID; + private Context context; + private Storage storage; + private String server; + private String EncodedUserData; + private static final String TAG = "RegApiLuna2"; + private CreatePersonRequest request; + + public class Luna2UserVerifData extends UserVerifDataBase + { + public String personID; + + public Luna2UserVerifData(String personID, String password) + { + this.personID = personID; + this.password = password; + } + } + + public class InternetConnectionException extends RuntimeException { + + public InternetConnectionException(String detailMessage) { + super(detailMessage); + } + } + public class WrongAccDataException extends RuntimeException { + + public WrongAccDataException(String detailMessage) { + super(detailMessage); + } + } + public class WrongServAddrException extends RuntimeException { + + public WrongServAddrException(String detailMessage) { + super(detailMessage); + } + } + public class SocketTimeOutException extends RuntimeException { + + public SocketTimeOutException(String detailMessage) { + super(detailMessage); + } + } + + public RegisterApiImplLuna2(Context context, String server, RegistrationModel registrationModel, VLApi api, LocationHelper locationHelper, RegisterApiInterface.Listener listener, Bitmap bitmap, String encodedUserData) + { + this.context = context; + this.registrationModel = registrationModel; + this.api = api; + this.locationHelper = locationHelper; + this.listener = listener; + this.bitmap = bitmap; + this.EncodedUserData=encodedUserData; + this.server = server; + storage = Storage.getInstance(); + } + + @Override + public void registerPerson() { + if(! storage.isInternetConnected(context)){ + onCommonFail(new InternetConnectionException("Internet Connection")); + return; + } + if(storage.TimeOut){ + onCommonFail(new RegisterApiImplLuna2.SocketTimeOutException("TimeOutException")); + return; + } + if(storage.WrongServAddr){ + onCommonFail(new WrongServAddrException("Server address is incorrect")); + return; + } + if(storage.WrongAccData){ + onCommonFail(new WrongAccDataException("Incorrect server account data")); + return; + } + + Person person = new Person(); + + final Location location = locationHelper.getLastKnowLocation(); + if (location != null) { + final String latLong = String.format(Locale.ENGLISH, "%s,%s", location.getLatitude(), location.getLongitude()); + person.setPlaceOfBirth(latLong); + } + + person.setIdentification(registrationModel.email + "; " + DeviceInfoHelper.getDeviceName() + "; " + DeviceInfoHelper.getDeviceOSVersion()); + person.setFirstName(registrationModel.login); + person.setPhone(registrationModel.phone); + + request = new CreatePersonRequest(); + request.user_data = new String("_@login@_:" + registrationModel.login); + Log.i("LUNA2_DATA","user_data field is"+request.user_data); + + api.createPersonLuna2(server + "/"+storage.APIVersion+"/storage/persons", EncodedUserData, request) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(this::onCreatePersonSuccess,this::onCommonFail); + } + + private void onCommonFail(Throwable throwable) { + Log.e(TAG, "onCommonFail+ " + throwable.getMessage()); + listener.onRegistrationFail(throwable); + } + + private void onCreatePersonSuccess(CreatePersonResult result) { + + Log.e(TAG, "onCreatePersonSuccess ERR_CODE: " + result.error_code + " detaul: " + result.detail); + + personID = new String(result.person_id); + + File file = new File(context.getCacheDir(), "tmp.jpg"); + + try { + FileOutputStream out = new FileOutputStream(file); + bitmap.compress(Bitmap.CompressFormat.JPEG, Config.JPEG_QUALITY, out); + out.flush(); + out.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + + // create RequestBody instance from file + RequestBody requestFile = RequestBody.create(MediaType.parse("image/jpeg"), file); + + api.createDescriptorsLuna2(server + "/" + storage.APIVersion + "/storage/descriptors", EncodedUserData, requestFile) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(this::onCreateDescriptorSuccess, this::onCommonFail); + } + + public static String extractDescriptorIdFromResponseMsg(String msg) { + String result = ""; + + try { + JSONArray requestArray = new JSONArray((new JSONObject(msg)).getString("faces")); + result = ((JSONObject)requestArray.get(0)).getString("id"); + } catch (JSONException e) { + e.printStackTrace(); + } + + return result; + } + + private void onCreateDescriptorSuccess(ResponseBody result) { + + Log.i(TAG, "onCreateDescriptorSuccess "); + String msg; + try { + msg = result.string(); + Log.i(TAG, "onCreateDescriptorSuccess MSG : " + msg); + } + catch (IOException e) + { + e.printStackTrace(); + Log.e(TAG, "ERROR onCreateDescriptorSuccess unable to get string from response "); + return; + } + String descriptorID = extractDescriptorIdFromResponseMsg(msg); + Log.i(TAG, "CREATED DESCRIPTOR IDD: " + descriptorID + " personID: " + personID + " NOW ATTACH DESCRIPTOR"); + + api.attachDescriptorLuna2(server + "/"+storage.APIVersion+"/storage/persons/" + personID + "/linked_descriptors", EncodedUserData, descriptorID, true ? "attach" : "detach") + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(this::onAttachDescriptorSuccess, this::onCommonFail); + } + + private void onAttachDescriptorSuccess(Void result) { + Log.e(TAG, "onAttachDescriptorSuccess !!!" ); + Storage.getInstance().addToStorageLuna2(registrationModel.login, personID); + listener.onRegistrationSuccess(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiInterface.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiInterface.java new file mode 100644 index 0000000..02afa74 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiInterface.java @@ -0,0 +1,10 @@ +package ru.visionlab.femdemo.api; + +public interface RegisterApiInterface { + public void registerPerson(); + + public interface Listener { + void onRegistrationSuccess(); + void onRegistrationFail(Throwable throwable); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VLApi.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VLApi.java new file mode 100644 index 0000000..b629e5c --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VLApi.java @@ -0,0 +1,46 @@ +package ru.visionlab.femdemo.api; + +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import retrofit2.http.Body; +import retrofit2.http.GET; +import retrofit2.http.Header; +import retrofit2.http.PATCH; +import retrofit2.http.POST; +import retrofit2.http.Query; +import retrofit2.http.Url; +import ru.visionlab.femdemo.models.CreatePersonRequest; +import ru.visionlab.femdemo.models.CreatePersonResult; +import ru.visionlab.femdemo.models.GetAccountResult; +import ru.visionlab.femdemo.models.Persons; +import ru.visionlab.femdemo.models.Registration; +import ru.visionlab.femdemo.models.SearchRequest; +import ru.visionlab.femdemo.models.SearchResult; +import rx.Observable; + +public interface VLApi { + @GET + Observable getAccountLuna2(@Url String url, @Header("Authorization") String lohin_pass); + + @POST + Observable registerPerson(@Url String url, @Body Registration registrationData); + + @POST + Observable searchPerson(@Url String url, @Body SearchRequest searchRequest); + + @POST + Observable createPersonLuna2(@Url String url, @Header("Authorization") String login_pass, @Body CreatePersonRequest request); + + @POST + Observable createDescriptorsLuna2(@Url String url, @Header("Authorization") String login_pass, @Body RequestBody file); + + @PATCH + Observable attachDescriptorLuna2(@Url String url, @Header("Authorization") String login_pass, @Query("descriptor_id") String descriptor_id, @Query("do") String doStr); + + @POST + Observable verifyPersonLuna2(@Url String url, @Header("Authorization") String login_pass, @Query("person_ids") String person_ids, @Body RequestBody file); + + @GET + Observable getRawPersonsDataLuna2(@Url String url, @Header("Authorization") String login_pass,@Query("page") String page, @Query("page_size") String page_size, @Query("user_data") String filter); + +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiImplLuna2.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiImplLuna2.java new file mode 100644 index 0000000..e017954 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiImplLuna2.java @@ -0,0 +1,185 @@ +package ru.visionlab.femdemo.api; + + +import android.content.Context; +import android.graphics.Bitmap; +import android.util.Log; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import okhttp3.MediaType; +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.models.SearchResult; +import ru.visionlab.femdemo.models.SearchResultPerson; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * Created by luckydotaplay on 20.01.2017. + */ + +public class VerifyApiImplLuna2 implements VerifyApiInterface { + + // TODO: + private VerifyApiInterface.Listener listener; + private String login; + private VLApi api; + private Bitmap bitmap; + private String EncodedUserData; + private Context context; + private String server; + + private static final String TAG = "VerifyLuna2"; + + public class LoginNotFoundException extends RuntimeException { + + public LoginNotFoundException(String detailMessage) { + super(detailMessage); + } + } + public class InternetConnectionException extends RuntimeException { + + public InternetConnectionException(String detailMessage) { + super(detailMessage); + } + } + + public class WrongAccDataException extends RuntimeException { + + public WrongAccDataException(String detailMessage) { + super(detailMessage); + } + } + + public class WrongServAddrException extends RuntimeException { + + public WrongServAddrException(String detailMessage) { + super(detailMessage); + } + } + + public class SocketTimeOutException extends RuntimeException { + + public SocketTimeOutException(String detailMessage) { + super(detailMessage); + } + } + + public VerifyApiImplLuna2(Context context, String server, String login, VLApi api, VerifyApiInterface.Listener listener, Bitmap bitmap, String encodedUserData) + { + this.context = context; + this.login = login; + this.api = api; + this.listener = listener; + this.bitmap = bitmap; + this.EncodedUserData = encodedUserData; + this.server = server; + + } + + @Override + public void verifyPerson() { + Storage Luna2Storage = Storage.getInstance(); + + if(! Luna2Storage.isInternetConnected(context)){ + onCommonFail(new VerifyApiImplLuna2.InternetConnectionException("Internet Connection")); + return; + } + if(Luna2Storage.TimeOut){ + onCommonFail(new VerifyApiImplLuna2.SocketTimeOutException("TimeOutException")); + } + if(Luna2Storage.WrongServAddr){ + onCommonFail(new VerifyApiImplLuna2.WrongServAddrException("Server address is incorrect")); + return; + } + if(Luna2Storage.WrongAccData) { + onCommonFail(new VerifyApiImplLuna2.WrongAccDataException("Incorrect server account data")); + return; + } + if(Luna2Storage.getPersonIdbyLogin(login) == null){ + onCommonFail(new LoginNotFoundException("FAILED to verify. no such login registered or PersonID is invalid: ")); + return; + } + + File file = new File(context.getCacheDir(), "tmp.jpg"); + + try { + FileOutputStream out = new FileOutputStream(file); + bitmap.compress(Bitmap.CompressFormat.JPEG, Config.JPEG_QUALITY, out); + out.flush(); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + // create RequestBody instance from file + RequestBody requestFile = RequestBody.create(MediaType.parse("image/jpeg"), file); + + Log.i(TAG, "SEND VERIF PERSON REQUEST login: " + login + " personID: " + Luna2Storage.getPersonIdbyLogin(login)); + api.verifyPersonLuna2(server + "/"+Luna2Storage.APIVersion+"/matching/search", EncodedUserData, Luna2Storage.getPersonIdbyLogin(login), requestFile) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(this::onVerifyPersonSuccess, this::onCommonFail); + } + + private void onCommonFail(Throwable throwable) { + + Log.i(TAG, "onCommonFail + " + throwable.getMessage()); + listener.onVerificationFail(throwable); + } + + private void onVerifyPersonSuccess(ResponseBody result) { + + Log.i(TAG, "onVerifyPersonSuccess "); + + String msg; + + try { + msg = result.string(); + Log.i(TAG, "onVerifyPersonSuccess MSG : " + msg); + } + catch (IOException e) + { + e.printStackTrace(); + Log.e(TAG, "ERROR onVerifyPersonSuccess unable to get string from response "); + return; + } + + // fill fake search result for compatibility + List personsSearchList = new ArrayList(); + + SearchResultPerson person = new SearchResultPerson(); + person.similarity = extractSimilarityResponseMsg(msg); + personsSearchList.add(person); + + SearchResult searchResult = new SearchResult(); + searchResult.setPersons(personsSearchList); + + listener.onVerificationSuccess(searchResult); + } + + public static double extractSimilarityResponseMsg(String msg) { + + double similarity = -10.0; + + try { + similarity = ((JSONObject)((new JSONObject(msg)).getJSONArray("candidates").get(0))).getDouble("similarity"); + } catch (JSONException e) { + e.printStackTrace(); + } + + Log.i(TAG, "SIMILARITY: " + similarity); + + return similarity; + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiImplLunaLocal.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiImplLunaLocal.java new file mode 100644 index 0000000..191ca1b --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiImplLunaLocal.java @@ -0,0 +1,81 @@ +package ru.visionlab.femdemo.api; + +import android.content.Context; +import android.util.Base64; +import android.util.Log; + +import java.util.ArrayList; +import java.util.List; + +import ru.visionlab.femdemo.Core.PhotoProcessor; + +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.models.SearchResult; +import ru.visionlab.femdemo.models.SearchResultPerson; + +/** + * Created by luckydotaplay on 20.01.2017. + */ + +public class VerifyApiImplLunaLocal implements VerifyApiInterface { + + // TODO: + private VerifyApiInterface.Listener listener; + private String login; + private PhotoProcessor photoProcessor; + private static final String TAG = "VerifyLunaLocal"; + public VerifyApiImplLunaLocal(Context context, PhotoProcessor photoProcessor, String login, VerifyApiInterface.Listener listener) + { + this.login = login; + this.listener = listener; + this.photoProcessor = photoProcessor; + } + + @Override + public void verifyPerson() { + Log.i(TAG, "Login is " + login); + + Storage LocalStorage = Storage.getInstance(); + + if (LocalStorage.getDescriptorLocal(login) == null) + { + onFail(new RuntimeException("FAILED to verify. null verif data or invalid descriptor")); + return; + } + + byte[] bestFrameDescriptorByteArray = photoProcessor.getFaceDescriptorByteArray(); + + if (bestFrameDescriptorByteArray == null || bestFrameDescriptorByteArray.length == 0) + { + onFail(new RegisterApiImplLocal.DescriptorNotExtractedException("FAILED to register: could not extract descriptor ")); + return; + } + + byte[] savedDescriptorByteArray = Base64.decode(LocalStorage.getDescriptorLocal(login), Base64.DEFAULT); + + float similarity = photoProcessor.matchDescriptors(bestFrameDescriptorByteArray, savedDescriptorByteArray);//check for similiarity + + System.out.println("Similarity is : " + similarity); + + // fill fake search result for compatibility + List personsSearchList = new ArrayList(); + + SearchResultPerson person = new SearchResultPerson(); + person.similarity = similarity; + + personsSearchList.add(person); + + SearchResult searchResult = new SearchResult(); + searchResult.setPersons(personsSearchList); + + onSuccess(searchResult); + } + + private void onFail(Throwable throwable) { + listener.onVerificationFail(throwable); + } + + private void onSuccess(SearchResult searchResult) { + listener.onVerificationSuccess(searchResult); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiInterface.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiInterface.java new file mode 100644 index 0000000..82fc62f --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/VerifyApiInterface.java @@ -0,0 +1,12 @@ +package ru.visionlab.femdemo.api; + +import ru.visionlab.femdemo.models.SearchResult; + +public interface VerifyApiInterface { + public void verifyPerson(); + + public interface Listener { + void onVerificationSuccess(SearchResult searchResult); + void onVerificationFail(Throwable throwable); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthSuccessActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthSuccessActivity.java new file mode 100644 index 0000000..5e1db8e --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthSuccessActivity.java @@ -0,0 +1,70 @@ +package ru.visionlab.femdemo.authentication; + +import android.os.Bundle; +import android.widget.TextView; + +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.Toolbar; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.base.ToolbarActivity; +import ru.visionlab.femdemo.settings.VLPreferences; + +public class AuthSuccessActivity extends ToolbarActivity { + public static final String LOGIN = "LOGIN"; + public static final String TIME = "TIME"; + @Inject + VLPreferences preferences; + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(R.id.timeText) + TextView timeText; + + String username; + private int timeMs; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ((App) getApplication()).getComponent().inject(this); + + username = getIntent().getStringExtra(LOGIN); + timeMs = getIntent().getIntExtra(TIME, 0); + + setContentView(R.layout.activity_auth_success); + ButterKnife.bind(this); + setToolbar(); + + if (timeMs != 0) { + timeText.setText(getString(R.string.verification_time, (int) timeMs)); + } + } + + @OnClick(R.id.logout) + public void onClick() { + preferences.setUsername(username); + finish(); + } + + private void setToolbar() { + setSupportActionBar(toolbar); + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + actionBar.setHomeAsUpIndicator(R.drawable.ic_toolbar_close); + setTitle(R.string.authentication_title); + } + } + + @Override + public void onBackPressed() { + onClick(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthenticationActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthenticationActivity.java new file mode 100644 index 0000000..a270d75 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthenticationActivity.java @@ -0,0 +1,500 @@ +package ru.visionlab.femdemo.authentication; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Bitmap; +import android.os.Bundle; + +import android.os.Vibrator; +import android.text.TextUtils; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; + +//import com.samsung.android.sdk.pass.SpassFingerprint; + +import java.util.List; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import retrofit2.adapter.rxjava.HttpException; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.Core.PhotoProcessor; +import ru.visionlab.femdemo.BuildConfig; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.api.RegisterApiImplLocal; +import ru.visionlab.femdemo.api.VLApi; +import ru.visionlab.femdemo.api.VerifyApiImplLuna2; +import ru.visionlab.femdemo.api.VerifyApiImplLunaLocal; +import ru.visionlab.femdemo.api.VerifyApiInterface; +import ru.visionlab.femdemo.base.PhotoFragment; +import ru.visionlab.femdemo.base.ToolbarActivity; +import ru.visionlab.femdemo.models.SearchResult; +import ru.visionlab.femdemo.models.SearchResultPerson; +import ru.visionlab.femdemo.register.FaceNotFoundFragment; +import ru.visionlab.femdemo.settings.VLPreferences; + +public class AuthenticationActivity extends ToolbarActivity implements PinFragment.Listener, PhotoFragment.Listener, + FaceNotFoundFragment.Listener, FingerprintFragment.Listener, FaceNotRecognizedFragment.Listener, VerifyApiInterface.Listener{ + + /*public class AuthenticationActivity extends AppCompatActivity {*/ + public static final String USER_NAME = "USER_NAME"; + @Inject + VLPreferences preferences; + @Inject + VLApi api; + + @Inject + PhotoProcessor photoProcessor; + + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(R.id.tabs) + LinearLayout tabs; + @BindView(R.id.face) + Button face; + @BindView(R.id.finger) + Button finger; + String login; +// SpassFingerprint spassFingerprint; + private PhotoFragment photoFragment; + private FingerprintFragment fingerprintFragment; + private int faceFailCount; + private static final String TAG = "AuthActivity"; + + private long verifStartTime; + private long verifEndTime; + private boolean goingSomewhere = false; + private Thread thread; + ImageButton back_img; + EditText compId,username,pass; + String company_Id="",user="",password=""; + + public DrawerLayout drawerLayout; + public ActionBarDrawerToggle actionBarDrawerToggle; + public enum AuthFailReason + { + SIMILARITY, + LOGIN_NOT_FOUND, + DESCRIPTOR_EXTRACTION_ERROR, + HTTP_ERROR, + OTHER + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_authentication); + + drawerLayout = findViewById(R.id.my_drawer_layout); + actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.nav_open, R.string.nav_close); + + // pass the Open and Close toggle for the drawer layout listener + // to toggle the button + drawerLayout.addDrawerListener(actionBarDrawerToggle); + actionBarDrawerToggle.syncState(); + + // to make the Navigation drawer icon always appear on the action bar + + getActionBar().setDisplayHomeAsUpEnabled(true); + + login = getIntent().getStringExtra(USER_NAME); + face = findViewById(R.id.face); + face.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + System.out.println("Clicked face"); + } + }); + /*if (TextUtils.isEmpty(login)) { + finish(); + } + ButterKnife.bind(this); + ((App) getApplication()).getComponent().inject(this); + + if((!BuildConfig.IS_OFFLINE_VERSION) && preferences.getLuna2()) { + thread = new Thread(() -> { + Storage.getInstance().updateDatabase(preferences.getLuna2Server(), preferences.getEncodedUserData(), api, preferences.getServerChanged()); + }); + thread.start(); + } + setToolbar(); + configureTabs(); + + goingSomewhere = false;*/ + // back_img = findViewById(R.id.back_img); + /* back_img.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(AuthenticationActivity.this, LoginActivity.class); + startActivity(intent); + } + });*/ + /*compId = findViewById(R.id.compId); + username = findViewById(R.id.username); + pass = findViewById(R.id.pass);*/ + + /*company_Id = compId.getText().toString().trim(); + user = username.getText().toString().trim(); + password = pass.getText().toString().trim();*/ + } + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + + if (actionBarDrawerToggle.onOptionsItemSelected(item)) { + return true; + } + return super.onOptionsItemSelected(item); + } + + + @Override + protected void onDestroy() + { + // photoProcessor.release(); + super.onDestroy(); + } + + @Override + public void setTitle(CharSequence title) { + title = getString(R.string.authentication_title); + super.setTitle(title); + } + + @Override + public void setTitle(int titleId) { + titleId = R.string.authentication_title; + super.setTitle(titleId); + } + + private void configureTabs() { + int visibleTabsCount = 0; + + if (!preferences.getFaceAuth()) { + face.setVisibility(View.GONE); + } else { + //onFaceClick(face); + visibleTabsCount++; + } + + if (!preferences.getFingerAuth()) { + finger.setVisibility(View.GONE); + } else { + if (visibleTabsCount == 0) { + onFingerClick(finger); + } + visibleTabsCount++; + } + + if (visibleTabsCount <= 1) { + tabs.setVisibility(View.GONE); + } + } + + private void setToolbar() { + setSupportActionBar(toolbar); + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + actionBar.setHomeAsUpIndicator(R.drawable.ic_toolbar_close); + setTitle(R.string.authentication_title); + } + } + + private void unselectTabs() { + face.setActivated(false); + finger.setActivated(false); + } + + private void setSelectedTab(View view) { + unselectTabs(); + view.setActivated(true); + } + + /*@OnClick({R.id.face}) + public void onFaceClick(View view) { + System.out.println("Clicked face"); + setSelectedTab(view); + showFaceAuth(); + }*/ + + private void showFaceAuth() { + if (photoFragment == null) { + photoFragment = PhotoFragment.newInstance(); + photoFragment.setListener(this); + photoFragment.setPhotoProcessor(photoProcessor); + photoFragment.enableLivenessCheck(preferences.getLivenessAuth()); + } + preferences.setStartTime(String.valueOf(System.currentTimeMillis())); + preferences.setNeedPortrait(true); + showFragment(photoFragment); + } + + @OnClick({R.id.finger}) + public void onFingerClick(View view) { + setSelectedTab(view); + // showFingerAuth(); + } + + /*private void showFingerAuth() { + if (fingerprintFragment == null) { + fingerprintFragment = FingerprintFragment.newInstance(); + fingerprintFragment.setListener(this); + } + showFragment(fingerprintFragment); + } +*/ + private void showFragment(Fragment fragment) { + final FragmentManager fragmentManager = getSupportFragmentManager(); + if (fragmentManager.findFragmentByTag(fragment.toString()) == null) { + if (!goingSomewhere) { + goingSomewhere = true; + fragmentManager + .beginTransaction() + .replace(R.id.container, fragment, fragment.toString()) + .commit(); + goingSomewhere = false; + } + } + } + @Override + public void onCorrectPin() { + showSuccess(); + } + + @Override + public void onIncorrectPin() { + showFail(); + } + @Override + public void onBestFrameReady(Bitmap bitmap) { + + photoFragment.showWaitState(); + try { + if (thread != null) + thread.join(); + }catch (InterruptedException e) { + e.printStackTrace(); + } + VerifyApiInterface verifyApi; + if (BuildConfig.IS_OFFLINE_VERSION) { + verifyApi = new VerifyApiImplLunaLocal(this, photoProcessor, login, this); + } else { //if (preferences.getLuna2()) { + Log.i("LUNA2 ", preferences.getLuna2Server()); + verifyApi = new VerifyApiImplLuna2(this, preferences.getLuna2Server(), login, api, this, bitmap, preferences.getEncodedUserData()); + } + + verifStartTime = System.nanoTime(); + verifyApi.verifyPerson(); + } + + /*@Override + protected void onSaveInstanceState(Bundle outState) { + //No call for super(). Bug on API Level > 11. + }*/ + + @Override + public void onVerificationFail(Throwable throwable) { + + verifEndTime = System.nanoTime(); + if(throwable instanceof VerifyApiImplLuna2.InternetConnectionException){ + Toast.makeText(this,getResources().getString(R.string.bad_internet_conneciton), Toast.LENGTH_LONG).show(); + this.finish(); + }else if(throwable instanceof VerifyApiImplLuna2.SocketTimeOutException) { + Toast.makeText(this,getResources().getString(R.string.TimeOut), Toast.LENGTH_LONG).show(); + this.finish(); + } else if(throwable instanceof VerifyApiImplLuna2.WrongAccDataException){ + Toast.makeText(this,getResources().getString(R.string.bad_acc_data), Toast.LENGTH_LONG).show(); + this.finish(); + }else if(throwable instanceof VerifyApiImplLuna2.WrongServAddrException || + throwable instanceof IllegalArgumentException){ + Toast.makeText(this,getResources().getString(R.string.bad_server_address), Toast.LENGTH_LONG).show(); + this.finish(); + } else if (throwable instanceof VerifyApiImplLuna2.LoginNotFoundException) { + onFaceAuthFail(AuthFailReason.LOGIN_NOT_FOUND); + } else if (throwable instanceof RegisterApiImplLocal.DescriptorNotExtractedException) { + onFaceAuthFail(AuthFailReason.DESCRIPTOR_EXTRACTION_ERROR); + } else if (throwable instanceof HttpException) { + HttpException error = (HttpException) throwable; + if (error.code() == 404) { + onFaceAuthFail(AuthFailReason.HTTP_ERROR); + } else { + Toast.makeText(this, R.string.service_unavailable, Toast.LENGTH_SHORT).show(); + onFaceAuthFail(AuthFailReason.HTTP_ERROR); + error.printStackTrace(); + } + } else { + Toast.makeText(this, R.string.service_unavailable, Toast.LENGTH_SHORT).show(); + onFaceAuthFail(AuthFailReason.OTHER); + throwable.printStackTrace(); + } + } + + @Override + public void onVerificationSuccess(SearchResult searchResult) { + + verifEndTime = System.nanoTime(); + preferences.setServerChanged(false); + final List persons = searchResult.getPersons(); + if (persons != null && !persons.isEmpty()) { + final SearchResultPerson person = persons.get(0); + if (person.similarity > Config.MIN_SIMILARITY) { + onFaceAuthSuccess(); + } else { + onFaceAuthFail(AuthFailReason.SIMILARITY); + } + } else { + onFaceAuthFail(AuthFailReason.SIMILARITY); + } + } + + private void onFaceAuthFail(AuthFailReason reason) { + if (faceFailCount < 4) { + final FaceNotRecognizedFragment fragment = FaceNotRecognizedFragment.newInstance(); + fragment.setListener(this); + if (reason == AuthFailReason.SIMILARITY && BuildConfig.IS_OFFLINE_VERSION) + { + fragment.setVerificationTime((int)((double)(verifEndTime - verifStartTime) / 1e6)); + } + fragment.setFailReason(reason); + showFragment(fragment); + } else { + showFail(); + } + } + + private void showFail() { + Toast.makeText(this, R.string.access_denied, Toast.LENGTH_SHORT).show(); + finish(); + } + + private void onFaceAuthSuccess() { + if (preferences.getFingerAuth()) { + onFingerClick(finger); + } else { + showSuccess(); + } + } + + private void showSuccess() { + final Intent intent = new Intent(this, AuthSuccessActivity.class); + intent.putExtra(AuthSuccessActivity.LOGIN, login); + + if (BuildConfig.IS_OFFLINE_VERSION) { + intent.putExtra(AuthSuccessActivity.TIME, (int)(((double) (verifEndTime - verifStartTime)) / 1e6)); + } + + startActivity(intent); + finish(); + } + + @Override + public void onTimeout(FaceNotFoundFragment.Reason reason) { + faceFailCount++; + if (faceFailCount < 5) { + faceFailCount--; + final FaceNotFoundFragment fragment = FaceNotFoundFragment.newInstance(); + fragment.setListener(this); + fragment.setReason(reason); + showFragment(fragment); + } else { + showFail(); + } + } + /////////////////////////////////////////////////////////////////////// + @Override + public void onTimeout() { + final FaceNotFoundFragment fragment = FaceNotFoundFragment.newInstance(); + fragment.setListener(this); + fragment.setReason(FaceNotFoundFragment.Reason.NOT_FOUND); + showFragment(fragment); + } + + @Override + public void onLivenessResult(int livenessState, int blinkState, int livenessType) { + + } + + + /////////////////////////////////////////////////////////////////////// + @Override + public void onInteractionWaitingOpenedEyes() { + Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); + v.vibrate(500); + } + @Override + public void onNeedCameraPermission() { + goToAppDetails(R.string.permission_need_for_auth); + } + + @Override + public void onRetryClick() { + faceFailCount++; + if (faceFailCount < 5) { + showFaceAuth(); + } else { + showFail(); + } + } + @Override + public void onFingerprintAuthSuccess() { + showSuccess(); + } + + @Override + public void onFingerprintAuthFail() { + showFail(); + } + @Override + protected void onResume() { + super.onResume(); + /* if (preferences.getFingerAuth()) { + Spass mSpass = new Spass(); + try { + mSpass.initialize(this); + if (mSpass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT)) { + spassFingerprint = new SpassFingerprint(this); + if (!spassFingerprint.hasRegisteredFinger()) { + if (!preferences.getFaceAuth()){ + preferences.setFaceAuth(true); + } + preferences.setFingerAuth(false); + showFail(); + } + } else { + preferences.setFingerAuth(false); + if (!preferences.getFaceAuth()){ + preferences.setFaceAuth(true); + } + showFail(); + } + } catch (SsdkUnsupportedException | UnsupportedOperationException e) { + preferences.setFingerAuth(false); + if (!preferences.getFaceAuth()){ + preferences.setFaceAuth(true); + } + showFail(); + } + }*/ + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/FaceNotRecognizedFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/FaceNotRecognizedFragment.java new file mode 100644 index 0000000..4256d7b --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/FaceNotRecognizedFragment.java @@ -0,0 +1,85 @@ +package ru.visionlab.femdemo.authentication; + + +import android.os.Bundle; +import androidx.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + +import com.makeramen.roundedimageview.RoundedImageView; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.base.BaseFragment; + +public class FaceNotRecognizedFragment extends BaseFragment { + @BindView(R.id.retry) + Button retry; + @BindView(R.id.timeText) + TextView timeText; + private Listener listener; + private int verificationTime = 0; + private AuthenticationActivity.AuthFailReason failReason; + + public FaceNotRecognizedFragment() { + + } + + public static FaceNotRecognizedFragment newInstance() { + return new FaceNotRecognizedFragment(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_face_not_recognized, container, false); + ButterKnife.bind(this, view); + return view; + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + if (verificationTime != 0) { + timeText.setText(getString(R.string.verification_time, verificationTime)); + } else if (failReason == AuthenticationActivity.AuthFailReason.LOGIN_NOT_FOUND) { + timeText.setText(R.string.login_not_found); + } + } + + public void setListener(Listener listener) { + this.listener = listener; + } + + public void setVerificationTime(int timeMs) + { + verificationTime = timeMs; + } + + public void setFailReason(AuthenticationActivity.AuthFailReason reason) + { + failReason = reason; + } + + @OnClick(R.id.retry) + public void onClick() { + if (listener != null) { + listener.onRetryClick(); + } + } + + public interface Listener { + void onRetryClick(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/FingerprintFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/FingerprintFragment.java new file mode 100644 index 0000000..f74f47b --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/FingerprintFragment.java @@ -0,0 +1,247 @@ +package ru.visionlab.femdemo.authentication; + + +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import androidx.annotation.Nullable; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import android.widget.Toast; + +//import com.samsung.android.sdk.SsdkUnsupportedException; +//import com.samsung.android.sdk.pass.Spass; +//import com.samsung.android.sdk.pass.SpassFingerprint; +//import com.samsung.android.sdk.pass.SpassInvalidStateException; + +import java.util.ArrayList; + +import butterknife.BindView; +import butterknife.ButterKnife; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.base.BaseFragment; + +public class FingerprintFragment extends BaseFragment { + @BindView(R.id.message) + TextView message; +// @BindView(R.id.incorrectFingerprint) +// TextView incorrectFingerprint; +// private Handler handler = new Handler(Looper.getMainLooper()); +// private SpassFingerprint spassFingerprint; +// private boolean isFeatureEnabled_index = false; +// private boolean needRetryIdentify = false; +// private boolean onReadyIdentify = false; +// private ArrayList designatedFingers = null; +// private Listener listener; +// private int failCount; +// private final SpassFingerprint.IdentifyListener identifyListener = new SpassFingerprint.IdentifyListener() { +// @Override +// public void onFinished(int eventStatus) { +// try { +// spassFingerprint.getIdentifiedFingerprintIndex(); +// } catch (IllegalStateException ise) { +// ise.printStackTrace(); +// } +// if (eventStatus == SpassFingerprint.STATUS_AUTHENTIFICATION_SUCCESS) { +// if (handler != null) { +// handler.post(() -> onAuthSuccess()); +// } +// } else if (eventStatus == SpassFingerprint.STATUS_AUTHENTIFICATION_PASSWORD_SUCCESS) { +// if (handler != null) { +// handler.post(() -> onAuthSuccess()); +// } +// } else if (eventStatus == SpassFingerprint.STATUS_OPERATION_DENIED || +// eventStatus == SpassFingerprint.STATUS_USER_CANCELLED || +// eventStatus == SpassFingerprint.STATUS_TIMEOUT_FAILED) { +// needRetryIdentify = true; +// if (handler != null) { +// handler.post(() -> onAuthFailed()); +// } +// } else if (eventStatus == SpassFingerprint.STATUS_QUALITY_FAILED) { +// needRetryIdentify = true; +// if (handler != null) { +// spassFingerprint.getGuideForPoorQuality(); +// handler.post(() -> onAuthFailed()); +// } +// } else { +// needRetryIdentify = true; +// if (handler != null) { +// handler.post(() -> onAuthFailed()); +// } +// } +// if (!needRetryIdentify) { +// resetIdentifyIndex(); +// } +// } +// +// @Override +// public void onReady() { +// } +// +// @Override +// public void onStarted() { +// } +// +// @Override +// public void onCompleted() { +// onReadyIdentify = false; +// if (needRetryIdentify) { +// needRetryIdentify = false; +// if (handler != null) { +// handler.post(() -> startIdentify()); +// } +// } +// } +// }; +// +// public FingerprintFragment() { +// } +// +// public static FingerprintFragment newInstance() { +// return new FingerprintFragment(); +// } +// +// public void setListener(Listener listener) { +// this.listener = listener; +// } +// +// private void onAuthFailed() { +// failCount++; +// if (listener != null && failCount >= 5) { +// listener.onFingerprintAuthFail(); +// } else { +// Toast.makeText(getContext(), R.string.fingerprint_not_found, Toast.LENGTH_SHORT).show(); +// } +// } +// +// private void onAuthSuccess() { +// if (listener != null) { +// listener.onFingerprintAuthSuccess(); +// } +// } +// +// @Override +// public void onCreate(Bundle savedInstanceState) { +// super.onCreate(savedInstanceState); +// } +// +// @Override +// public View onCreateView(LayoutInflater inflater, ViewGroup container, +// Bundle savedInstanceState) { +// View view = inflater.inflate(R.layout.fragment_fingerprint, container, false); +// ButterKnife.bind(this, view); +// return view; +// } +// +// @Override +// public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { +// super.onViewCreated(view, savedInstanceState); +// initSpass(); +// failCount = 0; +// } +// +// private void initSpass() { +// Spass mSpass = new Spass(); +// try { +// mSpass.initialize(getContext()); +// boolean isFeatureEnabled_fingerprint = mSpass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT); +// if (isFeatureEnabled_fingerprint) { +// spassFingerprint = new SpassFingerprint(getContext()); +// Log.d("FingerprintFragment", "Fingerprint Service is supported in the device."); +// } else { +// Log.d("FingerprintFragment", "Fingerprint Service is not supported in the device."); +// return; +// } +// isFeatureEnabled_index = mSpass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT_FINGER_INDEX); +// } catch (SsdkUnsupportedException | UnsupportedOperationException e) { +// e.printStackTrace(); +// } +// } +// +// @Override +// public void onResume() { +// super.onResume(); +// handler = new Handler(Looper.getMainLooper()); +// startIdentify(); +// } +// +// @Override +// public void onPause() { +// super.onPause(); +// handler.removeCallbacksAndMessages(null); +// needRetryIdentify = false; +// try { +// spassFingerprint.cancelIdentify(); +// } catch (Exception ignore) { +// +// } +// handler = null; +// } +// +// private void startIdentify() { +// if (!onReadyIdentify) { +// try { +// onReadyIdentify = true; +// if (spassFingerprint != null) { +// setIdentifyIndex(); +// spassFingerprint.startIdentify(identifyListener); +// } +// } catch (SpassInvalidStateException ise) { +// onReadyIdentify = false; +// resetIdentifyIndex(); +// if (ise.getType() == SpassInvalidStateException.STATUS_OPERATION_DENIED) { +// Toast.makeText(getContext(), R.string.fingerprint_request_is_denied, Toast.LENGTH_SHORT).show(); +// ise.printStackTrace(); +// if (listener != null) { +// listener.onFingerprintAuthFail(); +// } +// } +// } catch (IllegalStateException e) { +// onReadyIdentify = false; +// resetIdentifyIndex(); +// Toast.makeText(getContext(), R.string.fingerprint_request_is_denied, Toast.LENGTH_SHORT).show(); +// if (listener != null) { +// listener.onFingerprintAuthFail(); +// } +// e.printStackTrace(); +// } +// } +// } +// +// private void setIdentifyIndex() { +// if (isFeatureEnabled_index) { +// if (spassFingerprint != null && designatedFingers != null) { +// spassFingerprint.setIntendedFingerprintIndex(designatedFingers); +// } +// } +// } +// +// +// private void cancelIdentify() { +// if (onReadyIdentify) { +// try { +// if (spassFingerprint != null) { +// spassFingerprint.cancelIdentify(); +// } +// } catch (IllegalStateException ise) { +// ise.printStackTrace(); +// } +// onReadyIdentify = false; +// needRetryIdentify = false; +// } +// } +// +// +// private void resetIdentifyIndex() { +// designatedFingers = null; +// } + + public interface Listener { + void onFingerprintAuthSuccess(); + + void onFingerprintAuthFail(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/PinFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/PinFragment.java new file mode 100644 index 0000000..14feee6 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/PinFragment.java @@ -0,0 +1,208 @@ +package ru.visionlab.femdemo.authentication; + + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.base.BaseFragment; +import ru.visionlab.femdemo.settings.VLPreferences; + +public class PinFragment extends BaseFragment { + private static final int PIN_LENGTH = 5; + @Inject + VLPreferences preferences; + @BindView(R.id.pinIndicator1) + View pinIndicator1; + @BindView(R.id.pinIndicator2) + View pinIndicator2; + @BindView(R.id.pinIndicator3) + View pinIndicator3; + @BindView(R.id.pinIndicator4) + View pinIndicator4; + @BindView(R.id.pinIndicator5) + View pinIndicator5; + @BindView(R.id.pinError) + TextView pinError; + @BindView(R.id.apply) + Button applyPin; + private List pinIndicators; + private String pin; + private Listener listener; + private int failCount; + + public PinFragment() { + } + + public static PinFragment newInstance() { + return new PinFragment(); + } + + public void setListener(Listener listener) { + this.listener = listener; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + ((App) (context.getApplicationContext())).getComponent().inject(this); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_pin, container, false); + ButterKnife.bind(this, view); + pinIndicators = new ArrayList<>(PIN_LENGTH); + pinIndicators.add(pinIndicator1); + pinIndicators.add(pinIndicator2); + pinIndicators.add(pinIndicator3); + pinIndicators.add(pinIndicator4); + pinIndicators.add(pinIndicator5); + pin = ""; + failCount = 0; + + applyPin.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + checkPin(); + } + }); + + + return view; + } + + @Override + public String toString() { + return "Pin Fragment"; + } + + @OnClick({R.id.one, R.id.two, R.id.three, R.id.four, R.id.five, R.id.six, R.id.seven, R.id.eight, R.id.nine, R.id.zero, R.id.backspace}) + public void onClick(View view) { + switch (view.getId()) { + case R.id.one: + updatePin(1); + break; + case R.id.two: + updatePin(2); + break; + case R.id.three: + updatePin(3); + break; + case R.id.four: + updatePin(4); + break; + case R.id.five: + updatePin(5); + break; + case R.id.six: + updatePin(6); + break; + case R.id.seven: + updatePin(7); + break; + case R.id.eight: + updatePin(8); + break; + case R.id.nine: + updatePin(9); + break; + case R.id.zero: + updatePin(0); + break; + case R.id.backspace: + removeLast(); + break; + } + } + + private void removeLast() { + pinError.setVisibility(View.INVISIBLE); + if (pin.length() > 1) { + pin = pin.substring(0, pin.length() - 1); + } else { + pin = ""; + } + updatePinIndicators(); + } + + private void updatePin(int i) { + if (pin.length() < Config.PIN_MAX_LENGTH) { + pin += i; + } + updatePinIndicators(); + } + + private void updatePinIndicators() { + final int count = pin.length() - 1; + + pinError.setVisibility(View.INVISIBLE); + for (int k = 0; k < pinIndicators.size(); k++) { + final View pinIndicator = pinIndicators.get(k); + pinIndicator.setEnabled(true); + if (k <= count) { + pinIndicator.setActivated(true); + } else { + pinIndicator.setActivated(false); + } + } + } + + private void checkPin() { + if (pin.equals(preferences.getPin())) { + if (listener != null) { + listener.onCorrectPin(); + } + } else { + failCount++; + if (failCount < 5) { + showIncorrectPinError(); + pin = ""; + } else { + if (listener != null) { + listener.onIncorrectPin(); + } + } + } + } + + private void showIncorrectPinError() { + + int count = pin.length(); + + for (int k = 0; k < Math.min(count, pinIndicators.size()); k++) { + final View pinIndicator = pinIndicators.get(k); + + pinIndicator.setEnabled(false); + } + + pinError.setVisibility(View.VISIBLE); + } + + public interface Listener { + void onCorrectPin(); + + void onIncorrectPin(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/BaseActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/BaseActivity.java new file mode 100644 index 0000000..03553b7 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/BaseActivity.java @@ -0,0 +1,49 @@ +package ru.visionlab.femdemo.base; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.provider.Settings; + +import androidx.appcompat.app.AlertDialog; + +import com.trello.rxlifecycle.components.support.RxAppCompatActivity; + +import io.github.inflationx.viewpump.ViewPumpContextWrapper; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.Utils; + +public abstract class BaseActivity extends RxAppCompatActivity { + @Override + protected void attachBaseContext(Context newBaseContext) { + super.attachBaseContext(ViewPumpContextWrapper.wrap(newBaseContext)); + } + + @Override + public void onBackPressed() { + Utils.hideKeyboard(this, getCurrentFocus()); + finish(); + } + + protected void goToAppDetails(int message) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage(message) + .setCancelable(false) + .setPositiveButton(R.string.settings, (dialogInterface, i) -> { + try { + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, + Uri.fromParts("package", getPackageName(), null)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + } catch (Exception ignore) { + + } + }) + .setNegativeButton(R.string.cancel, + (dialog, id) -> { + dialog.cancel(); + }); + AlertDialog alert = builder.create(); + alert.show(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/BaseFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/BaseFragment.java new file mode 100644 index 0000000..b86d912 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/BaseFragment.java @@ -0,0 +1,6 @@ +package ru.visionlab.femdemo.base; + +import com.trello.rxlifecycle.components.support.RxFragment; + +public class BaseFragment extends RxFragment { +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/PhotoFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/PhotoFragment.java new file mode 100644 index 0000000..383f25f --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/PhotoFragment.java @@ -0,0 +1,795 @@ +package ru.visionlab.femdemo.base; + + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.ImageFormat; +import android.graphics.Matrix; +import android.graphics.PorterDuff; +import android.graphics.Rect; +import android.graphics.RectF; +import android.graphics.drawable.BitmapDrawable; +import android.hardware.Camera; +import android.os.Bundle; +import androidx.annotation.Nullable; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import android.text.format.DateUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Surface; +import android.view.SurfaceHolder; +import android.view.SurfaceView; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import com.squareup.picasso.Callback; +import com.squareup.picasso.Picasso; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import ru.visionlab.femdemo.Core.PhotoProcessor; +import ru.visionlab.femdemo.JavaBindings.FaceEngine; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.FaceBoundSurfaceView; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.register.FaceNotFoundFragment; +import ru.visionlab.femdemo.settings.VLPreferences; +import rx.Observable; +import rx.android.schedulers.AndroidSchedulers; + +@SuppressWarnings("deprecation") +public class PhotoFragment extends BaseFragment implements Camera.PreviewCallback, PhotoProcessor.Listener { + + protected static final int TIMEOUT = 10; + protected static final int INTERACTION_TIMEOUT = 25; + + @BindView(R.id.warning) + TextView warning; + + @BindView(R.id.ZOOM_STATE) + TextView blinkStateMsg; + + @BindView(R.id.LivenessState) + TextView livenessStateMsg; + + @BindView(R.id.maskedView) + ImageView mask; + + @BindView(R.id.preview) + SurfaceView preview; + + @BindView(R.id.faceBoundView) + FaceBoundSurfaceView faceBoundView; + + @BindView(R.id.sendPlaceholder) + FrameLayout sendPlaceholder; + + @BindView(R.id.layout1) + LinearLayout layout1; + + @Inject + VLPreferences preferences; + + PhotoProcessor photoProcessor; + + HolderCallback holderCallback; + Camera camera; + + boolean MASKBIG = false; + boolean MASKSMALL = false; + boolean MASKMEDIUM = false; + + int maskTop; + int maskBottom; + int maskLeft; + int maskRight; + + boolean faceInGoodState; + boolean ShowMsg = true; + @BindView(R.id.progressBar) + ProgressBar progressBar; + @BindView(R.id.timelog) + TextView timelog; + @BindView(R.id.flipCam) + ImageView flipCamView; + private Listener listener; + private boolean ignoreTimeout; + + Rect maskRect; + + private boolean checkInteraction = false; + + private boolean checkLiveness = false; + + private boolean cameraFlashIsSupported = false; + + private int cameraID = -1; + private int cameraFacing = -1; + + private long interactionDelta = 0; + private long interactionStart = 0; + private float ratioOffsetX = 0; + private float ratioOffsetY = 0; + + public PhotoFragment() { + maskRect = new android.graphics.Rect(); + } + + public static PhotoFragment newInstance() { + + PhotoFragment fragment = new PhotoFragment(); + Bundle args = new Bundle(); + fragment.setArguments(args); + return fragment; + } + + public void setListener(Listener listener) { + this.listener = listener; + } + + public void setPhotoProcessor(PhotoProcessor photoProcessor) { + this.photoProcessor = photoProcessor; + } + + public void enableInteractionCheck(boolean enable) { + this.checkInteraction = enable; + } + + public void enableLivenessCheck(boolean livenessEnabled) { + this.checkLiveness = livenessEnabled; + } + + private void initialiseLiveness() { + if (checkLiveness) + photoProcessor.turnOnLiveness(preferences.getOnlineLivenessAuth() ? FaceEngine.LIVENESS_ONLINE : FaceEngine.LIVENESS_OFFLINE); + } + + + @Override + public void onAttach(Context context) { + super.onAttach(context); + ((App) (context.getApplicationContext())).getComponent().inject(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + boolean useFrontCamera = false; + + if (preferences.getUseFrontCamera()) { + + int cameraIdTmp = getCameraIdWithFacing(Camera.CameraInfo.CAMERA_FACING_FRONT); + + if (cameraIdTmp == -1) { + useFrontCamera = false; + } else { + useFrontCamera = true; + cameraID = cameraIdTmp; + cameraFacing = Camera.CameraInfo.CAMERA_FACING_FRONT; + } + } + + if (!useFrontCamera) { + cameraFacing = Camera.CameraInfo.CAMERA_FACING_BACK; + cameraID = getCameraIdWithFacing(Camera.CameraInfo.CAMERA_FACING_BACK); + } + + View view = inflater.inflate(R.layout.fragment_photo, container, false); + ButterKnife.bind(this, view); + + flipCamView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + flipCam(); + } + }); + + return view; + } + + public void showWaitState() { + mask.setVisibility(View.GONE); + sendPlaceholder.setVisibility(View.VISIBLE); + camera.stopPreview(); + } + + public void hideWaitState() { + if (checkInteraction) {//set mask to visible in auth stage if zoom interaction is enabled + mask.setVisibility(View.VISIBLE); + } else { + mask.setVisibility(preferences.getShowDetection() ? View.INVISIBLE : View.VISIBLE); + } + sendPlaceholder.setVisibility(View.GONE); + } + + private void detectMaskDimensions(Bitmap bitmap) { + + System.out.println("Inside detectMaskDimensions"); + if (MASKSMALL) { + maskLeft = bitmap.getWidth() / 4; + maskRight = maskLeft * 3; + maskTop = bitmap.getHeight() / 4; + maskBottom = maskTop * 3; + } else if (MASKMEDIUM) { + maskLeft = bitmap.getWidth() / 7; + maskRight = maskLeft * 6; + maskTop = bitmap.getHeight() / 7; + maskBottom = maskTop * 6; + } else if (MASKBIG) { + maskLeft = 0; + maskRight = bitmap.getWidth(); + maskTop = bitmap.getHeight() / 8; + maskBottom = maskTop * 8; + } + + maskRect.left = maskLeft; + maskRect.right = maskRight; + maskRect.top = maskTop; + maskRect.bottom = maskBottom; + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + getActivity().setTitle(R.string.registration_photo); + blinkStateMsg.setTextColor(Color.parseColor("#551A8B"));//dark purple + livenessStateMsg.setTextColor(Color.parseColor("#551A8B"));//dark purple + + MASKBIG = false; + MASKMEDIUM = true; + MASKSMALL = false; + initialiseLiveness(); + + if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA) != + PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(getActivity(), new String[] {Manifest.permission.CAMERA}, + 50); } + Picasso.with(getContext()).load(R.drawable.mask).centerCrop().fit().into(mask, new Callback() { + @Override + public void onSuccess() { + System.out.println("On photo success"); + final Bitmap bitmap = ((BitmapDrawable) mask.getDrawable()).getBitmap(); + detectMaskDimensions(bitmap); + + } + + @Override + public void onError() { + System.out.println("On photo success2"); + } + }); + + getActivity().setTitle(getContext().getString(R.string.fragment_photo_title)); + progressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getContext(), R.color.accentColor), PorterDuff.Mode.MULTIPLY); + + } + + @Override + public void onStart() { + super.onStart(); + ignoreTimeout = false; + final long delay = TIMEOUT * DateUtils.SECOND_IN_MILLIS - (System.currentTimeMillis() - Long.parseLong(preferences.getStartTime())); + Observable.timer(Math.max(delay, 0), TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .compose(bindToLifecycle()) + .subscribe(value -> { + if (listener != null && !ignoreTimeout) { + listener.onTimeout(FaceNotFoundFragment.Reason.NOT_FOUND); + listener.onTimeout(); + } + }); + } + + @Override + public void onResume() { + super.onResume(); + if (camera == null) { + startCapture(); + } + photoProcessor.setListener(this); + photoProcessor.setNeedPortrait(preferences.getNeedPortrait()); + hideWaitState(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + private int getCameraID() { + return cameraID; + } + + private void startCapture() { + camera = Camera.open(getCameraID()); + configureCamera(); + final ViewTreeObserver viewTreeObserver = preview.getViewTreeObserver(); + viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + preview.getViewTreeObserver().removeGlobalOnLayoutListener(this); + setPreviewSize(true); + holderCallback = new HolderCallback(); + preview.getHolder().addCallback(holderCallback); + } + }); + } + + @Override + public void onPause() { + super.onPause(); + if (camera != null) { + camera.setPreviewCallbackWithBuffer(null); + preview.getHolder().removeCallback(holderCallback); + holderCallback = null; + camera.stopPreview(); + camera.release(); + camera = null; + } + photoProcessor.removeListeners(); + } + + + void setPreviewSize(boolean fullScreen) { + final int width = preview.getMeasuredWidth(); + final int height = preview.getMeasuredHeight(); + boolean widthIsMax = width > height; + + RectF rectDisplay = new RectF(); + RectF rectPreview = new RectF(); + + rectDisplay.set(0, 0, width, height); + + // RectF первью + if (widthIsMax) + rectPreview.set(0, 0, photoProcessor.getPreviewWidth(), photoProcessor.getPreviewHeight()); + else + rectPreview.set(0, 0, photoProcessor.getPreviewHeight(), photoProcessor.getPreviewWidth()); + + + Matrix matrix = new Matrix(); + + if (!fullScreen) { + matrix.setRectToRect(rectPreview, rectDisplay, Matrix.ScaleToFit.START); + } else { + matrix.setRectToRect(rectDisplay, rectPreview, Matrix.ScaleToFit.START); + matrix.invert(matrix); + } + + matrix.mapRect(rectPreview); + + ratioOffsetX = rectPreview.right - rectDisplay.right; + ratioOffsetY = rectPreview.bottom - rectPreview.bottom; + + final ViewGroup.LayoutParams layoutParams = preview.getLayoutParams(); + if (layoutParams.width != (int) rectPreview.right || layoutParams.height != (int) rectPreview.bottom) { + layoutParams.height = (int) (rectPreview.bottom); + layoutParams.width = (int) (rectPreview.right); + preview.setLayoutParams(layoutParams); + } else { + startCameraPreview(preview.getHolder()); + } + + } + + void setCameraDisplayOrientation(int cameraId) { + + int rotation = getActivity().getWindowManager().getDefaultDisplay().getRotation(); + int degrees = 0; + switch (rotation) { + case Surface.ROTATION_0: + degrees = 0; + break; + case Surface.ROTATION_90: + degrees = 90; + break; + case Surface.ROTATION_180: + degrees = 180; + break; + case Surface.ROTATION_270: + degrees = 270; + break; + } + + int result = 0; + + Camera.CameraInfo info = new Camera.CameraInfo(); + Camera.getCameraInfo(cameraId, info); + + if (info.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { + photoProcessor.setMainCamera(true); + result = ((360 - degrees) + info.orientation); + } else if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { + photoProcessor.setMainCamera(false); + result = ((360 - degrees) - info.orientation); + result += 360; + } + result = result % 360; + camera.setDisplayOrientation(result); + photoProcessor.setImageRotation(result); + } + + @Override + public void onPreviewFrame(byte[] data, Camera camera) { + photoProcessor.processFrame(data); + camera.addCallbackBuffer(photoProcessor.getCallbackBuffer()); + } + + @Override + public void onLivenessResult(int livenessState, int blinkState, int livenessType) { + + interactionDelta = System.currentTimeMillis() - interactionStart; + + if (interactionDelta / 1000 > INTERACTION_TIMEOUT) { + if (listener != null) { + Log.i("Interaction", "Timeout!"); + ShowMsg = true; + listener.onTimeout(FaceNotFoundFragment.Reason.LIVENESS); + } + } + + if (livenessType == FaceEngine.LIVENESS_OFFLINE) { + switch (blinkState) { + case FaceEngine.INTERACTION_FAILED: { + Log.d("Interaction", "Interaction Failed!"); + listener.onTimeout(FaceNotFoundFragment.Reason.LIVENESS); + break; + } + default: { + blinkStateMsg.setVisibility(View.VISIBLE); + blinkStateMsg.setText(getString(R.string.blink_please)); + break; + } + } + } + + switch (livenessState) { + case FaceEngine.Fake: { + livenessStateMsg.setVisibility(View.VISIBLE); + livenessStateMsg.setText("Liveness: Fake"); + listener.onTimeout(FaceNotFoundFragment.Reason.LIVENESS); + break; + } + case FaceEngine.FaceTooClose: { + blinkStateMsg.setVisibility(View.VISIBLE); + blinkStateMsg.setText(getString(R.string.error_face_too_big)); + break; + } + case FaceEngine.NotReady: { + blinkStateMsg.setVisibility(View.VISIBLE); + blinkStateMsg.setText(getString(R.string.error_face_hold_still)); + break; + } + case FaceEngine.FaceTooSmall: { + blinkStateMsg.setVisibility(View.VISIBLE); + blinkStateMsg.setText(getString(R.string.error_face_too_small)); + break; + } + case FaceEngine.BadHeadPose: { + blinkStateMsg.setVisibility(View.VISIBLE); + blinkStateMsg.setText(getString(R.string.error_face_bad_headpose)); + break; + } + case FaceEngine.Timeout: { + ShowMsg = true; + listener.onTimeout(FaceNotFoundFragment.Reason.LIVENESS); + break; + } + case FaceEngine.CriticalError: { + livenessStateMsg.setVisibility(View.VISIBLE); + listener.onTimeout(FaceNotFoundFragment.Reason.INTERNAL); + break; + } + } + + + } + + @Override + public boolean isFaceInsideBorder(Rect rect) { + if (checkInteraction) { + final int width = preview.getMeasuredWidth(); + final int height = preview.getMeasuredHeight(); + + float widthCorrection = ((float) width) / photoProcessor.getPreviewHeight(); + float heightCorrection = ((float) height) / photoProcessor.getPreviewWidth(); + + int left = (int) (rect.left * widthCorrection); + int top = (int) (rect.top * heightCorrection); + + int right = (int) (rect.right * widthCorrection); + int bottom = (int) (rect.bottom * heightCorrection); + return maskRect.contains(left, top, right, bottom); + } + return true; + } + + @Override + public void onFaceArea(boolean detected, Rect rect, Boolean fastMove, Boolean isFrontalPose, boolean qualityState) { + boolean showDetectionPreference = preferences.getShowDetection(); + boolean showDetectionRect = showDetectionPreference; + + if (detected) { + final int width = preview.getMeasuredWidth(); + final int height = preview.getMeasuredHeight(); + + float widthCorrection = ((float) width) / photoProcessor.getPreviewHeight(); + float heightCorrection = ((float) height) / photoProcessor.getPreviewWidth(); + + int left = (int) (rect.left * widthCorrection); + int top = (int) (rect.top * heightCorrection); + + int right = (int) (rect.right * widthCorrection); + int bottom = (int) (rect.bottom * heightCorrection); + + Rect box = new Rect(left, top, right, bottom); + Log.d("CONT", "maskRect.contains(box)" + maskRect.contains(box)); + faceInGoodState = maskRect.isEmpty() || maskRect.contains(box); + if (faceInGoodState) { + if (!isFrontalPose) { + warning.setVisibility(View.VISIBLE); + warning.setText(R.string.look_straight_at_the_camer); + faceInGoodState = false; + } else if (fastMove) { + warning.setVisibility(View.VISIBLE); + warning.setText(R.string.moving_too_fast); + faceInGoodState = false; + } else if (!qualityState) { + warning.setVisibility(View.VISIBLE); + warning.setText(R.string.bad_image_quality); + faceInGoodState = false; + } else { + warning.setVisibility(View.INVISIBLE); + } + + } else { + warning.setVisibility(showDetectionPreference ? View.INVISIBLE : View.VISIBLE); + warning.setText(R.string.put_your_head_into_oval); + } + + } else { + warning.setVisibility(showDetectionPreference ? View.INVISIBLE : View.VISIBLE); + warning.setText(R.string.put_your_head_into_oval); + showDetectionRect = false; + } + faceBoundView.setVisibility(showDetectionRect ? View.VISIBLE : View.INVISIBLE); + + } + + + @Override + public void onBestFrameReady() { + if (faceInGoodState && listener != null) { + ignoreTimeout = true; + //check if we are in auth stage + Log.d("checkLiveness", "onBestFrameReady() face in good state"); + if (checkLiveness) { + interactionStart = System.currentTimeMillis(); + } else { + Log.d("checkLiveness", "onBestFrameReady() submitting bestshot"); + submitBestShot(); + } + } else {//if best shot was found but image was outside of mask borders + Log.d("checkLiveness", "onBestFrameReady() resuming search"); + photoProcessor.resumeSearch(); + } + } + + @Override + public void onInteractionSucceed() { + submitBestShot(); + } + + @Override + public void onInteractionWaitingOpenedEyes() { + listener.onInteractionWaitingOpenedEyes(); + } + + private void submitBestShot() { + listener.onBestFrameReady(photoProcessor.getBestShot()); + } + + @Override + public void onLuminanceState(PhotoProcessor.LuminanceState state) { + if (!cameraFlashIsSupported) { + return; + } + + final String flashModeNew = state.darknessState == 0 ? Camera.Parameters.FLASH_MODE_TORCH : Camera.Parameters.FLASH_MODE_OFF; + Camera.Parameters parameters = camera.getParameters(); + + if (!flashModeNew.equals(parameters.getFlashMode())) { + parameters.setFlashMode(flashModeNew); + camera.setParameters(parameters); + + photoProcessor.setFlashTorchState(state.darknessState == 0 ? true : false); + } + } + + private Camera.Size getBestPreviewSize() { + final List supportedPreviewSizes = camera.getParameters().getSupportedPreviewSizes(); + final List filteredSizes = new ArrayList<>(); + for (Camera.Size previewSize : supportedPreviewSizes) { + if (previewSize.width <= Config.PREVIEW_WIDTH && previewSize.height <= Config.PREVIEW_HEIGHT) { + filteredSizes.add(previewSize); + } + } + + Camera.Size bestSize = filteredSizes.get(0); + for (int i = 1; i < filteredSizes.size(); i++) { + Camera.Size currentSize = filteredSizes.get(i); + if (currentSize.width >= bestSize.width && currentSize.height >= bestSize.height) { + bestSize = currentSize; + } + } + return bestSize; + } + + private void configureCamera() { + final Camera.Parameters parameters = camera.getParameters(); + try { + parameters.setPreviewFormat(ImageFormat.NV21); + + // set focus for video if present + List focusModes = parameters.getSupportedFocusModes(); + + /*if (null != focusModes && focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { + parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + }*/ + + // check if torch is present + List flashModes = parameters.getSupportedFlashModes(); + + cameraFlashIsSupported = null != flashModes && flashModes.contains(Camera.Parameters.FLASH_MODE_TORCH); + + final Camera.Size bestPreviewSize = getBestPreviewSize(); + photoProcessor.setPreviewSize(bestPreviewSize.width, bestPreviewSize.height); + parameters.setPreviewSize(bestPreviewSize.width, bestPreviewSize.height); + camera.setParameters(parameters); + } catch (RuntimeException exception) { + Toast.makeText(getContext(), R.string.camera_configuration_failed, Toast.LENGTH_SHORT).show(); + } + } + + @Override + public String toString() { + return "PhotoFragment"; + } + + private void startCameraPreview(SurfaceHolder holder) { + if (camera != null) { + camera.stopPreview(); + setCameraDisplayOrientation(getCameraID()); + camera.addCallbackBuffer(photoProcessor.getCallbackBuffer()); + camera.setPreviewCallbackWithBuffer(PhotoFragment.this); + + try { + camera.setPreviewDisplay(holder); + camera.startPreview(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + private int getToggledCameraFacing() { + return cameraFacing == Camera.CameraInfo.CAMERA_FACING_FRONT ? Camera.CameraInfo.CAMERA_FACING_BACK : Camera.CameraInfo.CAMERA_FACING_FRONT; + } + + private int getCameraIdWithFacing(int facing) { + Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); + for (int i = 0; i < Camera.getNumberOfCameras(); i++) { + Camera.getCameraInfo(i, cameraInfo); + if (cameraInfo.facing == facing) { + return i; + } + } + return -1; + } + + private void restartCameraPreview(SurfaceHolder holder) { + if (camera != null) { + + // check if it is allowed to flip cam (is there cam with another facing) + // flip cameraID if there's available another one + int camerasNumber = Camera.getNumberOfCameras(); + + boolean ableToFlip = false; + int newCameraID = -1; + + Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); + for (int i = 0; i < camerasNumber; i++) { + Camera.getCameraInfo(i, cameraInfo); + if (cameraInfo.facing == getToggledCameraFacing()) { + ableToFlip = true; + newCameraID = i; + break; + } + } + + if (!ableToFlip) + return; + + camera.stopPreview(); + camera.release(); + + cameraID = newCameraID; + cameraFacing = getToggledCameraFacing(); + + camera = Camera.open(getCameraID()); + + configureCamera(); + + setCameraDisplayOrientation(getCameraID()); + camera.addCallbackBuffer(photoProcessor.getCallbackBuffer()); + camera.setPreviewCallbackWithBuffer(PhotoFragment.this); + + try { + camera.setPreviewDisplay(holder); + camera.startPreview(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public interface Listener { + void onBestFrameReady(Bitmap bitmap); + + void onTimeout(FaceNotFoundFragment.Reason reason); + + void onNeedCameraPermission(); + + void onInteractionWaitingOpenedEyes(); + + void onTimeout(); + + void onLivenessResult(int livenessState, int blinkState, int livenessType); + } + + class HolderCallback implements SurfaceHolder.Callback { + @Override + public void surfaceCreated(SurfaceHolder holder) { + if (camera != null) { + try { + camera.setPreviewDisplay(holder); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + @Override + public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { + startCameraPreview(holder); + } + + @Override + public void surfaceDestroyed(SurfaceHolder holder) { + + } + } + + private void flipCam() { + restartCameraPreview(preview.getHolder()); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/ToolbarActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/ToolbarActivity.java new file mode 100644 index 0000000..c942e87 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/ToolbarActivity.java @@ -0,0 +1,32 @@ +package ru.visionlab.femdemo.base; + +import android.view.MenuItem; + +import androidx.appcompat.app.ActionBar; + +public abstract class ToolbarActivity extends BaseActivity { + + @Override + public void setTitle(CharSequence title) { + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setTitle(title); + } + } + + @Override + public void setTitle(int titleId) { + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setTitle(titleId); + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem menuItem) { + if (menuItem.getItemId() == android.R.id.home) { + onBackPressed(); + } + return super.onOptionsItemSelected(menuItem); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/LocationModule.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/LocationModule.java new file mode 100644 index 0000000..9a36a8c --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/LocationModule.java @@ -0,0 +1,18 @@ +package ru.visionlab.femdemo.di; + +import android.content.Context; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; +import ru.visionlab.femdemo.LocationHelper; + +@Module +public class LocationModule { + @Singleton + @Provides + LocationHelper provideLocationHelper(Context context) { + return new LocationHelper(context); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/NetworkModule.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/NetworkModule.java new file mode 100644 index 0000000..c9bee3a --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/NetworkModule.java @@ -0,0 +1,108 @@ +package ru.visionlab.femdemo.di; + +import android.util.Log; + +import com.google.gson.FieldNamingPolicy; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.security.NoSuchAlgorithmException; +import java.security.cert.CertificateException; + +import javax.inject.Singleton; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; + +import dagger.Module; +import dagger.Provides; +import okhttp3.OkHttpClient; +import okhttp3.logging.HttpLoggingInterceptor; +import retrofit2.Retrofit; +import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory; +import retrofit2.converter.gson.GsonConverterFactory; +import ru.visionlab.femdemo.BuildConfig; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.api.VLApi; + +@Module +public class NetworkModule { + + @Provides + @Singleton + Gson provideGson() { + return new GsonBuilder() + .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) + .create(); + } + + + @Provides + @Singleton + Retrofit provideRestAdapterRx(OkHttpClient client, Gson gson) { + return new Retrofit.Builder() + .baseUrl(Config.ENDPOINT_LUNA2) + .client(client) + .addConverterFactory(GsonConverterFactory.create(gson)) + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .build(); + } + + @Provides + @Singleton + OkHttpClient provideOkHttpClient(HttpLoggingInterceptor logger) { + + //create all-trusting trust manager + final TrustManager[] trustAllCerts = new TrustManager[] { + new X509TrustManager() { + @Override + public void checkClientTrusted(java.security.cert.X509Certificate[] chain, + String authType) throws CertificateException { + } + + @Override + public void checkServerTrusted(java.security.cert.X509Certificate[] chain, + String authType) throws CertificateException { + } + + @Override + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return new java.security.cert.X509Certificate[]{}; + } + } + }; + + // Install the all-trusting trust manager + final SSLContext sslContext; + try { + sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); + // Create an ssl socket factory with our all-trusting manager + final SSLSocketFactory m_sslSocketFactory = sslContext.getSocketFactory(); + return new OkHttpClient.Builder() + .addInterceptor(logger) + .sslSocketFactory(m_sslSocketFactory) + .build(); + } catch (Exception e) { + e.printStackTrace(); + } + return new OkHttpClient.Builder() + .addInterceptor(logger) + .build(); + } + + @Provides + @Singleton + HttpLoggingInterceptor provideHttpLogger() { + HttpLoggingInterceptor logger = new HttpLoggingInterceptor(); + logger.setLevel(BuildConfig.DEBUG ? HttpLoggingInterceptor.Level.BODY : HttpLoggingInterceptor.Level.NONE); + return logger; + } + + @Provides + @Singleton + VLApi provideVLAPI(Retrofit retrofit) { + return retrofit.create(VLApi.class); + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/StorageModule.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/StorageModule.java new file mode 100644 index 0000000..eca483a --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/StorageModule.java @@ -0,0 +1,32 @@ +package ru.visionlab.femdemo.di; + +import android.content.Context; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; +import proxypref.ProxyPreferences; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.settings.VLPreferences; + +@Module +public class StorageModule { + private final App application; + + public StorageModule(App application) { + this.application = application; + } + + @Provides + @Singleton + Context provideContext() { + return application; + } + + @Provides + @Singleton + VLPreferences providePreferences(Context context) { + return ProxyPreferences.build(VLPreferences.class, context.getSharedPreferences("preferences", 0)); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/VLModule.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/VLModule.java new file mode 100644 index 0000000..718bf28 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/VLModule.java @@ -0,0 +1,18 @@ +package ru.visionlab.femdemo.di; + +import android.content.Context; + +import dagger.Module; +import dagger.Provides; +import ru.visionlab.femdemo.Core.PhotoProcessor; +import ru.visionlab.femdemo.Utils; + +@Module +public class VLModule { + @Provides + PhotoProcessor providePhotoProcessor(Context context) { + return new PhotoProcessor.Builder() + .pathToData(context.getFilesDir() + Utils.PATH_TO_EXTRACTED_VL_DATA) + .build(context); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivity.java new file mode 100644 index 0000000..8b9ff12 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivity.java @@ -0,0 +1,458 @@ +package ru.visionlab.femdemo.login; + +import android.Manifest; +import android.app.Activity; +import android.content.Intent; +import android.hardware.Camera; +import android.os.Bundle; + +import androidx.annotation.Nullable; + +import android.text.Editable; +import android.text.TextUtils; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.android.material.textfield.TextInputLayout; +import com.tbruyelle.rxpermissions.RxPermissions; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import butterknife.OnTextChanged; +import butterknife.OnTouch; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.Core.PhotoProcessor; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.BuildConfig; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.Utils; +import ru.visionlab.femdemo.authentication.AuthenticationActivity; +import ru.visionlab.femdemo.base.BaseActivity; +import ru.visionlab.femdemo.register.RegisterActivity; +import ru.visionlab.femdemo.register.RegisterActivityNew; +import ru.visionlab.femdemo.settings.SettingsActivity; +import ru.visionlab.femdemo.settings.VLPreferences; +import rx.Observable; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class LoginActivity extends BaseActivity { + protected static final int REQUEST_CHECK_SETTINGS = 0x1; + private static final String VL_DATA_PACK = "data"; + @Inject + VLPreferences preferences; + /*@BindView(R.id.userName) + EditText userName;*/ + @BindView(R.id.scrollView) + ScrollView scrollView; + /*@BindView(R.id.projectNameText) + TextView projectNameText;*/ + /*@BindView(R.id.userNameWrapper) + TextInputLayout userNameWrapper;*/ + boolean cameraGranted; + /*@BindView(R.id.login) + Button login;*/ + boolean goToRegistrationRequest; + boolean goToAuthRequest; + boolean needUpdateLogin = true; + String lastName; + private static final String TAG = "LoginActivity"; + + private int sdkResult = -1; + LinearLayout register; + String user = ""; + Button login_new; + Button reg_new; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ((App) getApplication()).getComponent().inject(this); + + setContentView(R.layout.activity_login); + //login = findViewById(R.id.login); + register = findViewById(R.id.register); + + login_new = findViewById(R.id.login_new); + + login_new.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(LoginActivity.this,LoginActivityNew.class); + startActivity(intent); + } + }); + reg_new = findViewById(R.id.reg_new); + reg_new.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(LoginActivity.this, RegisterActivityNew.class); + startActivity(intent); + } + }); + + ButterKnife.bind(this); + + findViewById(R.id.register_settings_panel).setVisibility(View.GONE); + preferences.setServerChanged(true); + + // load resources + Observable.fromCallable(() -> unpackResourcesAndInitFaceEngine()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(status -> { + preferences.setFirstRun(false); + sdkResult = status; + showSDKStatus(); + finishSplashScreen(); + } + ); + + if (BuildConfig.IS_OFFLINE_VERSION) { + Storage.getInstance().setContext(this); + Storage.getInstance().updateOfflineData(); + } + /*login.setEnabled(false); + user = userName.getText().toString().trim() ; + if (user.length() < Config.MIN_LOGIN_LENGTH) { + userNameWrapper.setError(getString(R.string.register_username_short, Config.MIN_LOGIN_LENGTH)); + } + else{ + login.setEnabled(true); + } + login.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + // login api will be called here + System.out.println("After click"); + Intent intent = new Intent(LoginActivity.this, AuthenticationActivity.class); + startActivity(intent); + } + });*/ + register.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Toast.makeText(getApplicationContext(), "Successful register click", Toast.LENGTH_SHORT).show(); + Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); + startActivity(intent); + + } + }); + } + + private void showSDKStatus() { + switch (sdkResult) { + case -1: { + Toast.makeText(this, "Failed to unzip resources!", Toast.LENGTH_SHORT).show(); + break; + } + case 0: { + Log.d(TAG, "Face engine were succesfully created " + getFilesDir() + "/vl/data"); + break; + } + case 1: { + Toast.makeText(this, "License Verification failed!", Toast.LENGTH_LONG).show(); + break; + } + case 2: { + Toast.makeText(this, "Face Engine SDK creation failed!", Toast.LENGTH_LONG).show(); + Log.e(TAG, " Failed to init Face Engine from path: " + getFilesDir() + "/vl/data"); + break; + } + case 3: { + Toast.makeText(this, "Please, use complete edition of LUNA-SDK or Luna Mobile Online", Toast.LENGTH_LONG).show(); + Log.e(TAG, " Failed to init Face Engine from path: " + getFilesDir() + "/vl/data"); + break; + } + default: + Toast.makeText(this, "Unknown error", Toast.LENGTH_SHORT).show(); + } + } + + private int unpackResourcesAndInitFaceEngine() { + + if (!Utils.createVLDataFolder(this)) { + return -1; + } + + boolean dataAssetsUnpackedSuccess = Utils.createFilesFromAssetFolder(this, VL_DATA_PACK); + Log.d(TAG, "ASSETS UNPACKED: " + dataAssetsUnpackedSuccess); + + if (!dataAssetsUnpackedSuccess) { + Log.e(TAG, "Failed to unpack resources from asset folder!"); + return -1; + } + + int initCode = PhotoProcessor.initFaceEngine(getFilesDir() + "/vl/data"); + Log.d(TAG, "RETURN CODE IS " + initCode); + return initCode; + } + + + private void finishSplashScreen() { + findViewById(R.id.splash).setVisibility(View.GONE); + //findViewById(R.id.register_settings_panel).setVisibility(View.VISIBLE); + + scrollView.setOnTouchListener((view, motionEvent) -> { + Utils.hideKeyboard(this, getCurrentFocus()); + return false; + } + ); + + scrollView.requestFocus(); + + /*userName.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_SEARCH || + actionId == EditorInfo.IME_ACTION_DONE || + (event != null && + event.getAction() == KeyEvent.ACTION_DOWN && + event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { + onLoginClick(); + return true; + } + return false; + });*/ + + updatePermissions(); + + String titleText = getString(BuildConfig.IS_OFFLINE_VERSION ? R.string.login_screen_vl_face_engine_mobile_offline : R.string.login_screen_vl_face_engine_mobile); + // projectNameText.setText(titleText); + } + + + @Override + protected void onResume() { + super.onResume(); + Log.i(TAG, "On resume callback!"); + if (needUpdateLogin) { + final String lastKnowLogin = preferences.getUsername(); + /*if (!TextUtils.isEmpty(lastKnowLogin)) { + userName.setText(lastKnowLogin); + login.setEnabled(true); + } else { + if (!TextUtils.isEmpty(lastName)) { + userName.setText(lastName); + login.setEnabled(true); + } else { + login.setEnabled(false); + } + }*/ + needUpdateLogin = false; + } + + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + final String lastKnowLogin = preferences.getUsername(); + if (!TextUtils.isEmpty(lastKnowLogin)) { + /* userName.setText(lastKnowLogin); + login.setEnabled(true);*/ + } else { + if (!TextUtils.isEmpty(lastName)) { + /* userName.setText(lastName); + login.setEnabled(true);*/ + } else { + // login.setEnabled(false); + } + } + } + + void updatePermissions() { + RxPermissions.getInstance(this) + .request(Manifest.permission.CAMERA) + .subscribe(granted -> { + if (granted) { + //noinspection deprecation + if (Camera.getNumberOfCameras() == 1) { + preferences.setUseFrontCamera(false); + } + cameraGranted = true; + } else { + cameraGranted = false; + } + }); + } + + @OnClick({R.id.login}) + public void onLoginClick() { + final Intent intent = new Intent(this, AuthenticationActivity.class); + startActivity(intent); + + if (sdkResult != 0) { + showSDKStatus(); + return; + } + + Log.i(TAG, "Is server changed ? " + preferences.getServerChanged()); + + // final String login = userName.getText().toString().trim(); + final String login = ""; + if (login.length() < Config.MIN_LOGIN_LENGTH) { + // userNameWrapper.setError(getString(R.string.register_username_short, Config.MIN_LOGIN_LENGTH)); + } else { + if (BuildConfig.IS_OFFLINE_VERSION) { + + /* if (!Storage.getInstance().isLocalLoginExist(login)) { + Log.e(TAG, "FAILED to verify. no such login registered or personVerifData is null... personVerifData: "); + Toast.makeText(this, R.string.user_not_found, Toast.LENGTH_SHORT).show(); + return; + }*/ + } + + if (!preferences.getFaceAuth()) { + /*final Intent intent1 = new Intent(this, AuthenticationActivity.class); + intent.putExtra(AuthenticationActivity.USER_NAME, login); + startActivity(intent1);*/ + needUpdateLogin = true; + } else { + Observable observable; + if (BuildConfig.IS_OFFLINE_VERSION) { + observable = RxPermissions.getInstance(this) + .request(Manifest.permission.CAMERA, Manifest.permission.VIBRATE); + } else { + observable = RxPermissions.getInstance(this) + .request(Manifest.permission.CAMERA, Manifest.permission.VIBRATE); + } + + observable.subscribe(granted -> { + if (preferences.getFaceAuth() && !(granted)) { + goToAppDetails(R.string.permission_need_for_auth); + } else { + if (BuildConfig.IS_OFFLINE_VERSION) { + /*final Intent intent2 = new Intent(this, AuthenticationActivity.class); + intent.putExtra(AuthenticationActivity.USER_NAME, login); + startActivity(intent2);*/ + needUpdateLogin = true; + } else { + goToAuthRequest = true; + onSettingsRequestSuccess(); + } + } + }); + } + } + } + + @Override + protected void onStop() { + super.onStop(); + + if (!TextUtils.isEmpty(preferences.getUsername())) { + /*userName.setText(preferences.getUsername()); + login.setEnabled(true);*/ + } + // lastName = userName.getText().toString(); + } + + @Override + protected void onPause() { + Log.i(TAG, "onPause callback!!"); + super.onPause(); + if (BuildConfig.IS_OFFLINE_VERSION) { + Storage.getInstance().saveOfflineData(); + } + } + + @OnTouch({R.id.userName}) + public boolean onUserNameTouch() { + // userNameWrapper.setError(null); + return false; + } + + @OnTextChanged(value = R.id.userName, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED) + void onUsernameChandeg(Editable newContent) { + if (newContent != null) { + if (newContent.length() < Config.MIN_LOGIN_LENGTH) { + /*login.setEnabled(false); + userNameWrapper.setError(getString(R.string.register_username_short, Config.MIN_LOGIN_LENGTH));*/ + return; + } + if (newContent.length() > Config.MAX_LOGIN_LENGTH) { + /* userName.setText(newContent.subSequence(0, Config.MAX_LOGIN_LENGTH)); + userName.setSelection(Config.MAX_LOGIN_LENGTH, Config.MAX_LOGIN_LENGTH);*/ + } else { + // userNameWrapper.setErrorEnabled(false); + } + // login.setEnabled(true); + } + } + + + @OnClick({R.id.register}) + public void onRegisterClick() { + if (sdkResult != 0) { + showSDKStatus(); + return; + } + Observable observable; + if (BuildConfig.IS_OFFLINE_VERSION) { + observable = RxPermissions.getInstance(this) + .request(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE); + + } else { + observable = RxPermissions.getInstance(this) + .request(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE); + } + + observable.subscribe(granted -> { + if (granted) { + startActivity(new Intent(this, RegisterActivity.class)); + needUpdateLogin = true; + } else { + goToAppDetails(R.string.permission_need_for_register); + } + }); + } + + @OnClick({R.id.settings}) + public void onSettingsClick(View view) { + startActivity(new Intent(this, SettingsActivity.class)); + needUpdateLogin = true; + } + + private void onSettingsRequestSuccess() { + if (goToAuthRequest) { + /*final String login = userName.getText().toString().trim(); + final Intent intent = new Intent(this, AuthenticationActivity.class); + intent.putExtra(AuthenticationActivity.USER_NAME, login); + startActivity(intent);*/ + needUpdateLogin = true; + } else if (goToRegistrationRequest) { + startActivity(new Intent(this, RegisterActivity.class)); + needUpdateLogin = true; + } + goToAuthRequest = false; + goToRegistrationRequest = false; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case REQUEST_CHECK_SETTINGS: + switch (resultCode) { + case Activity.RESULT_OK: + onSettingsRequestSuccess(); + break; + case Activity.RESULT_CANCELED: + + break; + } + break; + } + + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivityNew.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivityNew.java new file mode 100644 index 0000000..3a2a600 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivityNew.java @@ -0,0 +1,45 @@ +package ru.visionlab.femdemo.login; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.ImageButton; + +import ru.visionlab.femdemo.CheckInActivity; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.register.RegisterActivityNew; + +public class LoginActivityNew extends AppCompatActivity { + + Button btnSignin; + + ImageButton back; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login_new); + + btnSignin = findViewById(R.id.btnSignin); + + btnSignin.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(LoginActivityNew.this, CheckInActivity.class); + startActivity(intent); + } + }); + + back = findViewById(R.id.back); + back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(LoginActivityNew.this, LoginActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreateAccountRequest.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreateAccountRequest.java new file mode 100644 index 0000000..70c1a73 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreateAccountRequest.java @@ -0,0 +1,31 @@ +package ru.visionlab.femdemo.models; + +public class CreateAccountRequest { + private String email; + private String organization_name; + private String password; + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getOrganizationName() { + return organization_name; + } + + public void setOrganizationName(String organization_name) { + this.organization_name = organization_name; + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreateAccountResult.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreateAccountResult.java new file mode 100644 index 0000000..55cc41b --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreateAccountResult.java @@ -0,0 +1,9 @@ +package ru.visionlab.femdemo.models; + +import java.util.List; + +public class CreateAccountResult { + public String token; + public int error_code; + public String detail; +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreatePersonRequest.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreatePersonRequest.java new file mode 100644 index 0000000..0238217 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreatePersonRequest.java @@ -0,0 +1,13 @@ +package ru.visionlab.femdemo.models; + +public class CreatePersonRequest { + public String user_data; + + public String getUserData() { + return user_data; + } + + public void setUserData(String user_data) { + this.user_data = user_data; + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreatePersonResult.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreatePersonResult.java new file mode 100644 index 0000000..e9827aa --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/CreatePersonResult.java @@ -0,0 +1,9 @@ +package ru.visionlab.femdemo.models; + +import java.util.List; + +public class CreatePersonResult { + public String person_id; + public int error_code; + public String detail; +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/GetAccountResult.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/GetAccountResult.java new file mode 100644 index 0000000..7ba1fc3 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/GetAccountResult.java @@ -0,0 +1,11 @@ +package ru.visionlab.femdemo.models; + + +public class GetAccountResult { + + public String email; + public String organization_name; + public boolean suspended; + public int error_code; + public String detail; +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Person.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Person.java new file mode 100644 index 0000000..130c95f --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Person.java @@ -0,0 +1,70 @@ +package ru.visionlab.femdemo.models; + +import androidx.annotation.Nullable; + +public class Person { + private String firstName; + private String middleName; + private String lastName; + private Boolean sex; + private String identification; + private String placeOfBirth; + private String phone; + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getMiddleName() { + return middleName; + } + + public void setMiddleName(String middleName) { + this.middleName = middleName; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + @Nullable + public Boolean getSex() { + return sex; + } + + public void setSex(@Nullable Boolean sex) { + this.sex = sex; + } + + public String getIdentification() { + return identification; + } + + public void setIdentification(String identification) { + this.identification = identification; + } + + public String getPlaceOfBirth() { + return placeOfBirth; + } + + public void setPlaceOfBirth(String placeOfBirth) { + this.placeOfBirth = placeOfBirth; + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/PersonInfo.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/PersonInfo.java new file mode 100644 index 0000000..fbc506c --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/PersonInfo.java @@ -0,0 +1,15 @@ +package ru.visionlab.femdemo.models; + +import java.util.List; + +/** + * Created by Aleksey on 29.01.2018. + */ +//FOR LUNA 2 +public class PersonInfo { + public String id; + public String user_data; + public String create_time; + public List descriptors; + public List lists; +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Persons.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Persons.java new file mode 100644 index 0000000..a16c0e0 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Persons.java @@ -0,0 +1,18 @@ +package ru.visionlab.femdemo.models; + +import java.util.List; + +/** + * Created by Aleksey on 29.01.2018. + */ +//FOR LUNA 2 +public class Persons { +public List persons; +private int count; +private String error_code; +private String detail; + +public String getError_code(){return error_code;} +public String getDetail(){return detail;} +public int getCount(){return count;} +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Registration.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Registration.java new file mode 100644 index 0000000..1187bf9 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/Registration.java @@ -0,0 +1,51 @@ +package ru.visionlab.femdemo.models; + +import java.util.List; + +public class Registration { + private String login; + private String password; + private Person person; + private String photo; + private List personListPersons; + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public Person getPerson() { + return person; + } + + public void setPerson(Person person) { + this.person = person; + } + + public String getPhoto() { + return photo; + } + + public void setPhoto(String photo) { + this.photo = photo; + } + + public List getPersonListPersons() { + return personListPersons; + } + + public void setPersonListPersons(List personListPersons) { + this.personListPersons = personListPersons; + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchRequest.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchRequest.java new file mode 100644 index 0000000..ba1c414 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchRequest.java @@ -0,0 +1,51 @@ +package ru.visionlab.femdemo.models; + +import java.util.List; + +public class SearchRequest { + private String login; + private String password; + private String photo; + private List personListPersons; + private Person person; + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getPhoto() { + return photo; + } + + public void setPhoto(String photo) { + this.photo = photo; + } + + public List getPersonListPersons() { + return personListPersons; + } + + public void setPersonListPersons(List personListPersons) { + this.personListPersons = personListPersons; + } + + public Person getPerson() { + return person; + } + + public void setPerson(Person person) { + this.person = person; + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchResult.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchResult.java new file mode 100644 index 0000000..ae931e0 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchResult.java @@ -0,0 +1,14 @@ +package ru.visionlab.femdemo.models; + +import java.util.List; + +public class SearchResult { + private List persons; + + public List getPersons() { + return persons; + } + public void setPersons(List persons) { + this.persons = persons; + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchResultPerson.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchResultPerson.java new file mode 100644 index 0000000..a162bea --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/SearchResultPerson.java @@ -0,0 +1,15 @@ +package ru.visionlab.femdemo.models; + +import androidx.annotation.Nullable; + +public class SearchResultPerson { + public String firstName; + public String middleName; + public String lastName; + @Nullable + public Boolean sex; + public String identification; + public String placeOfBirth; + public String photo; + public double similarity; +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/UserVerifDataBase.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/UserVerifDataBase.java new file mode 100644 index 0000000..173acd9 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/models/UserVerifDataBase.java @@ -0,0 +1,5 @@ +package ru.visionlab.femdemo.models; + +public class UserVerifDataBase { + public String password; +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/FaceNotFoundFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/FaceNotFoundFragment.java new file mode 100644 index 0000000..24bec9c --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/FaceNotFoundFragment.java @@ -0,0 +1,83 @@ +package ru.visionlab.femdemo.register; + + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.base.BaseFragment; + +public class FaceNotFoundFragment extends BaseFragment { + + public enum Reason { + NOT_FOUND, LIVENESS, INTERNAL + } + + @BindView(R.id.reasonTextView) + TextView reasonTextView; + + private Listener listener; + private Reason reason = Reason.NOT_FOUND; + + public FaceNotFoundFragment() { + + } + + public static FaceNotFoundFragment newInstance() { + return new FaceNotFoundFragment(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_face_not_found, container, false); + ButterKnife.bind(this, view); + String reasonText = new String(); + switch (reason) { + case INTERNAL: reasonText = getResources().getString(R.string.error_liveness_internal);break; + case LIVENESS: reasonText = getResources().getString(R.string.error_liveness);break; + case NOT_FOUND: reasonText = getResources().getString(R.string.error_face_not_found);break; + default: reasonText = "Unknown Error"; + } + + reasonTextView.setText(reasonText); + + return view; + } + + @Override + public String toString() { + return "FaceNotFoundFragment"; + } + + @OnClick(R.id.retry) + public void onClick() { + if (listener != null) { + listener.onRetryClick(); + } + } + + public void setReason(Reason reason) { + this.reason = reason; + } + + public void setListener(Listener listener) { + this.listener = listener; + } + + public interface Listener { + void onRetryClick(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivity.java new file mode 100644 index 0000000..b2837f7 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivity.java @@ -0,0 +1,465 @@ +package ru.visionlab.femdemo.register; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.content.Intent; +import android.graphics.Bitmap; +import android.media.MediaScannerConnection; +import android.net.Uri; +import android.os.Bundle; +import android.os.Environment; +import android.os.Handler; +import android.provider.MediaStore; +import android.util.Base64; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.Toolbar; + +import com.tbruyelle.rxpermissions.RxPermissions; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.net.SocketException; + +import javax.inject.Inject; + +import butterknife.BindView; +import ru.PreferenceManager.PreferenceManager; +import ru.visionlab.femdemo.Core.PhotoProcessor; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.BuildConfig; +import ru.visionlab.femdemo.LocationHelper; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.Utils; +import ru.visionlab.femdemo.api.RegisterApiImplLuna2; +import ru.visionlab.femdemo.api.RegisterApiImplLocal; +import ru.visionlab.femdemo.api.RegisterApiInterface; +import ru.visionlab.femdemo.api.VLApi; +import ru.visionlab.femdemo.base.PhotoFragment; +import ru.visionlab.femdemo.base.ToolbarActivity; +import ru.visionlab.femdemo.login.LoginActivity; +import ru.visionlab.femdemo.settings.VLPreferences; + +public class RegisterActivity extends ToolbarActivity implements RegisterFragment.Listener, PhotoFragment.Listener, + SavePhotoFragment.Listener, FaceNotFoundFragment.Listener, RegisterApiInterface.Listener{ + public static final String REGISTER_FRAGMENT = "REGISTER FRAGMENT"; + public static final String PHOTO_FRAGMENT = "PHOTO_FRAGMENT"; + public static final String SAVE_PHOTO_FRAGMENT = "SAVE PHOTO FRAGMENT"; + public static final String FACE_NOT_FOUND_FRAGMENT = "FACE NOT FOUND FRAGMENT"; + public static final String SAVE_PHOTO_NAME = "PhotomakerAndroidDemo Registration Photo"; + private Thread thread; + EditText compId,username,otp; + String company_ID="",user="",OTP=""; + + + @Inject + VLPreferences preferences; + + @Inject + VLApi api; + + @Inject + LocationHelper locationHelper; + + @Inject + PhotoProcessor photoProcessor; + @Nullable + @BindView(R.id.toolbar) + Toolbar toolbar; + + Bitmap bitmap; + + RegistrationModel registrationModel; + + ImageButton back_img; + Button verifynproceed; + ImageView photo; + private static final int pic_id = 123; + PreferenceManager preferenceManager; + Bitmap photo2=null; + Button save,retry; + String encodedImage=""; + + + + @SuppressLint("MissingInflatedId") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ((App) getApplication()).getComponent().inject(this); + setContentView(R.layout.activity_register); + + //ButterKnife.bind(this); + setToolbar(); + showRegisterScreen(); + + /*back_img.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); + startActivity(intent); + } + });*/ + // compId = findViewById(R.id.compId); +// username = findViewById(R.id.username); + // otp = findViewById(R.id.otp); + + + // company_ID = compId.getText().toString().trim(); +// user = username.getText().toString().trim(); + // OTP = otp.getText().toString().trim(); + + /*verifynproceed = findViewById(R.id.verifynproceed); + verifynproceed.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(company_ID.equals("002") *//*&& user.equals("34") *//* && OTP.equals("444")){ + Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); + startActivity(intent); + } + } + });*/ + + preferenceManager=PreferenceManager.getInstance(this); + + photo = (ImageView) findViewById(R.id.photo); + photo.setOnClickListener(v -> { + // Create the camera_intent ACTION_IMAGE_CAPTURE it will open the camera for capture the image + Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + // Start the activity with camera_intent, and request pic id + startActivityForResult(camera_intent, pic_id); + }); + + + save = findViewById(R.id.save); + save.setEnabled(true); + + System.out.println("in register" + photo.getDrawable()); + + +// if(photo.getDrawable() == null){ +// save.setEnabled(false); +// } +// else if(photo.getDrawable()!=null) +// { + + save.setOnClickListener(v -> { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + if(photo2 != null){ + save.setClickable(true); + System.out.println("imageview photo2 "+ photo2); + photo2.compress(Bitmap.CompressFormat.JPEG, 100, baos); + byte[] b = baos.toByteArray(); + encodedImage = Base64.encodeToString(b, Base64.DEFAULT); + preferenceManager.setString("image_data",encodedImage); + Toast.makeText(this, "Image saved in SharedPreferences", Toast.LENGTH_SHORT).show(); + Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); + startActivity(intent); + + + } + else if(photo2 == null || photo2.equals("")){ + save.setClickable(false); + System.out.println("imageview photo2 without "+ photo2); + } + + }); + // } + + retry = findViewById(R.id.retry); + retry.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + } + + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + // Match the request 'pic id with requestCode + if (requestCode == pic_id) { + // BitMap is data structure of image file which store the image in memory + photo2 = (Bitmap) data.getExtras().get("data"); + // Set the image in imageview for display + + if(photo2.equals("") || photo2==null){ + photo.setBackgroundResource(R.drawable.user1); + + } + else { + photo.setImageDrawable(null); + photo.setImageBitmap(photo2); + System.out.println("imageview "+ photo.getDrawable()); + System.out.println("imageview photo2 "+ photo2); + + Toast.makeText(this, "Image set", Toast.LENGTH_SHORT).show(); + } + + } + } + + @Override + protected void onDestroy() + { + photoProcessor.release(); + super.onDestroy(); + } + + private void showRegisterScreen() { + final RegisterFragment fragment = RegisterFragment.newInstance(); + fragment.setListener(this); + getSupportFragmentManager() + .beginTransaction() + .replace(R.id.container, fragment, REGISTER_FRAGMENT) + .addToBackStack(fragment.toString()) + .commit(); + } + + private void setToolbar() { + setSupportActionBar(toolbar); + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + } + } + + @Override + public void onBackPressed() { + Log.i("STATUS","STACK COUNT "+getSupportFragmentManager().getBackStackEntryCount()); + preferences.setStartTime(String.valueOf(System.currentTimeMillis())); + if (getSupportFragmentManager().getBackStackEntryCount() > 1) { + getSupportFragmentManager().popBackStack(); + } else { + super.onBackPressed(); + } + } + + @Override + public void onSignUpClick(RegistrationModel registrationModel) { + if((!BuildConfig.IS_OFFLINE_VERSION) && preferences.getLuna2()) { + thread = new Thread(() -> { + Storage.getInstance().updateDatabase(preferences.getLuna2Server(), preferences.getEncodedUserData(), api, preferences.getServerChanged()); + }); + thread.start(); + } + this.registrationModel = registrationModel; + Utils.hideKeyboard(this, getCurrentFocus()); + new Handler().post(this::showPhotoScreen); + } + + private void showPhotoScreen() { + final PhotoFragment fragment = PhotoFragment.newInstance(); + fragment.setPhotoProcessor(photoProcessor); + fragment.setListener(this); + fragment.enableLivenessCheck(false); + + preferences.setStartTime(String.valueOf(System.currentTimeMillis())); + preferences.setNeedPortrait(false); + System.out.println("Inside photo screen"); + getSupportFragmentManager() + .beginTransaction() + .replace(R.id.container, fragment, PHOTO_FRAGMENT) + .addToBackStack(fragment.toString()) + .commit(); + } + + private void showPhotoReadyScreen(Bitmap bitmap) { + final SavePhotoFragment fragment = SavePhotoFragment.newInstance(); + fragment.setPhoto(bitmap); + fragment.setListener(this); + getSupportFragmentManager() + .beginTransaction() + .replace(R.id.container, fragment, SAVE_PHOTO_FRAGMENT) + .addToBackStack(fragment.toString()) + .commit(); + } + + @Override + public void onBestFrameReady(Bitmap bitmap) { + this.bitmap = bitmap; + showPhotoReadyScreen(bitmap); + } + + @Override + public void onTimeout(FaceNotFoundFragment.Reason reason) { + final FaceNotFoundFragment fragment = FaceNotFoundFragment.newInstance(); + fragment.setReason(reason); + fragment.setListener(this); + getSupportFragmentManager() + .beginTransaction() + .replace(R.id.container, fragment, FACE_NOT_FOUND_FRAGMENT) + .addToBackStack(fragment.toString()) + .commit(); + } + + @Override + public void onNeedCameraPermission() { + goToAppDetails(R.string.permission_need_for_register); + } + + @Override + public void onInteractionWaitingOpenedEyes() {} + + @Override + public void onTimeout(){} + + @Override + public void onLivenessResult(int livenessState, int blinkState, int livenessType){} + + @Override + public void onRetryClick() { + onBackPressed(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem menuItem) { + if (menuItem.getItemId() == android.R.id.home) { + if (getSupportFragmentManager().findFragmentByTag(SAVE_PHOTO_FRAGMENT) != null) { + getSupportFragmentManager().popBackStack(); + getSupportFragmentManager().popBackStack(); + return true; + } + } + return super.onOptionsItemSelected(menuItem); + } + + @Override + public void onSaveClick() { + registerPerson(); + } + + private void registerPerson() { + RegisterApiInterface registerApi; + try { + if (thread != null) { + thread.join(); + } + }catch (InterruptedException e){ + e.printStackTrace(); + } + + if (BuildConfig.IS_OFFLINE_VERSION) { + registerApi = new RegisterApiImplLocal(this, registrationModel, photoProcessor, this, bitmap); + } else { + registerApi = new RegisterApiImplLuna2(this, preferences.getLuna2Server(), registrationModel, api, locationHelper, this, bitmap, preferences.getEncodedUserData()); + } + + registerApi.registerPerson(); + } + + private void SaveBitmapToGallery(Bitmap finalBitmap) { + String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString(); + + File myDir = new File(root + "/saved_images"); + myDir.mkdirs(); + + File file = null; + int num = 0; + // find next name + do { + try { + file = new File (myDir, new String(SAVE_PHOTO_NAME + num + ".jpg")); + } catch (Exception e) { + e.printStackTrace(); + break; + } + + ++num; + } + while(file.exists()); + + try { + FileOutputStream out = new FileOutputStream(file); + finalBitmap.compress(Bitmap.CompressFormat.JPEG, 50, out); + out.flush(); + out.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + + // Tell the media scanner about the new file so that it is + // immediately available to the user. + MediaScannerConnection.scanFile(this, new String[] { file.toString() }, null, + new MediaScannerConnection.OnScanCompletedListener() { + public void onScanCompleted(String path, Uri uri) { + Log.i("ExternalStorage", "Scanned " + path + ":"); + Log.i("ExternalStorage", "-> uri=" + uri); + } + }); + } + + @Override + public void onRegistrationFail(Throwable throwable) { + + if(throwable instanceof RegisterApiImplLuna2.InternetConnectionException){ + Toast.makeText(this,getResources().getString(R.string.bad_internet_conneciton), Toast.LENGTH_LONG).show(); + }else if(throwable instanceof RegisterApiImplLuna2.SocketTimeOutException || + throwable instanceof SocketException) { + Toast.makeText(this,getResources().getString(R.string.TimeOut), Toast.LENGTH_LONG).show(); + }else if(throwable instanceof RegisterApiImplLuna2.WrongAccDataException){ + Toast.makeText(this,getResources().getString(R.string.bad_acc_data), Toast.LENGTH_LONG).show(); + }else if(throwable instanceof RegisterApiImplLuna2.WrongServAddrException || + throwable instanceof IllegalArgumentException){ + Toast.makeText(this,getResources().getString(R.string.bad_server_address), Toast.LENGTH_LONG).show(); + }else if(throwable instanceof retrofit2.adapter.rxjava.HttpException ){ + Toast.makeText(this,throwable.getMessage(), Toast.LENGTH_LONG).show(); + } + else if(throwable instanceof RegisterApiImplLocal.DescriptorNotExtractedException) { + Toast.makeText(this,throwable.getMessage(), Toast.LENGTH_LONG).show(); + } + + if(preferences.getLuna2()){ + Storage.getInstance().clearConnectionFlags(); + } + if (getSupportFragmentManager().findFragmentByTag(SAVE_PHOTO_FRAGMENT) != null) { + getSupportFragmentManager().popBackStack(); + getSupportFragmentManager().popBackStack(); + } + } + + @Override + public void onRegistrationSuccess() { + preferences.setServerChanged(false); + if (preferences.getSavePhoto()) { + RxPermissions.getInstance(this) + .request(Manifest.permission.WRITE_EXTERNAL_STORAGE) + .subscribe(granted -> { + if (granted) { + SaveBitmapToGallery(bitmap); + + Toast.makeText(this, R.string.photo_saved_to_gallery, Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(this, R.string.permission_need_for_write_external, Toast.LENGTH_SHORT).show(); + } + + // finish on any case + finishRegistration(); + }); + } + else + { + finishRegistration(); + } + } + + private void finishRegistration() + { + preferences.setUsername(registrationModel.login); + // preferences.setPin(registrationModel.password); + finish(); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivityNew.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivityNew.java new file mode 100644 index 0000000..199417b --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivityNew.java @@ -0,0 +1,31 @@ +package ru.visionlab.femdemo.register; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.ImageButton; + +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.login.LoginActivity; + +public class RegisterActivityNew extends AppCompatActivity { + + ImageButton back_img; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_register_new); + + back_img = findViewById(R.id.back_img); + back_img.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(RegisterActivityNew.this, LoginActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterFragment.java new file mode 100644 index 0000000..66adeaf --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterFragment.java @@ -0,0 +1,217 @@ +package ru.visionlab.femdemo.register; + + +import android.content.Context; +import android.os.Bundle; +import androidx.annotation.Nullable; +import android.text.Editable; +import android.text.InputType; +import android.text.TextUtils; +import android.text.method.PasswordTransformationMethod; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ScrollView; + + +import com.google.android.material.textfield.TextInputLayout; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import butterknife.OnFocusChange; +import butterknife.OnTextChanged; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.BuildConfig; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.Utils; +import ru.visionlab.femdemo.base.BaseFragment; +import ru.visionlab.femdemo.settings.VLPreferences; + + +public class RegisterFragment extends BaseFragment { + @Inject + VLPreferences preferences; + + @BindView(R.id.login) + EditText login; + @BindView(R.id.email) + EditText email; + @BindView(R.id.phone) + EditText phone; + @BindView(R.id.scrollView) + ScrollView scrollView; + @BindView(R.id.signUp) + Button signUp; + @BindView(R.id.loginWrapper) + TextInputLayout loginWrapper; + @BindView(R.id.emailWrapper) + TextInputLayout emailWrapper; + @BindView(R.id.phoneWrapper) + TextInputLayout phoneWrapper; + Listener listener; + + public RegisterFragment() { + } + + public static RegisterFragment newInstance() { + RegisterFragment fragment = new RegisterFragment(); + Bundle args = new Bundle(); + fragment.setArguments(args); + return fragment; + } + + public void setListener(Listener listener) { + this.listener = listener; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + ((App) (context.getApplicationContext())).getComponent().inject(this); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_register, container, false); + ButterKnife.bind(this, view); + return view; + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + getActivity().setTitle(R.string.registration_title); + scrollView.setOnTouchListener((scrollViewView, motionEvent) -> { + Utils.hideKeyboard(getContext(), getActivity().getCurrentFocus()); + return false; + } + ); + login.requestFocus(); + + if (BuildConfig.IS_OFFLINE_VERSION) { + phoneWrapper.setVisibility(View.GONE); + emailWrapper.setVisibility(View.GONE); + } + + } + + private void fixPasswordField(EditText password) { + password.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_CLASS_NUMBER); + password.setTransformationMethod(PasswordTransformationMethod.getInstance()); + } + + @OnClick(R.id.signUp) + public void onClick() { + Utils.hideKeyboardRoutine(getContext(), getView()); + if (listener != null && validateFields(true, true)) { + RegistrationModel registrationModel = new RegistrationModel(); + registrationModel.email = email.getText().toString().trim(); + registrationModel.login = login.getText().toString().trim(); + //registrationModel.password = password.getText().toString().trim(); + registrationModel.phone = phone.getText().toString().trim(); + listener.onSignUpClick(registrationModel); + } + } + + private boolean validateFields(boolean changeFocus, boolean showError) { + boolean result; + + result = validateEmail(changeFocus, showError); + result = validateLogin(showError) && result; + + signUp.setEnabled(result); + + return result; + } + + private boolean validateEmail(boolean changeFocus, boolean showError) { + boolean result = true; + + if (TextUtils.isEmpty(email.getText().toString())) { + return true; + } + + if (!Utils.isValidEmail(email.getText().toString())) { + result = false; + if (showError) { + emailWrapper.setError(getString(R.string.register_email_error)); + } + if (changeFocus) { + email.requestFocus(); + } + } else { + emailWrapper.setErrorEnabled(false); + emailWrapper.setError(null); + } + return result; + } + + private boolean validateLogin(boolean showError) { + boolean result = true; + String currentLogin=login.getText().toString(); + if (currentLogin.length() < Config.MIN_LOGIN_LENGTH) { + result = false; + if (showError) { + loginWrapper.setError(getString(R.string.register_username_short, Config.MIN_LOGIN_LENGTH)); + } + } + if(Storage.getInstance().isLoginAlreadyExists(currentLogin) || Storage.getInstance().isLoginAlreadyExistsLocal(currentLogin)){ + result = false; + loginWrapper.setError(getString(R.string.register_username_exist,currentLogin)); + } + else { + loginWrapper.setError(null); + loginWrapper.setErrorEnabled(false); + } + return result; + } + + @OnFocusChange({R.id.login}) + void onLoginFocusChanged(boolean focused) { + if (!focused) { + validateLogin(true); + } + } + + @OnTextChanged(value = R.id.login, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED) + void onUsernameChandeg(Editable newContent) { + if (newContent != null) { + if (newContent.length() < Config.MIN_LOGIN_LENGTH) { + loginWrapper.setError(getString(R.string.register_username_short, Config.MIN_LOGIN_LENGTH)); + return; + } + if (newContent.length() > Config.MAX_LOGIN_LENGTH) { + login.setText(newContent.subSequence(0, Config.MAX_LOGIN_LENGTH)); + loginWrapper.setError(getString(R.string.register_username_long, Config.MAX_LOGIN_LENGTH)); + login.setSelection(Config.MAX_LOGIN_LENGTH, Config.MAX_LOGIN_LENGTH); + } else { + loginWrapper.setError(null); + loginWrapper.setErrorEnabled(false); + validateFields(false, false); + } + } + } + + @OnTextChanged({R.id.email}) + void onEmailTextChanged() { + validateEmail(true, true); + validateFields(false, false); + } + + public interface Listener { + void onSignUpClick(RegistrationModel registrationModel); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegistrationModel.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegistrationModel.java new file mode 100644 index 0000000..2ef3f0f --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegistrationModel.java @@ -0,0 +1,8 @@ +package ru.visionlab.femdemo.register; + +public class RegistrationModel { + public String login; + public String email; + public String phone; + //public String password; +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/SavePhotoFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/SavePhotoFragment.java new file mode 100644 index 0000000..71ff66f --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/SavePhotoFragment.java @@ -0,0 +1,97 @@ +package ru.visionlab.femdemo.register; + + +import android.graphics.Bitmap; +import android.graphics.PorterDuff; +import android.os.Bundle; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ProgressBar; + +import com.makeramen.roundedimageview.RoundedImageView; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.base.BaseFragment; + +public class SavePhotoFragment extends BaseFragment { + @BindView(R.id.photo) + RoundedImageView photo; + Bitmap bitmap; + Listener listener; + @BindView(R.id.save) + Button save; + @BindView(R.id.progressBar) + ProgressBar progressBar; + + public SavePhotoFragment() { + + } + + public static SavePhotoFragment newInstance() { + return new SavePhotoFragment(); + } + + public void setListener(Listener listener) { + this.listener = listener; + } + + public void setPhoto(Bitmap bitmap) { + this.bitmap = bitmap; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_save_photo, container, false); + ButterKnife.bind(this, view); + return view; + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + photo.setImageBitmap(bitmap); + bitmap = null; + progressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getContext(), R.color.accentColor), PorterDuff.Mode.MULTIPLY); + } + + @Override + public String toString() { + return "Save Photo Fragment"; + } + + @OnClick({R.id.retry}) + public void onRetryClick() { + if (listener != null) { + listener.onRetryClick(); + } + } + + @OnClick({R.id.save}) + public void onClick() { + save.setEnabled(false); + progressBar.setVisibility(View.VISIBLE); + if (listener != null) { + listener.onSaveClick(); + } + } + + public interface Listener { + void onRetryClick(); + + void onSaveClick(); + } + +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/ServerSettingsActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/ServerSettingsActivity.java new file mode 100644 index 0000000..dd93de6 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/ServerSettingsActivity.java @@ -0,0 +1,194 @@ +package ru.visionlab.femdemo.settings; + +import android.graphics.Typeface; +import android.os.ConditionVariable; +import android.os.Bundle; +import android.util.Base64; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnCheckedChanged; +import butterknife.OnClick; +import butterknife.OnTextChanged; +import ru.visionlab.femdemo.App; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.api.VLApi; +import ru.visionlab.femdemo.models.GetAccountResult; +import rx.schedulers.Schedulers; + +public class ServerSettingsActivity extends AppCompatActivity { + @Inject + VLPreferences preferences; + @Inject + VLApi api; + + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(R.id.luna2ServerEdit) + EditText luna2ServerEdit; + @BindView(R.id.Login) + EditText Login; + @BindView(R.id.Password) + EditText Password; + @BindView(R.id.textLogin) + TextView textLogin; + @BindView(R.id.textPassword) + TextView textPass; + + private View DefaultBtn; + private ConditionVariable var; + private boolean isAccExist=false; + boolean defaultAccData = true; + private static final String TAG = "ConnectionSettings"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_server_settings); + ButterKnife.bind(this); + ((App) getApplication()).getComponent().inject(this); + var = new ConditionVariable(); + var.close(); + + DefaultBtn = findViewById(R.id.SetToDefaultBtn); + luna2ServerEdit.setTypeface(null,Typeface.BOLD); + setToolbar(); + processSettings(); + luna2ServerEdit.setText(preferences.getLuna2Server()); + luna2ServerEdit.setEnabled(preferences.getLuna2()); + + luna2ServerEdit.setVisibility(View.VISIBLE); + + } + + @Override + public boolean onOptionsItemSelected(MenuItem menuItem) { + if (menuItem.getItemId() == android.R.id.home) { + saveSettings(); + finish(); + return true; + } + return super.onOptionsItemSelected(menuItem); + } + + @OnClick({R.id.SetToDefaultBtn}) + public void onSetToDefault(){ + preferences.setServerLuna2Login(Config.APP_LOGIN_LUNA2); + preferences.setServerLuna2Pass(Config.APP_PASSWORD_LUNA2); + luna2ServerEdit.setText(Config.ENDPOINT_LUNA2); + Login.setText(preferences.getServerLuna2Login()); + Password.setText(preferences.getServerLuna2Pass()); + + defaultAccData=true; + } + + private void setToolbar() { + setSupportActionBar(toolbar); + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + actionBar.setTitle(R.string.settings_server_title); + } + } + + @OnTextChanged(R.id.Login) + public void onLoginTextChanged(CharSequence sequence,int a,int b,int c){ + if(preferences.getLuna2()) { + preferences.setServerLuna2Login(sequence.toString().replaceAll("\\s+","")); + } + + defaultAccData=false; + } + + @OnTextChanged(R.id.luna2ServerEdit) + public void onLuna2ServerChanged(CharSequence sequence,int a,int b,int c){ + String prev = preferences.getLuna2Server(); + preferences.setLuna2Server(sequence.toString().replaceAll("\\s+","")); + if(! (preferences.getLuna2Server().contains("http"))){ + preferences.setLuna2Server("http://"+preferences.getLuna2Server()); + } + if(preferences.getLuna2Server() == sequence.toString()){ + preferences.setServerChanged(false); + }else{ + preferences.setServerChanged(true); + } + } + + @OnTextChanged(R.id.Password) + public void onPasswordTextChanged(CharSequence sequence,int a,int b,int c){ + if(preferences.getLuna2()) { + preferences.setServerLuna2Pass(sequence.toString().replaceAll("\\s+","")); + } + + defaultAccData=false; + } + + private void isAccountExist(){ + api.getAccountLuna2(preferences.getLuna2Server()+"/2/account",EncodeUserData(preferences.getUserAccData())) + .subscribeOn(Schedulers.io()) + .observeOn(Schedulers.newThread()) + .subscribe(this::onAccountExist, this::onAccountDoesntExist); + } + + private void onAccountExist(GetAccountResult result){ + Log.i(TAG,"Account exist! Err code is"+result.error_code); + isAccExist=true; + var.open(); + } + + private void onAccountDoesntExist(Throwable throwable){ + Log.i(TAG,"Such account doesn't exist!!"); + Log.i(TAG, "Exception: " + throwable.getMessage()); + isAccExist=false; + var.open(); + } + + @Override + public void onBackPressed() { + saveSettings(); + super.onBackPressed(); + } + + private void saveSettings() { + preferences.setLuna2(preferences.getLuna2()); + preferences.setLuna2Server(preferences.getLuna2Server()); + + if (preferences.getLuna2()) { + preferences.setLuna2Server(preferences.getLuna2Server()); + preferences.setUserAccData(preferences.getServerLuna2Login()+":"+preferences.getServerLuna2Pass()); + } + + preferences.setEncodedUserData(EncodeUserData(preferences.getUserAccData())); + Log.i(TAG,"DATA IS"+preferences.getServerLuna2Login()+"PASS "+preferences.getServerLuna2Pass()); + Log.i(TAG,"ENCODED LOG PASS IS"+preferences.getEncodedUserData()); + } + + private String EncodeUserData(String userData){ + String Encoded_userData="Basic "+ Base64.encodeToString((userData).getBytes(),Base64.NO_WRAP); + return Encoded_userData; + } + + private void processSettings(){ + if(preferences.getLuna2()) { + Login.setText(preferences.getServerLuna2Login()); + Password.setText(preferences.getServerLuna2Pass()); + + } + + luna2ServerEdit.setEnabled(preferences.getLuna2()); + } + +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/SettingsActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/SettingsActivity.java new file mode 100644 index 0000000..5629741 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/SettingsActivity.java @@ -0,0 +1,239 @@ +package ru.visionlab.femdemo.settings; + +import android.Manifest; +import android.content.Intent; +import android.hardware.Camera; +import android.nfc.Tag; +import android.os.Bundle; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; + +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.widget.SwitchCompat; +import androidx.appcompat.widget.Toolbar; + +//import com.samsung.android.sdk.SsdkUnsupportedException; +//import com.samsung.android.sdk.pass.Spass; +//import com.samsung.android.sdk.pass.SpassFingerprint; +import com.tbruyelle.rxpermissions.RxPermissions; + +import javax.inject.Inject; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnCheckedChanged; +import butterknife.OnClick; +import ru.visionlab.femdemo.Core.PhotoProcessor; +import ru.visionlab.femdemo.App; + +import ru.visionlab.femdemo.BuildConfig; +import ru.visionlab.femdemo.Config; +import ru.visionlab.femdemo.JavaBindings.FaceEngine; +import ru.visionlab.femdemo.R; +import ru.visionlab.femdemo.Storage; +import ru.visionlab.femdemo.api.VLApi; +import ru.visionlab.femdemo.base.ToolbarActivity; + +public class SettingsActivity extends ToolbarActivity { + @Inject + VLPreferences preferences; + + + @BindView(R.id.toolbar) + Toolbar toolbar; + @BindView(R.id.face) + SwitchCompat face; + @BindView(R.id.finger) + SwitchCompat finger; + @BindView(R.id.liveness) + SwitchCompat liveness; + @BindView(R.id.OnlineLiveness) + SwitchCompat OnlineLiveness; + @BindView(R.id.OfflineLiveness) + SwitchCompat OfflineLiveness; + + @BindView(R.id.showDetection) + SwitchCompat showDetection; + @BindView(R.id.savePhoto) + SwitchCompat savePhoto; + + int faceEngineVersion; + +// SpassFingerprint spassFingerprint; + private static final String TAG="SettingsActivity"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_settings); + ButterKnife.bind(this); + ((App) getApplication()).getComponent().inject(this); + RxPermissions.getInstance(this) + .request(Manifest.permission.CAMERA) + .subscribe(granted -> { + if (granted) { + //noinspection deprecation + if (Camera.getNumberOfCameras() == 1) { + preferences.setUseFrontCamera(true); + } + } + }); + + setToolbar(); + + faceEngineVersion = FaceEngine.getFaceEngineVersion(); + Log.d("SettingsActivity", "Face engine edition is " + faceEngineVersion); + applySettings(); + + face.setVisibility(View.GONE); + finger.setVisibility(View.GONE); + showDetection.setVisibility(View.GONE); + if(faceEngineVersion == FaceEngine.FACE_ENGINE_FRONTEND_VERSION) { + OfflineLiveness.setChecked(false); + OfflineLiveness.setVisibility(View.GONE); + } + + if(BuildConfig.IS_OFFLINE_VERSION) { + Button ServerSettingsBtn = (Button) findViewById(R.id.ServerSettings); + ServerSettingsBtn.setVisibility(View.GONE); + } + + } + + @Override + public void onResume() { + super.onResume(); + Log.i("ConnectionSettings","ON RESUMED!!!"); + } + + @OnClick({R.id.ServerSettings}) + public void onServerSettingsClick(View view){ + startActivity(new Intent(this,ServerSettingsActivity.class)); + } + + @Override + public boolean onOptionsItemSelected(MenuItem menuItem) { + if (menuItem.getItemId() == android.R.id.home) { + saveSettings(); + finish(); + return true; + } + return super.onOptionsItemSelected(menuItem); + } + + @Override + public void onBackPressed() { + saveSettings(); + super.onBackPressed(); + } + + private void applySettings() { + face.setChecked(preferences.getFaceAuth()); + finger.setChecked(preferences.getFingerAuth()); + liveness.setChecked(preferences.getLivenessAuth()); + OnlineLiveness.setChecked(preferences.getOnlineLivenessAuth()); + OnlineLiveness.setEnabled(preferences.getLivenessAuth()); +// showDetection.setChecked(preferences.getShowDetection()); + savePhoto.setChecked(preferences.getSavePhoto()); + if(faceEngineVersion != FaceEngine.FACE_ENGINE_FRONTEND_VERSION) { + OfflineLiveness.setChecked(preferences.getOfflineLivenessAuth()); + OfflineLiveness.setEnabled(preferences.getLivenessAuth()); + } + + } + + private void saveSettings() { + + preferences.setFaceAuth(face.isChecked()); + preferences.setFingerAuth(finger.isChecked()); + preferences.setIgnoreEyes(preferences.getIgnoreEyes()); + preferences.setLivenessAuth(liveness.isChecked()); +// preferences.setShowDetection(showDetection.isChecked()); + preferences.setSavePhoto(savePhoto.isChecked()); + + preferences.setOnlineLivenessAuth(OnlineLiveness.isChecked()); + if(faceEngineVersion != FaceEngine.FACE_ENGINE_FRONTEND_VERSION) + preferences.setOfflineLivenessAuth(OfflineLiveness.isChecked()); + } + + private void setToolbar() { + setSupportActionBar(toolbar); + final ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + actionBar.setTitle(R.string.settings_title); + } + } + + @OnCheckedChanged(R.id.finger) + public void onFingerChanged(boolean checked) { +// if (checked && !spassFingerprint.hasRegisteredFinger()) { +// AlertDialog.Builder builder = new AlertDialog.Builder(this); +// builder.setTitle(R.string.no_fingers) +// .setCancelable(false) +// .setPositiveButton(R.string.saveFingers, (dialogInterface, i) -> { +// startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); +// }) +// .setNegativeButton(R.string.cancel, +// (dialog, id) -> { +// if (!face.isChecked()){ +// face.setChecked(true); +// } +// finger.setChecked(false); +// dialog.cancel(); +// }); +// AlertDialog alert = builder.create(); +// alert.show(); +// } + } + + @OnCheckedChanged(R.id.face) + public void onFaceChanged(boolean checked) { + if (!checked && !(finger.isChecked())){ + face.setChecked(true); + } + + if (!checked) + { + liveness.setChecked(false); + liveness.setEnabled(false); + } + else + { + liveness.setEnabled(true); + } + } + + //setenabled - makes button available + //set checked slides radio button into active state + @OnCheckedChanged(R.id.liveness) + public void onlivenessChanged(boolean checked) { + OnlineLiveness.setEnabled(checked); + if(faceEngineVersion == FaceEngine.FACE_ENGINE_FRONTEND_VERSION) { + OnlineLiveness.setChecked(checked); + } + else { + OfflineLiveness.setEnabled(checked); + } + } + + @OnCheckedChanged(R.id.OnlineLiveness) + public void onOnlineLivenessChanged(boolean checked) { + if(faceEngineVersion == FaceEngine.FACE_ENGINE_FRONTEND_VERSION) { + liveness.setChecked(checked); + } + else { + OfflineLiveness.setChecked(!checked); + } + } + + @OnCheckedChanged(R.id.OfflineLiveness) + public void onOfflineLivenessChanged(boolean checked) { + OnlineLiveness.setChecked(!checked); + } +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/VLPreferences.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/VLPreferences.java new file mode 100644 index 0000000..e7cf5e7 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/settings/VLPreferences.java @@ -0,0 +1,111 @@ +package ru.visionlab.femdemo.settings; + +import proxypref.annotation.DefaultBoolean; +import proxypref.annotation.DefaultString; +import ru.visionlab.femdemo.Config; + +public interface VLPreferences { + @DefaultBoolean(true) + Boolean getFirstRun(); + void setFirstRun(Boolean value); + + @DefaultBoolean(true) + Boolean getFaceAuth(); + + void setFaceAuth(Boolean value); + + @DefaultBoolean(false) + Boolean getFingerAuth(); + + void setFingerAuth(Boolean value); + + @DefaultBoolean(true) + Boolean getLivenessAuth(); + + void setLivenessAuth(Boolean value); + + @DefaultBoolean(true) + Boolean getLiveness_ftp(); + + @DefaultBoolean(true) + Boolean getOnlineLivenessAuth(); + void setOnlineLivenessAuth(Boolean value); + + @DefaultBoolean(false) + Boolean getOfflineLivenessAuth(); + void setOfflineLivenessAuth(Boolean value); + + @DefaultBoolean(true) + Boolean getUseFrontCamera(); + + void setUseFrontCamera(Boolean value); + + @DefaultBoolean(false) + Boolean getShowDetection(); + + void setShowDetection(Boolean value); + + @DefaultBoolean(true) + Boolean getSavePhoto(); + + void setSavePhoto(Boolean value); + + @DefaultString("") + String getPin(); + + void setPin(String string); + + @DefaultString("") + String getUsername(); + + void setUsername(String string); + + String getStartTime(); + + void setStartTime(String time); + + @DefaultBoolean(false) + void setNeedPortrait(Boolean needPortrait); + + Boolean getNeedPortrait(); + + @DefaultBoolean(false) + Boolean getIgnoreEyes(); + + void setIgnoreEyes(Boolean ignoreEyes); + + @DefaultString(Config.ENDPOINT_LUNA2) + String getLuna2Server(); + + void setLuna2Server(String server); + + @DefaultBoolean(true) + Boolean getLuna2(); + + void setLuna2(Boolean val); + + @DefaultString(Config.APP_LOGIN_LUNA2) + String getServerLuna2Login(); + + void setServerLuna2Login(String string); + + @DefaultString(Config.APP_PASSWORD_LUNA2) + String getServerLuna2Pass(); + + void setServerLuna2Pass(String string); + + @DefaultString(Config.APP_LOGIN_LUNA2+":"+Config.APP_PASSWORD_LUNA2) + String getUserAccData(); + + void setUserAccData(String data); + + @DefaultString("Basic bW9iaWxlQHZpc2lvbmxhYnMucnU6RmRraGUzcGFzcw==") + String getEncodedUserData(); + + void setEncodedUserData(String string); + + @DefaultBoolean(true) + Boolean getServerChanged(); + + void setServerChanged(Boolean bool); +} diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/views/FaceBoundSurfaceView.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/views/FaceBoundSurfaceView.java new file mode 100644 index 0000000..8e653a2 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/views/FaceBoundSurfaceView.java @@ -0,0 +1,70 @@ +package ru.visionlab.femdemo; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.RectF; +import androidx.annotation.ColorInt; +import android.util.AttributeSet; +import android.view.SurfaceView; + +/** + * Created by luckydotaplay on 10.01.2017. + */ + +public class FaceBoundSurfaceView extends SurfaceView +{ + private Paint mPaint = null; + private RectF faceRect = new RectF(); + private int rectColor = Color.GREEN; + + public FaceBoundSurfaceView(Context context) { + this(context, null); + } + + public FaceBoundSurfaceView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public FaceBoundSurfaceView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + setWillNotDraw(false); + + configurePaint(); + } + + public void setFaceRect(int left, int top, int right, int bottom) + { + faceRect.set(left, top, right, bottom); + } + + public void setFaceRectColor(@ColorInt int color) + { + rectColor = color; + } + + @Override + protected void onDraw(Canvas canvas) { + + super.onDraw(canvas); + + if (faceRect == null) + return; + + mPaint.setColor(rectColor); + + canvas.drawRoundRect(faceRect, 20, 20, mPaint); + } + + protected void configurePaint() + { + mPaint = new Paint(); + + mPaint.setStyle(Paint.Style.FILL); + + mPaint.setStrokeWidth(5); + mPaint.setStyle(Paint.Style.STROKE); + mPaint.setAntiAlias(true); + } +} diff --git a/examples/example_bestshot/example/app/src/main/jni/Bridge.cpp b/examples/example_bestshot/example/app/src/main/jni/Bridge.cpp new file mode 100644 index 0000000..1414369 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/Bridge.cpp @@ -0,0 +1,221 @@ + +#include + +#include "Common.h" +#include "MobileLiveness.h" +#include "Interaction.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +JNIEXPORT jint JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_initFaceEngine( + JNIEnv *jenv, jclass jcls, jstring path) { + + const char *nativeString = (char *) jenv->GetStringUTFChars(path, 0); + int result = initFaceEngine(nativeString); + jenv->ReleaseStringUTFChars(path, nativeString); + return result; +} + +JNIEXPORT jint JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_getFaceEngineVersion( + JNIEnv *jenv, jclass jcls) { + return static_cast(engine->getFaceEngineEdition()); +} + +JNIEXPORT void JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_setLivenessType( + JNIEnv *jenv, jclass jcls, jint livenessType) { + setLivenessType(static_cast(livenessType)); +} + +JNIEXPORT int JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_getLivenessType( + JNIEnv *jenv, jclass jcls) { + return static_cast(bestShotMobile->getLivenessType()); +} + +JNIEXPORT int JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_getCurrentLivenessState( + JNIEnv *jenv, jclass jcls) { + return static_cast(livenessCallback.currentLivenessState); +} + +JNIEXPORT jbyteArray JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_getFaceDescriptorFromLastWarpedShot( + JNIEnv* jenv, jclass jcls) { + + jbyteArray descrBuffer = nullptr; + fsdk::Image& warp = livenessCallback.getFrameInfo().warp; + + auto descriptorStatus = engine->createDescriptor(); + if(descriptorStatus.isError()) { + LOG_FATAL("Native", "Failed to create descriptor!! reason %s", descriptorStatus.what()); + return descrBuffer; + } + auto descriptor = descriptorStatus.getValue(); + + auto extractStatus = descriptorExtractor->extractFromWarpedImage(warp, descriptor); + if(extractStatus.isError()) { + LOG_FATAL("Native", "Failed to extract descriptor!! reason %s", extractStatus.what()); + return descrBuffer; + } + std::vector descData = {}; + descData.resize(descriptor->getDescriptorLength()); + bool descrIsOk = descriptor->getDescriptor(descData.data()); + if(!descrIsOk) { + LOG_FATAL("Native", "Failed to write descriptor into buffer!"); + return descrBuffer; + } + + LOG_INFO("Native", "Descriptor extracted!!!!!!!!!"); + + descrBuffer = jenv->NewByteArray(descData.size()); + jenv->SetByteArrayRegion(descrBuffer, 0, descData.size(), reinterpret_cast(descData.data())); + return descrBuffer; +} + +JNIEXPORT jfloat JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_matchDescriptors( + JNIEnv* jenv, jclass jcls, jbyteArray first, jbyteArray second) { + + jbyte* firstDescriptor = jenv->GetByteArrayElements(first, NULL); + jsize firstDescrSize = jenv->GetArrayLength(first); + + jbyte* secondDescriptor = jenv->GetByteArrayElements(second, NULL); + jsize secondDescrSize = jenv->GetArrayLength(second); + + // copy to std vector + std::vector descriptorData1, descriptorData2; + + descriptorData1.assign((uint8_t*)firstDescriptor, (uint8_t*)firstDescriptor + firstDescrSize); + descriptorData2.assign((uint8_t*)secondDescriptor, (uint8_t*)secondDescriptor + secondDescrSize); + + + jenv->ReleaseByteArrayElements(first, firstDescriptor, 0); + jenv->ReleaseByteArrayElements(second, secondDescriptor, 0); + + registerDescriptor->setDescriptor(descriptorData1.data()); + authDescriptor->setDescriptor(descriptorData2.data()); + + auto matchResult = descriptorMatcher->match(registerDescriptor, authDescriptor); + if(matchResult.isError()) { + LOG_FATAL("Native","Failed to match descriptors! reason: %s",matchResult.what()); + return 0.f; + } + + float similarity = matchResult.getValue().similarity; + + LOG_INFO("Native","Descriptor similarity is %f", similarity); + + return similarity; +} + +JNIEXPORT void JNICALL Java_ru_visionlab_femdemo_JavaBindings_TrackEngine_pushFrame( + JNIEnv* jenv, jclass jcls, jbyteArray jbuffer, jint width, jint height) { + + static uint32_t frameCounter = 0; + + //convert java buff to fsdk::Image + std::vector buff; + buff.resize(jenv->GetArrayLength(jbuffer)); + jenv->GetByteArrayRegion(jbuffer, 0, buff.size(), reinterpret_cast(buff.data())); + + fsdk::Image imageRGB(width, height, fsdk::Format::R8G8B8, buff.data()); + LOG_INFO("CHECKCHECK","Try to push frame %d", frameCounter); + + bool framePushed = bestShotMobile->pushFrame(imageRGB, frameCounter); + if (!framePushed) { + LOG_WARN("CHECKCHECK", "Frame %d was skipped! Image queue is full!", frameCounter); + } + else { +// LOG_INFO("MobileLiveness" , "Frame %d was pushed", frameCounter); + } + + frameCounter++; +} + +JNIEXPORT void JNICALL Java_ru_visionlab_femdemo_JavaBindings_TrackEngine_resetBestShotSearch(JNIEnv* jenv, jclass jcls) { + livenessCallback.bestWarpedShotReady = false; +} + +JNIEXPORT jintArray JNICALL Java_ru_visionlab_femdemo_JavaBindings_TrackEngine_getDetection(JNIEnv* jenv, jclass jcls) { + jintArray result; + + LOG_INFO("Native", "getDetection()!"); + result = jenv->NewIntArray(4); + fsdk::Rect box = livenessCallback.getCurrentDetection().getRect(); + int boxBuf[4] = {box.x, box.y, box.width, box.height}; + jenv->SetIntArrayRegion(result, 0, 4, boxBuf); + + return result; +} + +JNIEXPORT jbyteArray JNICALL Java_ru_visionlab_femdemo_JavaBindings_TrackEngine_getBestFrameBuffer(JNIEnv* env, jclass jls) +{ + fsdk::Image& warp = livenessCallback.getFrameInfo().warp; + fsdk::Image warpRGBA = {}; + auto convertResult = warp.convert(warpRGBA, fsdk::Format::R8G8B8X8); + if(convertResult.isError()) { + LOG_FATAL("Native", "Failed to convert image to 8888 format! reason: %s",convertResult.what()); + return nullptr; + } + + const int bufferSize = warpRGBA.getWidth() * warpRGBA.getHeight() * warpRGBA.getFormat().getByteDepth(); + LOG_INFO("Native", "warp size = %d bytes", bufferSize); + jbyteArray outputBuffer = env->NewByteArray(bufferSize); + env->SetByteArrayRegion(outputBuffer, 0, bufferSize, static_cast(warpRGBA.getData())); + return outputBuffer; +} + + +JNIEXPORT jboolean JNICALL Java_ru_visionlab_femdemo_JavaBindings_TrackEngine_bestShotFound(JNIEnv* env, jclass jls) +{ +// LOG_INFO("Native","BestShot found? %d", frameCallbacks.bestShotFound); + return livenessCallback.isBestshotFound(); +} + +JNIEXPORT jboolean JNICALL Java_ru_visionlab_femdemo_JavaBindings_TrackEngine_haveFaceDetection(JNIEnv* env, jclass jls) +{ + + return livenessCallback.getCurrentDetection().isValid(); +} + + +JNIEXPORT void JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_startCheck(JNIEnv *jenv, + jclass jcls) +{ + resetInteraction(); +} + + +JNIEXPORT jint JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_getInteractionType(JNIEnv *jenv, + jclass jcls) +{ + return interactionCtx.currentType; +} + +JNIEXPORT jint JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_checkCurrentStage(JNIEnv *jenv, + jclass jcls) +{ + return 0; +} + +JNIEXPORT int JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_getInteractionState(JNIEnv *jenv, + jclass jcls) +{ + return interactionCtx.currentState.load(); +} + +JNIEXPORT void JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_setEyeInteraction(JNIEnv *jenv, + jclass jcls) +{ + selectEyeInteraction(); +} + +JNIEXPORT void JNICALL Java_ru_visionlab_femdemo_JavaBindings_FaceEngine_resetInteraction(JNIEnv *jenv, + jclass jcls) +{ + resetInteraction(); +} + +#ifdef __cplusplus +} +#endif + diff --git a/examples/example_bestshot/example/app/src/main/jni/CMakeLists.txt b/examples/example_bestshot/example/app/src/main/jni/CMakeLists.txt new file mode 100644 index 0000000..933cb82 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.4.1) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../cmake/") + +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH) + +find_package(FaceEngineSDK REQUIRED) +find_package(TrackEngineSDK REQUIRED) + +add_library(wrapper SHARED + Bridge.cpp + Interaction.cpp + Common.cpp + MobileLiveness.cpp +) + +target_include_directories(wrapper PUBLIC + ./ + ${FSDK_INCLUDE_DIRS} + ${TSDK_INCLUDE_DIRS} +) +message(STATUS "OPENCV DIR IS ${OpenCV_INCLUDE_DIRS}") +add_library(faceSdkEngine_prebuilt SHARED IMPORTED) +set_property(TARGET faceSdkEngine_prebuilt PROPERTY IMPORTED_LOCATION "${FSDK_ROOT}/lib/clang/${ANDROID_ABI}/libFaceEngineSDK.so") + +add_library(flower_prebuilt SHARED IMPORTED) +set_property(TARGET flower_prebuilt PROPERTY IMPORTED_LOCATION "${FSDK_ROOT}/lib/clang/${ANDROID_ABI}/libflower.so") + +add_library(trackEngine_prebuilt SHARED IMPORTED) +set_property(TARGET trackEngine_prebuilt PROPERTY IMPORTED_LOCATION "${FSDK_ROOT}/lib/clang/${ANDROID_ABI}/libTrackEngineSDK.so") + +add_library(bsmobile_prebuilt SHARED IMPORTED) +set_property(TARGET bsmobile_prebuilt PROPERTY IMPORTED_LOCATION "${FSDK_ROOT}/lib/clang/${ANDROID_ABI}/libBestShotMobile.so") + +find_library(loglib log PATH "${ANDROID_NDK}/platforms/${ANDROID_PLATFORM}/arch-${ANDROID_SYSROOT_ABI}/usr/lib/") + +target_link_libraries( wrapper PUBLIC + trackEngine_prebuilt + faceSdkEngine_prebuilt + flower_prebuilt + bsmobile_prebuilt + ${loglib} +) diff --git a/examples/example_bestshot/example/app/src/main/jni/Common.cpp b/examples/example_bestshot/example/app/src/main/jni/Common.cpp new file mode 100644 index 0000000..a0ae306 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/Common.cpp @@ -0,0 +1,161 @@ +#include "Common.h" +#include "MobileLiveness.h" +#include "Interaction.h" +IFaceEngineMobilePtr engine = nullptr; +ITrackEnginePtr t_engine = nullptr; +BestShotMobilePtr bestShotMobile = nullptr; +ISettingsProviderPtr bestShotConfig = nullptr; +IEyeEstimatorPtr eye = nullptr; + + +IDescriptorPtr authDescriptor = nullptr; +IDescriptorPtr registerDescriptor = nullptr; +IDescriptorMatcherPtr descriptorMatcher = nullptr; +IDescriptorExtractorPtr descriptorExtractor = nullptr; +IWarperPtr warper = nullptr; + +enum SDKInit { + SUCCESS = 0, + LICENSE_FAILED, + OBJ_CREATION_FAILED, + DEMO_TO_SDK_INCOMPATIBILITY +}; + +int initFaceEngine(char const *dataPath) { + LOG_INFO("[INIT FACEENGINE]","Load Face Engine data path: %s \n", dataPath); + + auto fsdkEngineStatus = fsdk::createFaceEngineMobile(dataPath); + if(fsdkEngineStatus.isError()) { + LOG_FATAL("[INIT FACEENGINE]","Failed to create face engine instance.\n"); + return OBJ_CREATION_FAILED; + } + engine = fsdkEngineStatus.getValue(); + + const std::string licenseConfPath = std::string{dataPath} + "/license.conf"; + + fsdk::ILicense* license = engine->getLicense(); + + if (!license) { + LOG_FATAL("[INIT FACEENGINE]","failed to get license!"); + return LICENSE_FAILED; + } + + if (!fsdk::activateLicense(license, licenseConfPath.c_str())) { + LOG_FATAL("[INIT FACEENGINE]","failed to activate license!"); + return LICENSE_FAILED; + } + + const std::string trackConfPath = std::string{dataPath} + "/trackengine.conf"; + auto teConfigStatus = fsdk::createSettingsProvider(trackConfPath.c_str()); + if(teConfigStatus.isError()) { + LOG_FATAL("[INIT FACEENGINE]","Failed to create track engine config.: \n"); + return OBJ_CREATION_FAILED; + } + ISettingsProviderPtr teConfig = teConfigStatus.getValue(); + + teConfig->setValue("other","detector-scaling", 1); + teConfig->setValue("other","scale-result-size", 320); + teConfig->setValue("other","skip-frames", 1); + teConfig->setValue("other", "callback-buffer-size", 1); + teConfig->setValue("other", "frame-buffer-size", 1); + teConfig->setValue("other", "fragment-buffer-size", 1); + +#ifdef RUNNING_OFFLINE_VERSION + if(engine->getFaceEngineEdition() == fsdk::FaceEngineEdition::FrontEndEdition) { + LOG_FATAL("[INIT FACEENGINE]","Attempt to run offline demo using Luna SDK FrontEnd Edition \n"); + return DEMO_TO_SDK_INCOMPATIBILITY; + } +#endif + auto tsdkEngineStatus = tsdk::createTrackEngine(engine, teConfig); + if(tsdkEngineStatus.isError()) { + LOG_FATAL("[INIT FACEENGINE]","Failed to create track engine instance.: \n"); + return OBJ_CREATION_FAILED; + } + t_engine = tsdkEngineStatus.getValue(); + + const std::string bsMobileConfPath = std::string{dataPath} + "/bestshotmobile.conf"; + auto bestShotConfigStatus = fsdk::createSettingsProvider(bsMobileConfPath.c_str()); + if(bestShotConfigStatus.isError()) { + LOG_FATAL("[INIT FACEENGINE]", "Failed to create bestshotmobile settings provider from path %s!\n", + bsMobileConfPath.c_str()); + return OBJ_CREATION_FAILED; + } + bestShotConfig = bestShotConfigStatus.getValue(); + + bestShotConfig->setValue("BestShotMobile::Settings", "LivenessType", 0); + bestShotConfig->setValue("LivenessOffline::Settings", "MinCheckCount", 7); + + bestShotMobile.reset(mobile::createBestShotMobile(engine, t_engine, bestShotConfig)); + + if(!bestShotMobile) { + LOG_FATAL("[INIT FACEENGINE]","Failed to create bestshot mobile instance.: \n"); + return OBJ_CREATION_FAILED; + } + + bestShotMobile->setBestShotMobileObserver(&livenessCallback); + + + if(engine->getFaceEngineEdition() == fsdk::FaceEngineEdition::CompleteEdition) { + auto descrExtractorStatus = engine->createExtractor(); + if(descrExtractorStatus.isError()) { + LOG_INFO("[INIT FACEENGINE]", "Failed to create descriptorExtractor!\n"); + return OBJ_CREATION_FAILED; + } + descriptorExtractor = descrExtractorStatus.getValue(); + + auto matcherStatus = engine->createMatcher(); + if(matcherStatus.isError()) { + LOG_INFO("[INIT FACEENGINE]", "Failed to create matcher!\n"); + return OBJ_CREATION_FAILED; + } + descriptorMatcher = matcherStatus.getValue(); + + auto descrStatus = engine->createDescriptor(); + if(descrStatus.isError()) { + LOG_INFO("[INIT FACEENGINE]", "Failed to create descriptor!\n"); + return OBJ_CREATION_FAILED; + } + registerDescriptor = descrStatus.getValue(); + + descrStatus = engine->createDescriptor(); + if(descrStatus.isError()) { + LOG_INFO("[INIT FACEENGINE]", "Failed to create descriptor!\n"); + return OBJ_CREATION_FAILED; + } + authDescriptor = descrStatus.getValue(); + } + + + auto eyeEstStatus = engine->createEyeEstimator(); + if(eyeEstStatus.isError()) { + LOG_INFO("[INIT FACEENGINE]", "Failed to create eye estimator!\n"); + return OBJ_CREATION_FAILED; + } + eye = eyeEstStatus.getValue(); + + auto warperStatus = engine->createWarper(); + if (warperStatus.isError()) { + LOG_INFO("[INIT FACEENGINE]","Failed to create warper!\n"); + return OBJ_CREATION_FAILED; + } + warper = warperStatus.getValue(); + + + return SUCCESS; +} // initFaceEngine + +void setLivenessType(LivenessType livenessType) { + LOG_INFO("LivenessMobile", "enabling liveness type = %d", static_cast(livenessType)); + + bestShotConfig->setValue( + "BestShotMobile::Settings", "LivenessType", static_cast(livenessType)); + + bestShotMobile->join(); + bestShotMobile.reset(mobile::createBestShotMobile(engine, t_engine, bestShotConfig)); + bestShotMobile->setBestShotMobileObserver(&livenessCallback); + + livenessCallback.reset(); + selectEyeInteraction(); + resetInteraction(); + +} \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/jni/Common.h b/examples/example_bestshot/example/app/src/main/jni/Common.h new file mode 100644 index 0000000..5cd831e --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/Common.h @@ -0,0 +1,39 @@ +#pragma once +#include +#include +#include +#include +#include + +#include "Log.h" +#include "Timer.h" + +#include +#include +#include +#include + + +using namespace fsdk; +using namespace tsdk; +using namespace mobile; + +using ITrackEnginePtr = fsdk::Ref; +using IStreamPtr = fsdk::Ref; +using BestShotMobilePtr = std::unique_ptr; + +extern IFaceEngineMobilePtr engine; +extern ITrackEnginePtr t_engine; +extern BestShotMobilePtr bestShotMobile; +extern ISettingsProviderPtr bestShotConfig; +extern IEyeEstimatorPtr eye; + + +extern IDescriptorPtr authDescriptor; +extern IDescriptorPtr registerDescriptor; +extern IDescriptorMatcherPtr descriptorMatcher; +extern IDescriptorExtractorPtr descriptorExtractor; +extern IWarperPtr warper; + +int initFaceEngine(char const *dataPath); +void setLivenessType(LivenessType livenessType); \ No newline at end of file diff --git a/examples/example_bestshot/example/app/src/main/jni/Interaction.cpp b/examples/example_bestshot/example/app/src/main/jni/Interaction.cpp new file mode 100644 index 0000000..4339951 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/Interaction.cpp @@ -0,0 +1,83 @@ +#include "Interaction.h" +#include "Common.h" +#include "MobileLiveness.h" + +InteractionContext interactionCtx; + +static void eyeInteractionProc(const FrameInfo& frameInfo) { + + EyeCropper cropper = {}; + fsdk::Landmarks5 lm5Transformed = {}; + auto lmWarpStatus = warper->warp(frameInfo.landmarks, frameInfo.transform, lm5Transformed); + if(lmWarpStatus.isError()) { + LOG_FATAL("Interaction","Native Failed to warp incoming landmarks5! Reason: %s", lmWarpStatus.what()); + } + + EyeCropper::EyesRects eyeRects = cropper.cropByLandmarks5(frameInfo.warp, lm5Transformed); + fsdk::EyesEstimation output = {}; + auto eyeStatus = eye->estimate(frameInfo.warp, eyeRects, output); + if(eyeStatus.isError()) { + LOG_FATAL("Interaction","Native Failed to estimate eyes state on incoming image! Reason: %s", eyeStatus.what()); + } + + int interactionState = interactionCtx.currentState.load(); + + switch(interactionState) { + case INTERACTION_STARTED : {//request to open eyes + if(output.leftEye.state != fsdk::EyesEstimation::EyeAttributes::State::Open && + output.rightEye.state != fsdk::EyesEstimation::EyeAttributes::State::Open) { + LOG_WARN("Interaction","Native eyes should be opened at the beginning of the interaction session!"); + break; + } + interactionCtx.currentState = INTERACTION_EYES_OPENED; + break; + } + + case INTERACTION_EYES_OPENED : { + if(output.leftEye.state != fsdk::EyesEstimation::EyeAttributes::State::Closed && + output.rightEye.state != fsdk::EyesEstimation::EyeAttributes::State::Closed) { + LOG_WARN("Interaction","Native Close your eyes!"); + break; + } + interactionCtx.currentState = INTERACTION_EYES_CLOSED; + break; + } + + case INTERACTION_EYES_CLOSED : { + if(output.leftEye.state != fsdk::EyesEstimation::EyeAttributes::State::Open && + output.rightEye.state != fsdk::EyesEstimation::EyeAttributes::State::Open) { + LOG_WARN("Interaction","Native Open your eyes again!"); + break; + } + + interactionCtx.currentState = INTERACTION_EYES_OPENED_AGAIN; + break; + } + + case INTERACTION_EYES_OPENED_AGAIN : { + LOG_WARN("Interaction","Native Success!"); + interactionCtx.currentState = INTERACTION_SUCCESS; + break; + } + + case INTERACTION_SUCCESS : { + break; + } + + default: interactionCtx.currentState = INTERACTION_STARTED; + } +} + + +void selectEyeInteraction() { + interactionCtx.currentType = INTERACTION_EYE; + interactionCtx.currentState = INTERACTION_STARTED; + interactionCtx.proc = eyeInteractionProc; + interactionCtx.interactionStarted = true; +} + + +void resetInteraction() { + interactionCtx.currentState = INTERACTION_STARTED; +} + diff --git a/examples/example_bestshot/example/app/src/main/jni/Interaction.h b/examples/example_bestshot/example/app/src/main/jni/Interaction.h new file mode 100644 index 0000000..d76c033 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/Interaction.h @@ -0,0 +1,38 @@ +#pragma once + +#include +#include + +#include +#include + +enum InteractionType { + INTERACTION_EYE = 0 +}; + +enum InteractionState { + INTERACTION_FAILED = 0, + INTERACTION_STARTED, + + INTERACTION_EYES_OPENED, + INTERACTION_EYES_CLOSED, + INTERACTION_EYES_OPENED_AGAIN, + + INTERACTION_SUCCESS +}; + +struct FrameInfo; +using interactionProc = std::function; + +struct InteractionContext { + std::atomic currentState; + bool interactionStarted = false; + InteractionType currentType; + interactionProc proc; +}; + +extern InteractionContext interactionCtx; + +void selectEyeInteraction(); + +void resetInteraction(); diff --git a/examples/example_bestshot/example/app/src/main/jni/Log.h b/examples/example_bestshot/example/app/src/main/jni/Log.h new file mode 100644 index 0000000..673e6b6 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/Log.h @@ -0,0 +1,7 @@ +#pragma once + +#include + +#define LOG_INFO(TAG, ...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__); +#define LOG_WARN(TAG, ...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__); +#define LOG_FATAL(TAG, ...) __android_log_print(ANDROID_LOG_FATAL, TAG, __VA_ARGS__); diff --git a/examples/example_bestshot/example/app/src/main/jni/MobileLiveness.cpp b/examples/example_bestshot/example/app/src/main/jni/MobileLiveness.cpp new file mode 100644 index 0000000..c15396d --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/MobileLiveness.cpp @@ -0,0 +1,114 @@ +#include "MobileLiveness.h" + +#include "Log.h" +#include "Common.h" +#include "Interaction.h" + +#include +#include + +static const char* logTag = "MobileLiveness"; + +MobileLivenessCallback livenessCallback; + +static const char* livenessStateToStr(LivenessState state) { + switch(state) { + case LivenessState::Alive : return "Alive"; + case LivenessState::Fake : return "Fake"; + case LivenessState::None : return "None"; + case LivenessState::NotReady : return "NotReady"; + case LivenessState::BadHeadPose : return "BadHeadPose"; + case LivenessState::BadQuality : return "BadQuality"; + case LivenessState::FaceNotFound : return "FaceNotFound"; + case LivenessState::FaceTooClose : return "FaceTooClose"; + case LivenessState::FaceCloseToBorder : return "FaceCloseToBorder"; + case LivenessState::FaceTooSmall : return "FaceTooSmall"; + case LivenessState::TooManyFaces : return "TooManyFaces"; + case LivenessState::Timeout : return "Timeout"; + case LivenessState::CriticalError : return "CriticalError"; + default : return "Unknown"; + } +} + +void MobileLivenessCallback::bestShot(const BestShotInfo& bestShotInfo) { + LOG_INFO(logTag, "MobileLivenessCallback::bestShot() frame id = %d", bestShotInfo.frameIndex); + + switch (bestShotInfo.state) { + case BestShotState::Ok : { + + LOG_INFO(logTag, "Bestshot state = ok!"); + { + std::lock_guard lk(sharedLock); + currentFrameInfo.transform = warper->createTransformation( + bestShotInfo.detection, bestShotInfo.landmarks + ); + auto warpStatus = warper->warp( + bestShotInfo.image, currentFrameInfo.transform, currentFrameInfo.warp + ); + if (warpStatus.isError()) { + LOG_FATAL(logTag, "Failed to warp incoming frame! reason : %s", warpStatus.what()); + bestWarpedShotReady = false; + } else { + bestWarpedShotReady = true; + } + currentFrameInfo.detection = bestShotInfo.detection; + currentFrameInfo.landmarks = bestShotInfo.landmarks; + cv.notify_one(); + } + + if(bestShotMobile->getLivenessType() == mobile::LivenessType::Offline) { + LOG_INFO(logTag, "interaction on frame = %d", bestShotInfo.frameIndex); + interactionCtx.proc(currentFrameInfo); + } + + break; + } + case BestShotState::BadQuality : { + LOG_WARN(logTag, "Bestshot state = BadQuality!"); + // Notify user about bad quality! + break; + } + case BestShotState::BadHeadPose : { + LOG_WARN(logTag, "Bestshot state = BadHeadPose!"); + // Notify user about bad head pose! + break; + } + case BestShotState::Error : { + LOG_FATAL(logTag, "Bestshot state = Error!"); + break; + } + default : { + assert(!"WTF IS THAT"); + } + } +} + +void MobileLivenessCallback::liveness(const LivenessState livenessState, const BestShotInfo& bestShotInfo) { + LOG_INFO(logTag," liveness state = %s", livenessStateToStr(livenessState)); + currentLivenessState = livenessState; +} + +void MobileLivenessCallback::trackEnd(const tsdk::TrackId& trackId) { + LOG_INFO(logTag, "Track ended!") +} + +FrameInfo& MobileLivenessCallback::getFrameInfo() { + LOG_INFO(logTag,"Entering getBestWarpedShot()"); + std::unique_lock lock(sharedLock); + cv.wait_for(lock, std::chrono::milliseconds(1000), [&]{return bestWarpedShotReady;}); + return currentFrameInfo; +} + +fsdk::Detection MobileLivenessCallback::getCurrentDetection() { + return currentFrameInfo.detection; +} + +bool MobileLivenessCallback::isBestshotFound() { + return bestWarpedShotReady; +} + +void MobileLivenessCallback::reset() { + currentLivenessState = LivenessState::NotReady; + bestWarpedShotReady = false; +} + diff --git a/examples/example_bestshot/example/app/src/main/jni/MobileLiveness.h b/examples/example_bestshot/example/app/src/main/jni/MobileLiveness.h new file mode 100644 index 0000000..36a1d4c --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/MobileLiveness.h @@ -0,0 +1,41 @@ +// +// Created by Lesha on 7/15/2020. +// +#include + +#include +#include + +using namespace mobile; + +struct FrameInfo { + fsdk::Detection detection; + fsdk::Landmarks5 landmarks; + fsdk::Transformation transform; + fsdk::Image warp; +}; + +struct MobileLivenessCallback : IBestShotMobileObserver { + + void bestShot(const BestShotInfo& bestShotInfo) override; + + void liveness(const LivenessState livenessState, const BestShotInfo& bestShotInfo) override; + + void trackEnd(const tsdk::TrackId& trackId) override; + + bool isBestshotFound(); + + FrameInfo& getFrameInfo(); + + fsdk::Detection getCurrentDetection(); + + void reset(); + + FrameInfo currentFrameInfo; + std::condition_variable cv; + std::mutex sharedLock; + LivenessState currentLivenessState = LivenessState::NotReady; + bool bestWarpedShotReady = false; +}; + +extern MobileLivenessCallback livenessCallback; diff --git a/examples/example_bestshot/example/app/src/main/jni/Timer.h b/examples/example_bestshot/example/app/src/main/jni/Timer.h new file mode 100644 index 0000000..8cf2b11 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/jni/Timer.h @@ -0,0 +1,59 @@ +// +// Created by Aleksey on 17.07.2018. +// + +#ifndef TIMER_H +#define TIMER_H + +#include + +using timepoint = std::chrono::time_point; +using deltaMs = std::chrono::duration>; +using deltaMcs = std::chrono::duration>; + +struct Timer { + + timepoint begin; + + inline void start() + { + begin = std::chrono::steady_clock::now(); + } + + double stop() + { + deltaMs ms; + timepoint end = std::chrono::steady_clock::now(); + auto t = end - begin; + ms = std::chrono::duration_cast(t); + return ms.count(); + } + +}; + +struct scoped_timer { + + timepoint begin; + const char* message; + + scoped_timer(const char* msg):message(msg) + { + begin = std::chrono::steady_clock::now(); + } + + ~scoped_timer() + { + deltaMs ms; + timepoint end = std::chrono::steady_clock::now(); + auto t = end - begin; + ms = std::chrono::duration_cast(t); + LOG_INFO(message,"Finished within %f [ms]",ms.count()); + } + +}; + +# define TIMER_CONCAT_IMPL(name, num) name##num +# define TIMER_CONCAT(name, num) TIMER_CONCAT_IMPL(name, num) +# define PROFILE_SCOPE(name) scoped_timer TIMER_CONCAT(timer,__COUNTER__)(name) + +#endif //EXAMPLE_TIMER_H diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/flip_cam.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/flip_cam.png new file mode 100644 index 0000000..0cfe52d Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/flip_cam.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_face_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_face_found.png new file mode 100644 index 0000000..6940f1f Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_face_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_face_not_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_face_not_found.png new file mode 100644 index 0000000..ca14370 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_face_not_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_fingerprint.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_fingerprint.png new file mode 100644 index 0000000..0fbddf2 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_fingerprint.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_password_ok.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_password_ok.png new file mode 100644 index 0000000..3527a5c Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_password_ok.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_register.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_register.png new file mode 100644 index 0000000..a6e1042 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_register.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_settings.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_settings.png new file mode 100644 index 0000000..d2d32d0 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_settings.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_toolbar_close.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_toolbar_close.png new file mode 100644 index 0000000..f269ff3 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_toolbar_close.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_warning.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_warning.png new file mode 100644 index 0000000..f33b990 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/ic_warning.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/logo.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/logo.png new file mode 100644 index 0000000..2d6a940 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/logo.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask.png new file mode 100644 index 0000000..45eabc5 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask_big.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask_big.png new file mode 100644 index 0000000..8a83e7e Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask_big.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask_small.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask_small.png new file mode 100644 index 0000000..f29e13d Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/mask_small.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/splash.png b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000..6d4b449 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-hdpi/splash.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/flip_cam.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/flip_cam.png new file mode 100644 index 0000000..0cfe52d Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/flip_cam.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_face_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_face_found.png new file mode 100644 index 0000000..f71dd89 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_face_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_face_not_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_face_not_found.png new file mode 100644 index 0000000..5fb2d6b Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_face_not_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_fingerprint.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_fingerprint.png new file mode 100644 index 0000000..126e63a Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_fingerprint.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_password_ok.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_password_ok.png new file mode 100644 index 0000000..3a2ca3f Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_password_ok.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_register.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_register.png new file mode 100644 index 0000000..a023e4a Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_register.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_settings.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_settings.png new file mode 100644 index 0000000..db16ca0 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_settings.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_toolbar_close.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_toolbar_close.png new file mode 100644 index 0000000..4709593 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_toolbar_close.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_warning.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_warning.png new file mode 100644 index 0000000..7836e1a Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/ic_warning.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/logo.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/logo.png new file mode 100644 index 0000000..7665494 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/logo.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask.png new file mode 100644 index 0000000..080b481 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask_big.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask_big.png new file mode 100644 index 0000000..a26e8d4 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask_big.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask_small.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask_small.png new file mode 100644 index 0000000..2046fd9 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/mask_small.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/splash.png b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/splash.png new file mode 100644 index 0000000..6d4b449 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-mdpi/splash.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/flip_cam.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/flip_cam.png new file mode 100644 index 0000000..0cfe52d Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/flip_cam.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_face_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_face_found.png new file mode 100644 index 0000000..3e6340a Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_face_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_face_not_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_face_not_found.png new file mode 100644 index 0000000..6d6a50b Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_face_not_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_fingerprint.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_fingerprint.png new file mode 100644 index 0000000..e843272 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_fingerprint.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_password_ok.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_password_ok.png new file mode 100644 index 0000000..655ff80 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_password_ok.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_register.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_register.png new file mode 100644 index 0000000..2e75065 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_register.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_settings.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_settings.png new file mode 100644 index 0000000..f7684c4 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_settings.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_toolbar_close.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_toolbar_close.png new file mode 100644 index 0000000..6aaf771 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_toolbar_close.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_warning.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_warning.png new file mode 100644 index 0000000..c094b76 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/ic_warning.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/logo.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/logo.png new file mode 100644 index 0000000..2e78571 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/logo.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask.png new file mode 100644 index 0000000..42ce970 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask_big.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask_big.png new file mode 100644 index 0000000..80c7eee Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask_big.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask_small.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask_small.png new file mode 100644 index 0000000..56bd389 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/mask_small.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/splash.png b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000..6d4b449 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xhdpi/splash.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/flip_cam.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/flip_cam.png new file mode 100644 index 0000000..0cfe52d Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/flip_cam.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_face_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_face_found.png new file mode 100644 index 0000000..65ac410 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_face_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_face_not_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_face_not_found.png new file mode 100644 index 0000000..21888ad Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_face_not_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_fingerprint.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_fingerprint.png new file mode 100644 index 0000000..5336475 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_fingerprint.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_password_ok.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_password_ok.png new file mode 100644 index 0000000..fe008d2 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_password_ok.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_register.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_register.png new file mode 100644 index 0000000..bed3e72 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_register.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_settings.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_settings.png new file mode 100644 index 0000000..c5a8161 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_settings.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_toolbar_close.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_toolbar_close.png new file mode 100644 index 0000000..30b9c1e Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_toolbar_close.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_warning.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_warning.png new file mode 100644 index 0000000..6760843 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/ic_warning.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/logo.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/logo.png new file mode 100644 index 0000000..27659e6 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/logo.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask.png new file mode 100644 index 0000000..1691688 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask_big.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask_big.png new file mode 100644 index 0000000..05315fb Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask_big.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask_small.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask_small.png new file mode 100644 index 0000000..6f9eee7 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/mask_small.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/splash.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/splash.png new file mode 100644 index 0000000..6d4b449 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxhdpi/splash.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/flip_cam.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/flip_cam.png new file mode 100644 index 0000000..0cfe52d Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/flip_cam.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_face_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_face_found.png new file mode 100644 index 0000000..cad0230 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_face_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_face_not_found.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_face_not_found.png new file mode 100644 index 0000000..a0681bc Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_face_not_found.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_fingerprint.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_fingerprint.png new file mode 100644 index 0000000..a75f3dc Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_fingerprint.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_password_ok.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_password_ok.png new file mode 100644 index 0000000..5b21135 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_password_ok.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_register.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_register.png new file mode 100644 index 0000000..7e48a19 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_register.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_settings.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_settings.png new file mode 100644 index 0000000..d795ce7 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_settings.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_toolbar_close.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_toolbar_close.png new file mode 100644 index 0000000..f7e617a Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_toolbar_close.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_warning.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_warning.png new file mode 100644 index 0000000..ed3cd8b Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/ic_warning.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/logo.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/logo.png new file mode 100644 index 0000000..073e192 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/logo.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask.png new file mode 100644 index 0000000..d752596 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask_big.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask_big.png new file mode 100644 index 0000000..b8192dc Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask_big.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask_small.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask_small.png new file mode 100644 index 0000000..51dbb29 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/mask_small.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/splash.png b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/splash.png new file mode 100644 index 0000000..6d4b449 Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable-xxxhdpi/splash.png differ diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/activity_register_new.xml b/examples/example_bestshot/example/app/src/main/res/drawable/activity_register_new.xml new file mode 100644 index 0000000..6ea1032 --- /dev/null +++ b/examples/example_bestshot/example/app/src/main/res/drawable/activity_register_new.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +