/** * updates all information in a RideNodeList * @param RideNodeList $list */ private function updateRideNodeListInformation(RideNodeList &$list) { $totalDistance = 0; $totalEmptyRideTime = 0; $totalEmptyRideDistance = 0; //retired $maxPassengersOnRide = 0; //retired $maxWheelChairsOnRide = 0; //retired $contradictingVehicleCategories = array(); foreach ($list->getRideNodes() as $node) { $totalDistance += $node->distance; if ($node->nextNode) { $emptyRide = $this->adjacenceMatrix[$node->getRideNodeHashId()][$node->nextNode->getRideNodeHashId()]; $totalEmptyRideTime += $emptyRide->duration; $totalEmptyRideDistance += $emptyRide->distance; $totalDistance += $emptyRide->distance; } //retired if ($node->passengers > $maxPassengersOnRide) { //retired $maxPassengersOnRide += $node->passengers; //retired } //retired if ($node->wheelChairs > $maxWheelChairsOnRide) { //retired $maxWheelChairsOnRide = $node->wheelChairs; //retired } //retired if (count($node->contradictingVehicleCategories) > 0) { //retired foreach ($node->contradictingVehicleCategories as $key=>$cat) { //retired $contradictingVehicleCategories[$key] = $cat; //retired } //retired } } $list->setTotalDistance($totalDistance); $list->setTotalEmptyRideDistance($totalEmptyRideDistance); $list->setTotalEmptyRideTime($totalEmptyRideTime); //retired $list->setMaxPassengersOnRide($maxPassengersOnRide); //retired $list->setMaxWheelChairsOnRide($maxWheelChairsOnRide); //retired $list->setContradictingVehicleCategories($contradictingVehicleCategories); }