Skip to content
Snippets Groups Projects
Commit dec7dc3f authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

Merge branch 'feature/remove_getState_assertions' into 'devel'

Removing assertions in getState(vector) to force known size a priori

See merge request !262
parents d68a2ad2 178067c7
No related branches found
No related tags found
1 merge request!262Removing assertions in getState(vector) to force known size a priori
Pipeline #2799 passed
...@@ -177,11 +177,7 @@ void FrameBase::setState(const Eigen::VectorXs& _state) ...@@ -177,11 +177,7 @@ void FrameBase::setState(const Eigen::VectorXs& _state)
Eigen::VectorXs FrameBase::getState() const Eigen::VectorXs FrameBase::getState() const
{ {
SizeEigen size = 0; Eigen::VectorXs state;
for (StateBlockPtr sb : state_block_vec_)
if (sb)
size += sb->getSize();
Eigen::VectorXs state(size);
getState(state); getState(state);
...@@ -195,10 +191,9 @@ void FrameBase::getState(Eigen::VectorXs& _state) const ...@@ -195,10 +191,9 @@ void FrameBase::getState(Eigen::VectorXs& _state) const
if (sb) if (sb)
size += sb->getSize(); size += sb->getSize();
assert(_state.size() == size && "Wrong state vector size"); _state = Eigen::VectorXs(size);
SizeEigen index = 0; SizeEigen index = 0;
for (StateBlockPtr sb : state_block_vec_) for (StateBlockPtr sb : state_block_vec_)
if (sb) if (sb)
{ {
......
...@@ -122,11 +122,7 @@ void LandmarkBase::removeStateBlocks() ...@@ -122,11 +122,7 @@ void LandmarkBase::removeStateBlocks()
Eigen::VectorXs LandmarkBase::getState() const Eigen::VectorXs LandmarkBase::getState() const
{ {
SizeEigen size = 0; Eigen::VectorXs state;
for (StateBlockPtr sb : state_block_vec_)
if (sb)
size += sb->getSize();
Eigen::VectorXs state(size);
getState(state); getState(state);
...@@ -140,10 +136,9 @@ void LandmarkBase::getState(Eigen::VectorXs& _state) const ...@@ -140,10 +136,9 @@ void LandmarkBase::getState(Eigen::VectorXs& _state) const
if (sb) if (sb)
size += sb->getSize(); size += sb->getSize();
assert(_state.size() == size && "Wrong state vector size"); _state = Eigen::VectorXs(size);
SizeEigen index = 0; SizeEigen index = 0;
for (StateBlockPtr sb : state_block_vec_) for (StateBlockPtr sb : state_block_vec_)
if (sb) if (sb)
{ {
......
...@@ -249,8 +249,6 @@ Eigen::VectorXs Problem::getCurrentState() ...@@ -249,8 +249,6 @@ Eigen::VectorXs Problem::getCurrentState()
void Problem::getCurrentState(Eigen::VectorXs& state) void Problem::getCurrentState(Eigen::VectorXs& state)
{ {
assert(state.size() == getFrameStructureSize() && "Problem::getCurrentState: bad state size");
if (processor_motion_ptr_ != nullptr) if (processor_motion_ptr_ != nullptr)
processor_motion_ptr_->getCurrentState(state); processor_motion_ptr_->getCurrentState(state);
else if (trajectory_ptr_->getLastKeyFrame() != nullptr) else if (trajectory_ptr_->getLastKeyFrame() != nullptr)
...@@ -261,8 +259,6 @@ void Problem::getCurrentState(Eigen::VectorXs& state) ...@@ -261,8 +259,6 @@ void Problem::getCurrentState(Eigen::VectorXs& state)
void Problem::getCurrentStateAndStamp(Eigen::VectorXs& state, TimeStamp& ts) void Problem::getCurrentStateAndStamp(Eigen::VectorXs& state, TimeStamp& ts)
{ {
assert(state.size() == getFrameStructureSize() && "Problem::getCurrentState: bad state size");
if (processor_motion_ptr_ != nullptr) if (processor_motion_ptr_ != nullptr)
{ {
processor_motion_ptr_->getCurrentState(state); processor_motion_ptr_->getCurrentState(state);
...@@ -279,8 +275,6 @@ void Problem::getCurrentStateAndStamp(Eigen::VectorXs& state, TimeStamp& ts) ...@@ -279,8 +275,6 @@ void Problem::getCurrentStateAndStamp(Eigen::VectorXs& state, TimeStamp& ts)
void Problem::getState(const TimeStamp& _ts, Eigen::VectorXs& state) void Problem::getState(const TimeStamp& _ts, Eigen::VectorXs& state)
{ {
assert(state.size() == getFrameStructureSize() && "Problem::getStateAtTimeStamp: bad state size");
// try to get the state from processor_motion if any, otherwise... // try to get the state from processor_motion if any, otherwise...
if (processor_motion_ptr_ == nullptr || !processor_motion_ptr_->getState(_ts, state)) if (processor_motion_ptr_ == nullptr || !processor_motion_ptr_->getState(_ts, state))
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment