Dandelion 2.0.0
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
几何处理

使用半边网格 (halfedge mesh) 进行几何处理操作的模块。 更多...

文件

文件  halfedge.h
 半边网格所需各种类型的公共头文件。

类

struct  Halfedge
 半边网格中最关键的几何元素。 更多...
struct  Vertex
 半边网格中的顶点。 更多...
struct  Edge
 半边网格中的边。 更多...
struct  Face
 半边网格中的面片。 更多...
class  HalfedgeMesh
 半边网格整体。 更多...
struct  Mesh
 用于同步渲染数据的三角形 Mesh 。 更多...
struct  LineSet
 用于同步线条渲染数据的内存对象。 更多...

枚举

enum class  HalfedgeMeshFailure {
  NO_SELECTED_MESH , MULTIPLE_ORIENTED_EDGES , NON_MANIFOLD_VERTEX , INIFINITE_POSITION_VALUE ,
  INVALID_HALFEDGE_PERMUTATION , INVALID_VERTEX_CONNECTIVITY , INVALID_EDGE_CONNECTIVITY , INVALID_FACE_CONNECTIVITY ,
  ILL_FORMED_HALFEDGE_INVERSION , POOR_HALFEDGE_ACCESSIBILITY
}
 半边网格的不合法情况。 更多...

详细描述

使用半边网格 (halfedge mesh) 进行几何处理操作的模块。

Dandelion 中的几何操作分为局部操作和全局操作两类:

  • 局部操作是只需要某个局部的信息——例如一点的 \(\mathcal{N}_1\) 邻域、一条边的邻接面片等——就能完成的操作。
  • 全局操作是需要遍历整个网格的操作,例如一次曲面细分 (subdivision) 或一次重网格化 (re-meshing)。

枚举类型说明

◆ HalfedgeMeshFailure

enum class HalfedgeMeshFailure
strong

半边网格的不合法情况。

在创建半边网格失败或验证其合法性失败时,用该枚举类代表失败原因。

  • NO_SELECTED_MESH 表示没有选中任何 mesh,半边网格没有数据源。
  • MULTIPLE_ORIENTED_EDGES 表示有多条重叠的半边(端点和方向都相同),该 mesh 不可定向。
  • NON_MANIFOLD_VERTEX 表示有非流形顶点。
  • INIFINITE_POSITION_VALUE 表示有的顶点坐标是无穷大。
  • INVALID_HALFEDGE_PERMUTATION 表示某条半边的指针空缺或指向了不正确的元素。
  • INVALID_VERTEX_CONNECTIVITY 表示某个顶点与半边的连接关系不正确
  • INVALID_EDGE_CONNECTIVITY 表示某条边与半边的连接关系不正确。 = INVALID_FACE_CONNECTIVITY 表示某个面与半边的连接关系不正确。
  • ILL_FORMED_HALFEDGE_INVERSION 表示某条半边的反向关系不正确。
  • POOR_HALFEDGE_ACCESSIBILITY 表示某条半边不能通过其连接到的元素反向访问到。

更详细的说明见运行时输出的日志内容。