24 #include <core/exception.h>
25 #include <utils/time/time.h>
79 unsigned int in_data_size,
80 const std::vector<Buffer *> &in,
81 unsigned int out_size)
82 : filter_name(filter_name),
83 out_data_size(in_data_size),
84 in_data_size(in_data_size),
89 for (
unsigned int i = 0; i < out_size; ++i) {
101 for (
unsigned int i = 0; i <
in.size(); ++i) {
106 for (
unsigned int i = 0; i <
out.size(); ++i) {
116 std::vector<LaserDataFilter::Buffer *> &
131 if (this->out.size() !=
out.size()) {
138 for (
unsigned int i = 0; i < this->out.size(); ++i) {
160 for (
unsigned int i = 0; i <
out.size(); ++i) {
161 out[i]->resize(data_size);
185 outbuf->
values[i] = std::numeric_limits<float>::quiet_NaN();
200 "input and output data size");
223 if (num_values_ > 0) {
224 values = (
float *)malloc(num_values_ *
sizeof(
float));
233 : values(NULL), timestamp(new
fawkes::Time(other.timestamp))
235 num_values_ = other.num_values_;
236 if (num_values_ > 0) {
237 values = (
float *)malloc(num_values_ *
sizeof(
float));
238 memcpy(
values, other.
values, num_values_ *
sizeof(
float));
258 resize(other.num_values_);
259 if (num_values_ > 0) {
260 memcpy(values, other.
values, num_values_ *
sizeof(
float));
274 if (num_values != num_values_) {
279 num_values_ = num_values;
280 if (num_values_ > 0) {
281 values = (
float *)malloc(num_values_ *
sizeof(
float));
fawkes::Time * timestamp
timestamp of data
void resize(unsigned int num_values)
Resize buffer size.
Buffer & operator=(const Buffer &other)
Assignment operator.
Buffer(size_t num_values=0)
Constructor.
void set_array_ownership(bool own_in, bool own_out)
Set input/output array ownership.
virtual std::vector< Buffer * > & get_out_vector()
Get filtered data array.
virtual unsigned int get_out_data_size()
Get size of filtered data array.
LaserDataFilter(const std::string &filter_name, unsigned int in_data_size, const std::vector< Buffer * > &in, unsigned int out_size)
Constructor.
unsigned int out_data_size
Number of entries in output arrays.
void copy_to_outbuf(Buffer *outbuf, const Buffer *inbuf)
Copies the readings from inbuf to outbuf.
unsigned int in_data_size
Number of entries in input arrays.
std::vector< Buffer * > out
Vector of output arrays.
std::vector< Buffer * > in
Vector of input arrays.
void reset_outbuf(Buffer *b)
Resets all readings in outbuf to NaN.
virtual ~LaserDataFilter()
Virtual empty destructor.
virtual void set_out_data_size(unsigned int data_size)
Resize output arrays.
virtual void set_out_vector(std::vector< Buffer * > &out)
Set filtered data array.
Base class for exceptions in Fawkes.
A class for handling time.
Fawkes library namespace.