自动摘要: 基本函数 总数: cpp vert.sizevnsvn_顶点数量、选中的顶点数量
坐标: ```cpp Vec3fp=v>P(); Vec3 ……..
基本函数
总数:
1
vert.size vn svn_ 顶点数量、选中的顶点数量
坐标:
1
2Vec3f p = v->P();
Vec3f p = v->cP();法向:
1
2Vec3f n = v->N();
Vec3f n = v->cN();遍历:
1
for(auto it = m->vert.begin(); it != m->vert.end(); ++it)
邻域遍历:
- 封装了getRingVertex、getRingFace,也可以用迭代器
自定义属性:
- 只封装了int和byte,其它用底层模板实现
内置属性:
- SetS SetV SetD ClearS ClearV ClearD
单位化:
1
n.normalized();
内积:
1
float d = v1 * v2;
叉积:
1
Vec3f v3 = v1 ^ v2
两点之间的距离
1
2float len = (p1-p2).Length();
增加/删除点、面
1
2m->addVertex(p);
m->deleteVertex(V);回收已删除的点面:
1
m->compact()
更新包围盒、法向量等
1
2m->dirtyMesh(DIRTMESH_ALL)
边翻转、边折叠:旧版本不提供边折叠函数
结构
边
点
FlipV ;FlipE ;FlipF;VFlip ;FFlip
判断Mesh有效性 isStrictValid
基本属性接口
- SetColor、SetOpacity相关的可见性操作接口,它们会影响在渲染场景中的可见性
Meshe与TriMesh转换:
VCG存储格式与OpenMesh存储结构之间的转换
- ToMesh
Mesh拷贝类
从现有的Mesh数据,拷贝一份新的Mesh数据对象。使用比较频繁
- copyMesh
- appendMesh
Mesh遍历
- 顶点:
- NumVertex
- getVertex
- 面片:
- numFace
- getFace
属性操作
Mesh顶点属性,可用于自定义分类顶点的操作,如:区分内层、外层,以及自己标注部分区域,用于特定算法的分类顶点操作,如塑形工具区域约束,
- isDefineVertexAttribute
- createVertexAttribute
- getVertexAttribute
拓扑类
- 更新拓扑
- dirtyMesh ,当模型拓扑数据发生变化情况下,须更新一下拓扑结构
- 顶点:
- addVertex
- TVertex
- TVertext*p ,
- p->P() = Vec3(0.0,0.0,0.0) ,坐标操作,设置三维坐标值
- P->SetS() 置选中标志 P->IsS()是否选中标志
- P->SetD() 置删除标志调用前需要先判断P->IsD(),调用后需要调用mesh->vn–;
- 面片:
- addFace(size_t i0, size_t i1, size_t i2)、deleteFace
- TFace
- TFace*pFace; pFace->N() 面片法相
- pFace->V(i) ,顶点遍历
- computeFaceNormal ,法相计算
- pFace->SetS() 置选中标志 pFace->IsS()是否选中标志
- pFace->SetD() 置删除标志调用前需要先判断pFace->IsD(),调用后需要调用mesh->fn–;
- 所有需要处理的顶点、面片调用完SetD() & mesh->vn–/mesh->fn–后需要调用mesh->compact()、mesh->dirtyMesh(DIRTYMESH_TOPOLOGY)