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 KDTreePartition< E, N, V >::Cell::completeSpatialInfo(), KDTreePartition< E, N, V >::Cell::contains(), KDTreePartition< E, N, V >::Cell::edgeSet(), KDTreePartition< E, N, V >::flip(), KDTreePartition< E, N, V >::Cell::isProhibited(), KDTreePartition< E, N, V >::Cell::myAxis, KDTreePartition< E, N, V >::Cell::myBoundaryFromNodes, KDTreePartition< E, N, V >::Cell::myCells, KDTreePartition< E, N, V >::Cell::myFromInclusive, KDTreePartition< E, N, V >::Cell::myHasCompleteSpatialInfo, KDTreePartition< E, N, V >::Cell::myHasNodesSortedWrtToMyAxis, KDTreePartition< E, N, V >::Cell::myHavePermissions, KDTreePartition< E, N, V >::Cell::myHaveRestrictions, KDTreePartition< E, N, V >::Cell::myIncomingBoundaryEdges, KDTreePartition< E, N, V >::Cell::myLeftOrLowerSubcell, KDTreePartition< E, N, V >::Cell::myLevel, KDTreePartition< E, N, V >::Cell::myLevelCells, KDTreePartition< E, N, V >::Cell::myMaxX, KDTreePartition< E, N, V >::Cell::myMaxY, KDTreePartition< E, N, V >::Cell::myMinX, KDTreePartition< E, N, V >::Cell::myMinY, KDTreePartition< E, N, V >::Cell::myNumber, KDTreePartition< E, N, V >::Cell::myNumberOfLevels, KDTreePartition< E, N, V >::Cell::myOutgoingBoundaryEdges, KDTreePartition< E, N, V >::Cell::myRightOrUpperSubcell, KDTreePartition< E, N, V >::Cell::mySortedNodes, KDTreePartition< E, N, V >::Cell::myToExclusive, KDTreePartition< E, N, V >::Cell::nodes(), KDTreePartition< E, N, V >::Cell::partition(), and KDTreePartition< E, N, V >::X.

◆ ~Cell()

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

Member Function Documentation

◆ cellCounter()

template<class E , class N , class V >
static 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 KDTreePartition< E, N, V >::Cell::cellCounter().

Referenced by KDTreePartition< E, N, V >::Cell::cellCounter(), and KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::X, and KDTreePartition< E, N, V >::Y.

Referenced by KDTreePartition< E, N, V >::Cell::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.

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

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 KDTreePartition< E, N, V >::mySortedNodes.

Referenced by KDTreePartition< E, N, V >::Cell::Cell().

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 KDTreePartition< E, N, V >::Cell::myAxis.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux(), and KDTreePartition< E, N, V >::searchNode().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::myBoundaryFromNodes.

◆ 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 KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::myLeftOrLowerSubcell.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux(), and KDTreePartition< E, N, V >::searchNode().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::myMaxX.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::myMaxY.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::myMedianCoordinate.

Referenced by KDTreePartition< E, N, V >::searchNode().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::myMinX.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::myMinY.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::myNumber.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux().

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 KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::myOutgoingBoundaryEdges.

Referenced by 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 KDTreePartition< E, N, V >::Cell::myRightOrUpperSubcell.

Referenced by KDTreePartition< E, N, V >::cellNumbersAux(), and KDTreePartition< E, N, V >::searchNode().

Here is the caller graph for this function:

◆ 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 KDTreePartition< E, N, V >::Cell::mySupercell.

Referenced by 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.

◆ 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 KDTreePartition< E, N, V >::Cell::myIsLeftOrLowerCell.

Referenced by 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 KDTreePartition< E, N, V >::Cell::myHavePermissions, and KDTreePartition< E, N, V >::Cell::myHaveRestrictions.

Referenced by KDTreePartition< E, N, V >::Cell::Cell().

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.

◆ 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 KDTreePartition< E, N, V >::mySortedNodes, and KDTreePartition< E, N, V >::Y.

◆ 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.

◆ 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 KDTreePartition< E, N, V >::mySortedNodes, and KDTreePartition< E, N, V >::Y.

◆ 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 KDTreePartition< E, N, V >::mySortedNodes.

◆ 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 KDTreePartition< E, N, V >::mySortedNodes.

Referenced by KDTreePartition< E, N, V >::Cell::Cell().

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 KDTreePartition< E, N, V >::mySortedNodes.

◆ 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 KDTreePartition< E, N, V >::mySortedNodes.

◆ 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 KDTreePartition< E, N, V >::mySortedNodes, KDTreePartition< E, N, V >::X, and KDTreePartition< E, N, V >::Y.

Referenced by KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::getAxis().

◆ 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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell().

◆ myFromInclusive

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

The from-index (inclusive)

Definition at line 401 of file KDTreePartition.h.

Referenced by KDTreePartition< E, N, V >::Cell::Cell().

◆ 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 KDTreePartition< E, N, V >::Cell::Cell().

◆ 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 KDTreePartition< E, N, V >::Cell::Cell().

◆ 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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), KDTreePartition< E, N, V >::Cell::getLeftOrLowerSubcell(), and KDTreePartition< E, N, V >::Cell::~Cell().

◆ myLevel

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

◆ 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 KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::getMaxX().

◆ 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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::getMaxY().

◆ 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 KDTreePartition< E, N, V >::Cell::getMedianCoordinate().

◆ 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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::getMinY().

◆ myNumber

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

◆ 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 KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), and KDTreePartition< E, N, V >::Cell::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 KDTreePartition< E, N, V >::Cell::Cell(), KDTreePartition< E, N, V >::Cell::getRightOrUpperSubcell(), and KDTreePartition< E, N, V >::Cell::~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 KDTreePartition< E, N, V >::Cell::Cell().

◆ 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 KDTreePartition< E, N, V >::Cell::getSupercell().

◆ myToExclusive

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

The to-index (exclusive)

Definition at line 403 of file KDTreePartition.h.

Referenced by KDTreePartition< E, N, V >::Cell::Cell().


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