7 #include <stdair/basic/BasConst_General.hpp>
8 #include <stdair/bom/BomManager.hpp>
9 #include <stdair/bom/SegmentDate.hpp>
10 #include <stdair/bom/SegmentCabin.hpp>
11 #include <stdair/bom/LegDate.hpp>
24 stdair::SegmentDate* lOperatingSegmentDate_ptr =
25 ioSegmentDate.getOperatingSegmentDate ();
26 if (lOperatingSegmentDate_ptr != NULL) {
33 const stdair::LegDateList_T& lLegDateList =
34 stdair::BomManager::getList<stdair::LegDate> (ioSegmentDate);
35 stdair::LegDateList_T::const_iterator itFirstLeg = lLegDateList.begin();
36 const stdair::LegDate* lFirstLeg_ptr = *itFirstLeg;
37 assert (lFirstLeg_ptr != NULL);
38 stdair::LegDateList_T::const_reverse_iterator itLastLeg =
39 lLegDateList.rbegin();
40 const stdair::LegDate* lLastLeg_ptr = *itLastLeg;
41 assert (lLastLeg_ptr != NULL);
44 const stdair::Date_T& lBoardingDate = lFirstLeg_ptr->getBoardingDate();
45 ioSegmentDate.setBoardingDate (lBoardingDate);
47 const stdair::Duration_T& lBoardingTime = lFirstLeg_ptr->getBoardingTime();
48 ioSegmentDate.setBoardingTime (lBoardingTime);
50 const stdair::Date_T& lOffDate = lLastLeg_ptr->getOffDate();
51 ioSegmentDate.setOffDate (lOffDate);
53 const stdair::Duration_T& lOffTime = lLastLeg_ptr->getOffTime();
54 ioSegmentDate.setOffTime (lOffTime);
59 const stdair::SegmentCabinList_T& lSegmentCabinList =
60 stdair::BomManager::getList<stdair::SegmentCabin> (ioSegmentDate);
61 for (stdair::SegmentCabinList_T::const_iterator itSC =
62 lSegmentCabinList.begin(); itSC != lSegmentCabinList.end(); ++itSC) {
63 stdair::SegmentCabin* lSC_ptr = *itSC;
64 assert (lSC_ptr != NULL);
75 const stdair::LegDateList_T& lLegDateList =
76 stdair::BomManager::getList<stdair::LegDate> (ioSegmentDate);
78 stdair::LegDateList_T::const_iterator itLegDate = lLegDateList.begin();
79 const stdair::LegDate* lCurrentLegDate_ptr = *itLegDate;
80 assert (lCurrentLegDate_ptr != NULL);
83 stdair::Duration_T lElapsedTime = lCurrentLegDate_ptr->getElapsedTime();
89 for (
const stdair::LegDate* lPreviousLegDate_ptr = lCurrentLegDate_ptr;
90 itLegDate != lLegDateList.end();
91 ++itLegDate, lPreviousLegDate_ptr = lCurrentLegDate_ptr) {
92 lCurrentLegDate_ptr = *itLegDate;
96 assert (lCurrentLegDate_ptr->getBoardingPoint()
97 == lPreviousLegDate_ptr->getOffPoint());
98 const stdair::Duration_T& lStopOverTime =
99 lCurrentLegDate_ptr->getBoardingTime() - lPreviousLegDate_ptr->getOffTime();
100 lElapsedTime += lStopOverTime;
103 const stdair::Duration_T& currentElapsedTime =
104 lCurrentLegDate_ptr->getElapsedTime();
105 lElapsedTime += currentElapsedTime;
109 ioSegmentDate.setElapsedTime (lElapsedTime);
117 const stdair::Duration_T& lElapsedTime = ioSegmentDate.getElapsedTime();
118 const double lElapseInHours=
static_cast<const double>(lElapsedTime.hours());
119 const long int lDistance =
120 static_cast<const long int>(stdair::DEFAULT_FLIGHT_SPEED*lElapseInHours);
121 ioSegmentDate.setDistance (lDistance);