FaceRecognition.cpp
Go to the documentation of this file.
1#include "FaceRecognition.h"
2
3#include <cmath>
4#include <map>
5#include <string>
6
8
12
14
15namespace armarx
16{
17 void
19 const std::map<std::string, armarx::armem::human::FaceRecognition>& faceRecognitions,
20 armarx::viz::Layer& faceRecognitionLayer,
21 const std::string& prefix)
22 {
23 for (const auto& [name, faceRecognition] : faceRecognitions)
24 {
26 static const int radius = 100;
27 armarx::viz::Color color = faceRecognition.profileID.has_value()
28 ? armarx::viz::Color::green()
29 : armarx::viz::Color::red();
30 Eigen::Matrix pos3D = faceRecognition.position3DGlobal;
31 armarx::viz::Sphere facePos = armarx::viz::Sphere("Face of " + name)
32 .position(pos3D.x(), pos3D.y(), pos3D.z())
33 .radius(radius)
34 .color(color);
35 Eigen::Matrix3f nameTagRotation =
36 Eigen::AngleAxisf{M_PI_2, Eigen::Vector3f::UnitX()}.toRotationMatrix();
37
38 // nameTagRotation << -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1;
39 armarx::viz::Text nameTag =
40 armarx::viz::Text("Name of" + name)
41 .text(name)
42 .scale(15)
43 .orientation(nameTagRotation)
44 .position(pos3D.x(), pos3D.y() + (int)(radius / 2) + 10, pos3D.z());
45 faceRecognitionLayer.add(facePos);
46 faceRecognitionLayer.add(nameTag);
47 }
48 }
49
50} // namespace armarx
DerivedT & color(Color color)
Definition ElementOps.h:218
DerivedT & position(float x, float y, float z)
Definition ElementOps.h:136
DerivedT & orientation(Eigen::Quaternionf const &ori)
Definition ElementOps.h:152
DerivedT & scale(Eigen::Vector3f scale)
Definition ElementOps.h:254
void addFaceRecognitionsToLayer(const std::map< std::string, armarx::armem::human::FaceRecognition > &faceRecognitions, armarx::viz::Layer &faceRecognitionLayer, const std::string &prefix)
This file offers overloads of toIce() and fromIce() functions for STL container types.
void add(ElementT const &element)
Definition Layer.h:31
Sphere & radius(float r)
Definition Elements.h:138
Text & text(std::string const &t)
Definition Elements.h:188
#define ARMARX_TRACE
Definition trace.h:77