Dandelion 1.1.1
A light-weight 3D builder for educational usage
|
半边网格中的边。 更多...
#include <halfedge.h>
Public 成员函数 | |
Edge (std::size_t edge_id) | |
bool | on_boundary () const |
Eigen::Vector3f | center () const |
float | length () const |
Public 属性 | |
const std::size_t | id |
Halfedge * | halfedge |
bool | is_new |
Eigen::Vector3f | new_pos |
准备分裂这条边时分裂后新增顶点的坐标。 | |
Public 属性 继承自 LinkedListNode< Edge > | |
Edge * | next_node |
Edge * | prev_node |
半边网格中的边。
半边网格中,每条边只维护属于自身的某一条半边。
Edge::Edge | ( | std::size_t | edge_id | ) |
仅供 HalfedgeMesh::new_edge
调用,其他任何情况下都不应该直接使用。
Vector3f Edge::center | ( | ) | const |
边的中点坐标。
float Edge::length | ( | ) | const |
边的长度。
bool Edge::on_boundary | ( | ) | const |
这条边是否在 mesh 边界上。
Halfedge* Edge::halfedge |
沿着这条边的某一条半边。
const std::size_t Edge::id |
边的全局唯一 ID,不会与整个半边网格中任何其他元素重复。
bool Edge::is_new |
新建边的标识,在一些全局操作中用到。
Eigen::Vector3f Edge::new_pos |
准备分裂这条边时分裂后新增顶点的坐标。
HalfedgeMesh::split_edge
函数并不会使用这个坐标,而是直接用边中点作为新增顶点的位置。 这个属性仅供需要指定分裂后顶点位置的算法使用,例如 Loop 细分。