diff --git a/src/frame_base.h b/src/frame_base.h index 408b6b0bc9f061fd3e6bb703bd829a88f80bef09..91be417bc23bd8c5eeb397b7a0f5521fef928bd9 100644 --- a/src/frame_base.h +++ b/src/frame_base.h @@ -133,6 +133,7 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase CaptureBaseList& getCaptureList(); CaptureBasePtr addCapture(CaptureBasePtr _capt_ptr); CaptureBasePtr getCaptureOf(const SensorBasePtr _sensor_ptr); + CaptureBaseList getCapturesOf(const SensorBasePtr _sensor_ptr); void unlinkCapture(CaptureBasePtr _cap_ptr); void getConstraintList(ConstraintBaseList& _ctr_list); @@ -317,6 +318,17 @@ inline CaptureBasePtr FrameBase::getCaptureOf(const SensorBasePtr _sensor_ptr) return nullptr; } +inline CaptureBaseList FrameBase::getCapturesOf(const SensorBasePtr _sensor_ptr) +{ + CaptureBaseList captures; + + for (CaptureBasePtr capture_ptr : getCaptureList()) + if (capture_ptr->getSensorPtr() == _sensor_ptr) + captures.push_back(capture_ptr); + + return captures; +} + inline void FrameBase::unlinkCapture(CaptureBasePtr _cap_ptr) { _cap_ptr->unlinkFromFrame();