#include <VICUS_NetworkNode.h>
|
const char * | typeinfo () const override |
|
| NetworkNode ()=default |
|
| NetworkNode (const unsigned id, const NodeType type, const IBKMK::Vector3D &v, const double heatDemand=0) |
|
void | collectConnectedEdges (std::set< const NetworkNode * > &connectedNodes, std::set< const NetworkEdge * > &connectedEdge) const |
|
void | setInletOutletNode (std::set< const NetworkNode * > &visitedNodes, std::vector< const NetworkEdge * > &orderedEdges) const |
|
void | updateIsDeadEnd () |
|
bool | isRedundant () const |
|
NetworkEdge * | neighborEdge (const NetworkEdge *e) const |
|
void | findRedundantNodes (std::set< unsigned > &redundantNodes, std::set< const NetworkEdge * > &visitedEdges) const |
|
const NetworkNode * | findNextNonRedundantNode (std::set< unsigned > &redundantNodes, double &distance, const NetworkEdge *edgeToVisit) const |
|
bool | findPathToSource (std::set< NetworkEdge * > &path, std::set< NetworkEdge * > &visitedEdges, std::set< unsigned > &visitedNodes) |
|
void | updateNeighbourDistances () const |
|
void | pathToNull (std::vector< NetworkEdge * > &path) const |
|
double | adjacentHeatingDemand (std::set< NetworkEdge * > visitedEdges) |
|
| Object ()=default |
|
| Object (Object const &)=default |
|
virtual | ~Object () |
|
Object * | findChild (unsigned int ID) |
|
const Object * | findChild (unsigned int ID) const |
|
void | collectChildIDs (std::set< unsigned int > &nodeContainer) const |
|
QString | info () const |
|
◆ NodeType
Enumerator |
---|
NT_SubStation | |
NT_Mixer | |
NT_Source | |
NUM_NT | |
◆ NetworkNode() [1/2]
VICUS::NetworkNode::NetworkNode |
( |
| ) |
|
|
default |
◆ NetworkNode() [2/2]
VICUS::NetworkNode::NetworkNode |
( |
const unsigned |
id, |
|
|
const NodeType |
type, |
|
|
const IBKMK::Vector3D & |
v, |
|
|
const double |
heatDemand = 0 |
|
) |
| |
|
inline |
◆ adjacentHeatingDemand()
double VICUS::NetworkNode::adjacentHeatingDemand |
( |
std::set< NetworkEdge * > |
visitedEdges | ) |
|
looks at all adjacent nodes to find a node which has a heating demand >0 and returns it.
◆ collectConnectedEdges()
void VICUS::NetworkNode::collectConnectedEdges |
( |
std::set< const NetworkNode * > & |
connectedNodes, |
|
|
std::set< const NetworkEdge * > & |
connectedEdge |
|
) |
| const |
check connectivity of graph trhough recursive search
◆ findNextNonRedundantNode()
const NetworkNode * VICUS::NetworkNode::findNextNonRedundantNode |
( |
std::set< unsigned > & |
redundantNodes, |
|
|
double & |
distance, |
|
|
const NetworkEdge * |
edgeToVisit |
|
) |
| const |
looking from this node in the direction of the given edgeToVisit: return the next node that is not redundant and the distance to this node
◆ findPathToSource()
bool VICUS::NetworkNode::findPathToSource |
( |
std::set< NetworkEdge * > & |
path, |
|
|
std::set< NetworkEdge * > & |
visitedEdges, |
|
|
std::set< unsigned > & |
visitedNodes |
|
) |
| |
simple algorithm to find the path from this node to the node of type NT_SOURCE. The path is stored as a set of edges
◆ findRedundantNodes()
void VICUS::NetworkNode::findRedundantNodes |
( |
std::set< unsigned > & |
redundantNodes, |
|
|
std::set< const NetworkEdge * > & |
visitedEdges |
|
) |
| const |
get a set of all redundant nodes in the graph
◆ isRedundant()
bool VICUS::NetworkNode::isRedundant |
( |
| ) |
const |
|
inline |
Caution: for some applications this definition may needs to be more precise e.g. compare types of connected edges
◆ neighborEdge()
Only callable if node has exactly two edges: return the edge which is not the given edge
◆ pathToNull()
void VICUS::NetworkNode::pathToNull |
( |
std::vector< NetworkEdge * > & |
path | ) |
const |
used for dijkstra algorithm. appends the edge which leads to the predecessor node to path and calls itself for the predecessor node until a node without predecessor is reached. this way the path from a building to the source can be created, if the predecessors have been set
◆ setInletOutletNode()
void VICUS::NetworkNode::setInletOutletNode |
( |
std::set< const NetworkNode * > & |
visitedNodes, |
|
|
std::vector< const NetworkEdge * > & |
orderedEdges |
|
) |
| const |
◆ typeinfo()
const char * VICUS::NetworkNode::typeinfo |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ updateIsDeadEnd()
void VICUS::NetworkNode::updateIsDeadEnd |
( |
| ) |
|
updates m_isDeadEnd. If node has less than two neighbours which are not a deadEnd and node is not a building nor a source: m_isDeadEdnd = true
◆ updateNeighbourDistances()
void VICUS::NetworkNode::updateNeighbourDistances |
( |
| ) |
const |
used for dijkstra algorithm. Look at all neighbour nodes: if the m_distanceToStart of this node + the distance to the neighbour is shorter than the current m_distanceToStart of the neighbour, update it. This makes sure the neighbour nodes have assigned the currently smallest distance from start
◆ m_color
QColor VICUS::NetworkNode::m_color |
|
mutable |
Color to be used for displaying (visible) nodes.
◆ m_distanceToStart
double VICUS::NetworkNode::m_distanceToStart = (std::numeric_limits<double>::max)() |
|
mutable |
Used in dijkstra algorithm.
◆ m_edges
Pointers to adjacent edges
◆ m_heatExchange
NANDRAD::HydraulicNetworkHeatExchange VICUS::NetworkNode::m_heatExchange |
◆ m_idSubNetwork
unsigned int VICUS::NetworkNode::m_idSubNetwork = INVALID_ID |
◆ m_isDeadEnd
bool VICUS::NetworkNode::m_isDeadEnd = false |
|
mutable |
Defines wether this node is a dead end.
◆ m_maxHeatingDemand
IBK::Parameter VICUS::NetworkNode::m_maxHeatingDemand |
◆ m_position
IBKMK::Vector3D VICUS::NetworkNode::m_position = IBKMK::Vector3D(-9.99,-9.99,-9.99) |
◆ m_predecessor
const NetworkNode* VICUS::NetworkNode::m_predecessor = nullptr |
|
mutable |
◆ m_type
◆ m_visualizationRadius
double VICUS::NetworkNode::m_visualizationRadius |
|
mutable |
The radius used for the visualization of this node in the 3D scene [m]. Updated whenever the scale factor Network::m_scaleNodes changes.
The documentation for this class was generated from the following files: