#include <NBContHelper.h>
Definition at line 288 of file NBContHelper.h.
Public Member Functions | |
| std::pair< SUMOReal, SUMOReal > | getMinMaxRelAngles (NBEdge *e) const |
| int | operator() (NBEdge *e1, NBEdge *e2) const |
| comparing operation | |
| same_connection_edge_sorter () | |
| constructor | |
| NBContHelper::same_connection_edge_sorter::same_connection_edge_sorter | ( | ) | [inline, explicit] |
| std::pair<SUMOReal, SUMOReal> NBContHelper::same_connection_edge_sorter::getMinMaxRelAngles | ( | NBEdge * | e | ) | const [inline] |
Definition at line 312 of file NBContHelper.h.
References NBEdge::getAngle(), NBEdge::getConnectedEdges(), max, min, NBHelpers::normRelAngle(), and SUMOReal.
Referenced by operator()().
00312 { 00313 SUMOReal min = 360; 00314 SUMOReal max = 360; 00315 const EdgeVector &ev = e->getConnectedEdges(); 00316 for (EdgeVector::const_iterator i=ev.begin(); i!=ev.end(); ++i) { 00317 SUMOReal angle = NBHelpers::normRelAngle( 00318 e->getAngle(), (*i)->getAngle()); 00319 if (min==360||min>angle) { 00320 min = angle; 00321 } 00322 if (max==360||max<angle) { 00323 max = angle; 00324 } 00325 } 00326 return std::pair<SUMOReal, SUMOReal>(min, max); 00327 }
| int NBContHelper::same_connection_edge_sorter::operator() | ( | NBEdge * | e1, | |
| NBEdge * | e2 | |||
| ) | const [inline] |
comparing operation
Definition at line 294 of file NBContHelper.h.
References NBEdge::getID(), and getMinMaxRelAngles().
00294 { 00295 std::pair<SUMOReal, SUMOReal> mm1 = getMinMaxRelAngles(e1); 00296 std::pair<SUMOReal, SUMOReal> mm2 = getMinMaxRelAngles(e2); 00297 if (mm1.first==mm2.first && mm1.second==mm2.second) { 00298 // ok, let's simply sort them arbitrarily 00299 return e1->getID() < e2->getID(); 00300 } 00301 00302 assert( 00303 (mm1.first<=mm2.first&&mm1.second<=mm2.second) 00304 || 00305 (mm1.first>=mm2.first&&mm1.second>=mm2.second)); 00306 return (mm1.first>=mm2.first&&mm1.second>=mm2.second); 00307 }
1.5.6