Skip to content
Snippets Groups Projects

Resolve "using Processor::structure instead of Problem::structure"

@@ -8,7 +8,7 @@
#include "core/processor/processor_motion.h"
#include "core/state_block/factory_state_block.h"
namespace wolf
{
@@ -200,7 +200,6 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
// extract pack elements
FrameBasePtr keyframe_from_callback = pack->key_frame;
TimeStamp ts_from_callback = keyframe_from_callback->getTimeStamp();
keyframe_from_callback->setState(getState(ts_from_callback));
// find the capture whose buffer is affected by the new keyframe
auto capture_existing = findCaptureContainingTimeStamp(ts_from_callback); // k
@@ -211,6 +210,16 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
break;
}
// update KF state (adding missing StateBlocks)
auto proc_state = getState(ts_from_callback);
for (auto pair_ckey_vec : proc_state)
if (!keyframe_from_callback->isInStructure(pair_ckey_vec.first))
keyframe_from_callback->addStateBlock(pair_ckey_vec.first,
FactoryStateBlock::create(pair_ckey_vec.first,
pair_ckey_vec.second,
false));
keyframe_from_callback->setState(proc_state);
// Find the capture acting as the buffer's origin
auto capture_origin = capture_existing->getOriginCapture();
@@ -301,7 +310,16 @@ void ProcessorMotion::processCapture(CaptureBasePtr _incoming_ptr)
// extract pack elements
FrameBasePtr keyframe_from_callback = pack->key_frame;
TimeStamp ts_from_callback = keyframe_from_callback->getTimeStamp();
keyframe_from_callback->setState(getState(ts_from_callback));
// update KF state (adding missing StateBlocks)
auto proc_state = getState(ts_from_callback);
for (auto pair_ckey_vec : proc_state)
if (!keyframe_from_callback->isInStructure(pair_ckey_vec.first))
keyframe_from_callback->addStateBlock(pair_ckey_vec.first,
FactoryStateBlock::create(pair_ckey_vec.first,
pair_ckey_vec.second,
false));
keyframe_from_callback->setState(proc_state);
auto & capture_existing = last_ptr_;
Loading