
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
77 lines
1.6 KiB
C++
77 lines
1.6 KiB
C++
#ifndef _OTB_TRISKELE_ARRAY_TREE_LEADER_TPP
|
|
#define _OTB_TRISKELE_ARRAY_TREE_LEADER_TPP
|
|
|
|
// ========================================
|
|
inline
|
|
Leader::Leader (DimImg vertexCount)
|
|
: size (vertexCount),
|
|
leaders (size, DimImg_MAX) {
|
|
}
|
|
|
|
inline
|
|
Leader::~Leader () {
|
|
free ();
|
|
}
|
|
|
|
// ========================================
|
|
inline void
|
|
Leader::book (DimImg vertexCount) {
|
|
SMART_DEF_LOG ("Leader::book", "vertexCount:" << vertexCount);
|
|
size = vertexCount;
|
|
leaders.assign (size, DimImg_MAX);
|
|
}
|
|
|
|
// ---------------------------------------
|
|
inline void
|
|
Leader::free () {
|
|
SMART_DEF_LOG ("Leader::free", "");
|
|
leaders = vector<DimImg> ();
|
|
size = 0;
|
|
}
|
|
|
|
// ========================================
|
|
inline DimImg
|
|
Leader::find (DimImg a) const {
|
|
BOOST_ASSERT (a < size);
|
|
for (;;) {
|
|
// On recherche le leader de a dans le tableau
|
|
DimImg p = leaders[a];
|
|
// Si p est size, p n'a pas de leader donc p était le leader de a
|
|
if (p == DimImg_MAX)
|
|
break;
|
|
a = p;
|
|
}
|
|
BOOST_ASSERT (a < size);
|
|
return a;
|
|
}
|
|
|
|
// ----------------------------------------
|
|
inline void
|
|
Leader::link (DimImg a, const DimImg &r) {
|
|
BOOST_ASSERT (a < size);
|
|
BOOST_ASSERT (r < size);
|
|
for (; a != r;) {
|
|
// On affecte une variable "temporaire" qui joue le rôle du leader de a
|
|
DimImg p = leaders[a];
|
|
//
|
|
leaders[a] = r;
|
|
if (p == DimImg_MAX)
|
|
return;
|
|
a = p;
|
|
}
|
|
}
|
|
|
|
// ========================================
|
|
inline DimImg *
|
|
Leader::getLeaders () {
|
|
return &leaders[0];
|
|
}
|
|
|
|
inline vector<DimImg> &
|
|
Leader::getLeadersVector () {
|
|
return leaders;
|
|
}
|
|
// ========================================
|
|
|
|
#endif // _OTB_TRISKELE_ARRAY_TREE_LEADER_TPP
|