11#include "MantidCrystal/DllConfig.h"
14#include <boost/optional.hpp>
15#include <boost/tuple/tuple.hpp>
18#include <unordered_set>
30namespace ConnectedComponentMappingTypes {
36using SetIds = std::unordered_set<size_t>;
37using ClusterMap = std::map<size_t, std::shared_ptr<Mantid::Crystal::ICluster>>;
38using ClusterTuple = boost::tuple<Mantid::API::IMDHistoWorkspace_sptr, ClusterMap>;
53 size_t getStartLabelId()
const;
56 void startLabelingId(
const size_t &
id);
73 int getNThreads()
const;
Helper class for reporting progress from algorithms.
BackgroundStrategy : Abstract class used for identifying elements of a IMDWorkspace that are not cons...
ConnectedComponentLabelling : Implements connected component labeling on MDHistoWorkspaces.
const boost::optional< int > m_nThreads
Run multithreaded.
virtual ~ConnectedComponentLabeling()
Destructor.
size_t m_startId
Start labeling index.
std::shared_ptr< IMDHistoWorkspace > IMDHistoWorkspace_sptr
shared pointer to Mantid::API::IMDHistoWorkspace
std::map< size_t, std::shared_ptr< Mantid::Crystal::ICluster > > ClusterMap
std::unordered_set< size_t > SetIds
std::map< Mantid::Kernel::V3D, size_t > PositionToLabelIdMap
std::vector< size_t > VecIndexes
boost::tuple< double, double > SignalErrorSQPair
std::vector< DisjointElement > VecElements
boost::tuple< Mantid::API::IMDHistoWorkspace_sptr, ClusterMap > ClusterTuple
std::map< size_t, SignalErrorSQPair > LabelIdIntensityMap
Helper class which provides the Collimation Length for SANS instruments.