Skip to main content

SelectPointCloud

原型

enum class SelectionFlag {
ClearAndSelect,
Select,
Deselect
};
void SelectPointCloud(unsigned id, const std::vector<size_t>& points, SelectionFlag flag = SelectionFlag::ClearAndSelect);

功能

用于选中点云中的点,支持了选取、增选和减选三种模式

参数

  • id 点云对象的id
  • points 点云对象中本次选中点的id列表
  • flag 选择模式,默认为ClearAndSelect,执行后选中id对应点云中的points

返回值

示例

// 假设已有点云id且之前点云未选中

// 选中index为1的点
std::vector<size_t> points{1}
mpl::SelectPointCloud(id, points);
// 获取选中的indexes, 结果是 {1}
auto selectedIndexes = mpl::GetSelectedCloudPointIndexes(id);

// 增选index为2,3的点
std::vector<size_t> pointsAdded{2, 3}
mpl::SelectPointCloud(id, pointsAdded, mpl::SelectionFlag::Select);
// 获取选中的indexes, 结果是 {1, 2, 3}
selectedIndexes = mpl::GetSelectedCloudPointIndexes(id);

// 减选index为2的点
std::vector<size_t> pointsRemoved{2}
mpl::SelectPointCloud(id, pointsAdded, mpl::SelectionFlag::Deselect);
// 获取选中的indexes, 结果是 {1, 3}
selectedIndexes = mpl::GetSelectedCloudPointIndexes(id);