| Face Engine SDK 5.2.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 {
12 typedef Vector2<float> Landmark;
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
57 using Landmarks5 = Landmarks<5>;
59 using Landmarks68 = Landmarks<68>;
60
64 struct Landmarks5Indexes {
65 enum {
66 LandmarkLeftEye = 0,
67 LandmarkRightEye,
68 LandmarkNose,
69 LandmarkMouthLeftCorner,
70 LandmarkMouthRightCorner,
71 LandmarkCount
72 };
73 };
74
80 Landmarks5 FSDK_API convert(const Landmarks68& landmarks);
81 }
fsdk::Landmarks5Indexes::LandmarkMouthLeftCorner
@ LandmarkMouthLeftCorner
Mouth left corner. Same as FL_MOUTH_LEFT_CORNER.
Definition: Landmarks.h:69
fsdk::Landmarks::landmarks
Landmark landmarks[landmarkCount]
Detected landmarks.
Definition: Landmarks.h:24
fsdk::Vector2< float >
fsdk::Landmarks5Indexes::LandmarkCount
@ LandmarkCount
Not a landmark; counts number of detected landmarks.
Definition: Landmarks.h:71
fsdk
SDK namespace.
Definition: IAGSEstimator.h:8
fsdk::Landmarks5Indexes::LandmarkNose
@ LandmarkNose
Nose tip. Same as FL_NOSE_TIP.
Definition: Landmarks.h:68
fsdk::Landmarks5Indexes::LandmarkRightEye
@ LandmarkRightEye
Right eye center.
Definition: Landmarks.h:67
FSDK_API
#define FSDK_API
Dummy.
Definition: Def.h:27
fsdk::Landmarks
Face landmarks template structure.
Definition: Landmarks.h:20
fsdk::convert
Landmarks5 FSDK_API convert(const Landmarks68 &landmarks)
convert landmarks68 into landmarks5
fsdk::Landmark
Vector2< float > Landmark
Landmark floating point coordinates type.
Definition: Landmarks.h:12
fsdk::Landmarks5Indexes::LandmarkLeftEye
@ LandmarkLeftEye
Left eye center.
Definition: Landmarks.h:66
fsdk::Landmarks5Indexes
Enumerates detected landmarks. Only valid for template with 5 landmarks.
Definition: Landmarks.h:64
fsdk::Landmarks5Indexes::LandmarkMouthRightCorner
@ LandmarkMouthRightCorner
Mouth right corner. Same as FL_MOUTH_RIGHT_CORENR.
Definition: Landmarks.h:70