class Bonxai::VoxelGrid::Accessor

Overview

Class to be used to set and get values of a cell of the Grid.

It uses caching to speed up computation.

Create an instance of this object with the method VoxelGrid::greateAccessor()

#include <mrpt/maps/bonxai/bonxai.hpp>

class Accessor
{
public:
    // construction

    Accessor(VoxelGrid& grid);

    // methods

    bool setValue(const CoordT& coord, const DataT& value);
    DataT* value(const CoordT& coord, bool create_if_missing = false);
    bool setCellOn(const CoordT& coord, const DataT& default_value = DataT());
    bool setCellOff(const CoordT& coord);
    const InnerGrid* lastInnerdGrid() const;
    const LeafGrid* lastLeafGrid() const;
    LeafGrid* getLeafGrid(const CoordT& coord, bool create_if_missing = false);
};

Methods

bool setValue(const CoordT& coord, const DataT& value)

setValue of a cell.

If the cell did not exist, it is created.

Parameters:

coord

coordinate of the cell

value

value to set.

Returns:

the previous state of the cell (ON = true).

DataT* value(const CoordT& coord, bool create_if_missing = false)

value getter.

Parameters:

coord

coordinate of the cell.

Returns:

return the pointer to the value or nullptr if not set.

bool setCellOn(const CoordT& coord, const DataT& default_value = DataT())

setCellOn is similar to setValue, but the value is changed only if the cell has been created, otherwise, the previous value is used.

Parameters:

coord

coordinate of the cell.

default_value

default value of the cell. Use only if the cell did not exist before.

Returns:

the previous state of the cell (ON = true).

bool setCellOff(const CoordT& coord)

setCellOff will disable a cell without deleting its content.

Parameters:

coord

coordinate of the cell.

Returns:

the previous state of the cell (ON = true).

const InnerGrid* lastInnerdGrid() const

lastInnerdGrid returns the pointer to the InnerGrid in the cache.

const LeafGrid* lastLeafGrid() const

lastLeafGrid returns the pointer to the LeafGrid in the cache.

LeafGrid* getLeafGrid(const CoordT& coord, bool create_if_missing = false)

getLeafGrid gets the pointer to the LeafGrid containing the cell.

It is the basic class used by setValue() and value().

Parameters:

coord

Coordinate of the cell.

create_if_missing

if true, create the Root, Inner and Leaf, if not present.