|
Krita Source Code Documentation
|
#include <KisSpatialContainer.h>
Classes | |
| struct | SpatialNode |
Public Member Functions | |
| void | addPoint (int index, QPointF position) |
| void | clear () |
| int | count () |
| void | debugWriteOut () |
| QRectF | exactBounds () |
| void | findAllInRange (QVector< int > &indexes, QPointF center, qreal range) |
| QPointF | getTopLeft () |
| void | initializeFor (int numPoints, QRectF startArea) |
| void | initializeWith (const QVector< QPointF > &points) |
| void | initializeWithGridPoints (QRectF gridRect, int pixelPrecision) |
| KisSpatialContainer (const KisSpatialContainer &rhs) | |
| KisSpatialContainer (QRectF startArea, int maxPointsInDict=100) | |
| KisSpatialContainer (QRectF startArea, QVector< QPointF > &points) | |
| void | movePoint (int index, QPointF positionBefore, QPointF positionAfter) |
| void | removePoint (int index, QPointF position) |
| QVector< QPointF > | toVector () |
| ~KisSpatialContainer () | |
Private Member Functions | |
| void | addPointRec (int index, QPointF position, SpatialNode *node) |
| void | clearRec (SpatialNode *node) |
| SpatialNode * | createNodeForPoint (int index, QPointF position) |
| void | debugWriteOutRec (SpatialNode *node, QString prefix) |
| void | deepCopyData (SpatialNode *node, const SpatialNode *from) |
| void | findAllInRangeRec (QVector< int > &indexes, QPointF center, qreal range, SpatialNode *node) |
| void | gatherDataRec (QVector< QPointF > &vector, SpatialNode *node) |
| std::optional< qreal > | getBoundaryOnAxis (bool positive, bool xAxis, SpatialNode *node) |
| QPointF | getBoundaryPoint (bool left, bool top) |
| void | initializeLevels (SpatialNode *node, int levelsLeft, QRectF area) |
| void | initializeWithGridPointsRec (QRectF gridRect, int pixelPrecision, SpatialNode *node, int startRow, int startColumn, int columnCount) |
| void | movePointRec (int index, QPointF positionBefore, QPointF positionAfter, SpatialNode *node) |
| void | removePointRec (int index, QPointF position, SpatialNode *node) |
Private Attributes | |
| int | m_count {0} |
| int | m_maxPointsInDict = {100} |
| int | m_nextNodeId = {0} |
| SpatialNode * | m_root {nullptr} |
Friends | |
| class | KisSpatialContainerTest |
Definition at line 23 of file KisSpatialContainer.h.
| KisSpatialContainer::KisSpatialContainer | ( | QRectF | startArea, |
| int | maxPointsInDict = 100 ) |
Definition at line 83 of file KisSpatialContainer.cpp.
References m_nextNodeId, m_root, KisSpatialContainer::SpatialNode::nodeId, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
| KisSpatialContainer::KisSpatialContainer | ( | QRectF | startArea, |
| QVector< QPointF > & | points ) |
Definition at line 92 of file KisSpatialContainer.cpp.
References initializeWith(), m_nextNodeId, m_root, KisSpatialContainer::SpatialNode::nodeId, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
| KisSpatialContainer::KisSpatialContainer | ( | const KisSpatialContainer & | rhs | ) |
Definition at line 102 of file KisSpatialContainer.cpp.
References deepCopyData(), m_count, m_maxPointsInDict, m_nextNodeId, and m_root.
| KisSpatialContainer::~KisSpatialContainer | ( | ) |
Definition at line 112 of file KisSpatialContainer.cpp.
| void KisSpatialContainer::addPoint | ( | int | index, |
| QPointF | position ) |
Definition at line 151 of file KisSpatialContainer.cpp.
References addPointRec(), and m_root.
|
private |
Definition at line 212 of file KisSpatialContainer.cpp.
References KisAlgebra2D::accumulateBounds(), addPointRec(), KisSpatialContainer::SpatialNode::childIndexForPoint(), KisSpatialContainer::SpatialNode::children, createNodeForPoint(), KisSpatialContainer::SpatialNode::isLeaf, m_count, m_maxPointsInDict, KisSpatialContainer::SpatialNode::maximumArea, KisSpatialContainer::SpatialNode::pointsCount, KisSpatialContainer::SpatialNode::pointsData, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
| void KisSpatialContainer::clear | ( | ) |
Definition at line 201 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::children, clearRec(), KisSpatialContainer::SpatialNode::isLeaf, m_root, KisSpatialContainer::SpatialNode::pointsCount, and KisSpatialContainer::SpatialNode::pointsData.
|
private |
Definition at line 675 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::children, clearRec(), KisSpatialContainer::SpatialNode::isLeaf, and KIS_SAFE_ASSERT_RECOVER_RETURN.
| int KisSpatialContainer::count | ( | ) |
Definition at line 184 of file KisSpatialContainer.cpp.
References m_count.
|
private |
Definition at line 334 of file KisSpatialContainer.cpp.
References m_nextNodeId, KisSpatialContainer::SpatialNode::maximumArea, KisSpatialContainer::SpatialNode::nodeId, KisSpatialContainer::SpatialNode::pointsCount, and KisSpatialContainer::SpatialNode::pointsData.
| void KisSpatialContainer::debugWriteOut | ( | ) |
Definition at line 393 of file KisSpatialContainer.cpp.
References debugWriteOutRec(), and m_root.
|
private |
Definition at line 398 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::children, debugWriteOutRec(), KisSpatialContainer::SpatialNode::isLeaf, KisSpatialContainer::SpatialNode::nodeId, KisSpatialContainer::SpatialNode::pointsCount, KisSpatialContainer::SpatialNode::pointsData, ppVar, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
|
private |
Definition at line 692 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::children, deepCopyData(), KisSpatialContainer::SpatialNode::isLeaf, KisSpatialContainer::SpatialNode::maximumArea, KisSpatialContainer::SpatialNode::nodeId, KisSpatialContainer::SpatialNode::pointsCount, KisSpatialContainer::SpatialNode::pointsData, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
| QRectF KisSpatialContainer::exactBounds | ( | ) |
Definition at line 194 of file KisSpatialContainer.cpp.
References getBoundaryPoint(), and getTopLeft().
Definition at line 179 of file KisSpatialContainer.cpp.
References findAllInRangeRec(), and m_root.
|
private |
Definition at line 354 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::childIndexForPoint(), KisSpatialContainer::SpatialNode::children, findAllInRangeRec(), isInRange(), KisSpatialContainer::SpatialNode::isLeaf, KisSpatialContainer::SpatialNode::pointsCount, and KisSpatialContainer::SpatialNode::pointsData.
|
private |
Definition at line 378 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::children, gatherDataRec(), KisSpatialContainer::SpatialNode::isLeaf, KIS_SAFE_ASSERT_RECOVER, and KisSpatialContainer::SpatialNode::pointsData.
|
private |
Definition at line 422 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::childIndexForPoint(), KisSpatialContainer::SpatialNode::children, getBoundaryOnAxis(), KisSpatialContainer::SpatialNode::isLeaf, KisSpatialContainer::SpatialNode::pointsData, KisSpatialContainer::SpatialNode::SpatialNodeData::position, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
|
private |
Definition at line 505 of file KisSpatialContainer.cpp.
References getBoundaryOnAxis(), and m_root.
| QPointF KisSpatialContainer::getTopLeft | ( | ) |
Definition at line 189 of file KisSpatialContainer.cpp.
References getBoundaryPoint().
| void KisSpatialContainer::initializeFor | ( | int | numPoints, |
| QRectF | startArea ) |
Definition at line 119 of file KisSpatialContainer.cpp.
References clear(), initializeLevels(), m_maxPointsInDict, and m_root.
|
private |
Definition at line 521 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::childIndexForPoint(), KisSpatialContainer::SpatialNode::children, initializeLevels(), KisSpatialContainer::SpatialNode::isLeaf, KIS_SAFE_ASSERT_RECOVER_RETURN, m_nextNodeId, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
Definition at line 135 of file KisSpatialContainer.cpp.
References addPoint(), and clear().
| void KisSpatialContainer::initializeWithGridPoints | ( | QRectF | gridRect, |
| int | pixelPrecision ) |
Definition at line 144 of file KisSpatialContainer.cpp.
References GridIterationTools::calcGridSize(), clear(), initializeWithGridPointsRec(), and m_root.
|
private |
Definition at line 557 of file KisSpatialContainer.cpp.
References GridIterationTools::calcGridSize(), KisSpatialContainer::SpatialNode::childIndexForPoint(), KisSpatialContainer::SpatialNode::children, initializeWithGridPointsRec(), KisSpatialContainer::SpatialNode::isLeaf, m_count, m_maxPointsInDict, m_nextNodeId, KisSpatialContainer::SpatialNode::maximumArea, KisSpatialContainer::SpatialNode::pointsCount, KisSpatialContainer::SpatialNode::pointsData, KisSpatialContainer::SpatialNode::xPartition, and KisSpatialContainer::SpatialNode::yPartition.
| void KisSpatialContainer::movePoint | ( | int | index, |
| QPointF | positionBefore, | ||
| QPointF | positionAfter ) |
Definition at line 161 of file KisSpatialContainer.cpp.
References m_root, and movePointRec().
|
private |
Definition at line 306 of file KisSpatialContainer.cpp.
References KisAlgebra2D::accumulateBounds(), addPointRec(), KisSpatialContainer::SpatialNode::childIndexForPoint(), KisSpatialContainer::SpatialNode::children, createNodeForPoint(), KisSpatialContainer::SpatialNode::isLeaf, KisSpatialContainer::SpatialNode::maximumArea, movePointRec(), KisSpatialContainer::SpatialNode::pointsCount, KisSpatialContainer::SpatialNode::pointsData, and removePointRec().
| void KisSpatialContainer::removePoint | ( | int | index, |
| QPointF | position ) |
Definition at line 156 of file KisSpatialContainer.cpp.
References m_root, and removePointRec().
|
private |
Definition at line 258 of file KisSpatialContainer.cpp.
References KisSpatialContainer::SpatialNode::childIndexForPoint(), KisSpatialContainer::SpatialNode::children, KisSpatialContainer::SpatialNode::isLeaf, KisSpatialContainer::SpatialNode::pointsCount, KisSpatialContainer::SpatialNode::pointsData, and removePointRec().
| QVector< QPointF > KisSpatialContainer::toVector | ( | ) |
Definition at line 166 of file KisSpatialContainer.cpp.
References gatherDataRec(), m_count, and m_root.
|
friend |
Definition at line 101 of file KisSpatialContainer.h.
|
private |
Definition at line 96 of file KisSpatialContainer.h.
|
private |
Definition at line 97 of file KisSpatialContainer.h.
|
private |
Definition at line 98 of file KisSpatialContainer.h.
|
private |
Definition at line 99 of file KisSpatialContainer.h.