struct mrpt::maps::CPointsMap::TSerializationOptions

Overview

Options for the binary serialization of CSimplePointsMap and CGenericPointsMap (global for all objects): see serializationOptions().

With Cloudini, large clouds load and save about 2-3x faster, and take less space (mostly from the x,y,z quantization).

#include <mrpt/maps/CPointsMap.h>

struct TSerializationOptions
{
    // fields

    bool use_cloudini = true;
    float xyz_resolution = 1e-4f;
    std::map<std::string, float> field_resolutions;
    std::size_t cloudini_min_points = 250'000;
};

Fields

bool use_cloudini = true

Compress the point clouds with Cloudini, if this build of MRPT supports it (see hasCloudini()).

Otherwise, they are stored uncompressed, in the format of previous MRPT versions. Default: true, unless the environment variable MRPT_POINTS_CLOUDINI=0.

float xyz_resolution = 1e-4f

With Cloudini, quantization step of the x,y,z coordinates [m]: the maximum error is half of it.

Default: 1e-4 (0.1 mm), or the environment variable MRPT_POINTS_CLOUDINI_XYZ_RESOLUTION.

std::map<std::string, float> field_resolutions

With Cloudini, quantization step of other float or double fields, by field name.

Fields not listed here are stored exactly; integer fields always are.

std::size_t cloudini_min_points = 250'000

Clouds with fewer points are stored uncompressed: they load faster that way, since Cloudini decoding only pays off when done in parallel.

Set to 0 to always compress (smaller files). Default: 250000, or the environment variable MRPT_POINTS_CLOUDINI_MIN_POINTS.