48 #ifndef BSFM_SFM_VIEW_H
49 #define BSFM_SFM_VIEW_H
52 #include <unordered_map>
53 #include <unordered_set>
56 #include "../camera/camera.h"
57 #include "../slam/landmark.h"
58 #include "../slam/observation.h"
59 #include "../util/disallow_copy_and_assign.h"
60 #include "../util/types.h"
66 typedef std::shared_ptr<View>
Ptr;
94 void SetCamera(const ::bsfm::Camera& camera);
96 const ::bsfm::Camera&
Camera()
const;
103 const std::vector<Observation::Ptr>&
Observations()
const;
unsigned int LandmarkIndex
bool HasObservedLandmark(LandmarkIndex landmark_index) const
::bsfm::Camera & MutableCamera()
static View::Ptr Create(const ::bsfm::Camera &camera)
const ::bsfm::Camera & Camera() const
std::shared_ptr< const View > ConstPtr
void SetCamera(const ::bsfm::Camera &camera)
static std::unordered_map< ViewIndex, View::Ptr > view_registry_
static ViewIndex NextViewIndex()
static View::Ptr GetView(ViewIndex view_index)
std::shared_ptr< View > Ptr
static bool SortByIndex(const View::Ptr &lhs, const View::Ptr &rhs)
void UpdateObservedLandmarks()
static bool IsValidView(ViewIndex view_index)
std::unordered_set< LandmarkIndex > landmarks_
const std::unordered_set< LandmarkIndex > & ObservedLandmarks() const
#define DISALLOW_COPY_AND_ASSIGN(TypeName)
std::vector< Observation::Ptr > observations_
static ViewIndex current_view_index_
void AddObservation(const Observation::Ptr &observation)
static ViewIndex NumExistingViews()
const std::vector< Observation::Ptr > & Observations() const