#ifndef __PNDDRCOPTREFLGRAY_H__ #define __PNDDRCOPTREFLGRAY_H__ /*! \brief Class for reflectivity of surfaces. Defines the reflectivity of a generic semitransparent mirror. There is a member to adjust the reflectivity. Light which is not reflected, is transmitted. It acts like a gray filter. */ class PndDrcOptReflGray : public PndDrcOptReflAbs { private: float m_reflProb; //!< Reflection probability public: // implementation of abstract base class function PndDrcOptReflGray* clone() const; /*! \brief Reflectivity of surface used for mirror surfaces or surfacec with internal reflection. \param ph The photon \param normal Normal vector of surface */ const Drc::Reflectivity reflectivity(PndDrcPhoton& ph, XYZVector normal) const; /*! \brief Set reflection probability. \param refl Reflection probability [0,1]. */ void setReflProb(float refl) {m_reflProb=refl;}; /*! \brief Reflection probability. \return Reflection probability [0,1]. */ float reflProb() {return m_reflProb;}; }; #endif