Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
KDTreePartition< E, N, V >::Cell Class Reference

Represents an element of the node partition (i.e. a node set). More...

#include <KDTreePartition.h>

Collaboration diagram for KDTreePartition< E, N, V >::Cell:
[legend]

Public Member Functions

 Cell (std::vector< const Cell * > *cells, std::vector< std::vector< const Cell * > > *levelCells, std::vector< const N * > *sortedNodes, int numberOfLevels, int level, Axis axis, size_t fromInclusive, size_t toExclusive, Cell *supercell, double minX, double maxX, double minY, double maxY, bool isLeftOrLowerCell, const V *const vehicle, const bool havePermissions, const bool haveRestrictions)
 Constructor.
bool contains (const N *node) const
 Tests whether the given node belongs to the cell.
std::unordered_set< const E * > * edgeSet (const V *const vehicle) const
 Returns all edges situated inside the cell.
Axis getAxis () const
 Returns the axis of the cell's spatial extension (x or y).
const std::vector< const N * > & getBoundaryFromNodes () const
 Returns the vector of boundary nodes which are from-nodes of outgoing boundary edges.
const std::unordered_set< const E * > & getIncomingBoundaryEdges () const
 Returns the set of incoming boundary edges.
const CellgetLeftOrLowerSubcell () const
 Returns the left (cell's axis is X) or lower (cell's axis is Y) subcell.
int getLevel () const
 Returns the cell's level.
double getMaxX () const
 Returns the maximum coordinate of a cell node in X-direction (aka right border coordinate).
double getMaxY () const
 Returns the maximum coordinate of a cell node in Y-direction (aka upper border coordinate).
double getMedianCoordinate () const
 Returns the median coordinate.
double getMinX () const
 Returns the minimum coordinate of a cell node in X-direction (aka left border coordinate).
double getMinY () const
 Returns the minimum coordinate of a cell node in Y-direction (aka lower border coordinate).
int getNumber () const
 Returns the cell's number.
int getNumberOfCells () const
 Returns the number of cells.
const std::unordered_set< const E * > & getOutgoingBoundaryEdges () const
 Returns the set of outgoing boundary edges.
const CellgetRightOrUpperSubcell () const
 Returns the right (cell's axis is X) or upper (cell's axis is Y) subcell.
const CellgetSupercell () const
 Returns the supercell.
bool isLeftOrLowerCell () const
 Returns the boolean flag indicating whether this cell is a left or lower cell or not.
std::pair< typename std::vector< const N * >::const_iterator, typename std::vector< const N * >::const_iterator > nodeIterators () const
 Returns a pair of iterators (first, last) to iterate over the nodes of the cell.
std::vector< const N * > * nodes () const
 Returns a new vector of nodes in the cell.
size_t numberOfEdgesEndingInCell (const V *const vehicle) const
 Returns the number of edges ending in the cell.
size_t numberOfEdgesStartingInCell (const V *const vehicle) const
 Returns the number of edges starting in the cell.
virtual ~Cell ()
 Destructor.

Private Member Functions

void completeSpatialInfo ()
 Completes the information about the spatial extent.
bool isInBounds (const N *node) const
 Tests whether a given node is situated within the spatial bounds of the cell.
bool isProhibited (const E *const edge, const V *const vehicle) const
 Returns true iff driving the given vehicle on the given edge is prohibited.
double maxAxisValue () const
 Returns the maximum coordinate of the cell nodes' positions, in the direction of the cell's axis (X or Y).
double maxAxisValue (Axis axis) const
 Returns the maximum coordinate of the cell nodes' positions, in the direction of the given axis (X or Y).
double minAxisValue () const
 Returns the minimum coordinate of the cell nodes' positions, in the direction of the cell's axis (X or Y).
double minAxisValue (Axis axis) const
 Returns the minimum coordinate of the cell nodes' positions, in the direction of the given axis (X or Y).
size_t partition ()
 Performs one partition step on the set of nodes sorted wrt to the k-d tree subdivision scheme.

Static Private Member Functions

static int & cellCounter ()
 Returns the global cell counter.

Private Attributes

const Axis myAxis
 The axis of the spatial extension.
std::vector< const N * > myBoundaryFromNodes
 Those nodes on the cell boundary, which are from-nodes of outgoing boundary edges.
std::vector< const Cell * > * myCells
 The cells.
const size_t myFromInclusive
 The from-index (inclusive).
