本文整理汇总了C++中pcl::visualization::KeyboardEvent::getKeySym方法的典型用法代码示例。如果您正苦于以下问题:C++ KeyboardEvent::getKeySym方法的具体用法?C++ KeyboardEvent::getKeySym怎么用?C++ KeyboardEvent::getKeySym使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pcl::visualization::KeyboardEvent
的用法示例。
在下文中一共展示了KeyboardEvent::getKeySym方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: simulate_callback
void simulate_callback (const pcl::visualization::KeyboardEvent &event,
void* viewer_void)
{
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer = *static_cast<boost::shared_ptr<pcl::visualization::PCLVisualizer> *> (viewer_void);
// I choose v for virtual as s for simulate is takwen
if (event.getKeySym () == "v" && event.keyDown ())
{
std::cout << "v was pressed => simulate cloud" << std::endl;
std::vector<pcl::visualization::Camera> cams;
viewer->getCameras(cams);
if (cams.size() !=1){
std::cout << "n cams not 1 exiting\n"; // for now in case ...
return;
}
// cout << "n cams: " << cams.size() << "\n";
pcl::visualization::Camera cam = cams[0];
Eigen::Affine3f pose;
pose = viewer->getViewerPose() ;
std::cout << cam.pos[0] << " "
<< cam.pos[1] << " "
<< cam.pos[2] << " p\n";
Eigen::Matrix3f m;
m =pose.rotation();
//All axies use right hand rule. x=red axis, y=green axis, z=blue axis z direction is point into the screen. z \ \ \ -----------> x | | | | | | y
cout << pose(0,0) << " " << pose(0,1) << " " << pose(0,2) << " " << pose(0,3) << " x0\n";
cout << pose(1,0) << " " << pose(1,1) << " " << pose(1,2) << " " << pose(1,3) << " x1\n";
cout << pose(2,0) << " " << pose(2,1) << " " << pose(2,2) << " " << pose(2,3)<< "x2\n";
double yaw,pitch, roll;
wRo_to_euler(m,yaw,pitch,roll);
printf("RPY: %f %f %f\n", roll*180/M_PI,pitch*180/M_PI,yaw*180/M_PI);
// matrix->GetElement(1,0);
cout << m(0,0) << " " << m(0,1) << " " << m(0,2) << " " << " x0\n";
cout << m(1,0) << " " << m(1,1) << " " << m(1,2) << " " << " x1\n";
cout << m(2,0) << " " << m(2,1) << " " << m(2,2) << " "<< "x2\n\n";
Eigen::Quaternionf rf;
rf = Eigen::Quaternionf(m);
Eigen::Quaterniond r(rf.w(),rf.x(),rf.y(),rf.z());
Eigen::Isometry3d init_pose;
init_pose.setIdentity();
init_pose.translation() << cam.pos[0], cam.pos[1], cam.pos[2];
//Eigen::Quaterniond m = euler_to_quat(-1.54, 0, 0);
init_pose.rotate(r);
//
std::stringstream ss;
print_Isometry3d(init_pose,ss);
std::cout << "init_pose: " << ss.str() << "\n";
viewer->addCoordinateSystem (1.0,pose);
double tic = getTime();
std::stringstream ss2;
ss2.precision(20);
ss2 << "simulated_pcl_" << tic << ".pcd";
capture(init_pose,ss2.str());
cout << (getTime() -tic) << " sec\n";
// these three variables determine the position and orientation of
// the camera.
// double lookat[3]; - focal location
// double eye[3]; - my location
// double up[3]; - updirection
// std::cout << view[0] << "," << view[1] << "," << view[2]
// cameras.back ().view[2] = renderer->GetActiveCamera ()->GetOrientationWXYZ()[2];
//ViewTransform->GetOrientationWXYZ();
// Superclass::OnKeyUp ();
//.........这里部分代码省略.........
示例2: keyboardEventOccurred
void Viewer::keyboardEventOccurred( const pcl::visualization::KeyboardEvent &event, void* data ) {
if( (event.getKeySym() == "d" || event.getKeySym() == "D") && event.keyDown() ) {
if( event.getKeySym() == "d" ) {
selectedDepth++;
}
else {
selectedDepth--;
if( selectedDepth < 0 )
selectedDepth = 15;
}
selectedDepth = selectedDepth % 16;
std::cout << "Selected Depth " << selectedDepth << "\n";
}
if( (event.getKeySym() == "v" || event.getKeySym() == "V") && event.keyDown() ) {
if( event.getKeySym() == "v" ) {
selectedViewDir++;
if( selectedViewDir == 7 )
selectedViewDir = -1;
}
else {
selectedViewDir--;
if( selectedViewDir < -1 )
selectedViewDir = 6;
}
std::cout << "Selected View Dir " << selectedViewDir << "\n";
}
if( (event.getKeySym() == "p") && event.keyDown() ) {
processFrame = true;
}
if( (event.getKeySym() == "h") && event.keyDown() ) {
processFrame = !processFrame;
}
if( (event.getKeySym() == "s") && event.keyDown() ) {
displayScene = !displayScene;
}
if( (event.getKeySym() == "m") && event.keyDown() ) {
displayMap = !displayMap;
}
if( (event.getKeySym() == "a") && event.keyDown() ) {
displayAll = !displayAll;
}
if( (event.getKeySym() == "c") && event.keyDown() ) {
displayCorr = !displayCorr;
}
if( (event.getKeySym() == "S") && event.keyDown() ) {
displayFeatureSimilarity = !displayFeatureSimilarity;
std::cout << "feature similarity " << (displayFeatureSimilarity ? "on" : "off") << "\n";
}
if( (event.getKeySym() == "f" || event.getKeySym() == "r" || event.getKeySym() == "N") && event.keyDown() ) {
forceRedraw = true;
}
if( (event.getKeySym() == "i") && event.keyDown() ) {
forceRedraw = true;
index++;
}
}
示例3:
void
keyboardEventOccurred(const pcl::visualization::KeyboardEvent& event, void* nothing)
{
if (event.getKeySym() == "space" && event.keyDown())
next_iteration = true;
}