OpenCV  5.0.0alpha
Open Source Computer Vision
Loading...
Searching...
No Matches
cv::detail::SubmapManager< MatType > Class Template Reference

: Manages all the created submaps for a particular scene More...

#include <opencv2/3d/detail/submap.hpp>

Collaboration diagram for cv::detail::SubmapManager< MatType >:

Classes

struct  ActiveSubmapData
 

Public Types

typedef std::unordered_map< int, ActiveSubmapDataIdToActiveSubmaps
 
typedef std::map< int, Ptr< SubmapT > > IdToSubmapPtr
 
typedef Submap< MatType > SubmapT
 
enum class  Type {
  NEW = 0 ,
  CURRENT = 1 ,
  RELOCALISATION = 2 ,
  LOOP_CLOSURE = 3 ,
  LOST = 4
}
 

Public Member Functions

 SubmapManager (const VolumeSettings &_volumeSettings)
 
virtual ~SubmapManager ()=default
 
bool addEdgeToCurrentSubmap (const int currentSubmapID, const int tarSubmapID)
 
int createNewSubmap (bool isCurrentActiveMap, const int currFrameId=0, const Affine3f &pose=cv::Affine3f::Identity())
 Adds a new submap/volume into the current list of managed/Active submaps.
 
int estimateConstraint (int fromSubmapId, int toSubmapId, int &inliers, Affine3f &inlierPose)
 
Ptr< SubmapTgetCurrentSubmap (void) const
 
Ptr< SubmapTgetSubmap (int _id) const
 
Ptr< detail::PoseGraphMapToPoseGraph ()
 
size_t numOfActiveSubmaps (void) const
 
size_t numOfSubmaps (void) const
 
void PoseGraphToMap (const Ptr< detail::PoseGraph > &updatedPoseGraph)
 
void removeSubmap (int _id)
 
void reset ()
 
bool shouldChangeCurrSubmap (int _frameId, int toSubmapId)
 
bool shouldCreateSubmap (int frameId)
 
bool updateMap (int frameId, const OdometryFrame &frame)
 

Public Attributes

IdToActiveSubmaps activeSubmaps
 
Ptr< detail::PoseGraphposeGraph
 
std::vector< Ptr< SubmapT > > submapList
 
VolumeSettings volumeSettings
 

Detailed Description

template<typename MatType>
class cv::detail::SubmapManager< MatType >

: Manages all the created submaps for a particular scene

Member Typedef Documentation

◆ IdToActiveSubmaps

template<typename MatType >
std::unordered_map<int, ActiveSubmapData> cv::detail::SubmapManager< MatType >::IdToActiveSubmaps

◆ IdToSubmapPtr

template<typename MatType >
std::map<int, Ptr<SubmapT> > cv::detail::SubmapManager< MatType >::IdToSubmapPtr

◆ SubmapT

template<typename MatType >
Submap<MatType> cv::detail::SubmapManager< MatType >::SubmapT

Member Enumeration Documentation

◆ Type

template<typename MatType >
enum class cv::detail::SubmapManager::Type
strong
Enumerator
NEW 
CURRENT 
RELOCALISATION 
LOOP_CLOSURE 
LOST 

Constructor & Destructor Documentation

◆ SubmapManager()

template<typename MatType >
cv::detail::SubmapManager< MatType >::SubmapManager ( const VolumeSettings & _volumeSettings)
inlineexplicit

◆ ~SubmapManager()

template<typename MatType >
virtual cv::detail::SubmapManager< MatType >::~SubmapManager ( )
virtualdefault

Member Function Documentation

◆ addEdgeToCurrentSubmap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::addEdgeToCurrentSubmap ( const int currentSubmapID,
const int tarSubmapID )

◆ createNewSubmap()

template<typename MatType >
int cv::detail::SubmapManager< MatType >::createNewSubmap ( bool isCurrentActiveMap,
const int currFrameId = 0,
const Affine3f & pose = cv::Affine3f::Identity() )

Adds a new submap/volume into the current list of managed/Active submaps.

Here is the call graph for this function:

◆ estimateConstraint()

template<typename MatType >
int cv::detail::SubmapManager< MatType >::estimateConstraint ( int fromSubmapId,
int toSubmapId,
int & inliers,
Affine3f & inlierPose )

thresh = HUBER_THRESH

Here is the call graph for this function:

◆ getCurrentSubmap()

template<typename MatType >
Ptr< Submap< MatType > > cv::detail::SubmapManager< MatType >::getCurrentSubmap ( void ) const

◆ getSubmap()

template<typename MatType >
Ptr< Submap< MatType > > cv::detail::SubmapManager< MatType >::getSubmap ( int _id) const

◆ MapToPoseGraph()

template<typename MatType >
Ptr< detail::PoseGraph > cv::detail::SubmapManager< MatType >::MapToPoseGraph ( )
Here is the call graph for this function:

◆ numOfActiveSubmaps()

template<typename MatType >
size_t cv::detail::SubmapManager< MatType >::numOfActiveSubmaps ( void ) const
inline

◆ numOfSubmaps()

template<typename MatType >
size_t cv::detail::SubmapManager< MatType >::numOfSubmaps ( void ) const
inline

◆ PoseGraphToMap()

template<typename MatType >
void cv::detail::SubmapManager< MatType >::PoseGraphToMap ( const Ptr< detail::PoseGraph > & updatedPoseGraph)

◆ removeSubmap()

template<typename MatType >
void cv::detail::SubmapManager< MatType >::removeSubmap ( int _id)

◆ reset()

template<typename MatType >
void cv::detail::SubmapManager< MatType >::reset ( )
inline

◆ shouldChangeCurrSubmap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::shouldChangeCurrSubmap ( int _frameId,
int toSubmapId )

TODO: Check for a specific threshold?

◆ shouldCreateSubmap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::shouldCreateSubmap ( int frameId)

TODO: This shouldn't be happening? since there should always be one active current submap

◆ updateMap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::updateMap ( int frameId,
const OdometryFrame & frame )

TODO: Add a new type called NEW_LOST?

Here is the call graph for this function:

Member Data Documentation

◆ activeSubmaps

template<typename MatType >
IdToActiveSubmaps cv::detail::SubmapManager< MatType >::activeSubmaps

◆ poseGraph

template<typename MatType >
Ptr<detail::PoseGraph> cv::detail::SubmapManager< MatType >::poseGraph

◆ submapList

template<typename MatType >
std::vector<Ptr<SubmapT> > cv::detail::SubmapManager< MatType >::submapList

◆ volumeSettings

template<typename MatType >
VolumeSettings cv::detail::SubmapManager< MatType >::volumeSettings

The documentation for this class was generated from the following file: