Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
halfedge.h 文件参考

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

#include <cstddef>
#include <set>
#include <memory>
#include <optional>
#include <variant>
#include <tuple>
#include <unordered_map>
#include <Eigen/Core>
#include <spdlog/spdlog.h>
#include "../platform/gl.hpp"
#include "../platform/shader.hpp"
#include "../utils/linked_list.hpp"
#include "../scene/object.h"

浏览该文件的源代码.

struct  Halfedge
 半边网格中最关键的几何元素。 更多...
 
struct  Vertex
 半边网格中的顶点。 更多...
 
struct  Edge
 半边网格中的边。 更多...
 
struct  Face
 半边网格中的面片。 更多...
 
class  HalfedgeMesh
 半边网格整体。 更多...
 
struct  HalfedgeMesh::EdgeRecord
 在曲面简化算法中用到的工具类。 更多...
 

枚举

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
}
 半边网格的不合法情况。 更多...
 

详细描述

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

Dandelion 的几何处理算法都是基于半边网格的,所有几何处理需要的类型都在这个头文件中声明, 但在不同的源文件中定义。Halfedge / Vertex / Edge / Face 各自有一个源文件, 而 HalfedgeMesh 则被分为两部分:创建、同步和检查等功能在 halfedge_mesh.cpp 中实现,各类几何操作在 meshedit.cpp 中实现。