bool myHasCompleteSpatialInfo
 The boolean flag indicating whether the information about the cell's spatial extent is complete or not.
bool myHasNodesSortedWrtToMyAxis
 The boolean flag indicating whether the cell's nodes are sorted wrt to the cell's axis or not.
const bool myHavePermissions
 The boolean flag indicating whether edge permissions need to be considered or not.
const bool myHaveRestrictions
 The boolean flag indicating whether edge restrictions need to be considered or not.
std::unordered_set< const E * > myIncomingBoundaryEdges
 The incoming edges on the cell boundary.
bool myIsLeftOrLowerCell
 The boolean flag indicating whether this cell is a left/lower cell or not.
CellmyLeftOrLowerSubcell
 The left (cell's axis is X) or lower (cell's axis is Y) subcell.
const int myLevel
 The level.
std::vector< std::vector< const Cell * > > * myLevelCells
 The cells of all partitions at all levels of the k-d tree subdivisional scheme.
double myMaxX
 The maximum x-value of a node in the cell.
double myMaxY
 The maximum y-value of a node in the cell.
double myMedianCoordinate
 The coordinate in the axis' direction of the node at the median index.
double myMinX
 The minimum x-value of a node in the cell.
double myMinY
 The minimum y-value of a node in the cell.
const int myNumber
 The number.
const int myNumberOfLevels
 The total number of levels of the k-d tree.
std::unordered_set< const E * > myOutgoingBoundaryEdges
 The outgoing edges on the cell boundary.
CellmyRightOrUpperSubcell
 The right (cell's axis is X) or upper (cell's axis is Y) subcell.
std::vector< const N * > * mySortedNodes
 The container with all nodes, sorted wrt to the k-d tree subdivisional scheme.
CellmySupercell
 The super cell.
const size_t myToExclusive
 The to-index (exclusive).

Detailed Description

template<class E, class N, class V>
class KDTreePartition< E, N, V >::Cell

Represents an element of the node partition (i.e. a node set).

Definition at line 145 of file KDTreePartition.h.

Constructor & Destructor Documentation

◆ Cell()

template<class E, class N, class V>
KDTreePartition< E, N, V >::Cell::Cell ( std::vector< const Cell * > * cells,
std::vector< std::vector< const Cell * > > * levelCells,
std::vector< const N * > * sortedNodes,
int numberOfLevels,
int level,
Axis axis,
size_t fromInclusive,
size_t toExclusive,
Cell * supercell,
double minX,
double maxX,
double minY,
double maxY,
bool isLeftOrLowerCell,
const V *const vehicle,
const bool havePermissions,
const bool haveRestrictions )

Constructor.

Note
Works recursively, builds the median-based k-d tree
Parameters
[in]cellsThe vector of all cells
[in]levelCellsThe vector of all level cell vectors
[in]sortedNodesThe vector of nodes
Note
Initially unsorted, after instantiation gets sorted wrt to the k-d tree subdivision scheme
Parameters
[in]numberOfLevelsThe number of levels
[in]levelThe level
[in]axisThe axis (X or X)
[in]fromInclusiveThe from-index (inclusive)
[in]toExclusiveThe to-index (exclusive)
[in]supercellThe supercell
[in]minXThe minimum X-value of nodes in the cell
[in]maxXThe maximum X-value of nodes in the cell
[in]minYThe minimum Y-value of nodes in the cell
[in]maxYThe maximum Y-value of nodes in the cell
[in]isLeftOrLowerCellBoolean flag indicating whether this cell is a left or lower cell or not
[in]vehicleThe vehicle
[in]havePermissionsThe boolean flag indicating whether edge permissions need to be considered or not
[in]haveRestrictionsThe boolean flag indicating whether edge restrictions need to be considered or not

go through the nodes of the cell in order to identify and collect boundary nodes / edges

Definition at line 779 of file KDTreePartition.h.

References Cell(), cellCounter(), completeSpatialInfo(), contains(), edgeSet(), KDTreePartition< E, N, V >::flip(), isLeftOrLowerCell(), isProhibited(), myAxis, myBoundaryFromNodes, myCells, myFromInclusive, myHasCompleteSpatialInfo, myHasNodesSortedWrtToMyAxis, myHavePermissions, myHaveRestrictions, myIncomingBoundaryEdges, myIsLeftOrLowerCell, myLeftOrLowerSubcell, myLevel, myLevelCells, myMaxX, myMaxY, myMedianCoordinate, myMinX, myMinY, myNumber, myNumberOfLevels, myOutgoingBoundaryEdges, myRightOrUpperSubcell, mySortedNodes, mySupercell, myToExclusive, nodes(), partition(), and KDTreePartition< E, N, V >::X.

