10 #include <bnb/utils/defs.hpp>
14 namespace bnb {
namespace interfaces {
16 enum class eyewear_type;
18 struct camera_position;
25 static std::shared_ptr<face_data> create();
27 virtual std::vector<float> get_landmarks()
const = 0;
29 virtual void set_landmarks(
const std::vector<float> & lms) = 0;
31 virtual std::vector<float> get_latents()
const = 0;
33 virtual void set_latents(
const std::vector<float> & lats) = 0;
35 virtual std::vector<float> get_vertices()
const = 0;
37 virtual void set_vertices(
const std::vector<float> & verts) = 0;
39 virtual std::vector<float> get_ears_landmarks()
const = 0;
41 virtual void set_ears_landmarks(
const std::vector<float> & lms) = 0;
43 virtual std::vector<float> get_ears_latents()
const = 0;
45 virtual void set_ears_latents(
const std::vector<float> & lats) = 0;
47 virtual std::vector<float> get_brows_lms()
const = 0;
49 virtual void set_brows_lms(
const std::vector<float> & lms) = 0;
56 virtual std::vector<float> get_embeddings()
const = 0;
58 virtual bool has_lips_detected()
const = 0;
60 virtual bool has_face() = 0;
64 virtual void set_face_rect(
const pixel_rect & rect) = 0;
66 virtual gender get_gender()
const = 0;
68 virtual void set_gender(gender g) = 0;
70 virtual eyewear_type get_eyewear()
const = 0;
72 virtual void set_eyewear(eyewear_type eyewear) = 0;