template class mrpt::viz::PointCloudAdapter<mrpt::maps::CPointsMap>

Overview

Specialization mrpt::viz::PointCloudAdapter<mrpt::maps::CPointsMap>

The adapter is a short-lived view: which color fields exist, and where they are stored, is resolved at construction. Do not keep an adapter alive across changes to the map field layout (e.g. CGenericPointsMap::unregisterField()).

#include <mrpt/maps/CPointsMap.h>

template <>
class PointCloudAdapter<mrpt::maps::CPointsMap>
{
public:
    // typedefs

    typedef float coords_t;

    // fields

    const bool HAS_RGBf = m_obj.hasColor_f();
    const bool HAS_RGBu8 = m_obj.hasColor_u8();

    // construction

    PointCloudAdapter(const mrpt::maps::CPointsMap& obj);

    // methods

    size_t size() const;
    void resize(size_t N);
    void setDimensions(size_t, size_t);

    template <typename T>
    void getPointXYZ(size_t idx, T& x, T& y, T& z) const;

    void setPointXYZ(size_t idx, const coords_t x, const coords_t y, const coords_t z);

    template <typename T>
    void getPointXYZ_RGBu8(
        size_t idx,
        T& x,
        T& y,
        T& z,
        uint8_t& r,
        uint8_t& g,
        uint8_t& b
        ) const;

    void setPointXYZ_RGBu8(
        size_t idx,
        const coords_t x,
        const coords_t y,
        const coords_t z,
        const uint8_t r,
        const uint8_t g,
        const uint8_t b
        );

    template <typename T>
    void getPointXYZ_RGBAf(
        size_t idx,
        T& x,
        T& y,
        T& z,
        float& r,
        float& g,
        float& b,
        float& a
        ) const;

    void setPointXYZ_RGBAf(
        size_t idx,
        const coords_t x,
        const coords_t y,
        const coords_t z,
        const float r,
        const float g,
        const float b,
        ] const float a
        );

    void getPointRGBf(
        size_t idx,
        float& r,
        float& g,
        float& b
        ) const;

    void setPointRGBu8(
        size_t idx,
        const uint8_t r,
        const uint8_t g,
        const uint8_t b
        );

    void setPointRGBf(
        size_t idx,
        const float r,
        const float g,
        const float b
        );

    void setInvalidPoint(size_t idx);
};

// direct descendants

template <>
class PointCloudAdapter<mrpt::maps::CGenericPointsMap>;

template <>
class PointCloudAdapter<mrpt::maps::CSimplePointsMap>;

Typedefs

typedef float coords_t

The type of each point XYZ coordinates.

Fields

const bool HAS_RGBf = m_obj.hasColor_f()

Has native RGB info (as floats)?

const bool HAS_RGBu8 = m_obj.hasColor_u8()

Has native RGB info (as uint8_t)?

Construction

PointCloudAdapter(const mrpt::maps::CPointsMap& obj)

Constructor (accept a const ref for convenience)

Methods

size_t size() const

Get number of points.

void resize(size_t N)

Set number of points (to uninitialized values)

void setDimensions(size_t, size_t)

Does nothing as of now.

template <typename T>
void getPointXYZ(size_t idx, T& x, T& y, T& z) const

Get XYZ coordinates of i’th point.

void setPointXYZ(size_t idx, const coords_t x, const coords_t y, const coords_t z)

Set XYZ coordinates of i’th point.

template <typename T>
void getPointXYZ_RGBu8(
    size_t idx,
    T& x,
    T& y,
    T& z,
    uint8_t& r,
    uint8_t& g,
    uint8_t& b
    ) const

Get XYZ_RGBu8 coordinates of i’th point.

void setPointXYZ_RGBu8(
    size_t idx,
    const coords_t x,
    const coords_t y,
    const coords_t z,
    const uint8_t r,
    const uint8_t g,
    const uint8_t b
    )

Set XYZ_RGBu8 coordinates of i’th point.

template <typename T>
void getPointXYZ_RGBAf(
    size_t idx,
    T& x,
    T& y,
    T& z,
    float& r,
    float& g,
    float& b,
    float& a
    ) const

Get XYZ_RGBf coordinates of i’th point.

void setPointXYZ_RGBAf(
    size_t idx,
    const coords_t x,
    const coords_t y,
    const coords_t z,
    const float r,
    const float g,
    const float b,
    ] const float a
    )

Set XYZ_RGBf coordinates of i’th point.