#ifndef PIPELINE_EXECUTOR_H #define PIPELINE_EXECUTOR_H #include #include "pipeline_stage.h" namespace core { class PipelineExecutor { public: void addPreprocessStage(const std::shared_ptr &stage); void addTransformStage(const std::shared_ptr &stage); void addRegistrationStage(const std::shared_ptr &stage); void addLocalizationStage(const std::shared_ptr &stage); void addSegmentationStage(const std::shared_ptr &stage); void addMappingStage(const std::shared_ptr &stage); void addPlanningStage(const std::shared_ptr &stage); void setReconstructionStage(const std::shared_ptr &stage); PipelineResult run(const PointCloudFrame &input) const; private: QVector > m_preprocessStages; QVector > m_transformStages; QVector > m_registrationStages; QVector > m_localizationStages; QVector > m_segmentationStages; QVector > m_mappingStages; QVector > m_planningStages; std::shared_ptr m_reconstructionStage; }; } // namespace core #endif // PIPELINE_EXECUTOR_H