SUMO - Simulation of Urban MObility
NGRandomNetBuilder Class Reference

A class that builds random network using an algorithm by Markus Hartinger. More...

#include <NGRandomNetBuilder.h>

Collaboration diagram for NGRandomNetBuilder:
Collaboration graph

Public Member Functions

void createNet (int numNodes)
 Builds a NGNet using the set values. More...
 
 NGRandomNetBuilder (NGNet &net, SUMOReal minAngle, SUMOReal minDistance, SUMOReal maxDistance, SUMOReal connectivity, int numTries, const TNeighbourDistribution &neighborDist)
 Constructor. More...
 

Private Member Functions

bool canConnect (NGNode *baseNode, NGNode *newNode)
 Checks whether connecting the given two nodes complies with the set restrictions. More...
 
bool checkAngles (NGNode *node)
 Checks whether the angle of this node's connections are valid. More...
 
bool createNewNode (NGNode *baseNode)
 Creates new random node. More...
 
void findPossibleOuterNodes (NGNode *node)
 finds possible connections between Node and OuterNodes complying with restrictions More...
 
 NGRandomNetBuilder (const NGRandomNetBuilder &)
 Invalidated copy constructor. More...
 
NGRandomNetBuilderoperator= (const NGRandomNetBuilder &)
 Invalidated assignment operator. More...
 
void removeOuterNode (NGNode *node)
 Removes the given node from the list of outer nodes. More...
 

Private Attributes

NGNodeList myConNodes
 
TNeighbourDistribution myNeighbourDistribution
 The distrubtion of number of neighbours. More...
 
NGNetmyNet
 The network to fill. More...
 
int myNumNodes
 Number of nodes to be created. More...
 
int myNumTries
 Number of tries to create a new node. More...
 
NGEdgeList myOuterLinks
 The list of outer links. More...
 
NGNodeList myOuterNodes
 The list of outer nodes. More...
 
restrictions
SUMOReal myMinLinkAngle
 Minimum angle allowed between two links. More...
 
SUMOReal myMinDistance
 Minimum distance allowed between two nodes. More...
 
SUMOReal myMaxDistance
 Maximum distance allowed between two nodes. More...
 
SUMOReal myConnectivity
 Probability of connecting to a existing node if possible. More...
 

Detailed Description

A class that builds random network using an algorithm by Markus Hartinger.

Todo:
Describe the algorithm

Definition at line 80 of file NGRandomNetBuilder.h.

Constructor & Destructor Documentation

§ NGRandomNetBuilder() [1/2]

NGRandomNetBuilder::NGRandomNetBuilder ( NGNet net,
SUMOReal  minAngle,
SUMOReal  minDistance,
SUMOReal  maxDistance,
SUMOReal  connectivity,
int  numTries,
const TNeighbourDistribution neighborDist 
)

Constructor.

Parameters
[in]netThe network to fill with generated structures
[in]minAngleThe minimum allowed angle between two streets
[in]minDistanceThe minimum allowed distance between two nodes
[in]maxDistanceThe maximum allowed distance between two nodes
[in]connectivityThe connectivity factor
[in]numTries?
Todo:
check meanings of connectivity/numTries

Definition at line 81 of file NGRandomNetBuilder.cpp.

§ NGRandomNetBuilder() [2/2]

NGRandomNetBuilder::NGRandomNetBuilder ( const NGRandomNetBuilder )
private

Invalidated copy constructor.

Member Function Documentation

§ canConnect()

bool NGRandomNetBuilder::canConnect ( NGNode baseNode,
NGNode newNode 
)
private

Checks whether connecting the given two nodes complies with the set restrictions.

Checks whether the distance, the angle, and the connectivity is within the defined range when both nodes would be connected

Parameters
[in]baseNodeThe first node of the combination to check
[in]newNodeThe second node of the combination to check
Returns
Whether the settings allow to connect both nodes

Definition at line 143 of file NGRandomNetBuilder.cpp.

References checkAngles(), Position::distanceTo2D(), NGNode::getPosition(), GeomHelper::INVALID_OFFSET, myMaxDistance, myMinDistance, myOuterLinks, GeomHelper::nearest_offset_on_line_to_point2D(), PositionVector::positionAtOffset2D(), and SUMOReal.

Referenced by createNet(), createNewNode(), and findPossibleOuterNodes().

