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
43 lines
1.2 KiB
2 months ago
|
// 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 );
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
|