c++ - Save screenshot using keyboard callback event -


i trying save screenshot inside pcl visualizer window using keyboard callback event. below code snippet:

#include <pcl/io/pcd_io.h> #include <pcl/visualization/pcl_visualizer.h>  void keyboardeventoccurred (const pcl::visualization::keyboardevent &event, void* viewer) {   if (event.getkeysym () == "s" && event.keydown ())   {     viewer->savescreenshot("image.png");   } }  int main (int argc, char** argv) {     pcl::visualization::pclvisualizer viewer("cloud viewer");      pcl::pointcloud<pcl::pointxyzrgba>::ptr body (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("body.pcd", *body);     viewer.addpointcloud (body,"body");     viewer.registerkeyboardcallback (keyboardeventoccurred, &viewer);     viewer.spin();     return 0; } 

however, there mismatch between data fields , returning following error:

[100%] building cxx object cmakefiles/pcl_visualizer.dir/pcl_visualizer.cpp.o /home/ravi/pcl_visualizer/pcl_visualizer.cpp: in function ‘void keyboardeventoccurred(const pcl::visualization::keyboardevent&, void*)’: /home/ravi/pcl_visualizer/pcl_visualizer.cpp:8:11: error: ‘void*’ not pointer-to-object type      viewer->savescreenshot("image.png");            ^ make[2]: *** [cmakefiles/pcl_visualizer.dir/pcl_visualizer.cpp.o] error 1 

any workaround, please?

the error message have telling really; point of void* in callback callback provider doesn't know, or care, type of pointer being used callback.

you seem pass pointer viewer object, compiler knows or cares it's n bit number represents memory provide callback.

by removing concept of type using void*, there's no way compiler establish meant viewer->xxx.

to resolve problem, easiest way cast pointer think should be;

pcl::visualization::pclvisualizer* v = static_cast<pcl::visualization::pclvisualizer*>(viewer) 

you can v->xxx()

on side note, suggest brush on pointers in c++ book.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -