36 lines
1.4 KiB
C++
36 lines
1.4 KiB
C++
#ifndef PIPELINE_EXECUTOR_H
|
|
#define PIPELINE_EXECUTOR_H
|
|
|
|
#include <memory>
|
|
|
|
#include "pipeline_stage.h"
|
|
|
|
namespace core
|
|
{
|
|
class PipelineExecutor
|
|
{
|
|
public:
|
|
void addPreprocessStage(const std::shared_ptr<IPreprocessStage> &stage);
|
|
void addTransformStage(const std::shared_ptr<ITransformStage> &stage);
|
|
void addRegistrationStage(const std::shared_ptr<IRegistrationStage> &stage);
|
|
void addLocalizationStage(const std::shared_ptr<ILocalizationStage> &stage);
|
|
void addSegmentationStage(const std::shared_ptr<ISegmentationStage> &stage);
|
|
void addMappingStage(const std::shared_ptr<IMappingStage> &stage);
|
|
void addPlanningStage(const std::shared_ptr<IPlanningStage> &stage);
|
|
void setReconstructionStage(const std::shared_ptr<IReconstructionStage> &stage);
|
|
PipelineResult run(const PointCloudFrame &input) const;
|
|
|
|
private:
|
|
QVector<std::shared_ptr<IPreprocessStage> > m_preprocessStages;
|
|
QVector<std::shared_ptr<ITransformStage> > m_transformStages;
|
|
QVector<std::shared_ptr<IRegistrationStage> > m_registrationStages;
|
|
QVector<std::shared_ptr<ILocalizationStage> > m_localizationStages;
|
|
QVector<std::shared_ptr<ISegmentationStage> > m_segmentationStages;
|
|
QVector<std::shared_ptr<IMappingStage> > m_mappingStages;
|
|
QVector<std::shared_ptr<IPlanningStage> > m_planningStages;
|
|
std::shared_ptr<IReconstructionStage> m_reconstructionStage;
|
|
};
|
|
} // namespace core
|
|
|
|
#endif // PIPELINE_EXECUTOR_H
|