CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
corsika::VolumeTreeNode< TModelProperties > Class Template Reference

Public Types

using IModelProperties = TModelProperties
 
using VTN_type = VolumeTreeNode< IModelProperties >
 
using VTNUPtr = std::unique_ptr< VTN_type >
 
using IMPSharedPtr = std::shared_ptr< IModelProperties >
 
using VolUPtr = std::unique_ptr< IVolume >
 

Public Member Functions

 VolumeTreeNode (VolUPtr pVolume=nullptr)
 
bool contains (Point const &p) const
 convenience function equivalent to Volume::isInside
 
VolumeTreeNode< IModelProperties > const * excludes (Point const &p) const
 
VolumeTreeNode< IModelProperties > const * getContainingNode (Point const &p) const
 
template<typename TCallable , bool preorder = true>
void walk (TCallable func) const
 Traverses the VolumeTree pre- or post-order and calls the functor func for each node. More...
 
void addChild (VTNUPtr pChild)
 
void excludeOverlapWith (VTNUPtr const &pNode)
 
VTN_type const * getParent () const
 
auto const & getChildNodes () const
 
auto const & getExcludedNodes () const
 
auto const & getVolume () const
 
auto const & getModelProperties () const
 
bool hasModelProperties () const
 
template<typename ModelProperties , typename... Args>
auto setModelProperties (Args &&... args)
 
void setModelProperties (IMPSharedPtr ptr)
 

Detailed Description

template<typename TModelProperties = IEmpty>
class corsika::VolumeTreeNode< TModelProperties >

Definition at line 19 of file VolumeTreeNode.hpp.

Member Function Documentation

◆ walk()

template<typename TModelProperties = IEmpty>
template<typename TCallable , bool preorder = true>
void corsika::VolumeTreeNode< TModelProperties >::walk ( TCallable  func) const

Traverses the VolumeTree pre- or post-order and calls the functor func for each node.

func takes a reference to VolumeTreeNode as argument. The return value func is ignored.


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