.. _program_listing_file__tmp_ws_src_depthai-ros_depthai_ros_driver_include_depthai_ros_driver_pipeline_base_pipeline.hpp: Program Listing for File base_pipeline.hpp ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/depthai-ros/depthai_ros_driver/include/depthai_ros_driver/pipeline/base_pipeline.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include #include #include "depthai_ros_driver/dai_nodes/base_node.hpp" #include "depthai_ros_driver/dai_nodes/nn/nn_helpers.hpp" #include "depthai_ros_driver/dai_nodes/nn/nn_wrapper.hpp" #include "depthai_ros_driver/dai_nodes/nn/spatial_nn_wrapper.hpp" #include "depthai_ros_driver/dai_nodes/sensors/sensor_helpers.hpp" #include "depthai_ros_driver/dai_nodes/stereo.hpp" namespace dai { class Pipeline; class Device; } // namespace dai namespace rclcpp { class Node; } namespace depthai_ros_driver { namespace pipeline_gen { enum class NNType { None, RGB, Spatial }; class BasePipeline { public: ~BasePipeline() = default; std::unique_ptr createNN(rclcpp::Node* node, std::shared_ptr pipeline, dai_nodes::BaseNode& daiNode) { auto nn = std::make_unique("nn", node, pipeline); daiNode.link(nn->getInput(), static_cast(dai_nodes::link_types::RGBLinkType::preview)); return nn; } std::unique_ptr createSpatialNN(rclcpp::Node* node, std::shared_ptr pipeline, dai_nodes::BaseNode& daiNode, dai_nodes::BaseNode& daiStereoNode) { auto nn = std::make_unique("nn", node, pipeline); daiNode.link(nn->getInput(static_cast(dai_nodes::nn_helpers::link_types::SpatialNNLinkType::input)), static_cast(dai_nodes::link_types::RGBLinkType::preview)); daiStereoNode.link(nn->getInput(static_cast(dai_nodes::nn_helpers::link_types::SpatialNNLinkType::inputDepth))); return nn; } virtual std::vector> createPipeline(rclcpp::Node* node, std::shared_ptr device, std::shared_ptr pipeline, const std::string& nnType) = 0; protected: BasePipeline(){}; std::unordered_map nnTypeMap = { {"", NNType::None}, {"NONE", NNType::None}, {"RGB", NNType::RGB}, {"SPATIAL", NNType::Spatial}, }; }; } // namespace pipeline_gen } // namespace depthai_ros_driver