SourceXtractorPlusPlus
1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEImplementation
src
lib
Configuration
AttractorsPartitionConfig.cpp
Go to the documentation of this file.
1
17
/*
18
* @file AttractorsPartitionConfig.cpp
19
* @author nikoapos
20
*/
21
22
#include "
SEImplementation/Configuration/AttractorsPartitionConfig.h
"
23
#include "
SEImplementation/Configuration/PartitionStepConfig.h
"
24
#include "
SEImplementation/Configuration/MinAreaPartitionConfig.h
"
25
#include "
SEImplementation/Configuration/DetectionFrameConfig.h
"
26
27
#include "
SEImplementation/Partition/AttractorsPartitionStep.h
"
28
29
using namespace
Euclid::Configuration
;
30
namespace
po
=
boost::program_options
;
31
32
namespace
SourceXtractor
{
33
34
static
const
std::string
USE_ATTRACTORS_PARTITION
{
"use-attractors-partition"
};
35
36
AttractorsPartitionConfig::AttractorsPartitionConfig
(
long
manager_id) :
Configuration
(manager_id) {
37
declareDependency<PartitionStepConfig>
();
38
declareDependency<DetectionFrameConfig>
();
39
40
// this is used to enforce the order the PartitionSteps are added and performed
41
ConfigManager::getInstance
(manager_id).
registerDependency
<
AttractorsPartitionConfig
,
MinAreaPartitionConfig
>();
42
}
43
44
auto
AttractorsPartitionConfig::getProgramOptions
() ->
std::map<std::string, OptionDescriptionList>
{
45
return
{ {
"Extraction"
, {
46
{
USE_ATTRACTORS_PARTITION
.c_str(), po::value<bool>()->default_value(
false
),
47
"Enables the use of attractors for partitioning"
}
48
}}};
49
}
50
51
void
AttractorsPartitionConfig::initialize
(
const
UserValues
& args) {
52
if
(
getDependency<DetectionFrameConfig>
().getDetectionFrames().size() > 0) {
53
if
(args.
at
(
USE_ATTRACTORS_PARTITION
).as<
bool
>()) {
54
getDependency<PartitionStepConfig>
().addPartitionStepCreator(
55
[](
std::shared_ptr<SourceFactory>
source_factory) {
56
return
std::make_shared<AttractorsPartitionStep>
(source_factory);
57
}
58
);
59
}
60
}
61
}
62
63
}
// SourceXtractor namespace
AttractorsPartitionConfig.h
AttractorsPartitionStep.h
DetectionFrameConfig.h
MinAreaPartitionConfig.h
PartitionStepConfig.h
std::map::at
T at(T... args)
std::string
Euclid::Configuration::ConfigManager::registerDependency
void registerDependency()
SourceXtractor::ConfigManager::getInstance
static ConfigManager & getInstance(long id)
Euclid::Configuration::Configuration::declareDependency
void declareDependency()
Euclid::Configuration::Configuration::Configuration
Configuration(long manager_id)
Euclid::Configuration::Configuration::UserValues
std::map< std::string, boost::program_options::variable_value > UserValues
Euclid::Configuration::Configuration::getDependency
T & getDependency()
SourceXtractor::AttractorsPartitionConfig::AttractorsPartitionConfig
AttractorsPartitionConfig(long manager_id)
Definition
AttractorsPartitionConfig.cpp:36
SourceXtractor::AttractorsPartitionConfig::getProgramOptions
std::map< std::string, OptionDescriptionList > getProgramOptions() override
Definition
AttractorsPartitionConfig.cpp:44
SourceXtractor::AttractorsPartitionConfig::initialize
void initialize(const UserValues &args) override
Definition
AttractorsPartitionConfig.cpp:51
SourceXtractor::MinAreaPartitionConfig
Definition
MinAreaPartitionConfig.h:29
std::make_shared
T make_shared(T... args)
std::map
Euclid::Configuration
SourceXtractor
Definition
Aperture.h:30
SourceXtractor::USE_ATTRACTORS_PARTITION
static const std::string USE_ATTRACTORS_PARTITION
Definition
AttractorsPartitionConfig.cpp:34
boost::program_options
std::shared_ptr
Generated by
1.15.0