Program Listing for File ZoneOrientation.h

Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/Evolve/ZoneOrientation.h)

#ifndef __ZONE_ORIENTATION_H
#define __ZONE_ORIENTATION_H

#include "../Core/SharedLibraryExportMacros.h"
#include "DissipationQuantities.h"
#include "../Core/Common.h"
#include "../Core/IncludeEigen.h"

namespace Evolve {

    class LIB_PUBLIC ZoneOrientation {
    private:

        double __inclination,

               __periapsis;
    public:
        ZoneOrientation(double inclination = Core::NaN,
                        double periapsis = Core::NaN) :
            __inclination(inclination),
            __periapsis(periapsis)
        {}

        void configure(double inclination, double periapsis)
        {__inclination=inclination; __periapsis=periapsis;}

        double inclination() const {return __inclination;}

        double periapsis() const {return __periapsis;}
    }; //End ZoneOrientation class.

    LIB_PUBLIC Eigen::Vector3d zone_to_zone_transform(
            const ZoneOrientation &from_zone,

            const ZoneOrientation &to_zone,

            const Eigen::Vector3d &vector,

            Dissipation::QuantityEntry deriv=Dissipation::NO_DERIV,

            bool with_respect_to_from=false
    );

    /*
    void transform_zone_orientation(
            const ZoneOrientation &zone,

            const ZoneOrientation &reference,

            double &inclination,

            double &periapsis
    );*/

}//End Evolve namespace.

#endif