Referenced by Cell(), getLeftOrLowerSubcell(), getRightOrUpperSubcell(), and getSupercell().

Here is the caller graph for this function:

◆ ~Cell()

template<class E, class N, class V>
virtual KDTreePartition< E, N, V >::Cell::~Cell ( )
inlinevirtual

Destructor.

Definition at line 206 of file KDTreePartition.h.

References myLeftOrLowerSubcell, and myRightOrUpperSubcell.

Member Function Documentation

◆ cellCounter()

template<class E, class N, class V>
int & KDTreePartition< E, N, V >::Cell::cellCounter ( )
inlinestaticprivate

Returns the global cell counter.

Returns
The global cell counter

Definition at line 341 of file KDTreePartition.h.

References cellCounter().

Referenced by Cell(), cellCounter(), and getNumberOfCells().

Here is the caller graph for this function:

◆ completeSpatialInfo()

template<class E, class N, class V>
void KDTreePartition< E, N, V >::Cell::completeSpatialInfo ( )
private

Completes the information about the spatial extent.

Definition at line 1247 of file KDTreePartition.h.

References maxAxisValue(), minAxisValue(), myHasCompleteSpatialInfo, myMaxX, myMaxY, myMinX, myMinY, KDTreePartition< E, N, V >::X, and KDTreePartition< E, N, V >::Y.

Referenced by Cell().

Here is the caller graph for this function:

◆ contains()

template<class E, class N, class V>
bool KDTreePartition< E, N, V >::Cell::contains ( const N * node) const

Tests whether the given node belongs to the cell.

Parameters
nodeThe node
Returns
true iff the given node belongs to the cell

Definition at line 1416 of file KDTreePartition.h.

References isInBounds(), and myLevel.

Referenced by Cell(), AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree(), edgeSet(), AFRouter< E, N, V, M >::flagContext(), and AFRouter< E, N, V, M >::flagContextNaive().

Here is the caller graph for this function:

◆ edgeSet()

template<class E, class N, class V>
std::unordered_set< const E * > * KDTreePartition< E, N, V >::Cell::edgeSet ( const V *const vehicle) const

Returns all edges situated inside the cell.

Parameters
[in]vehicleThe vehicle

Definition at line 1265 of file KDTreePartition.h.

References contains(), edgeSet(), isProhibited(), myFromInclusive, mySortedNodes, and myToExclusive.

Referenced by Cell(), AFBuild< E, N, V, M >::computeArcFlagsAux(), and edgeSet().

Here is the caller graph for this function:

◆ getAxis()

template<class E, class N, class V>
Axis KDTreePartition< E, N, V >::Cell::getAxis ( ) const
inline

Returns the axis of the cell's spatial extension (x or y).

Definition at line 212 of file KDTreePartition.h.

References myAxis.

◆ getBoundaryFromNodes()

template<class E, class N, class V>
const std::vector< const N * > & KDTreePartition< E, N, V >::Cell::getBoundaryFromNodes ( ) const
inline

Returns the vector of boundary nodes which are from-nodes of outgoing boundary edges.

Definition at line 262 of file KDTreePartition.h.

References myBoundaryFromNodes.

Referenced by AFBuild< E, N, V, M >::computeArcFlags(), and AFBuild< E, N, V, M >::computeArcFlagsNaive().

Here is the caller graph for this function:

◆ getIncomingBoundaryEdges()

template<class E, class N, class V>
const std::unordered_set< const E * > & KDTreePartition< E, N, V >::Cell::getIncomingBoundaryEdges ( ) const
inline

Returns the set of incoming boundary edges.

Definition at line 280 of file KDTreePartition.h.

References myIncomingBoundaryEdges.

◆ getLeftOrLowerSubcell()

template<class E, class N, class V>
const Cell * KDTreePartition< E, N, V >::Cell::getLeftOrLowerSubcell ( ) const
inline

Returns the left (cell's axis is X) or lower (cell's axis is Y) subcell.

Definition at line 291 of file KDTreePartition.h.

