13 #include <opencv2/highgui/highgui.hpp>
48 std::cout <<
"Usage: ed_view_model [ --file | --model ] FILE-OR-MODEL-NAME" <<
std::endl;
55 if (event == cv::EVENT_LBUTTONDBLCLK)
64 else if (event == cv::EVENT_LBUTTONDOWN)
69 else if (event == cv::EVENT_RBUTTONDOWN)
74 else if (event == cv::EVENT_MBUTTONDOWN)
79 else if (event == cv::EVENT_MOUSEMOVE)
84 if (flags & cv::EVENT_FLAG_LBUTTON)
94 else if (flags & cv::EVENT_FLAG_MBUTTON)
98 else if (flags & cv::EVENT_FLAG_RBUTTON)
109 int main(
int argc,
char **argv)
119 if (load_type_str ==
"--model")
121 else if (load_type_str ==
"--file")
159 if (
id.size() < 5 ||
id.substr(
id.size() - 5) !=
"floor")
162 for(
unsigned int i = 0; i < vertices.
size(); ++i)
175 n_vertices += e->visual()->getMesh().getPoints().size();
176 n_triangles += e->visual()->getMesh().getTriangleIs().size();
183 info_msg <<
"Model loaded successfully:" <<
std::endl;
184 info_msg <<
" " << n_vertices <<
" vertices" <<
std::endl;
185 info_msg <<
" " << n_triangles <<
" triangles" <<
std::endl;
186 info_msg <<
" " <<
"x: [" << p_min.
x <<
" - " << p_max.
x <<
"]" <<
std::endl;
187 info_msg <<
" " <<
"y: [" << p_min.
y <<
" - " << p_max.
y <<
"]" <<
std::endl;
188 info_msg <<
" " <<
"z: [" << p_min.
z <<
" - " << p_max.
z <<
"]" <<
std::endl;
192 info_msg <<
" left - orbit" <<
std::endl;
193 info_msg <<
" middle - zoom" <<
std::endl;
195 info_msg <<
" double click - fly to" <<
std::endl;
199 info_msg <<
" r - reload model" <<
std::endl;
200 info_msg <<
" v - hide all volumes, show model volumes, show room volumes" <<
std::endl;
201 info_msg <<
" c - circle rotate" <<
std::endl;
202 info_msg <<
" p - snap pitch" <<
std::endl;
215 cv::namedWindow(
"visualization", 1);
218 cv::setMouseCallback(
"visualization",
CallBackFunc, NULL);
246 cv::imshow(
"visualization",
image);
247 char key = cv::waitKey(10);
292 double dist =
diff.length();