Program Listing for File BaseOption.hpp

Return to documentation for file (include/lvr2/config/BaseOption.hpp)

/*
 * BaseOption.hpp
 *
 *  Created on: Feb 4, 2015
 *      Author: twiemann
 */

#ifndef INCLUDE_LIBLVR2_CONFIG_BASEOPTION_HPP_
#define INCLUDE_LIBLVR2_CONFIG_BASEOPTION_HPP_

#include <boost/program_options.hpp>
#include <iostream>

#include "lvr2/util/CoordinateTransform.hpp"

namespace lvr2
{

using namespace boost::program_options;

class BaseOption
{
public:
    BaseOption(int argc, char** argv);
    virtual ~BaseOption();

    void printTransformation(std::ostream& out) const;

    float sx() const { return m_variables["sx"].as<float>();}

    float sy() const { return m_variables["sy"].as<float>();}

    float sz() const { return m_variables["sz"].as<float>();}

    int x() const { return m_variables["xPos"].as<int>();}

    int y() const { return m_variables["yPos"].as<int>();}

    int z() const { return m_variables["zPos"].as<int>();}

    CoordinateTransform<float> coordinateTransform() const;

    void printLogo() const;

protected:

    virtual void setup();

    void setupInputTransformation();

    variables_map                   m_variables;

    options_description             m_descr;

    positional_options_description  m_pdescr;

    CoordinateTransform<float>*     m_coordinateTransform;

    int                             m_argc;

    char**                          m_argv;


};

} /* namespace lvr2 */

#endif /* INCLUDE_LIBLVR2_CONFIG_BASEOPTION_HPP_ */