26 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
44 Eigen::Vector3<g_type> worldPos()
const
49 Eigen::Vector3f GetNormal()
const
54 void SetNormalVector(
const Eigen::Vector3f& normal);
56 KeyFrame* GetReferenceKeyFrame();
58 const Dictionary<KeyFrame*, Vector<2, uint04>>& observationsRef();
59 uint04 observationCount()
const;
61 void AddObservation(KeyFrame* pKF, uint04 idx);
62 void eraseObservation(KeyFrame* pKF);
64 Vector<2, uint04> GetIndexInKeyFrame(KeyFrame* pKF);
65 bool IsInKeyFrame(KeyFrame* pKF);
70 void Replace(MapPoint* pMP);
71 MapPoint* GetReplaced();
73 void increaseVisible(uint04 n = 1U);
74 void increaseFound(uint04 n = 1U);
75 float GetFoundRatio();
76 inline int GetFound() {
80 void ComputeDistinctiveDescriptors();
81 RWLock& featureLockPtr() {
return m_feature_lock; };
82 const cv::Mat& distinctDescriptor()
const;
84 void UpdateNormalAndDepth();
86 float GetMinDistanceInvariance();
87 float GetMaxDistanceInvariance();
88 uint04 predictScale(
const Frame& kF)
const;
89 uint04 predictScale(
float currentDist,
const Frame& kF)
const;
92 void UpdateMap(Map* pMap);
93 uint04 id()
const {
return m_id; }
94 void setLocalTrackedFrame(uint04 frame_idx) { m_last_frame_locally_tracked = frame_idx; };
95 uint04 getLocalTrackedFrame()
const {
return m_last_frame_locally_tracked; };
97 static volatile uint04 s_id_increment;
99 static std::mutex mGlobalMutex;
103 Dictionary<KeyFrame*, Vector<2, uint04>> m_observations;
104 RWLock m_feature_lock;
106 cv::Mat m_descriptor;
111 uint04 mnBALocalForKF = Constant<uint04>::Invalid;
114 uint04 mnCorrectedByKF = Constant<uint04>::Invalid;
115 uint04 mnCorrectedReference = Constant<uint04>::Invalid;
116 Eigen::Vector3f mPosGBA;
117 uint04 mnBAGlobalForKF = Constant<uint04>::Invalid;
118 uint04 mnBALocalForMerge = Constant<uint04>::Invalid;
121 Eigen::Vector3f mPosMerge;
122 Eigen::Vector3f mNormalVectorMerge;
124 uint04 m_observation_count = 0U;
127 uint04 m_last_frame_locally_tracked = Constant<uint04>::Invalid;
129 Eigen::Vector3<g_type> m_world_pos;
134 Eigen::Vector3<g_type> mNormalVector;
139 KeyFrame* mpRefKF =
nullptr;
144 MapPoint* mpReplaced =
nullptr;
147 float mfMinDistance = 0.0f;
148 float mfMaxDistance = 0.0f;
150 Map* mpMap =
nullptr;
MapPoint(const Eigen::Vector3< g_type > &Pos, Map *pMap, Frame *pFrame, uint04 idxF)
Constructs a map point from a frame observation.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW MapPoint(const Eigen::Vector3< g_type > &Pos, KeyFrame *pRefKF, Map *pMap)
Constructs a map point from a keyframe observation.