References Cell(), and myLeftOrLowerSubcell.

◆ getLevel()

template<class E, class N, class V>
int KDTreePartition< E, N, V >::Cell::getLevel ( ) const
inline

Returns the cell's level.

Definition at line 236 of file KDTreePartition.h.

References myLevel.

◆ getMaxX()

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::getMaxX ( ) const
inline

Returns the maximum coordinate of a cell node in X-direction (aka right border coordinate).

Definition at line 307 of file KDTreePartition.h.

References myMaxX.

◆ getMaxY()

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::getMaxY ( ) const
inline

Returns the maximum coordinate of a cell node in Y-direction (aka upper border coordinate).

Definition at line 315 of file KDTreePartition.h.

References myMaxY.

◆ getMedianCoordinate()

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::getMedianCoordinate ( ) const
inline

Returns the median coordinate.

Definition at line 328 of file KDTreePartition.h.

References myMedianCoordinate.

◆ getMinX()

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::getMinX ( ) const
inline

Returns the minimum coordinate of a cell node in X-direction (aka left border coordinate).

Definition at line 303 of file KDTreePartition.h.

References myMinX.

◆ getMinY()

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::getMinY ( ) const
inline

Returns the minimum coordinate of a cell node in Y-direction (aka lower border coordinate).

Definition at line 311 of file KDTreePartition.h.

References myMinY.

◆ getNumber()

template<class E, class N, class V>
int KDTreePartition< E, N, V >::Cell::getNumber ( ) const
inline

Returns the cell's number.

Definition at line 231 of file KDTreePartition.h.

References myNumber.

Referenced by AFBuild< E, N, V, M >::computeArcFlags(), AFBuild< E, N, V, M >::computeArcFlagsAux(), and AFBuild< E, N, V, M >::computeArcFlagsNaive().

Here is the caller graph for this function:

◆ getNumberOfCells()

template<class E, class N, class V>
int KDTreePartition< E, N, V >::Cell::getNumberOfCells ( ) const
inline

Returns the number of cells.

Returns
The number of the cells

Definition at line 242 of file KDTreePartition.h.

References cellCounter().

◆ getOutgoingBoundaryEdges()

template<class E, class N, class V>
const std::unordered_set< const E * > & KDTreePartition< E, N, V >::Cell::getOutgoingBoundaryEdges ( ) const
inline

Returns the set of outgoing boundary edges.

Definition at line 286 of file KDTreePartition.h.

References myOutgoingBoundaryEdges.

Referenced by AFBuild< E, N, V, M >::computeArcFlags(), AFBuild< E, N, V, M >::computeArcFlagsNaive(), and AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree().

Here is the caller graph for this function:

◆ getRightOrUpperSubcell()

template<class E, class N, class V>
const Cell * KDTreePartition< E, N, V >::Cell::getRightOrUpperSubcell ( ) const
inline

Returns the right (cell's axis is X) or upper (cell's axis is Y) subcell.

Definition at line 295 of file KDTreePartition.h.

References Cell(), and myRightOrUpperSubcell.

◆ getSupercell()

template<class E, class N, class V>
const Cell * KDTreePartition< E, N, V >::Cell::getSupercell ( ) const
inline

Returns the supercell.

Definition at line 299 of file KDTreePartition.h.

References Cell(), and mySupercell.

Referenced by AFBuild< E, N, V, M >::computeArcFlags(), AFBuild< E, N, V, M >::computeArcFlagsAux(), AFBuild< E, N, V, M >::computeArcFlagsNaive(), AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree(), AFRouter< E, N, V, M >::flagContext(), and AFRouter< E, N, V, M >::flagContextNaive().

Here is the caller graph for this function:

◆ isInBounds()

template<class E, class N, class V>
bool KDTreePartition< E, N, V >::Cell::isInBounds ( const N * node) const
private

Tests whether a given node is situated within the spatial bounds of the cell.

Parameters
nodeThe node
Returns
true iff a given node is situated within the spatial bounds of the cell

Definition at line 1406 of file KDTreePartition.h.

References myMaxX, and myMaxY.

Referenced by contains().

Here is the caller graph for this function:

◆ isLeftOrLowerCell()

template<class E, class N, class V>
bool KDTreePartition< E, N, V >::Cell::isLeftOrLowerCell ( ) const
inline

Returns the boolean flag indicating whether this cell is a left or lower cell or not.

