/******************************************
*
* Cedric Pradalier 2001
* mail : http://cedric.pradalier.free.fr/mail.html
*
*****************************************/
#ifndef CORRESP_H
#define CORRESP_H
class CCorresp;
#include "objet.h"
#include "arrets.h"
#include "lignes.h"
#include "horaire.h"
#include "itineraire.h"
#include "ensemble.h"
#include "bdlignes.h"
/* une correspondance designe un arret et la ligne
que l'on prend a cet arret */
class CCorresp : public CObjet
{
public:
CArrets * arret;
CLignes * ligne;
SensTrajet sens;
CHoraire arrivee,depart;
CCorresp * precedent;
CCorresp();
CCorresp(CArrets * a,CLignes * l,SensTrajet s);
CCorresp(const CCorresp & C);
virtual ~CCorresp();
// Fonction standard d'affichage
virtual void Print();
/* test d'egalite de 2 correspondance : inutilise
* parametre CObject pour respecter la signature
* a l'execution, on supposera que l'on compare avec
* une autre correspondance
*/
virtual bool IsEqual(CObjet * o);
// Extrait l'itineraire commencant par this
CItineraire * ExtraitItineraire(CArrets * Dest);
// Extrait l'itineraire commencant par this sous forme de Treillis
CObjet * CCorresp::ExtraitTreillis(CArrets* Dep,CArrets * Dest,CHoraire limite);
// Extrait les correspondances possibles a partir de this
// Celles ci sont inserees dans E
void ExtraitAccessibles(CEnsemble * E,CBDLignes * pBDL);
// Test si l'itineraire commencant en this passe par L
int Contains(CLignes * L);
};
#endif // CORRESP_H