28 #ifndef opengl_graph_tools_impl_H
29 #define opengl_graph_tools_impl_H
37 template<
class GRAPH_T>
45 typedef typename GRAPH_T::constraint_t constraint_t;
47 const bool is_3D_graph = constraint_t::is_3D();
51 const bool show_ID_labels = 0!=extra_params.
getWithDefaultVal(
"show_ID_labels", 0);
52 const bool show_ground_grid = 0!=extra_params.
getWithDefaultVal(
"show_ground_grid", 1);
54 const bool show_node_corners = 0!=extra_params.
getWithDefaultVal(
"show_node_corners", 1);
55 const bool show_edge_rel_poses = 0!=extra_params.
getWithDefaultVal(
"show_edge_rel_poses", 0);
56 const double nodes_point_size = extra_params.
getWithDefaultVal(
"nodes_point_size", 0. );
57 const double nodes_corner_scale = extra_params.
getWithDefaultVal(
"nodes_corner_scale", 0.7 );
58 const double nodes_edges_corner_scale = extra_params.
getWithDefaultVal(
"nodes_edges_corner_scale", 0.4 );
59 const unsigned int nodes_point_color = extra_params.
getWithDefaultVal(
"nodes_point_color", (
unsigned int)0xA0A0A0 );
60 const unsigned int edge_color = extra_params.
getWithDefaultVal(
"edge_color", (
unsigned int)0x400000FF );
61 const unsigned int edge_rel_poses_color = extra_params.
getWithDefaultVal(
"edge_rel_poses_color", (
unsigned int)0x40FF8000 );
67 TPoint3D BB_min(-10.,-10.,0.), BB_max(10.,10.,0.);
83 const double grid_frequency = 5.0;
90 if (nodes_point_size!=0)
111 if (show_node_corners || show_ID_labels)
122 gl_corner->
setName(
format(
"%u",static_cast<unsigned int>(itNod->first) ));
129 if (show_edge_rel_poses)
131 const TColor col8bit(edge_rel_poses_color & 0xffffff, edge_rel_poses_color >> 24);
136 const TNodeID node_id_start = g.edges_store_inverse_poses ? itEd->first.second : itEd->first.first;
140 if (itNod!=g.nodes.end())
147 const typename GRAPH_T::constraint_no_pdf_t & edge_pose = itEd->second.getPoseMean();
153 gl_edge_corner->
setPose(edge_pose);
154 gl_rel_edge->
insert(gl_edge_corner);
159 gl_rel_edge->
insert(gl_line);
161 ret->
insert( gl_rel_edge );
169 const TColor col8bit(edge_color & 0xffffff, edge_color >> 24);
176 const TNodeID id1 = itEd->first.first;
177 const TNodeID id2 = itEd->first.second;
182 if (itNod1!=g.nodes.end() && itNod2!=g.nodes.end())