Definition at line 324 of file KDTreePartition.h.

References myIsLeftOrLowerCell.

Referenced by Cell(), AFBuild< E, N, V, M >::computeArcFlagsAux(), AFRouter< E, N, V, M >::flagContext(), and AFRouter< E, N, V, M >::flagContextNaive().

Here is the caller graph for this function:

◆ isProhibited()

template<class E, class N, class V>
bool KDTreePartition< E, N, V >::Cell::isProhibited ( const E *const edge,
const V *const vehicle ) const
inlineprivate

Returns true iff driving the given vehicle on the given edge is prohibited.

Parameters
[in]edgeThe edge
[in]vehicleThe vehicle
Returns
true iff driving the given vehicle on the given edge is prohibited

Definition at line 351 of file KDTreePartition.h.

References myHavePermissions, and myHaveRestrictions.

Referenced by Cell(), edgeSet(), numberOfEdgesEndingInCell(), and numberOfEdgesStartingInCell().

Here is the caller graph for this function:

◆ maxAxisValue() [1/2]

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::maxAxisValue ( ) const
private

Returns the maximum coordinate of the cell nodes' positions, in the direction of the cell's axis (X or Y).

Returns
The minimum coordinate of the cell nodes' positions, in the direction of the cell's axis(X or Y)

Definition at line 1192 of file KDTreePartition.h.

References maxAxisValue(), and myAxis.

◆ maxAxisValue() [2/2]

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::maxAxisValue ( Axis axis) const
private

Returns the maximum coordinate of the cell nodes' positions, in the direction of the given axis (X or Y).

Parameters
axisThe axis
Returns
The maximum coordinate of the cell nodes' positions, in the direction of the given axis (X or Y)

Definition at line 1158 of file KDTreePartition.h.

References maxAxisValue(), myAxis, myFromInclusive, myHasNodesSortedWrtToMyAxis, mySortedNodes, myToExclusive, and KDTreePartition< E, N, V >::Y.

Referenced by completeSpatialInfo(), maxAxisValue(), and maxAxisValue().

Here is the caller graph for this function:

◆ minAxisValue() [1/2]

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::minAxisValue ( ) const
private

Returns the minimum coordinate of the cell nodes' positions, in the direction of the cell's axis (X or Y).

Returns
The minimum coordinate of the cell nodes' positions, in the direction of the cell's axis(X or Y)

Definition at line 1153 of file KDTreePartition.h.

References minAxisValue(), and myAxis.

◆ minAxisValue() [2/2]

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::minAxisValue ( Axis axis) const
private

Returns the minimum coordinate of the cell nodes' positions, in the direction of the given axis (X or Y).

Parameters
axisThe axis
Returns
The minimum coordinate of the cell nodes' positions, in the direction of the given axis (X or Y)

Definition at line 1120 of file KDTreePartition.h.

References minAxisValue(), myAxis, myFromInclusive, myHasNodesSortedWrtToMyAxis, mySortedNodes, myToExclusive, and KDTreePartition< E, N, V >::Y.

Referenced by completeSpatialInfo(), minAxisValue(), and minAxisValue().

Here is the caller graph for this function:

◆ nodeIterators()

template<class E, class N, class V>
std::pair< typename std::vector< const N * >::const_iterator, typename std::vector< const N * >::const_iterator > KDTreePartition< E, N, V >::Cell::nodeIterators ( ) const

Returns a pair of iterators (first, last) to iterate over the nodes of the cell.

Returns
A pair of iterators (first, last) to iterate over the nodes of the cell

Definition at line 1356 of file KDTreePartition.h.

References myFromInclusive, mySortedNodes, and myToExclusive.

Referenced by AFBuild< E, N, V, M >::computeArcFlagsAux(), and AFBuild< E, N, V, M >::initSupercellEdges().

Here is the caller graph for this function:

◆ nodes()

template<class E, class N, class V>
std::vector< const N * > * KDTreePartition< E, N, V >::Cell::nodes ( ) const

Returns a new vector of nodes in the cell.

Returns
A new vector of nodes in the cell

Definition at line 1365 of file KDTreePartition.h.

References myFromInclusive, mySortedNodes, myToExclusive, and nodes().

Referenced by Cell(), and nodes().

Here is the caller graph for this function:

◆ numberOfEdgesEndingInCell()

template<class E, class N, class V>
size_t KDTreePartition< E, N, V >::Cell::numberOfEdgesEndingInCell ( const V *const vehicle) const

