SourceXtractorPlusPlus  0.19
SourceXtractor++, the next generation SExtractor
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Deblending.h
Go to the documentation of this file.
1 
23 #ifndef _SEFRAMEWORK_PIPELINE_DEBLENDING_H
24 #define _SEFRAMEWORK_PIPELINE_DEBLENDING_H
25 
29 
30 namespace SourceXtractor {
31 
37 class DeblendStep {
38 public:
39 
41  virtual ~DeblendStep() = default;
42 
44  virtual void deblend(SourceGroupInterface& group) const = 0;
45 
47  virtual std::set<PropertyId> requiredProperties() const { return {};}
48 };
49 
56 class Deblending : public PipelineReceiver<SourceGroupInterface>, public PipelineEmitter<SourceGroupInterface> {
57 
58 public:
59 
61  virtual ~Deblending() = default;
62 
64  explicit Deblending(std::vector<std::shared_ptr<DeblendStep>> deblend_steps);
65 
68 
69  void receiveProcessSignal(const ProcessSourcesEvent& event) override;
70 
73 
74 private:
76 }; /* End of Deblending class */
77 
78 } /* namespace SourceXtractor */
79 
80 
81 #endif
void receiveSource(std::unique_ptr< SourceGroupInterface > group) override
Handles a new SourceGroup, applies the DeblendSteps and then notifies the observers with the result...
Definition: Deblending.cpp:31
Performs a number of steps on a SourceGroup that can add or remove Sources for deblending the group...
Definition: Deblending.h:56
void receiveProcessSignal(const ProcessSourcesEvent &event) override
Definition: Deblending.cpp:53
virtual void deblend(SourceGroupInterface &group) const =0
Performs the DeblendStep on the SourceGroup.
Event received by SourceGrouping to request the processing of some of the Sources stored...
Definition: PipelineStage.h:33
std::vector< std::shared_ptr< DeblendStep > > m_deblend_steps
Definition: Deblending.h:75
std::set< PropertyId > requiredProperties() const
Returns the set of required properties to compute the deblending.
Definition: Deblending.cpp:44
virtual std::set< PropertyId > requiredProperties() const
Returns properties used by the deblend step.
Definition: Deblending.h:47
An action to be applied to a SourceGroup for deblending its sources.
Definition: Deblending.h:37
Deblending(std::vector< std::shared_ptr< DeblendStep >> deblend_steps)
Constructor - takes a vector of DeblendStep to be applied, in order, to every SourceGroup.
Definition: Deblending.cpp:27
Defines the interface used to group sources.
STL class.
virtual ~DeblendStep()=default
Destructor.
STL class.
STL class.
virtual ~Deblending()=default
Destructor.