Eclipse SUMO - Simulation of Urban MObility
NBContHelper::edge_opposite_direction_sorter Class Reference

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

#include <NBContHelper.h>

Collaboration diagram for NBContHelper::edge_opposite_direction_sorter:

Public Member Functions

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

Protected Member Functions

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

Private Member Functions

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

Private Attributes

double myAngle
 The angle of the related edge at the given node. More...
 
const NBEdge *const myEdge
 the reference edge More...
 
const NBNode *const myNode
 The related node. More...
 
bool myRegardPriority
 Whether edge priority may override closer angles. More...
 

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 140 of file NBContHelper.h.

Constructor & Destructor Documentation

◆ edge_opposite_direction_sorter()

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

Constructor.

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

Definition at line 146 of file NBContHelper.h.

References getEdgeAngleAt(), and myAngle.

Member Function Documentation

◆ getDiff()

double 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 171 of file NBContHelper.h.

References GeomHelper::angleDiff(), getEdgeAngleAt(), myAngle, and myNode.

Referenced by operator()().

◆ getEdgeAngleAt()

double 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 181 of file NBContHelper.h.

References PositionVector::angleAt2D(), NBEdge::getFromNode(), and NBEdge::getGeometry().

Referenced by edge_opposite_direction_sorter(), and getDiff().

◆ operator()()

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 158 of file NBContHelper.h.

References getDiff(), NBEdge::getPriority(), myEdge, and myRegardPriority.

◆ operator=()

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

Invalidated assignment operator.

Field Documentation

◆ myAngle

double NBContHelper::edge_opposite_direction_sorter::myAngle
private

The angle of the related edge at the given node.

Definition at line 198 of file NBContHelper.h.

Referenced by edge_opposite_direction_sorter(), and getDiff().

◆ myEdge

const NBEdge* const NBContHelper::edge_opposite_direction_sorter::myEdge
private

the reference edge

Definition at line 195 of file NBContHelper.h.

Referenced by operator()().

◆ myNode

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

The related node.

Definition at line 192 of file NBContHelper.h.

Referenced by getDiff().

◆ myRegardPriority

bool NBContHelper::edge_opposite_direction_sorter::myRegardPriority
private

Whether edge priority may override closer angles.

Definition at line 201 of file NBContHelper.h.

Referenced by operator()().


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