std::set<osg::Vec3> _OriVertices 插入顶点后,获取顶点的位置
时间: 2024-12-08 19:16:59 浏览: 16
OSG.rar_OpenSceneGraph_osg_osg视频教程_site:www.pudn.com
std::set<osg::Vec3> 类似于 C++ 中的一个集合容器,用于存储 osg::Vec3 类型(三维向量)的元素,并按照其成员值排序。当你在 `_OriVertices` 集合中插入一个新的顶点后,它会自动添加到已排序的顺序中。
如果你想要获取某个特定顶点的位置,你需要提供该顶点的标识或者是通过迭代器找到这个位置。这里是一个简单的步骤:
1. 使用 `insert` 函数将顶点添加到集合中,例如:
```cpp
// 假设你有一个新的 Vec3 新顶点 vert
_OriVertices.insert(vert);
```
2. 要获取特定位置的顶点,可以遍历集合,找到对应的索引。由于集合是无序的(但内部有序),通常不适合直接查找,所以你可以选择保存每个顶点的唯一标识(如整数ID)来作为键,并维护这个关联。如果没有这样做,那么需要从零开始搜索,这可能效率较低。
```cpp
// 假设你知道顶点ID
auto it = _OriVertices.find(vertexId);
if (it != _OriVertices.end()) {
const osg::Vec3& position = *it; // 获取位置
// ...
} else {
// 顶点未找到
}
```
如果只是按插入顺序查找最近添加的顶点,可以在添加后立即获取,因为集合默认按照插入顺序排列。
阅读全文