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

半边网格中的面片。 更多...

#include <halfedge.h>

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

Public 成员函数

 Face (std::size_t face_id, bool is_boundary=false)
 
Eigen::Vector3f area_weighted_normal ()
 
Eigen::Vector3f normal ()
 
Eigen::Vector3f center () const
 

Public 属性

const std::size_t id
 
Halfedgehalfedge
 
const bool is_boundary
 边界面标识。
 
- Public 属性 继承自 LinkedListNode< Face >
Facenext_node
 
Faceprev_node
 

详细描述

半边网格中的面片。

半边网格中,每个面片只维护属于自身的某一条半边。

构造及析构函数说明

◆ Face()

Face::Face ( std::size_t face_id,
bool is_boundary = false )

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

成员函数说明

◆ area_weighted_normal()

Vector3f Face::area_weighted_normal ( )

返回面片法向量与面片面积的数量积。

◆ center()

Vector3f Face::center ( ) const

返回面片中心(也是重心,顶点坐标的算数平均值)。

◆ normal()

Vector3f Face::normal ( )

返回面片法向量(已经单位化)。

类成员变量说明

◆ halfedge

Halfedge* Face::halfedge

属于这个面片的某一条半边。

◆ id

const std::size_t Face::id

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

◆ is_boundary

const bool Face::is_boundary

边界面标识。

如果不加处理地从一个不封闭 mesh 创建半边,位于 mesh 边界的边上将只会有一条半边, 从而让某些半边的反向指针 (inv) 为空。为了让半边网格在形式上统一, 创建半边网格时会将每条边界视作一个“环路”,并为这个“环路”创建一个虚拟的面。


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