ViewDesignEngine  3.1.0
高性能 CAD 计算几何引擎
vde::foundation 命名空间参考

自适应双精度谓词后端(默认) 更多...

命名空间

 exact
 

struct  AdaptiveDouble
 
class  Interval
 双精度区间算术类 更多...
 
struct  GltfOptions
 glTF 2.0 导出选项 更多...
 
struct  ObjMeshData
 OBJ 文件解析结果数据结构 更多...
 
struct  StlTriangle
 STL 三角形面片 更多...
 
class  MemoryPool
 固定块大小的内存池 更多...
 
struct  Predicates
 统一谓词接口 — 编译时选择 GMP 或自适应双精度后端 更多...
 
struct  SerializedMesh
 二进制序列化格式的网格数据结构 更多...
 
class  BinarySerializer
 二进制序列化器 更多...
 
class  Tolerance
 分层容差管理类 更多...
 
class  ToleranceScope
 局部容差作用域(RAII) 更多...
 

类型定义

template<typename T , size_t Dim>
using Point = Eigen::Matrix< T, Dim, 1 >
 通用 N 维点类型(使用 Eigen 列向量) 更多...
 
template<typename T , size_t Dim>
using Vector = Eigen::Matrix< T, Dim, 1 >
 通用 N 维向量类型(与 Point 相同的列向量表示) 更多...
 
template<typename T >
using Matrix3 = Eigen::Matrix< T, 3, 3 >
 3×3 矩阵模板 更多...
 
template<typename T >
using Matrix4 = Eigen::Matrix< T, 4, 4 >
 4×4 矩阵模板 更多...
 
using Point2D = Point< double, 2 >
 双精度二维点 更多...
 
using Point3D = Point< double, 3 >
 双精度三维点 更多...
 
using Point2f = Point< float, 2 >
 单精度二维点 更多...
 
using Point3f = Point< float, 3 >
 单精度三维点 更多...
 
using Point4D = Eigen::Matrix< double, 4, 1 >
 双精度齐次四维点(用于仿射变换) 更多...
 
using Vector2D = Vector< double, 2 >
 双精度二维向量 更多...
 
using Vector3D = Vector< double, 3 >
 双精度三维向量 更多...
 
using Vector2f = Vector< float, 2 >
 单精度二维向量 更多...
 
using Vector3f = Vector< float, 3 >
 单精度三维向量 更多...
 
using Matrix3D = Matrix3< double >
 双精度 3×3 矩阵 更多...
 
using Matrix4D = Matrix4< double >
 双精度 4×4 矩阵 更多...
 

枚举

enum class  ErrorCode : int32_t {
  kSuccess = 0 , kInvalidArgument , kInvalidGeometry , kDegenerateCase ,
  kNotImplemented , kNumericalError , kOutOfMemory , kInternalError
}
 全局错误码枚举 更多...
 

函数

std::string fmt_double (double v, int precision=12)
 以 CAD 级别精度格式化双精度浮点数 更多...
 
std::string fmt_iges_real (double v, int=12)
 IGES 格式实数输出 更多...
 
std::string fmt_point (const core::Point3D &p, bool use_d=false)
 格式化三维点为逗号分隔字符串 更多...
 
std::string pad72 (const std::string &s)
 将字符串填充到恰好 72 个字符 更多...
 
std::string format_iges_line (const std::string &data, char section_char, int seq)
 格式化 IGES 段落行 更多...
 
Interval orient_2d_interval (double ax, double ay, double bx, double by, double cx, double cy)
 二维定向行列式的区间验证 更多...
 
int orient_2d_verified (double ax, double ay, double bx, double by, double cx, double cy)
 使用区间算术验证 orient_2d 结果 更多...
 
bool write_gltf (const std::string &filepath, const mesh::HalfedgeMesh &mesh, const GltfOptions &options=GltfOptions{})
 导出网格为 glTF 2.0 / GLB 格式 更多...
 
bool write_brep_gltf (const std::string &filepath, const brep::BrepModel &model, int tessellation_res=32)
 导出 B-Rep 模型为 GLB 格式(通过面片化) 更多...
 
ObjMeshData read_obj (const std::string &filepath)
 读取 Wavefront OBJ 文件 更多...
 
void write_obj (const std::string &filepath, const ObjMeshData &data)
 写入 Wavefront OBJ 文件 更多...
 
