triskele/include/Appli/Selected.hpp
Git Merciol 03626d1e71 nouveau fichier : include/Appli/Selected.hpp
nouveau fichier : include/Appli/Selected.tpp
	nouveau fichier : src/Appli/Selected.cpp
2018-02-20 18:26:32 +01:00

98 lines
2.8 KiB
C++

#ifndef _OTB_TRISKELE_SELECTED_HPP
#define _OTB_TRISKELE_SELECTED_HPP
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#include <boost/algorithm/string.hpp>
namespace otb {
namespace triskele {
using namespace std;
using namespace boost;
// ========================================
class Selected {
private:
/*!
* \brief set Vector qui correspond à l'ensemble
*/
vector<int> 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<int> &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