Fawkes API  Fawkes Development Version
LaserDataFilterCascade Class Reference

Cascade of several laser filters to one. More...

#include "filters/cascade.h"

Inheritance diagram for LaserDataFilterCascade:

Public Member Functions

 LaserDataFilterCascade (const std::string filter_name, unsigned int in_data_size, std::vector< Buffer *> &in)
 Constructor. More...
 
 ~LaserDataFilterCascade ()
 Destructor. More...
 
virtual void set_out_vector (std::vector< LaserDataFilter::Buffer *> &out)
 Set filtered data array. More...
 
void add_filter (LaserDataFilter *filter)
 Add a filter to the cascade. More...
 
void remove_filter (LaserDataFilter *filter)
 Remove a filter from the cascade. More...
 
void delete_filters ()
 Delete all filters. More...
 
bool has_filters () const
 Check if filters have been added to the cascade. More...
 
void filter ()
 Filter the incoming data. More...
 
const std::list< LaserDataFilter * > & get_filters () const
 Get filters. More...
 
- Public Member Functions inherited from LaserDataFilter
 LaserDataFilter (const std::string filter_name, unsigned int in_data_size, std::vector< Buffer *> &in, unsigned int out_size)
 Constructor. More...
 
virtual ~LaserDataFilter ()
 Virtual empty destructor. More...
 
virtual std::vector< Buffer * > & get_out_vector ()
 Get filtered data array. More...
 
virtual unsigned int get_out_data_size ()
 Get size of filtered data array. More...
 
void set_array_ownership (bool own_in, bool own_out)
 Set input/output array ownership. More...
 
bool owns_in () const
 Check if input arrays are owned by filter. More...
 
bool owns_out () const
 Check if output arrays are owned by filter. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LaserDataFilter
virtual void set_out_data_size (unsigned int data_size)
 Resize output arrays. More...
 
void reset_outbuf (Buffer *b)
 Resets all readings in outbuf to NaN. More...
 
void copy_to_outbuf (Buffer *outbuf, const Buffer *inbuf)
 Copies the readings from inbuf to outbuf. More...
 
- Protected Attributes inherited from LaserDataFilter
const std::string filter_name
 Name of the specific filter instance. More...
 
unsigned int out_data_size
 Number of entries in output arrays. More...
 
unsigned int in_data_size
 Number of entries in input arrays. More...
 
std::vector< Buffer * > in
 Vector of input arrays. More...
 
std::vector< Buffer * > out
 Vector of output arrays. More...
 

Detailed Description

Cascade of several laser filters to one.

The filters are executed in the order they are added to the cascade.

Author
Tim Niemueller

Definition at line 30 of file cascade.h.

Constructor & Destructor Documentation

◆ LaserDataFilterCascade()

LaserDataFilterCascade::LaserDataFilterCascade ( const std::string  filter_name,
unsigned int  in_data_size,
std::vector< Buffer *> &  in 
)

Constructor.

Parameters
filter_namename of this filter combo
in_data_sizenumber of entries input value arrays
invector of input arrays

Definition at line 36 of file cascade.cpp.

References LaserDataFilter::in, LaserDataFilter::in_data_size, LaserDataFilter::out, LaserDataFilter::out_data_size, and LaserDataFilter::set_array_ownership().

◆ ~LaserDataFilterCascade()

LaserDataFilterCascade::~LaserDataFilterCascade ( )

Destructor.

Definition at line 48 of file cascade.cpp.

References delete_filters().

Member Function Documentation

◆ add_filter()

void LaserDataFilterCascade::add_filter ( LaserDataFilter filter)

Add a filter to the cascade.

Parameters
filterfilter to add

Definition at line 72 of file cascade.cpp.

References LaserDataFilter::get_out_data_size(), LaserDataFilter::get_out_vector(), LaserDataFilter::out, and LaserDataFilter::out_data_size.

Referenced by LaserFilterThread::init().

◆ delete_filters()

void LaserDataFilterCascade::delete_filters ( )

Delete all filters.

Definition at line 92 of file cascade.cpp.

Referenced by ~LaserDataFilterCascade().

◆ filter()

void LaserDataFilterCascade::filter ( )
virtual

Filter the incoming data.

Function shall filter the data in the "in" member vector and write output to the "out" member vector.

Implements LaserDataFilter.

Definition at line 102 of file cascade.cpp.

Referenced by has_filters().

◆ get_filters()

const std::list<LaserDataFilter *>& LaserDataFilterCascade::get_filters ( ) const
inline

Get filters.

Returns
list of active filters.

Definition at line 51 of file cascade.h.

◆ has_filters()

bool LaserDataFilterCascade::has_filters ( ) const
inline

Check if filters have been added to the cascade.

Returns
true if filters have been registered, false otherwise

Definition at line 45 of file cascade.h.

References filter().

◆ remove_filter()

void LaserDataFilterCascade::remove_filter ( LaserDataFilter filter)

Remove a filter from the cascade.

Parameters
filterfilter to remove

Definition at line 84 of file cascade.cpp.

◆ set_out_vector()

void LaserDataFilterCascade::set_out_vector ( std::vector< LaserDataFilter::Buffer *> &  out)
virtual

Set filtered data array.

Parameters
outvector of output values. The vector is only accepted if it has the same size as the current one. The filter will now longer assume ownership of the arrays in the vector. Either free the memory or call set_array_ownership().

Reimplemented from LaserDataFilter.

Definition at line 61 of file cascade.cpp.


The documentation for this class was generated from the following files: