29 CSimplePointsMap::TMapDefinition::TMapDefinition() =
default;
30 void CSimplePointsMap::TMapDefinition::loadFromConfigFile_map_specific(
33 insertionOpts.loadFromConfigFile(c, s +
string(
"_insertOpts"));
34 likelihoodOpts.loadFromConfigFile(c, s +
string(
"_likelihoodOpts"));
35 renderOpts.loadFromConfigFile(c, s +
string(
"_renderOpts"));
38 void CSimplePointsMap::TMapDefinition::dumpToTextStream_map_specific(
39 std::ostream&
out)
const 41 this->insertionOpts.dumpToTextStream(
out);
42 this->likelihoodOpts.dumpToTextStream(
out);
43 this->renderOpts.dumpToTextStream(
out);
63 m_y.reserve(newLength);
64 m_z.reserve(newLength);
72 this->reserve(newLength);
73 m_x.resize(newLength, 0);
74 m_y.resize(newLength, 0);
75 m_z.resize(newLength, 0);
82 void CSimplePointsMap::setSize(
size_t newLength)
84 this->reserve(newLength);
85 m_x.assign(newLength, 0);
86 m_y.assign(newLength, 0);
87 m_z.assign(newLength, 0);
91 void CSimplePointsMap::impl_copyFrom(
const CPointsMap& obj)
94 CPointsMap::base_copyFrom(obj);
97 uint8_t CSimplePointsMap::serializeGetVersion()
const {
return 10; }
100 uint32_t n = m_x.size();
107 out.WriteBufferFixEndianness(&m_x[0], n);
108 out.WriteBufferFixEndianness(&m_y[0], n);
109 out.WriteBufferFixEndianness(&m_z[0], n);
111 out << genericMapParams;
112 insertionOptions.writeToStream(
out);
113 likelihoodOptions.writeToStream(
out);
114 renderOptions.writeToStream(
out);
122 void CSimplePointsMap::serializeFrom(
146 in >> genericMapParams;
149 bool disableSaveAs3DObject;
150 in >> disableSaveAs3DObject;
151 genericMapParams.enableSaveAs3DObject = !disableSaveAs3DObject;
153 insertionOptions.readFromStream(in);
154 likelihoodOptions.readFromStream(in);
155 if (version >= 10) renderOptions.readFromStream(in);
199 std::vector<uint32_t> dummy_pointWeight(n);
201 &dummy_pointWeight[0], n);
206 std::vector<uint32_t> dummy_pointWeight(n);
215 in >> insertionOptions.minDistBetweenLaserPoints >>
216 insertionOptions.addToExistingPointsMap >>
217 insertionOptions.also_interpolate >>
218 insertionOptions.disableDeletion >>
219 insertionOptions.fuseWithExisting >>
220 insertionOptions.isPlanarMap;
224 bool old_matchStaticPointsOnly;
225 in >> old_matchStaticPointsOnly;
228 in >> insertionOptions.maxDistForInterpolatePoints;
231 bool disableSaveAs3DObject;
232 in >> disableSaveAs3DObject;
233 genericMapParams.enableSaveAs3DObject =
234 !disableSaveAs3DObject;
240 in >> insertionOptions.horizontalTolerance;
244 likelihoodOptions.readFromStream(in);
247 in >> insertionOptions.insertInvalidPoints;
258 void CSimplePointsMap::internal_clear()
268 void CSimplePointsMap::insertPointFast(
float x,
float y,
float z)
296 [[maybe_unused]]
const float gy, [[maybe_unused]]
const float gz,
325 [[maybe_unused]]
const float gy, [[maybe_unused]]
const float gz,
351 void CSimplePointsMap::loadFromRangeScan(
359 void CSimplePointsMap::loadFromRangeScan(
371 void CSimplePointsMap::PLY_import_set_vertex_count(
const size_t N)
Virtual base for specifying the kind and parameters of one map (normally, to be inserted into mrpt::m...
void reserve(size_t newLength) override
Reserves memory for a given number of points: the size of the map does not change, it only reserves the memory.
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
To be added to all CSerializable-classes implementation files.
static void internal_loadFromRangeScan3D_prepareOneRange([[maybe_unused]] CSimplePointsMap &me, [[maybe_unused]] const float gx, [[maybe_unused]] const float gy, [[maybe_unused]] const float gz, [[maybe_unused]] mrpt::maps::CPointsMap::TLaserRange3DInsertContext &lric)
Helper method fot the generic implementation of CPointsMap::loadFromRangeScan(), to be called once pe...
mrpt::maps::CPointsMap::TRenderOptions renderOpts
Rendering as 3D object options.
A range or depth 3D scan measurement, as from a time-of-flight range camera or a structured-light dep...
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans. ...
static void internal_loadFromRangeScan2D_postPushBack([[maybe_unused]] CSimplePointsMap &me, [[maybe_unused]] mrpt::maps::CPointsMap::TLaserRange2DInsertContext &lric)
Helper method fot the generic implementation of CPointsMap::loadFromRangeScan(), to be called after e...
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans or other sensors...
This class allows loading and storing values and vectors of different types from a configuration text...
This base provides a set of functions for maths stuff.
mrpt::maps::CPointsMap::TInsertionOptions insertionOpts
Observations insertion options.
mrpt::maps::CPointsMap::TLikelihoodOptions likelihoodOpts
Probabilistic observation likelihood options.
This namespace contains representation of robot actions and observations.
static void internal_loadFromRangeScan2D_prepareOneRange([[maybe_unused]] CSimplePointsMap &me, [[maybe_unused]] const float gx, [[maybe_unused]] const float gy, [[maybe_unused]] const float gz, [[maybe_unused]] mrpt::maps::CPointsMap::TLaserRange2DInsertContext &lric)
Helper method fot the generic implementation of CPointsMap::loadFromRangeScan(), to be called once pe...
static void internal_loadFromRangeScan2D_init([[maybe_unused]] CSimplePointsMap &me, [[maybe_unused]] mrpt::maps::CPointsMap::TLaserRange2DInsertContext &lric)
Helper method fot the generic implementation of CPointsMap::loadFromRangeScan(), to be called only on...
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define MAP_DEFINITION_REGISTER(_CLASSNAME_STRINGS, _CLASSNAME_WITH_NS)
Registers one map class into TMetricMapInitializer factory.
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
Virtual base class for "archives": classes abstracting I/O streams.
void vector_strong_clear(VECTOR_T &v)
Like calling a std::vector<>'s clear() method, but really forcing deallocating the memory...
Declares a virtual base class for all metric maps storage classes.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
mrpt::vision::TStereoCalibResults out
static void internal_loadFromRangeScan3D_postPushBack([[maybe_unused]] CSimplePointsMap &me, [[maybe_unused]] mrpt::maps::CPointsMap::TLaserRange3DInsertContext &lric)
Helper method fot the generic implementation of CPointsMap::loadFromRangeScan(), to be called after e...
static void internal_loadFromRangeScan3D_init([[maybe_unused]] CSimplePointsMap &me, [[maybe_unused]] mrpt::maps::CPointsMap::TLaserRange3DInsertContext &lric)
Helper method fot the generic implementation of CPointsMap::loadFromRangeScan(), to be called only on...
Helper struct used for internal_loadFromRangeScan3D_prepareOneRange()
static void internal_loadFromRangeScan3D_postOneRange([[maybe_unused]] CSimplePointsMap &me, [[maybe_unused]] mrpt::maps::CPointsMap::TLaserRange3DInsertContext &lric)
Helper method fot the generic implementation of CPointsMap::loadFromRangeScan(), to be called once pe...
size_t ReadBufferFixEndianness(T *ptr, size_t ElementCount)
Reads a sequence of elemental datatypes, taking care of reordering their bytes from the MRPT stream s...
Helper struct used for internal_loadFromRangeScan2D_prepareOneRange()