SourceXtractorPlusPlus  0.13
Please provide a description of the project.
 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 
26 #include "SEUtils/Observable.h"
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 Observer<std::shared_ptr<SourceGroupInterface>>,
57  public Observable<std::shared_ptr<SourceGroupInterface>> {
58 
59 public:
60 
62  virtual ~Deblending() = default;
63 
66 
68  virtual void handleMessage(const std::shared_ptr<SourceGroupInterface>& group) override;
69 
72 
73 private:
75 }; /* End of Deblending class */
76 
77 } /* namespace SourceXtractor */
78 
79 
80 #endif
Performs a number of steps on a SourceGroup that can add or remove Sources for deblending the group...
Definition: Deblending.h:56
virtual void deblend(SourceGroupInterface &group) const =0
Performs the DeblendStep on the SourceGroup.
virtual void handleMessage(const std::shared_ptr< SourceGroupInterface > &group) override
Handles a new SourceGroup, applies the DeblendSteps and then notifies the observers with the result...
Definition: Deblending.cpp:31
std::vector< std::shared_ptr< DeblendStep > > m_deblend_steps
Definition: Deblending.h:74
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
Implements the Observer pattern. Notifications will be made using a message of type T...
Definition: Observable.h:51
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.
virtual ~Deblending()=default
Destructor.
Observer interface to be used with Observable to implement the Observer pattern.
Definition: Observable.h:38