Enrollment 28.2.0
Loading...
Searching...
No Matches
FaceAttributes.h
Go to the documentation of this file.
1
9
10#pragma once
11#include "enrollment/Export.h"
12#include <mutex>
13#include <ostream>
14
20
21namespace inno
22{
23
32 */
33 class FaceAttributes : public Serializable
34 {
35 public:
39 FaceAttributes() = default;
40
44 */
46 : captureDeviceTechnology(fa.GetCaptureDeviceTechnology())
47 , captureDeviceVendor(fa.GetCaptureDeviceVendorID())
48 , captureDeviceType(fa.GetCaptureDeviceTypeID())
49 , faceImageType(fa.GetFaceImageType())
50 {
51 }
52
56 */
57 FaceAttributes(FaceAttributes&& fa) noexcept
58 : captureDeviceTechnology(fa.GetCaptureDeviceTechnology())
59 , captureDeviceVendor(fa.GetCaptureDeviceVendorID())
60 , captureDeviceType(fa.GetCaptureDeviceTypeID())
61 , faceImageType(fa.GetFaceImageType())
62 {
63 }
64
69 */
71 {
72 // Checks for self-assignment of operator.
73 if (&fa == this)
74 {
75 return *this;
76 }
77
78 const std::scoped_lock lock(faceAttributeMutex, fa.faceAttributeMutex);
79
80 captureDeviceTechnology = fa.captureDeviceTechnology;
81 captureDeviceVendor = fa.captureDeviceVendor;
82 captureDeviceType = fa.captureDeviceType;
83 faceImageType = fa.faceImageType;
84
85 return *this;
86 }
87
92 */
94 {
95 const std::scoped_lock lock(faceAttributeMutex, fa.faceAttributeMutex);
96
97 captureDeviceTechnology = fa.captureDeviceTechnology;
98 captureDeviceVendor = fa.captureDeviceVendor;
99 captureDeviceType = fa.captureDeviceType;
100 faceImageType = fa.faceImageType;
101
102 return *this;
103 }
104
105 virtual ~FaceAttributes() = default;
106
112 */
113 constexpr bool operator==(const FaceAttributes& fa) const
114 {
115 return captureDeviceTechnology == fa.captureDeviceTechnology &&
116 captureDeviceVendor == fa.captureDeviceVendor && captureDeviceType == fa.captureDeviceType &&
117 faceImageType == fa.faceImageType;
118 }
119
123 */
124 void WriteTo(Writer& writer) const final
125 {
126 writer.Write("dt", static_cast<uint8_t>(captureDeviceTechnology));
127 writer.Write("dv", static_cast<unsigned int>(captureDeviceVendor));
128 writer.Write("di", static_cast<unsigned int>(captureDeviceType));
129 }
130
134 */
136 {
137 const std::scoped_lock lock(faceAttributeMutex);
138 captureDeviceTechnology = technology;
139 }
140
144 */
146 {
147 const std::scoped_lock lock(faceAttributeMutex);
148 return captureDeviceTechnology;
149 }
150
154 */
156 {
157 const std::scoped_lock lock(faceAttributeMutex);
158 captureDeviceVendor = vendor;
159 }
160
164 */
166 {
167 const std::scoped_lock lock(faceAttributeMutex);
168 return captureDeviceVendor;
169 }
170
174 */
176 {
177 const std::scoped_lock lock(faceAttributeMutex);
178 captureDeviceType = type;
179 }
180
184 */
186 {
187 const std::scoped_lock lock(faceAttributeMutex);
188 return captureDeviceType;
189 }
190
194 */
196 {
197 const std::scoped_lock lock(faceAttributeMutex);
198 faceImageType = type;
199 }
200
204 */
205 [[nodiscard]] FaceImageType GetFaceImageType() const
206 {
207 const std::scoped_lock lock(faceAttributeMutex);
208 return faceImageType;
209 }
210
211 private:
212 mutable std::mutex faceAttributeMutex;
213
215 FaceCaptureDeviceVendorID captureDeviceVendor{ 0 };
216 FaceCaptureDeviceTypeID captureDeviceType{ 0 };
217 FaceImageType faceImageType{ FaceImageType::BASIC };
218 };
219
220} // namespace inno
Face attributes Holds the face attributes.
Definition FaceAttributes.h:33
void WriteTo(Writer &writer) const final
Write itself into writer.
Definition FaceAttributes.h:123
FaceCaptureDeviceTechnology GetCaptureDeviceTechnology() const
Provides capture device technology.
Definition FaceAttributes.h:144
FaceImageType GetFaceImageType() const
Provides face image type.
Definition FaceAttributes.h:204
FaceCaptureDeviceVendorID GetCaptureDeviceVendorID() const
Provides capture device vendor ID.
Definition FaceAttributes.h:164
FaceAttributes()=default
Default constructor of face attributes.
void SetCaptureDeviceTypeID(FaceCaptureDeviceTypeID type)
Sets capture device type ID.
Definition FaceAttributes.h:174
constexpr bool operator==(const FaceAttributes &fa) const
Compares the face attributes.
Definition FaceAttributes.h:112
void SetCaptureDeviceVendorID(FaceCaptureDeviceVendorID vendor)
Sets capture device vendor ID.
Definition FaceAttributes.h:154
FaceAttributes & operator=(const FaceAttributes &fa)
Assign the face attributes.
Definition FaceAttributes.h:69
FaceCaptureDeviceTypeID GetCaptureDeviceTypeID() const
Provides capture device type ID.
Definition FaceAttributes.h:184
FaceAttributes(const FaceAttributes &fa)
Copy constructor of face attributes.
Definition FaceAttributes.h:44
FaceAttributes & operator=(FaceAttributes &&fa) noexcept
Assign the face attributes.
Definition FaceAttributes.h:92
void SetFaceImageType(FaceImageType type)
Sets face image type.
Definition FaceAttributes.h:194
FaceAttributes(FaceAttributes &&fa) noexcept
Move constructor of face attributes.
Definition FaceAttributes.h:56
void SetCaptureDeviceTechnology(FaceCaptureDeviceTechnology technology)
Sets capture device technology.
Definition FaceAttributes.h:134
Capture device type identifier The capture device type identifier shall identify the biometric organi...
Definition FaceCaptureDeviceTypeID.h:24
Capture device vendor identifier The capture device vendor identifier shall identify the biometric or...
Definition FaceCaptureDeviceVendorID.h:24
Provides interface for serialization of all classes.
Definition Writer.h:164
FaceImageType
Several face image types are introduced to define categories that satisfy requirements of some applic...
Definition FaceImageType.h:22
FaceCaptureDeviceTechnology
It indicates the class of device technology used to acquire the captured biometric sample iso_19794-5...
Definition FaceCaptureDeviceTechnology.h:21
@ BASIC
This is the fundamental Face Image Type that specifies a record format including header and represent...
Definition FaceImageType.h:26
@ UNKNOWN
Unknown or Unspecified.
Definition FaceCaptureDeviceTechnology.h:23