SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NBContHelper::edge_opposite_direction_sorter Class Reference

Class to sort edges by their angle in relation to the given edge. More...

#include <NBContHelper.h>

Public Member Functions

 edge_opposite_direction_sorter (const NBEdge *const e, const NBNode *const n)
 Constructor.
int operator() (NBEdge *e1, NBEdge *e2) const
 Comparing operation.

Protected Member Functions

SUMOReal getDiff (const NBEdge *const e) const
 Computes the angle difference between the related and the given edge.
SUMOReal getEdgeAngleAt (const NBEdge *const e, const NBNode *const n) const
 Returns the given edge's angle at the given node.

Private Member Functions

edge_opposite_direction_sorteroperator= (const edge_opposite_direction_sorter &s)
 Invalidated assignment operator.

Private Attributes

SUMOReal myAngle
 The angle of the related edge at the given node.
const NBNode *const myNode
 The related node.

Detailed Description

Class to sort edges by their angle in relation to the given edge.

The resulting sorted list has the edge in the most opposite direction to the given edge as her first entry.

Definition at line 148 of file NBContHelper.h.

Constructor & Destructor Documentation

NBContHelper::edge_opposite_direction_sorter::edge_opposite_direction_sorter ( const NBEdge *const  e,
const NBNode *const  n 
)
inlineexplicit

Constructor.

Parameters
[in]eThe edge to which the sorting relates
[in]nThe node to consider

Definition at line 154 of file NBContHelper.h.

References getEdgeAngleAt(), and myAngle.

Member Function Documentation

SUMOReal NBContHelper::edge_opposite_direction_sorter::getDiff ( const NBEdge *const  e) const
inlineprotected

Computes the angle difference between the related and the given edge.

Parameters
[in]eThe edge to compare the angle difference of
Returns
The angle difference

Definition at line 175 of file NBContHelper.h.

References getEdgeAngleAt(), GeomHelper::getMinAngleDiff(), myAngle, myNode, and SUMOReal.

Referenced by operator()().

SUMOReal NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt ( const NBEdge *const  e,
const NBNode *const  n 
) const
inlineprotected

Returns the given edge's angle at the given node.

Please note that we always consider the "outgoing direction".

Parameters
[in]eThe edge to which the sorting relates
[in]nThe node to consider

Definition at line 186 of file NBContHelper.h.

References Line::atan2DegreeAngle(), PositionVector::getBegLine(), PositionVector::getEndLine(), NBEdge::getFromNode(), NBEdge::getGeometry(), and Line::reverse().

Referenced by edge_opposite_direction_sorter(), and getDiff().

int NBContHelper::edge_opposite_direction_sorter::operator() ( NBEdge e1,
NBEdge e2 
) const
inline

Comparing operation.

Parameters
[in]e1The first edge to compare
[in]e2The second edge to compare
Returns
Which edge is more opposite to the related one

Definition at line 164 of file NBContHelper.h.

References getDiff(), and SUMOReal.

edge_opposite_direction_sorter& NBContHelper::edge_opposite_direction_sorter::operator= ( const edge_opposite_direction_sorter s)
private

Invalidated assignment operator.

Field Documentation

SUMOReal NBContHelper::edge_opposite_direction_sorter::myAngle
private

The angle of the related edge at the given node.

Definition at line 196 of file NBContHelper.h.

Referenced by edge_opposite_direction_sorter(), and getDiff().

const NBNode* const NBContHelper::edge_opposite_direction_sorter::myNode
private

The related node.

Definition at line 199 of file NBContHelper.h.

Referenced by getDiff().


The documentation for this class was generated from the following file: