コード例 #1
0
ファイル: Vehicule.cpp プロジェクト: Minaithnir/rts-lab
/**
    cherche à éviter une unité
*/
Vector Vehicule::evade(Vehicule& target)
{
    Vector diff = target.getPosition() - m_position;
    float distance = diff.norme();
    float anticipation_time=0;
    if(target.getVelocity().norme()>0)
        anticipation_time = distance / target.getVelocity().norme();

    Vector futur_position = target.getPosition() + (target.getVelocity()*anticipation_time/2.f);
    return flee(futur_position);
}
コード例 #2
0
ファイル: Vehicule.cpp プロジェクト: Minaithnir/rts-lab
/**
    cherche à attrapper une unité
*/
Vector Vehicule::pursue(Vehicule& target, const float& offset)
{
    Vector diff = target.getPosition() - m_position;
    float distance = diff.norme();
    float anticipation_time=0;
    if(target.getVelocity().norme()>0)
        anticipation_time = distance / target.getVelocity().norme();

    Vector futur_position = target.getPosition() + (target.getVelocity()*anticipation_time/2.f);
    return seek(futur_position, offset);
}
コード例 #3
0
std::list<Vehicule> Carrefour::findVehiculeByPosition(Position * p) {
    std::list<Vehicule> vehicules;
    std::list<Vehicule *>::iterator it;
    for (it = this->objetRoutes.begin() ; it != this->objetRoutes.end() ; it++) {
        Vehicule * objr = (Vehicule *) *it;
        if (objr->getPosition() == p) {
            vehicules.push_back(*objr);
        }
    }
    return vehicules;
}
コード例 #4
0
void Carrefour::getConfiguration(Position * p) {
    QWidget * configWidget = new QWidget();
    this->config->setQWidget(configWidget);
    int taille = 50;
    std::list<Route *>::iterator itRoutes;
    for (itRoutes = this->routes.begin() ; itRoutes != this->routes.end() ; itRoutes++) {
        Route * route = (Route *) *itRoutes;
        if (*(route->getPosition()) == *p) {
            this->config->setRoute(route);
            QLabel * label = new QLabel("Route", configWidget);
            label->move(200, taille);
            taille += 50;
        }
    }
    std::list<Vehicule *>::iterator itVehicule;
    for (itVehicule = this->objetRoutes.begin() ; itVehicule != this->objetRoutes.end() ; itVehicule++) {
        Vehicule * vehicule = (Vehicule *) *itVehicule;
        if (*(vehicule->getPosition()) == *p) {
            this->config->setVehicule(vehicule);
            QLabel * label = new QLabel(QString::fromStdString(vehicule->getType()), configWidget);
            label->move(200, taille);
            taille += 50;
            QLabel * labelPositionArrivee = new QLabel("Position d'arrivee", configWidget);
            labelPositionArrivee->move(50, taille);
            QLabel * labelX = new QLabel("X : ", configWidget);
            labelX->move(150, taille);
            QTextEdit * xTextEdit = new QTextEdit(configWidget);
            xTextEdit->move(180, taille);
            xTextEdit->setFixedSize(50, 30);
            this->config->setXTextEdit(xTextEdit);
            QLabel * labelY = new QLabel("Y : ", configWidget);
            labelY->move(250, taille);
            QTextEdit * yTextEdit = new QTextEdit(configWidget);
            yTextEdit->move(280, taille);
            yTextEdit->setFixedSize(50, 30);
            this->config->setYTextEdit(yTextEdit);
            taille += 50;
            QLabel * labelNbVehicule = new QLabel("Nb vehicule : ", configWidget);
            labelNbVehicule->move(50, taille);
            QTextEdit * nbVehiculeTextEdit = new QTextEdit(configWidget);
            nbVehiculeTextEdit->move(150, taille);
            nbVehiculeTextEdit->setFixedSize(50, 30);
            taille += 50;
        }
    }
    QPushButton * valideButton = new QPushButton("valide", configWidget);
    QObject::connect(valideButton, SIGNAL(clicked()), this, SLOT(valideConfig()));
    valideButton->move(100, taille);
    QPushButton * annuleButton = new QPushButton("annule", configWidget);
    QObject::connect(annuleButton, SIGNAL(clicked()), this, SLOT(annuleConfig()));
    annuleButton->move(300, taille);
    configWidget->show();
}
コード例 #5
0
void ConfirmPage::setEditorText() {
    QString username = umodel->getUsager(reservation->getUsager())->getNom();
    QString station = smodel->getStation(reservation->getStation())->getNom();
    Vehicule *vehicule = vmodel->getVehicule(reservation->getVehicule());
    QString confirmMessage = trUtf8("RÉSERVATION\n"
                                    "===========\n"
                                    "Usager  : %1\n"
                                    "Station : %2\n"
                                    "Véhicule: %3\n"
                                    "Départ  : %4\n"
                                    "Retour  : %5\n")
            .arg(username)
            .arg(station)
            .arg(vehicule->getName())
            .arg(reservation->getDebut().toString("dd MMM yyyy hh:mm"))
            .arg(reservation->getFin().toString("dd MMM yyyy hh:mm"));

    editor->setPlainText(confirmMessage);
}
コード例 #6
0
ファイル: vehicule.cpp プロジェクト: gnuvince/IFT2905-Project
//pas accessible pour personne d'autre que les sérialisateurs
Vehicule::Vehicule(const Vehicule &v) :
    QObject(v.parent()),
    id(v.id), marque(v.marque), modele(v.modele), couleur(v.couleur), description(v.description), photoCache(v.photoCache)
{
}