You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB

// 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<rs2::frame( rs2::frame )> 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 );
}
};
}