struct mrpt::maps::internal::PointColumn

Overview

One point field: a contiguous array of n values.

#include </home/jlblanco/mrpt/modules/mrpt_maps/src/maps/points_cloudini_io.h>

struct PointColumn
{
    // enums

    enum Type;

    // fields

    Type type = Type::Float;
    void* data = nullptr;
    std::size_t n = 0;
    std::optional<float> resolution;
    std::function<void*()> allocate;

    // methods

    template <typename T>
    static PointColumn of(
        const T* d,
        std::size_t n,
        std::optional<float> res = std::nullopt
        );

    template <typename VEC>
    static PointColumn resizing(VEC& v, std::size_t n);
};

Fields

std::optional<float> resolution

Quantization step (float and double columns), std::nullopt: exact.

std::function<void*()> allocate

If set, read_point_columns() calls it (maybe from another thread) to resize the destination array to n values and get its data pointer.

Methods

template <typename T>
static PointColumn of(
    const T* d,
    std::size_t n,
    std::optional<float> res = std::nullopt
    )

Column of the array d, which write_point_columns() only reads and read_point_columns() fills.

res is ignored for integer types.

template <typename VEC>
static PointColumn resizing(VEC& v, std::size_t n)

Column to be read into the vector v, resized to n values right before.