triskele/include/Appli/Selected.hpp
Git Merciol f687310939 modifié : CMakeLists.txt
modifié :         CMakeListsOTB.txt
	modifié :         LICENSE
	modifié :         MakefileNoOTB
	modifié :         Readme.html
	modifié :         Readme.txt
	modifié :         include/Appli/Option.hpp
	modifié :         include/Appli/Selected.hpp
	modifié :         include/Appli/Selected.tpp
	modifié :         include/ArrayTree/ArrayTreeBuilder.hpp
	modifié :         include/ArrayTree/ArrayTreeBuilder.tpp
	modifié :         include/ArrayTree/Border.hpp
	modifié :         include/ArrayTree/Border.tpp
	modifié :         include/ArrayTree/GraphWalker.hpp
	modifié :         include/ArrayTree/GraphWalker.tpp
	modifié :         include/ArrayTree/Leader.hpp
	modifié :         include/ArrayTree/Leader.tpp
	modifié :         include/ArrayTree/Weight.hpp
	modifié :         include/ArrayTree/Weight.tpp
	modifié :         include/ArrayTree/triskeleArrayTreeBase.hpp
	modifié :         include/ArrayTree/triskeleArrayTreeBase.tpp
	modifié :         include/ArrayTree/triskeleSort.hpp
	modifié :         include/ArrayTree/triskeleSort.tpp
	modifié :         include/AttributeProfiles.hpp
	modifié :         include/AttributeProfiles.tpp
	modifié :         include/Attributes/AreaAttributes.hpp
	modifié :         include/Attributes/AreaAttributes.tpp
	modifié :         include/Attributes/AverageAttributes.hpp
	modifié :         include/Attributes/AverageAttributes.tpp
	modifié :         include/Attributes/MoIAttributes.hpp
	modifié :         include/Attributes/MoIAttributes.tpp
	modifié :         include/Attributes/SDAttributes.hpp
	modifié :         include/Attributes/SDAttributes.tpp
	modifié :         include/Attributes/WeightAttributes.hpp
	modifié :         include/Attributes/WeightAttributes.tpp
	modifié :         include/Attributes/XYAttributes.hpp
	modifié :         include/Attributes/XYAttributes.tpp
	modifié :         include/CompAttribute.hpp
	modifié :         include/CompAttribute.tpp
	modifié :         include/IImage.hpp
	modifié :         include/IImage.tpp
	modifié :         include/QuadTree/QuadTreeBuilder.hpp
	modifié :         include/Tree.hpp
	modifié :         include/Tree.tpp
	modifié :         include/TreeBuilder.hpp
	modifié :         include/TreeBuilder.tpp
	modifié :         include/TreeStats.hpp
	modifié :         include/TreeStats.tpp
	modifié :         include/XMLTree/XMLTreeBuilder.hpp
	modifié :         include/triskeleBase.hpp
	modifié :         include/triskeleBase.tpp
	modifié :         include/triskeleDealThreads.hpp
	modifié :         include/triskeleDealThreads.tpp
	modifié :         include/triskeleDebug.hpp
	modifié :         include/triskeleGdalGetType.hpp
	modifié :         otb-module.cmake
	modifié :         src/Appli/Option.cpp
	modifié :         src/Appli/Selected.cpp
	modifié :         src/ArrayTree/triskeleArrayTreeBase.cpp
	modifié :         src/CMakeLists.txt
	modifié :         src/IImage.cpp
	modifié :         src/PerfArrayTreeBuilder.cpp
	modifié :         src/QuadTree/QuadTreeBuilder.cpp
	modifié :         src/TestArrayTreeBuilder.cpp
	modifié :         src/Tree.cpp
	modifié :         src/TreeStats.cpp
	modifié :         src/XMLTree/XMLTreeBuilder.cpp
	modifié :         src/apGenerator.cpp
	modifié :         src/triskeleBase.cpp
	modifié :         src/triskeleDebug.cpp
2018-04-02 19:25:37 +02: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