§ checkAngles()

bool NGRandomNetBuilder::checkAngles ( NGNode node)
private

Checks whether the angle of this node's connections are valid.

Checks whether the connections of the nodes are in common with the value of myMinLinkAngle.

Parameters
[in]nodeThe node to check connections of
Returns
Whether the settings allow to connect both nodes

Definition at line 102 of file NGRandomNetBuilder.cpp.

References GeomHelper::angle2D(), NGNode::getPosition(), NGNode::LinkList, myMinLinkAngle, Position::x(), and Position::y().

Referenced by canConnect().

§ createNet()

void NGRandomNetBuilder::createNet ( int  numNodes)

§ createNewNode()

bool NGRandomNetBuilder::createNewNode ( NGNode baseNode)
private

§ findPossibleOuterNodes()

void NGRandomNetBuilder::findPossibleOuterNodes ( NGNode node)
private

finds possible connections between Node and OuterNodes complying with restrictions

Parameters
[in]node?
Todo:
Describe better

Definition at line 195 of file NGRandomNetBuilder.cpp.

References canConnect(), NGNode::connected(), NGNode::getMaxNeighbours(), NGNode::LinkList, myConNodes, and myOuterNodes.

Referenced by createNet().

§ operator=()

NGRandomNetBuilder& NGRandomNetBuilder::operator= ( const NGRandomNetBuilder )
private

Invalidated assignment operator.

§ removeOuterNode()

void NGRandomNetBuilder::removeOuterNode ( NGNode node)
private

Removes the given node from the list of outer nodes.

Parameters
[in]nodeThe node to remove

Definition at line 91 of file NGRandomNetBuilder.cpp.

References myOuterNodes.

Referenced by createNet(), and createNewNode().

Field Documentation

§ myConnectivity

SUMOReal NGRandomNetBuilder::myConnectivity
private

Probability of connecting to a existing node if possible.

Definition at line 180 of file NGRandomNetBuilder.h.

Referenced by createNet().

§ myConNodes

NGNodeList NGRandomNetBuilder::myConNodes
private

Definition at line 164 of file NGRandomNetBuilder.h.

Referenced by createNet(), and findPossibleOuterNodes().

§ myMaxDistance

SUMOReal NGRandomNetBuilder::myMaxDistance
private

Maximum distance allowed between two nodes.

Definition at line 177 of file NGRandomNetBuilder.h.

Referenced by canConnect(), and createNewNode().

§ myMinDistance

SUMOReal NGRandomNetBuilder::myMinDistance
private

Minimum distance allowed between two nodes.

Definition at line 174 of file NGRandomNetBuilder.h.

Referenced by canConnect(), and createNewNode().

§ myMinLinkAngle

SUMOReal NGRandomNetBuilder::myMinLinkAngle
private

Minimum angle allowed between two links.

Definition at line 171 of file NGRandomNetBuilder.h.

Referenced by checkAngles().

§ myNeighbourDistribution

TNeighbourDistribution NGRandomNetBuilder::myNeighbourDistribution
private

The distrubtion of number of neighbours.

Definition at line 191 of file NGRandomNetBuilder.h.

Referenced by createNewNode().

§ myNet

NGNet& NGRandomNetBuilder::myNet
private

The network to fill.

Definition at line 155 of file NGRandomNetBuilder.h.

Referenced by createNet(), and createNewNode().

§ myNumNodes

int NGRandomNetBuilder::myNumNodes
private

Number of nodes to be created.

Definition at line 188 of file NGRandomNetBuilder.h.

Referenced by createNet().

§ myNumTries

int NGRandomNetBuilder::myNumTries
private

Number of tries to create a new node.

Definition at line 185 of file NGRandomNetBuilder.h.

Referenced by createNet().

§ myOuterLinks

NGEdgeList NGRandomNetBuilder::myOuterLinks
private

The list of outer links.

Definition at line 161 of file NGRandomNetBuilder.h.

Referenced by canConnect(), createNet(), and createNewNode().

§ myOuterNodes

NGNodeList NGRandomNetBuilder::myOuterNodes
private

The list of outer nodes.

Definition at line 158 of file NGRandomNetBuilder.h.

Referenced by createNet(), createNewNode(), findPossibleOuterNodes(), and removeOuterNode().


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