Class MapPoint

Nested Relationships

Nested Types

Class Documentation

class MapPoint

A 3D landmark visible from multiple keyframes.

Thread-safety: position, observations and flags are protected by a mutex. The ID is set at construction and never changes.

Public Types

using Ptr = std::shared_ptr<MapPoint>

Public Functions

explicit MapPoint(int id, const mrpt::math::TPoint3Df &pos = {})
inline int id() const
mrpt::math::TPoint3Df position() const
void setPosition(const mrpt::math::TPoint3Df &p)
Eigen::Vector3f positionEigen() const
void setPositionEigen(const Eigen::Vector3f &p)
void addObservation(const std::shared_ptr<Keyframe> &kf, int feature_idx)
void removeObservation(const std::shared_ptr<Keyframe> &kf)
int observationCount() const
std::vector<Observation> observations() const
Eigen::Matrix3f covariance() const
void setCovariance(const Eigen::Matrix3f &cov)
Eigen::Matrix2f projectCovariance(const Eigen::Matrix3f &R_cw, const Eigen::Matrix3f &K) const

Project covariance to pixel space. cov_pixel = J_proj · R · cov_world · Rᵀ · J_projᵀ where J_proj is the 2×3 projection Jacobian at the given camera. Returns a 2×2 pixel-space covariance.

Parameters:
  • R_cw – Camera←World rotation

  • K – Camera intrinsic matrix

inline bool isBad() const
inline void markBad()
inline bool isMultiViewTriangulated() const
inline void setMultiViewTriangulated(bool v)
struct Observation

Public Members

std::weak_ptr<Keyframe> keyframe
int feature_index = -1