void PlotWindow::setMarkerPosition(const QPointF& point) { if (_x_axis_measurement->currentIndex() == 0) // time emit setMarkerPosition(_data_log->indexFromTime(point.x())); else // distance emit setMarkerPosition(_data_log->indexFromDist(point.x())); }
void Selection3DDisplayCustom::processDistQuery( const std_msgs::Float64::ConstPtr& distance ) { if(distance->data < 0) return; // prevent losing data in case OCS takes longer than onboard to respond //while(raycast_request_mode_ == -1) // sleep(0.05); if(raycast_request_mode_ == RAYCAST_SELECTION) { /*if(distance->data < 0) { initialized_ = false; selection_marker_->setVisible(false); return; }*/ Ogre::Vector3 positionFinal = calculateRaycastPosition(distance->data); setMarkerPosition(positionFinal.x,positionFinal.y,positionFinal.z); raycast_request_mode_ = -1; } // else if(raycast_request_mode_ == RAYCAST_SELECTION_ROI) // { // if(!initialized_) // return; // /*if(distance->data < 0) // { // //selection_marker_->setVisible(false); // roi_marker_final_->setVisible(false); // roi_marker_box_->setVisible(false); // roi_marker_box_->setScale(0.0000001f,0.0000001f,0.0000001f); // return; // }*/ // Ogre::Vector3 positionFinal = calculateRaycastPosition(distance->data); // selection_marker_->setVisible(true); // roi_marker_final_->setPosition(positionFinal); // roi_marker_final_->setVisible(true); // Ogre::Vector3 initial_position = selection_marker_->getPosition(); // Ogre::Vector3 box_position = (initial_position+positionFinal)/2.0f; // roi_marker_box_->setPosition(box_position); // Ogre::Vector3 box_scale; // box_scale.x = fabs(positionFinal.x-initial_position.x)/100.0f; // box_scale.y = fabs(positionFinal.y-initial_position.y)/100.0f; // box_scale.z = fabs(positionFinal.z-initial_position.z)/100.0f; // roi_marker_box_->setScale(box_scale); // std::cout << "box_position: " << box_position.x << ", " << box_position.y << ", " << box_position.z << std::endl; // std::cout << "box_scale: " << box_scale.x << ", " << box_scale.y << ", " << box_scale.z << std::endl; // roi_marker_box_->setVisible(true); // Ogre::Quaternion orientation(1,0,0,0); // transform(positionFinal,orientation,fixed_frame_.toUtf8().constData(),"/world"); // selection_position_roi_ = positionFinal; // raycast_request_mode_ = -1; // } }