15 #ifndef BORNAGAIN_CORE_EXPORT_INODEUTILS_H
16 #define BORNAGAIN_CORE_EXPORT_INODEUTILS_H
22 template <
typename T> std::vector<const T*> ChildNodesOfType(
const INode& node)
24 std::vector<const T*> result;
26 if (
const auto* t =
dynamic_cast<const T*
>(p_child))
32 template <
typename T>
const T* OnlyChildOfType(
const INode& node)
34 const auto list = ChildNodesOfType<T>(node);
40 template <
typename T> std::vector<const T*> AllDescendantsOfType(
const INode& node)
42 std::vector<const T*> result;
44 if (
const auto* t =
dynamic_cast<const T*
>(p_child))
46 for (
const auto* t : AllDescendantsOfType<T>(*p_child))
Base class for tree-like structures containing parameterized objects.
virtual std::vector< const INode * > getChildren() const
Returns a vector of children (const).