Program Listing for File waypoint.h

Return to documentation for file (src/rlenvs/utils/trajectory/waypoint.h)

#ifndef WAYPOINT_H
#define WAYPOINT_H

#include "rlenvs/rlenvs_types_v2.h"
#include "rlenvs/utils/geometry/geom_point.h"
#include "rlenvs/rlenvs_consts.h"
namespace rlenvscpp{
namespace utils{
namespace trajectory{


using rlenvscpp::utils::geom::GeomPoint;

template<int dim, typename Data>
class WayPoint: public GeomPoint<dim>
{
public:


    typedef Data data_type;

    WayPoint();

    WayPoint(const GeomPoint<dim>& p, uint_t id,
             const data_type& data_=data_type());

    uint_t get_id()const{return id_;}

    data_type& get_data(){return data_;}

    const data_type& get_data()const{return data_;}

    bool is_active()const{return is_active_point_;}

private:

    uint_t id_;
    data_type data_;
    bool is_active_point_;
};



template<int dim, typename Data>
WayPoint<dim, Data>::WayPoint(const GeomPoint<dim>& p, uint_t id,
        const typename WayPoint<dim, Data>::data_type& data)
        :
        GeomPoint<dim>(p),
        id_(id),
        data_(data),
        is_active_point_(true)
    {}

template<int dim, typename Data>
WayPoint<dim, Data>::WayPoint()
:
WayPoint(GeomPoint<dim>(),rlenvscpp::consts::INVALID_ID)
{}
}
}
}

#endif