98 lines
2.8 KiB
C++
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
|