Ejemplo n.º 1
0
void CmdRobotSimulate::activated(int iMsg)
{
#if 1
    const char * SelFilter = 
        "SELECT Robot::RobotObject  \n"
        "SELECT Robot::TrajectoryObject  ";

    Gui::SelectionFilter filter(SelFilter);
    Robot::RobotObject *pcRobotObject;
    Robot::TrajectoryObject *pcTrajectoryObject;

    if (filter.match()) {
        pcRobotObject = static_cast<Robot::RobotObject*>(filter.Result[0][0].getObject());
        pcTrajectoryObject = static_cast<Robot::TrajectoryObject*>(filter.Result[1][0].getObject());;
    }
    else {
        QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
            QObject::tr("Select one Robot and one Trajectory object."));
        return;
    }

    if(pcTrajectoryObject->Trajectory.getValue().getSize() < 2){
        QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Trajectory not valid"),
            QObject::tr("You need at least two way points in a trajectory to simulate."));
        return;
    }

    Gui::TaskView::TaskDialog* dlg = new TaskDlgSimulate(pcRobotObject,pcTrajectoryObject);
    Gui::Control().showDialog(dlg);
     
#else

 
   const char * SelFilter = 
       "SELECT Robot::RobotObject  \n"
       "SELECT Robot::TrajectoryObject  ";

    Gui::SelectionFilter filter(SelFilter);
    Robot::RobotObject *pcRobotObject;
    Robot::TrajectoryObject *pcTrajectoryObject;

    if(filter.match()){
        pcRobotObject = dynamic_cast<Robot::RobotObject*>(filter.Result[0][0].getObject());
        pcTrajectoryObject = dynamic_cast<Robot::TrajectoryObject*>(filter.Result[1][0].getObject());;
    }else{
        QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
            QObject::tr("Select one Robot and one Trajectory object."));
    }

    RobotGui::TrajectorySimulate dlg(pcRobotObject,pcTrajectoryObject,Gui::getMainWindow());
    dlg.exec();
#endif  
}