 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
18 #ifndef NBNodeShapeComputer_h
19 #define NBNodeShapeComputer_h
61 typedef std::map<NBEdge*, PositionVector>
GeomsMap;
105 std::map<
NBEdge*, std::set<NBEdge*> >& same,
133 EdgeVector::const_iterator& cwi,
134 EdgeVector::const_iterator& ccwi,
static void initNeighbors(const EdgeVector &edges, const EdgeVector::const_iterator ¤t, GeomsMap &geomsCW, GeomsMap &geomsCCW, EdgeVector::const_iterator &cwi, EdgeVector::const_iterator &ccwi, double &cad, double &ccad)
Initialize neighbors and angles.
const NBNode & myNode
The node to compute the geometry for.
double myRadius
the computed node radius
std::vector< NBEdge * > EdgeVector
container for (sorted) edges
static double getExtraWidth(const NBEdge *e, SVCPermissions exclude)
compute with of rightmost lanes that exlude the given permissions
double closestIntersection(const PositionVector &geom1, const PositionVector &geom2, double offset)
return the intersection point closest to the given offset
The representation of a single edge during network building.
double getRadius() const
get computed radius for node
PositionVector computeNodeShapeDefault(bool simpleContinuation)
Computes the node geometry Edges with the same direction are grouped. Then the node geometry is built...
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
A point in 2D or 3D with translation and scaling methods.
EdgeVector computeUniqueDirectionList(std::map< NBEdge *, std::set< NBEdge * > > &same, GeomsMap &geomsCCW, GeomsMap &geomsCW)
Joins edges and computes ccw/cw boundaries.
NBNodeShapeComputer(const NBNode &node)
Constructor.
A storage for options typed value containers)
PositionVector compute()
Computes the shape of the assigned junction.
PositionVector getSmoothCorner(PositionVector begShape, PositionVector endShape, const Position &begPoint, const Position &endPoint, int cornerDetail)
Compute smoothed corner shape.
double getDefaultRadius(const OptionsCont &oc)
determine the default radius appropriate for the current junction
NBNodeShapeComputer & operator=(const NBNodeShapeComputer &s)
Invalidated assignment operator.
Represents a single node (junction) during network building.
void joinSameDirectionEdges(std::map< NBEdge *, std::set< NBEdge * > > &same, GeomsMap &geomsCCW, GeomsMap &geomsCW)
Joins edges and computes ccw/cw boundaries.
bool badIntersection(const NBEdge *e1, const NBEdge *e2, double distance)
PositionVector computeNodeShapeSmall()
Computes the node geometry using normals.
~NBNodeShapeComputer()
Destructor.
This class computes shapes of junctions.
std::map< NBEdge *, PositionVector > GeomsMap