From 114a650f9e1dc776c53aaa14b4fd5a4bf7439113 Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Wed, 13 Oct 2021 16:06:21 +0200 Subject: [PATCH] return new volume --- .../detail/media/LayeredSphericalAtmosphereBuilder.inl | 9 +++++---- corsika/media/LayeredSphericalAtmosphereBuilder.hpp | 9 ++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/corsika/detail/media/LayeredSphericalAtmosphereBuilder.inl b/corsika/detail/media/LayeredSphericalAtmosphereBuilder.inl index 17371ff3b..0f17cf7c8 100644 --- a/corsika/detail/media/LayeredSphericalAtmosphereBuilder.inl +++ b/corsika/detail/media/LayeredSphericalAtmosphereBuilder.inl @@ -37,10 +37,10 @@ namespace corsika { template <typename TMediumInterface, template <typename> typename TMediumModelExtra, typename... TModelArgs> - inline void LayeredSphericalAtmosphereBuilder< - TMediumInterface, TMediumModelExtra, - TModelArgs...>::addExponentialLayer(GrammageType b, LengthType c, - LengthType upperBoundary) { + inline typename LayeredSphericalAtmosphereBuilder<TMediumInterface, TMediumModelExtra, + TModelArgs...>::volume_tree_node* + LayeredSphericalAtmosphereBuilder<TMediumInterface, TMediumModelExtra, TModelArgs...>:: + addExponentialLayer(GrammageType b, LengthType c, LengthType upperBoundary) { auto const radius = planetRadius_ + upperBoundary; checkRadius(radius); @@ -68,6 +68,7 @@ namespace corsika { } layers_.push(std::move(node)); + return layers_.top().get(); } template <typename TMediumInterface, template <typename> typename TMediumModelExtra, diff --git a/corsika/media/LayeredSphericalAtmosphereBuilder.hpp b/corsika/media/LayeredSphericalAtmosphereBuilder.hpp index 6c178f458..09bcabc06 100644 --- a/corsika/media/LayeredSphericalAtmosphereBuilder.hpp +++ b/corsika/media/LayeredSphericalAtmosphereBuilder.hpp @@ -75,8 +75,12 @@ namespace corsika { , additionalModelArgs_{args...} {} public: + typedef typename VolumeTreeNode<TMediumInterface>::VTN_type volume_tree_node; + typedef typename VolumeTreeNode<TMediumInterface>::VTNUPtr volume_tree_node_uptr; + void setNuclearComposition(NuclearComposition const& composition); - void addExponentialLayer(GrammageType b, LengthType c, LengthType upperBoundary); + volume_tree_node* addExponentialLayer(GrammageType b, LengthType c, + LengthType upperBoundary); void addLinearLayer(LengthType c, LengthType upperBoundary); void addTabularLayer(std::function<MassDensityType(LengthType)> const& funcRho, @@ -102,8 +106,7 @@ namespace corsika { LengthType planetRadius_; std::tuple<TModelArgs...> const additionalModelArgs_; - std::stack<typename VolumeTreeNode<TMediumInterface>::VTNUPtr> - layers_; // innermost layer first + std::stack<volume_tree_node_uptr> layers_; // innermost layer first }; // end class LayeredSphericalAtmosphereBuilder -- GitLab