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);