Returns the number of edges ending in the cell.

Parameters
[in]vehicleThe vehicle.

Definition at line 1307 of file KDTreePartition.h.

References isProhibited(), myFromInclusive, mySortedNodes, and myToExclusive.

◆ numberOfEdgesStartingInCell()

template<class E, class N, class V>
size_t KDTreePartition< E, N, V >::Cell::numberOfEdgesStartingInCell ( const V *const vehicle) const

Returns the number of edges starting in the cell.

Parameters
[in]vehicleThe vehicle.

Definition at line 1331 of file KDTreePartition.h.

References isProhibited(), myFromInclusive, mySortedNodes, and myToExclusive.

◆ partition()

template<class E, class N, class V>
size_t KDTreePartition< E, N, V >::Cell::partition ( )
private

Performs one partition step on the set of nodes sorted wrt to the k-d tree subdivision scheme.

Returns
The median index

Definition at line 1197 of file KDTreePartition.h.

References myAxis, myFromInclusive, myHasNodesSortedWrtToMyAxis, myMedianCoordinate, mySortedNodes, mySupercell, myToExclusive, KDTreePartition< E, N, V >::X, and KDTreePartition< E, N, V >::Y.

Referenced by Cell().

Here is the caller graph for this function:

Field Documentation

◆ myAxis

template<class E, class N, class V>
const Axis KDTreePartition< E, N, V >::Cell::myAxis
private

The axis of the spatial extension.

Definition at line 399 of file KDTreePartition.h.

Referenced by Cell(), getAxis(), maxAxisValue(), maxAxisValue(), minAxisValue(), minAxisValue(), and partition().

◆ myBoundaryFromNodes

template<class E, class N, class V>
std::vector<const N*> KDTreePartition< E, N, V >::Cell::myBoundaryFromNodes
private

Those nodes on the cell boundary, which are from-nodes of outgoing boundary edges.

Definition at line 410 of file KDTreePartition.h.

Referenced by Cell(), and getBoundaryFromNodes().

◆ myCells

template<class E, class N, class V>
std::vector<const Cell*>* KDTreePartition< E, N, V >::Cell::myCells
private

The cells.

Definition at line 387 of file KDTreePartition.h.

Referenced by Cell().

◆ myFromInclusive

template<class E, class N, class V>
const size_t KDTreePartition< E, N, V >::Cell::myFromInclusive
private

◆ myHasCompleteSpatialInfo

template<class E, class N, class V>
bool KDTreePartition< E, N, V >::Cell::myHasCompleteSpatialInfo
private

The boolean flag indicating whether the information about the cell's spatial extent is complete or not.

Definition at line 445 of file KDTreePartition.h.

Referenced by Cell(), and completeSpatialInfo().

◆ myHasNodesSortedWrtToMyAxis

template<class E, class N, class V>
bool KDTreePartition< E, N, V >::Cell::myHasNodesSortedWrtToMyAxis
private

The boolean flag indicating whether the cell's nodes are sorted wrt to the cell's axis or not.

Definition at line 447 of file KDTreePartition.h.

Referenced by Cell(), maxAxisValue(), minAxisValue(), and partition().

◆ myHavePermissions

template<class E, class N, class V>
const bool KDTreePartition< E, N, V >::Cell::myHavePermissions
private

The boolean flag indicating whether edge permissions need to be considered or not.

Definition at line 461 of file KDTreePartition.h.

Referenced by Cell(), and isProhibited().

◆ myHaveRestrictions

template<class E, class N, class V>
const bool KDTreePartition< E, N, V >::Cell::myHaveRestrictions
private

The boolean flag indicating whether edge restrictions need to be considered or not.

Definition at line 463 of file KDTreePartition.h.

Referenced by Cell(), and isProhibited().

◆ myIncomingBoundaryEdges

template<class E, class N, class V>
std::unordered_set<const E*> KDTreePartition< E, N, V >::Cell::myIncomingBoundaryEdges
private

The incoming edges on the cell boundary.

Definition at line 418 of file KDTreePartition.h.

Referenced by Cell(), and getIncomingBoundaryEdges().

◆ myIsLeftOrLowerCell

template<class E, class N, class V>
bool KDTreePartition< E, N, V >::Cell::myIsLeftOrLowerCell
private

The boolean flag indicating whether this cell is a left/lower cell or not.