mesh::HalfedgeMesh read_ply (const std::string &filepath)
 读取 PLY 文件(Stanford Polygon Format) 更多...
 
void write_ply (const std::string &filepath, const mesh::HalfedgeMesh &mesh)
 写入 PLY 文件(ASCII 格式) 更多...
 
std::vector< StlTriangleread_stl (const std::string &filepath)
 读取 STL 文件(自动检测格式) 更多...
 
void write_stl (const std::string &filepath, const std::vector< StlTriangle > &tris)
 写入二进制 STL 文件 更多...
 
void write_stl_ascii (const std::string &filepath, const std::vector< StlTriangle > &tris)
 写入 ASCII STL 文件 更多...
 
exact::Orientation orient (const Point2D &a, const Point2D &b, const Point2D &c)
 二维定向测试便捷封装 更多...
 
exact::Orientation orient (const Point3D &a, const Point3D &b, const Point3D &c, const Point3D &d)
 三维定向测试便捷封装 更多...
 
exact::CircleTest in_circle (const Point2D &a, const Point2D &b, const Point2D &c, const Point2D &d)
 圆内测试便捷封装 更多...
 

变量

constexpr uint64_t VDE_MAGIC = 0x56444547454F4D00ULL
 VDE 二进制文件魔数:"VDEGEOM\0" 更多...
 
constexpr uint32_t VDE_FORMAT_VERSION = 1
 VDE 二进制格式当前版本号 更多...
 

详细描述

自适应双精度谓词后端(默认)

封装 exact 命名空间下的自适应精度谓词函数, 作为 Predicates 的默认后端实现。

类型定义说明

◆ Matrix3

template<typename T >
using vde::foundation::Matrix3 = typedef Eigen::Matrix<T, 3, 3>

3×3 矩阵模板

在文件 math_types.h34 行定义.

◆ Matrix3D

using vde::foundation::Matrix3D = typedef Matrix3<double>

双精度 3×3 矩阵

在文件 math_types.h62 行定义.

◆ Matrix4

template<typename T >
using vde::foundation::Matrix4 = typedef Eigen::Matrix<T, 4, 4>

4×4 矩阵模板

在文件 math_types.h38 行定义.

◆ Matrix4D

using vde::foundation::Matrix4D = typedef Matrix4<double>

双精度 4×4 矩阵

在文件 math_types.h64 行定义.

◆ Point2D

using vde::foundation::Point2D = typedef Point<double, 2>

双精度二维点

在文件 math_types.h41 行定义.

◆ Point2f

using vde::foundation::Point2f = typedef Point<float, 2>

单精度二维点

在文件 math_types.h45 行定义.

◆ Point3D

using vde::foundation::Point3D = typedef Point<double, 3>

双精度三维点

在文件 math_types.h43 行定义.

◆ Point3f

using vde::foundation::Point3f = typedef Point<float, 3>

单精度三维点

在文件 math_types.h47 行定义.

◆ Point4D

using vde::foundation::Point4D = typedef Eigen::Matrix<double, 4, 1>

双精度齐次四维点(用于仿射变换)

在文件 math_types.h50 行定义.

◆ Vector2D

using vde::foundation::Vector2D = typedef Vector<double, 2>

双精度二维向量

在文件 math_types.h53 行定义.

◆ Vector2f

using vde::foundation::Vector2f = typedef Vector<float, 2>

单精度二维向量

在文件 math_types.h57 行定义.

◆ Vector3D

using vde::foundation::Vector3D = typedef Vector<double, 3>

双精度三维向量

在文件 math_types.h55 行定义.

◆ Vector3f

using vde::foundation::Vector3f = typedef Vector<float, 3>

单精度三维向量

在文件 math_types.h59 行定义.

变量说明

◆ VDE_FORMAT_VERSION

constexpr uint32_t vde::foundation::VDE_FORMAT_VERSION = 1
constexpr

VDE 二进制格式当前版本号

用于向前兼容:读取时检查版本号,若不一致则拒绝或执行迁移。

在文件 serializer.h116 行定义.

◆ VDE_MAGIC

constexpr uint64_t vde::foundation::VDE_MAGIC = 0x56444547454F4D00ULL
constexpr

VDE 二进制文件魔数:"VDEGEOM\0"

用于识别 VDE 二进制网格文件。

在文件 serializer.h109 行定义.