24 #include <CD_NamespaceHeader.H>
133 inline std::shared_ptr<
KDNode<P>>&
139 inline std::shared_ptr<
KDNode<P>>&
180 #include <CD_NamespaceFooter.H>
Implementation of CD_KDNode.H.
Node in a particle-merging KD-tree.
Definition: CD_KDNode.H:33
ParticleList moveParticles() noexcept
Move the particles list further down in the subtree into this vector.
Definition: CD_KDNodeImplem.H:105
KDNode & operator=(const KDNode &&)=delete
Disallowed assignment.
const Real & weight() const noexcept
Get the node weight.
Definition: CD_KDNodeImplem.H:52
const ParticleList & getParticles() const noexcept
Get particles in this node.
Definition: CD_KDNodeImplem.H:38
KDNode()
Default constructor.
Definition: CD_KDNodeImplem.H:24
std::shared_ptr< KDNode< P > > & getRight() noexcept
Get the right node.
Definition: CD_KDNodeImplem.H:138
std::shared_ptr< KDNode > m_right
Right KD-node.
Definition: CD_KDNode.H:151
ParticleList gatherParticles() const noexcept
Gather particles further down in the subtree and return all particles (in the leaf nodes)
Definition: CD_KDNodeImplem.H:80
virtual ~KDNode()
Destructor. Does nothing.
Definition: CD_KDNodeImplem.H:33
ParticleList m_particles
List of particles.
Definition: CD_KDNode.H:161
Real m_weight
Node weight.
Definition: CD_KDNode.H:156
std::shared_ptr< KDNode< P > > & getLeft() noexcept
Get the left node.
Definition: CD_KDNodeImplem.H:131
KDNode & operator=(const KDNode &)=delete
Disallowed assignment.
std::vector< P > ParticleList
List of particles. This is aliased because the KD-tree construction may require both random access an...
Definition: CD_KDNode.H:39
bool isLeafNode() const noexcept
Is leaf node or not.
Definition: CD_KDNodeImplem.H:66
KDNode(const KDNode &&)=delete
Disallowed constructor.
std::shared_ptr< KDNode > m_left
Left KD-node.
Definition: CD_KDNode.H:146
KDNode(const KDNode &)=delete
Disallowed constructor.
bool isInteriorNode() const noexcept
Is leaf node or not.
Definition: CD_KDNodeImplem.H:73