diff --git a/corsika/detail/media/ExponentialRefractiveIndex.inl b/corsika/detail/media/ExponentialRefractiveIndex.inl index 664b47b39572ecb13836e068f363782523324bb1..ce2504872ba36091d9c0bb64ca1ef55a66017186 100644 --- a/corsika/detail/media/ExponentialRefractiveIndex.inl +++ b/corsika/detail/media/ExponentialRefractiveIndex.inl @@ -1,31 +1,31 @@ -///* -// * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu -// * -// * This software is distributed under the terms of the GNU General Public -// * Licence version 3 (GPL Version 3). See file LICENSE for a full version of -// * the license. -// */ -// -//#pragma once -// -//#include <bits/stdc++.h> -//#include <corsika/media/IRefractiveIndexModel.hpp> -// -//namespace corsika { -// -// template <typename T> -// template <typename... Args> -// ExponentialRefractiveIndex<T>::ExponentialRefractiveIndex(double const n0, -// InverseLengthType const lambda, Args&&... args) -// : T(std::forward<Args>(args)...) -// , n_0(n0) -// , lambda_(lambda) {} -// -// template <typename T> -// double ExponentialRefractiveIndex<T>::getRefractiveIndex(Point const& point) const { -// //TODO: THIS METHOD CURRENTLY ONLY USES THE Z-COORDINATE. -// //NEED TO THINK IT FOR FUTURE WORK ON ARBITRARY GEOMETRIES. -// return n_0 * exp((-lambda_) * point.getCoordinates().getZ()); -// } -// -//} // namespace corsika +/* + * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu + * + * This software is distributed under the terms of the GNU General Public + * Licence version 3 (GPL Version 3). See file LICENSE for a full version of + * the license. + */ + +#pragma once + +#include <bits/stdc++.h> +#include <corsika/media/IRefractiveIndexModel.hpp> + +namespace corsika { + + template <typename T> + template <typename... Args> + ExponentialRefractiveIndex<T>::ExponentialRefractiveIndex(double const n0, + InverseLengthType const lambda, Args&&... args) + : T(std::forward<Args>(args)...) + , n_0(n0) + , lambda_(lambda) {} + + template <typename T> + double ExponentialRefractiveIndex<T>::getRefractiveIndex(Point const& point) const { + //TODO: THIS METHOD CURRENTLY ONLY USES THE Z-COORDINATE. + //NEED TO THINK IT FOR FUTURE WORK ON ARBITRARY GEOMETRIES. + return n_0 * exp((-lambda_) * point.getCoordinates().getZ()); + } + +} // namespace corsika diff --git a/corsika/media/ExponentialRefractiveIndex.hpp b/corsika/media/ExponentialRefractiveIndex.hpp index 3ac778926933aad6ff068e4becffd43a25fc67a6..c5b6e4d138f7b61b457e71feb7d59171003f0b66 100644 --- a/corsika/media/ExponentialRefractiveIndex.hpp +++ b/corsika/media/ExponentialRefractiveIndex.hpp @@ -38,23 +38,18 @@ namespace corsika { */ template <typename... Args> ExponentialRefractiveIndex(double const n0, - InverseLengthType const lambda, Args&&... args) - : T(std::forward<Args>(args)...) - , n_0(n0) - , lambda_(lambda) {} + InverseLengthType const lambda, Args&&... args); + /** * Evaluate the refractive index at a given location. * * @param point The location to evaluate at. * @returns The refractive index at this point. */ - double getRefractiveIndex(Point const& point) const final override - { - //TODO: THIS METHOD CURRENTLY ONLY USES THE Z-COORDINATE. - //NEED TO THINK IT FOR FUTURE WORK ON ARBITRARY GEOMETRIES. - return n_0 * exp((-lambda_) * point.getCoordinates().getZ()); - } + double getRefractiveIndex(Point const& point) const final override; }; // END: class ExponentialRefractiveIndex -} // namespace corsika \ No newline at end of file +} // namespace corsika + +#include <corsika/detail/media/ExponentialRefractiveIndex.inl>