#ifndef _OTB_TRISKELE_SELECTED_HPP #define _OTB_TRISKELE_SELECTED_HPP #include #include #include #include #include #include namespace otb { namespace triskele { using namespace std; using namespace boost; // ======================================== class Selected { private: /*! * \brief set Vector qui correspond à l'ensemble */ vector set; /*! * \brief Indicateur si le max doit etre defini (à l'aide de la methode setMaxValue()) */ bool minFlag = false, maxFlag = false; int minInter, maxInter; public: /*! * \brief getSet Getter de l'ensemble * \return L'ensemble set */ inline const vector &getSet () const; /*! * \brief empty Vérifie si l'ensemble est vide ou non * \return true si l'ensemble est vide, false sinon */ inline bool empty () const; /*! * \brief size Retourne la taille de l'ensemble * \return La taille de l'ensemble */ inline int size () const; /*! * \brief first Retourne la première valeur de l'ensemble * \return La première valeur de l'ensemble */ inline int first () const; /*! * \brief last Retourne la dernière valeur de l'ensemble * \return La dernière valeur de l'ensemble */ inline int last () const; /*! * \brief Selected Constructeur par défaut */ Selected (); /*! * \brief Selected Constructeur avec un interval */ Selected (int first, int last); /*! * \brief Selected Constructeur de copie * \param selected Objet à copier */ Selected (const Selected &selected); /*! * \brief Selected Constructeur qui convertit la chaîne option en ensemble * \param option Chaîne de caractère à convertir */ Selected (const string &option); /*! * \brief Fixe les bornes en cas option "-x" ou "x-" * \param max la valeur de l'index de la bande max */ void setLimits (int minOpt, int maxOpt); /*! * \brief toSet Conversion en ensemble (On retire les doublons et ordonne le vector) * \return L'objet Selected */ Selected &toSet (); /*! * \brief contains Vérifie si la valeur value est contenue dans l'ensemble * \param value valeur à vérifier * \return true si la valeur est contenue dans l'ensemble, false sinon */ bool contains (int value) const; }; inline ostream &operator << (ostream &out, const Selected &selected); #include "Selected.tpp" }//namespace triskele }//namespace otb #endif //_OTB_TRISKELE_SELECTED_HPP