3 #include <VirtualRobot/Visualization/TriMeshModel.h>
5 armarx::DebugDrawerTriMesh
8 DebugDrawerTriMesh ddMesh;
10 auto addVertex = [&](
const Eigen::Vector3f&
v)
12 ddMesh.vertices.push_back({
v(0),
v(1),
v(2)});
13 return (
int)ddMesh.vertices.size() - 1;
18 ddMesh.colors.push_back(DrawColor{
c.r,
c.g,
c.b,
c.transparency});
19 return (
int)ddMesh.colors.size() - 1;
21 ddMesh.faces.reserve(trimesh.faces.size());
22 ddMesh.vertices.reserve(trimesh.vertices.size());
23 ddMesh.colors.reserve(trimesh.colors.size());
25 for (
auto& f : trimesh.faces)
28 f2.vertex1.vertexID = addVertex(trimesh.vertices.at(f.id1));
29 f2.vertex2.vertexID = addVertex(trimesh.vertices.at(f.id2));
30 f2.vertex3.vertexID = addVertex(trimesh.vertices.at(f.id3));
31 if (f.idNormal1 != UINT_MAX)
33 f2.vertex1.normalID = addVertex(trimesh.normals.at(f.idNormal1));
34 f2.vertex2.normalID = addVertex(trimesh.normals.at(f.idNormal2));
35 f2.vertex3.normalID = addVertex(trimesh.normals.at(f.idNormal3));
40 f2.normal = {f.normal.x(), f.normal.y(), f.normal.z()};
42 f2.vertex1.colorID = addColor(trimesh.colors.at(f.idColor1));
43 f2.vertex2.colorID = addColor(trimesh.colors.at(f.idColor2));
44 f2.vertex3.colorID = addColor(trimesh.colors.at(f.idColor3));
46 ddMesh.faces.push_back(f2);