refactoring

This commit is contained in:
Christian Forster
2014-03-31 21:21:24 +02:00
parent 6308c10fa2
commit 74a6d3d699
2 changed files with 20 additions and 34 deletions
+10 -14
View File
@@ -35,8 +35,7 @@ namespace svo
vk::PerformanceMonitor* g_permon = NULL;
#endif
FrameHandlerBase::
FrameHandlerBase() :
FrameHandlerBase::FrameHandlerBase() :
stage_(STAGE_PAUSED),
set_reset_(false),
set_start_(false),
@@ -85,16 +84,14 @@ FrameHandlerBase() :
SVO_INFO_STREAM("NanoSlam initialized");
}
FrameHandlerBase::
~FrameHandlerBase()
FrameHandlerBase::~FrameHandlerBase()
{
SVO_INFO_STREAM("SVO destructor invoked.");
delete depth_filter_;
SVO_INFO_STREAM("SVO destructed.");
}
bool FrameHandlerBase::
startFrameProcessingCommon(const double timestamp)
bool FrameHandlerBase::startFrameProcessingCommon(const double timestamp)
{
if(set_start_)
{
@@ -115,8 +112,7 @@ startFrameProcessingCommon(const double timestamp)
return true;
}
int FrameHandlerBase::
finishFrameProcessingCommon(
int FrameHandlerBase::finishFrameProcessingCommon(
const size_t update_id,
const UpdateResult dropout,
const size_t num_observations)
@@ -146,8 +142,7 @@ finishFrameProcessingCommon(
return 0;
}
void FrameHandlerBase::
resetCommon()
void FrameHandlerBase::resetCommon()
{
map_.reset();
stage_ = STAGE_PAUSED;
@@ -159,8 +154,7 @@ resetCommon()
SVO_INFO_STREAM("RESET");
}
void FrameHandlerBase::
setTrackingQuality(const size_t num_observations)
void FrameHandlerBase::setTrackingQuality(const size_t num_observations)
{
tracking_quality_ = TRACKING_GOOD;
if(num_observations < Config::qualityMinFts())
@@ -186,8 +180,10 @@ bool ptLastOptimComparator(Point* lhs, Point* rhs)
return (lhs->last_structure_optim_ < rhs->last_structure_optim_);
}
void FrameHandlerBase::
optimizeStructure(FramePtr frame, size_t max_n_pts, int max_iter)
void FrameHandlerBase::optimizeStructure(
FramePtr frame,
size_t max_n_pts,
int max_iter)
{
deque<Point*> pts;
for(Features::iterator it=frame->fts_.begin(); it!=frame->fts_.end(); ++it)
+10 -20
View File
@@ -30,19 +30,16 @@
namespace svo {
FrameHandlerMono::
FrameHandlerMono(vk::AbstractCamera* cam) :
FrameHandlerMono::FrameHandlerMono(vk::AbstractCamera* cam) :
FrameHandlerBase(),
cam_(cam),
reprojector_(cam_, map_)
{}
FrameHandlerMono::
~FrameHandlerMono()
FrameHandlerMono::~FrameHandlerMono()
{}
void FrameHandlerMono::
addImage(const cv::Mat& img, const double timestamp)
void FrameHandlerMono::addImage(const cv::Mat& img, const double timestamp)
{
if(!startFrameProcessingCommon(timestamp))
return;
@@ -73,8 +70,7 @@ addImage(const cv::Mat& img, const double timestamp)
finishFrameProcessingCommon(last_frame_->id_, res, last_frame_->nObs());
}
void FrameHandlerMono::
setFirstFrame(const FramePtr& first_frame)
void FrameHandlerMono::setFirstFrame(const FramePtr& first_frame)
{
resetAll();
last_frame_ = first_frame;
@@ -83,8 +79,7 @@ setFirstFrame(const FramePtr& first_frame)
stage_ = STAGE_DEFAULT_FRAME;
}
FrameHandlerMono::UpdateResult FrameHandlerMono::
processFirstFrame()
FrameHandlerMono::UpdateResult FrameHandlerMono::processFirstFrame()
{
new_frame_->T_f_w_ = T_f_w_init_;
if(klt_homography_init_.addFirstFrame(new_frame_) == initialization::FAILURE)
@@ -96,8 +91,7 @@ processFirstFrame()
return RESULT_IS_KEYFRAME;
}
FrameHandlerMono::UpdateResult FrameHandlerMono::
processSecondFrame()
FrameHandlerBase::UpdateResult FrameHandlerMono::processSecondFrame()
{
initialization::InitResult res = klt_homography_init_.addSecondFrame(new_frame_);
if(res == initialization::FAILURE)
@@ -123,8 +117,7 @@ processSecondFrame()
return RESULT_IS_KEYFRAME;
}
FrameHandlerMono::UpdateResult FrameHandlerMono::
processFrame()
FrameHandlerBase::UpdateResult FrameHandlerMono::processFrame()
{
// Set initial pose TODO use prior
new_frame_->T_f_w_ = last_frame_->T_f_w_;
@@ -225,8 +218,7 @@ processFrame()
return RESULT_IS_KEYFRAME;
}
void FrameHandlerMono::
resetAll()
void FrameHandlerMono::resetAll()
{
resetCommon();
last_frame_.reset();
@@ -235,8 +227,7 @@ resetAll()
overlap_kfs_.clear();
}
bool FrameHandlerMono::
needNewKf(double scene_depth_mean)
bool FrameHandlerMono::needNewKf(double scene_depth_mean)
{
for(auto it=overlap_kfs_.begin(), ite=overlap_kfs_.end(); it!=ite; ++it)
{
@@ -249,8 +240,7 @@ needNewKf(double scene_depth_mean)
return true;
}
void FrameHandlerMono::
setCoreKfs(size_t n_closest)
void FrameHandlerMono::setCoreKfs(size_t n_closest)
{
size_t n = min(n_closest, overlap_kfs_.size()-1);
std::partial_sort(overlap_kfs_.begin(), overlap_kfs_.begin()+n, overlap_kfs_.end(),