0%

VCG基础知识

自动摘要: 基本函数 总数: cpp vert.sizevnsvn_顶点数量、选中的顶点数量 坐标: ```cpp Vec3fp=v>P(); Vec3 ……..

基本函数

  • 总数:

    1
    vert.size   vn   svn_  顶点数量、选中的顶点数量
  • 坐标:

    1
    2
    Vec3f p = v->P(); 
    Vec3f p = v->cP();
  • 法向:

    1
    2
    Vec3f 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
    2
    float len = (p1-p2).Length();

  • 增加/删除点、面

    1
    2
    m->addVertex(p);
    m->deleteVertex(V);
  • 回收已删除的点面:

    1
    m->compact()
  • 更新包围盒、法向量等

    1
    2
    m->dirtyMesh(DIRTMESH_ALL)

  • 边翻转、边折叠:旧版本不提供边折叠函数

结构

    • FlipV ;FlipE ;FlipF;VFlip ;FFlip

判断Mesh有效性 isStrictValid

基本属性接口

  1. SetColor、SetOpacity相关的可见性操作接口,它们会影响在渲染场景中的可见性

Meshe与TriMesh转换:

VCG存储格式与OpenMesh存储结构之间的转换

  1. ToMesh

Mesh拷贝类

从现有的Mesh数据,拷贝一份新的Mesh数据对象。使用比较频繁

  1. copyMesh
  2. appendMesh

Mesh遍历

  1. 顶点:
    1. NumVertex
    2. getVertex
  2. 面片:
    1. numFace
    2. getFace

属性操作

Mesh顶点属性,可用于自定义分类顶点的操作,如:区分内层、外层,以及自己标注部分区域,用于特定算法的分类顶点操作,如塑形工具区域约束,

  1. isDefineVertexAttribute
  2. createVertexAttribute
  3. getVertexAttribute

拓扑类

  1. 更新拓扑
    1. dirtyMesh ,当模型拓扑数据发生变化情况下,须更新一下拓扑结构
  2. 顶点:
    1. addVertex
    2. TVertex
      1. TVertext*p ,
      2. p->P() = Vec3(0.0,0.0,0.0) ,坐标操作,设置三维坐标值
      3. P->SetS() 置选中标志 P->IsS()是否选中标志
      4. P->SetD() 置删除标志调用前需要先判断P->IsD(),调用后需要调用mesh->vn–;
  3. 面片:
    1. addFace(size_t i0, size_t i1, size_t i2)、deleteFace
    2. TFace
      1. TFace*pFace; pFace->N() 面片法相
      2. pFace->V(i) ,顶点遍历
      3. computeFaceNormal ,法相计算
      4. pFace->SetS() 置选中标志 pFace->IsS()是否选中标志
      5. pFace->SetD() 置删除标志调用前需要先判断pFace->IsD(),调用后需要调用mesh->fn–;
  4. 所有需要处理的顶点、面片调用完SetD() & mesh->vn–/mesh->fn–后需要调用mesh->compact()、mesh->dirtyMesh(DIRTYMESH_TOPOLOGY)

欢迎关注我的其它发布渠道