52 using ObjectFilterMap = std::function<std::shared_ptr<Object>(
const std::shared_ptr<Object>&)>;
92 :
ObjectSensor(
"object_sensor_filter"), sensor_(obs), filter_func_(f) {}
101 for (
auto o : sensor_->sensed_objects()) {
102 if (filter_func_(*o)) {
103 objects_.push_back(o);
113 const Eigen::Isometry3d&
mount_pose()
const override {
return sensor_->mount_pose(); }
127 if (t < sync.
time()) {
132 t = sensor_->process(sync);
155 mutable bool cached_;
156 mutable Objects objects_;
157 std::shared_ptr<ObjectSensor> sensor_;
158 ObjectFilter filter_func_;
182 for (
auto o : sensor_->sensed_objects()) {
183 auto obj = map_func_(o);
185 objects_.push_back(obj);
195 const Eigen::Isometry3d&
mount_pose()
const override {
return sensor_->mount_pose(); }
209 if (t < sync.
time()) {
214 t = sensor_->process(sync);
231 virtual void clear_cache() {
237 mutable bool cached_;
238 mutable Objects objects_;
239 std::shared_ptr<ObjectSensor> sensor_;
240 ObjectFilterMap map_func_;
Duration process(const Sync &sync) override
Definition: component.hpp:181
void abort() override
Definition: component.hpp:191
void reset() override
Definition: component.hpp:186
const std::string & name() const
Definition: entity.hpp:67
Definition: object_sensor_functional.hpp:172
Duration process(const Sync &sync) override
Definition: object_sensor_functional.hpp:205
void reset() override
Definition: object_sensor_functional.hpp:219
const Eigen::Isometry3d & mount_pose() const override
Definition: object_sensor_functional.hpp:195
const Frustum & frustum() const override
Definition: object_sensor_functional.hpp:193
void abort() override
Definition: object_sensor_functional.hpp:225
const Objects & sensed_objects() const override
Definition: object_sensor_functional.hpp:180
Definition: object_sensor_functional.hpp:89
const Objects & sensed_objects() const override
Definition: object_sensor_functional.hpp:99
Duration process(const Sync &sync) override
Definition: object_sensor_functional.hpp:123
void abort() override
Definition: object_sensor_functional.hpp:143
void reset() override
Definition: object_sensor_functional.hpp:137
const Frustum & frustum() const override
Definition: object_sensor_functional.hpp:111
const Eigen::Isometry3d & mount_pose() const override
Definition: object_sensor_functional.hpp:113
Definition: object_sensor.hpp:33
virtual Duration time() const =0
std::chrono::nanoseconds Duration
Definition: cloe_fwd.hpp:36
std::vector< std::shared_ptr< Object > > Objects
Definition: object.hpp:128
std::function< bool(const Object &)> ObjectFilter
Definition: object_sensor_functional.hpp:42
std::function< std::shared_ptr< Object >(const std::shared_ptr< Object > &)> ObjectFilterMap
Definition: object_sensor_functional.hpp:52
Definition: frustum.hpp:37
Definition: object.hpp:51