class cogs::PointCloudSelector

Overview

API for selecting points from a point cloud by ray-casting. More…

#include <PointCloudSelector.h>

class PointCloudSelector {
public:
    // construction

    PointCloudSelector();
    PointCloudSelector(std::shared_ptr<cogs::PointCloud> pointcloud);

    // methods

    void Initialize(std::shared_ptr<cogs::PointCloud> pointcloud);
    size_t CountSelected() const;
    int32_t SelectPoint(const geom::Ray3& ray);
    int32_t DeselectPoint(const geom::Ray3& ray);
    void SelectPoint(int32_t point_index);
    void DeselectPoint(int32_t point_index);
    void SelectPointsAround(int32_t point_index, float selection_radius);
    void DeselectPointsAround(int32_t point_index, float deselection_radius);
    void DeselectAllPoints();
    const std::set<int32_t>& GetSelectedPoints() const;
};

Detailed Documentation

API for selecting points from a point cloud by ray-casting.

Construction

PointCloudSelector()

Default constructor.

PointCloudSelector(std::shared_ptr<cogs::PointCloud> pointcloud)

Prepares the selector to be used over the given point cloud.

Parameters:

pointcloud

Selector will work with this point cloud.

Methods

void Initialize(std::shared_ptr<cogs::PointCloud> pointcloud)

Initializes the selector over new point cloud, forgetting the reference and selected points of old one (if any).

Parameters:

pointcloud

Selector will work with this point cloud.

size_t CountSelected() const

Returns current number of selected points.

int32_t SelectPoint(const geom::Ray3& ray)

Selects a point of point cloud based on the ray intersection with it.

Parameters:

ray

3D ray in the point cloud space.

selection_radius

When greater then zero, also points around the intersected point are selected up to the distance.

Returns:

Index of the intersected point, -1 if no point was intersected.

int32_t DeselectPoint(const geom::Ray3& ray)

Deselects a point of point cloud based on the ray intersection with it.

Parameters:

ray

3D ray in the point cloud space.

selection_radius

When greater then zero, also points around the intersected point are deselected up to the distance.

Returns:

Index of the intersected point, -1 if no point was intersected.

void SelectPoint(int32_t point_index)

Internally selects the point with given index.

Parameters:

point_index

Index of the point to select.

void DeselectPoint(int32_t point_index)

Internally deselects the point with given index.

Parameters:

point_index

Index of the point to deselect.

void SelectPointsAround(int32_t point_index, float selection_radius)

Selects the points around the target point in a specified radius, including the target point.

Parameters:

point_index

Index of the point to select.

selection_radius

Maximal distance from target point.

void DeselectPointsAround(int32_t point_index, float deselection_radius)

Deselects the points around the target point in a specified radius, including the target point.

Parameters:

point_index

Index of the point to deselect.

selection_radius

Maximal distance from target point.

void DeselectAllPoints()

Deselect all previously selected points.

const std::set<int32_t>& GetSelectedPoints() const

Returns the list of all previously selected points.

Returns:

Vector of selected points.