Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
Halfedge结构体 参考

半边网格中最关键的几何元素。 更多...

#include <halfedge.h>

类 Halfedge 继承关系图:
LinkedListNode< Halfedge >

Public 成员函数

 Halfedge (std::size_t halfedge_id)
 
void set_neighbors (Halfedge *next, Halfedge *prev, Halfedge *inv, Vertex *from, Edge *edge, Face *face)
 
bool is_boundary () const
 这条半边是否属于一个虚拟的边界面。
 

Public 属性

const std::size_t id
 
Halfedgenext
 
Halfedgeprev
 
Halfedgeinv
 
Vertexfrom
 
Edgeedge
 
Faceface
 
- Public 属性 继承自 LinkedListNode< Halfedge >
Halfedgenext_node
 
Halfedgeprev_node
 

详细描述

半边网格中最关键的几何元素。

半边网格中,所有几何元素都通过半边相互连接。Halfedge 类维护了每条半边的起点、所属的边和面片、 在整个半边网格上的下一条(前一条、反向)半边,从而将所有的几何基本元素联系在一起。

构造及析构函数说明

◆ Halfedge()

Halfedge::Halfedge ( std::size_t halfedge_id)

仅供 HalfedgeMesh::new_halfedge 调用,其他任何情况下都不应该直接使用。

成员函数说明

◆ is_boundary()

bool Halfedge::is_boundary ( ) const

这条半边是否属于一个虚拟的边界面。

这个函数的返回值是 face->on_boundary,因此返回真时表示这条半边属于一个 “虚假的”面(表示边界而不是真正的面片);而返回假时这条半边也有可能与 mesh 边界相邻,所以函数名为 is_boundary 而不是 on_boundary

◆ set_neighbors()

void Halfedge::set_neighbors ( Halfedge * next,
Halfedge * prev,
Halfedge * inv,
Vertex * from,
Edge * edge,
Face * face )

一次性设置半边的所有属性,各参数含义与同名属性一致。

类成员变量说明

◆ edge

Edge* Halfedge::edge

半边所在的边。

◆ face

Face* Halfedge::face

半边所在的面片。

◆ from

Vertex* Halfedge::from

半边的起点(发出点)。

◆ id

const std::size_t Halfedge::id

半边的全局唯一 ID,不会与整个半边网格中任何其他元素重复。

◆ inv

Halfedge* Halfedge::inv

反方向的半边。

◆ next

Halfedge* Halfedge::next

下一条半边。

◆ prev

Halfedge* Halfedge::prev

上一条半边。


该结构体的文档由以下文件生成: