49 using namespace mrpt::utils;
53 class CSimplePointsMap;
85 virtual
void internal_clear() = 0;
96 virtual bool internal_insertObservation(
98 const CPose3D *robotPose = NULL ) = 0;
106 virtual bool isEmpty()
const = 0;
115 void loadFromProbabilisticPosesAndObservations(
const CSimpleMap &Map );
133 inline bool insertObservation(
135 const CPose3D *robotPose = NULL )
137 bool done = internal_insertObservation(obs,robotPose);
140 OnPostSuccesfulInsertObs(obs);
147 inline bool insertObservationPtr(
149 const CPose3D *robotPose = NULL )
153 return insertObservation(obs.
pointer(),robotPose);
165 virtual double computeObservationLikelihood(
const CObservation *obs,
const CPose3D &takenFrom ) = 0;
177 return computeObservationLikelihood(obs,
CPose3D(takenFrom));
184 virtual bool canComputeObservationLikelihood(
const CObservation *obs )
202 bool canComputeObservationsLikelihood(
const CSensoryFrame &sf );
212 #ifdef MRPT_BACKCOMPATIB_08X // For backward compatibility
236 virtual void computeMatchingWith2D(
239 float maxDistForCorrespondence,
240 float maxAngularDistForCorrespondence,
241 const CPose2D &angularDistPivotPoint,
242 TMatchingPairList &correspondences,
243 float &correspondencesRatio,
244 float *sumSqrDist = NULL,
245 bool onlyKeepTheClosest =
true,
246 bool onlyUniqueRobust =
false,
247 const size_t decimation_other_map_points = 1,
248 const size_t offset_other_map_points = 0 )
const
272 virtual void computeMatchingWith3D(
275 float maxDistForCorrespondence,
276 float maxAngularDistForCorrespondence,
277 const CPoint3D &angularDistPivotPoint,
278 TMatchingPairList &correspondences,
279 float &correspondencesRatio,
280 float *sumSqrDist = NULL,
281 bool onlyKeepTheClosest =
true,
282 bool onlyUniqueRobust =
false,
283 const size_t decimation_other_map_points = 1,
284 const size_t offset_other_map_points = 0 )
const
302 virtual float compute3DMatchingRatio(
305 float minDistForCorr = 0.10f,
306 float minMahaDistForCorr = 2.0f
311 virtual void saveMetricMapRepresentationToFile(
312 const std::string &filNamePrefix
326 virtual void auxParticleFilterCleanUp()
333 virtual float squareDistanceToClosestCorrespondence(
335 const float &y0 )
const