params.h 1.16 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
#pragma once

/*! \brief a static class allowing to change from one parametrization
 *  to another.
 *  \ingroup core
 *
 *  \details
 *  Any \typedef function object or \typedef data object should have
 *  an associated parametrization.
 */
class params
{
13
    public: // data
14

15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
        //! \brief list of all supported parametrization. An unsupported
        //! parametrization will go under the name <em>unknown</em>.
        enum type
        {
            ROMEIRO_TH_TD,
            RUSIN_TH_PH_TD,
            RUSIN_TH_TD_PD,
            RUSIN_TH_PH_TD_PD,
            COS_TH_TD,
            ISOTROPIC_TV_TL_DPHI,
            ISOTROPIC_TD_PD, // Difference between two directions such as R and H
            CARTESIAN,
            SPHERICAL_TL_PL_TV_PV,
            UNKNOWN
        };

    public: // methods

        //! \brief static function for input type convertion.
34 35 36
        //! \todo implement the convertion method using a case on the
        //! out type. It should work if the input vector is converted
        //! to a 6D vector (in, out).
37 38 39 40
        static vec convert(const vec& invec, params::type intype, params::type outtype)
        {
            return invec;
        }
41
};