Definition at line 449 of file KDTreePartition.h.

Referenced by Cell(), and isLeftOrLowerCell().

◆ myLeftOrLowerSubcell

template<class E, class N, class V>
Cell* KDTreePartition< E, N, V >::Cell::myLeftOrLowerSubcell
private

The left (cell's axis is X) or lower (cell's axis is Y) subcell.

Definition at line 433 of file KDTreePartition.h.

Referenced by Cell(), getLeftOrLowerSubcell(), and ~Cell().

◆ myLevel

template<class E, class N, class V>
const int KDTreePartition< E, N, V >::Cell::myLevel
private

The level.

Definition at line 395 of file KDTreePartition.h.

Referenced by Cell(), contains(), and getLevel().

◆ myLevelCells

template<class E, class N, class V>
std::vector<std::vector<const Cell*> >* KDTreePartition< E, N, V >::Cell::myLevelCells
private

The cells of all partitions at all levels of the k-d tree subdivisional scheme.

Definition at line 389 of file KDTreePartition.h.

Referenced by Cell().

◆ myMaxX

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::myMaxX
private

The maximum x-value of a node in the cell.

Definition at line 439 of file KDTreePartition.h.

Referenced by Cell(), completeSpatialInfo(), getMaxX(), and isInBounds().

◆ myMaxY

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::myMaxY
private

The maximum y-value of a node in the cell.

Definition at line 443 of file KDTreePartition.h.

Referenced by Cell(), completeSpatialInfo(), getMaxY(), and isInBounds().

◆ myMedianCoordinate

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::myMedianCoordinate
private

The coordinate in the axis' direction of the node at the median index.

Definition at line 465 of file KDTreePartition.h.

Referenced by Cell(), getMedianCoordinate(), and partition().

◆ myMinX

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::myMinX
private

The minimum x-value of a node in the cell.

Definition at line 437 of file KDTreePartition.h.

Referenced by Cell(), completeSpatialInfo(), and getMinX().

◆ myMinY

template<class E, class N, class V>
double KDTreePartition< E, N, V >::Cell::myMinY
private

The minimum y-value of a node in the cell.

Definition at line 441 of file KDTreePartition.h.

Referenced by Cell(), completeSpatialInfo(), and getMinY().

◆ myNumber

template<class E, class N, class V>
const int KDTreePartition< E, N, V >::Cell::myNumber
private

The number.

Definition at line 397 of file KDTreePartition.h.

Referenced by Cell(), and getNumber().

◆ myNumberOfLevels

template<class E, class N, class V>
const int KDTreePartition< E, N, V >::Cell::myNumberOfLevels
private

The total number of levels of the k-d tree.

Definition at line 393 of file KDTreePartition.h.

Referenced by Cell().

◆ myOutgoingBoundaryEdges

template<class E, class N, class V>
std::unordered_set<const E*> KDTreePartition< E, N, V >::Cell::myOutgoingBoundaryEdges
private

The outgoing edges on the cell boundary.

Definition at line 424 of file KDTreePartition.h.

Referenced by Cell(), and getOutgoingBoundaryEdges().

◆ myRightOrUpperSubcell

template<class E, class N, class V>
Cell* KDTreePartition< E, N, V >::Cell::myRightOrUpperSubcell
private

The right (cell's axis is X) or upper (cell's axis is Y) subcell.

Definition at line 435 of file KDTreePartition.h.

Referenced by Cell(), getRightOrUpperSubcell(), and ~Cell().

◆ mySortedNodes

template<class E, class N, class V>
std::vector<const N*>* KDTreePartition< E, N, V >::Cell::mySortedNodes
private

The container with all nodes, sorted wrt to the k-d tree subdivisional scheme.

Definition at line 391 of file KDTreePartition.h.

Referenced by Cell(), edgeSet(), maxAxisValue(), minAxisValue(), nodeIterators(), nodes(), numberOfEdgesEndingInCell(), numberOfEdgesStartingInCell(), and partition().

◆ mySupercell

template<class E, class N, class V>
Cell* KDTreePartition< E, N, V >::Cell::mySupercell
private

The super cell.

Definition at line 431 of file KDTreePartition.h.

Referenced by Cell(), getSupercell(), and partition().

◆ myToExclusive

template<class E, class N, class V>
const size_t KDTreePartition< E, N, V >::Cell::myToExclusive
private

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