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;
//    }
}