// License: Apache 2.0. See LICENSE file in root directory. // Copyright(c) 2019 Intel Corporation. All Rights Reserved. #pragma once #include "processing-block-model.h" #include "post-processing-filter.h" namespace rs2 { /* A less generic processing block that's used specifically for object detection so that the filters inside are all of type object_detection_filter. */ class post_processing_block_model : public processing_block_model { public: post_processing_block_model( subdevice_model * owner, std::shared_ptr< post_processing_filter > block, std::function invoker, std::string& error_message, bool enabled = true ) : processing_block_model( owner, block->get_name(), block, invoker, error_message, enabled ) { } protected: void processing_block_enable_disable( bool actual ) override { auto ppf = dynamic_cast< post_processing_filter * >( _block.get() ); if( ! ppf ) throw std::runtime_error( "filter is not of type post_processing_filter!" ); ppf->on_processing_block_enable( actual ); } }; }