#ifndef __JPHYSICS__JABSTRACTMEDIUM__ #define __JPHYSICS__JABSTRACTMEDIUM__ /** * \author mdejong */ namespace JPHYSICS {} namespace JPP { using namespace JPHYSICS; } namespace JPHYSICS { /** * Medium interface. */ class JAbstractMedium { public: /** * Virtual destructor. */ virtual ~JAbstractMedium() {} /** * Absorption length. * * \param lambda wavelenth [nm] * \return absorption length [m] */ virtual double getAbsorptionLength(const double lambda) const = 0; /** * Scattering length. * * \param lambda wavelenth [nm] * \return scattering length [m] */ virtual double getScatteringLength(const double lambda) const = 0; /** * Model specific function to describe light scattering in water * (integral over full solid angle normalised to unity). * * \param ct cosine scattering angle * \return probability */ virtual double getScatteringProbability(const double ct) const = 0; }; } #endif