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
// 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 );
|
|
}
|
|
};
|
|
}
|
|
|
|
|