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

class  AABB
 轴对齐包围盒(AABB) 更多...
 
struct  ICPResult
 ICP(迭代最近点)配准结果 更多...
 
class  Line3D
 三维无限直线 更多...
 
class  Segment3D
 三维线段 更多...
 
class  Ray3D
 三维射线 更多...
 
class  Plane
 三维平面 更多...
 
class  Polygon2D
 二维平面多边形 更多...
 
class  Triangle
 三维三角形 更多...
 
struct  VoronoiCell
 Voronoi 单元格 更多...
 

类型定义

using AABB3D = AABB< double >
 双精度三维包围盒 更多...
 
using AABB3f = AABB< float >
 单精度三维包围盒 更多...
 
using Line3Dd = Line3D< double >
 双精度三维直线 更多...
 
using Segment3Dd = Segment3D< double >
 双精度三维线段 更多...
 
using Ray3Dd = Ray3D< double >
 双精度三维射线 更多...
 
using Plane3D = Plane< double >
 双精度三维平面 更多...
 
template<typename T , size_t Dim>
using Point = foundation::Point< T, Dim >
 通用 N 维点类型(重新导出,便于 core 模块使用) 更多...
 
using Point2D = foundation::Point2D
 双精度二维点(重新导出) 更多...
 
using Point3D = foundation::Point3D
 双精度三维点(重新导出) 更多...
 
using Point2f = foundation::Point2f
 单精度二维点(重新导出) 更多...
 
using Point3f = foundation::Point3f
 单精度三维点(重新导出) 更多...
 
template<typename T , size_t Dim>
using Vector = foundation::Vector< T, Dim >
 通用 N 维向量类型(重新导出) 更多...
 
using Vector2D = foundation::Vector2D
 双精度二维向量(重新导出) 更多...
 
using Vector3D = foundation::Vector3D
 双精度三维向量(重新导出) 更多...
 
using Transform3D = Eigen::Transform< double, 3, Eigen::Affine >
 三维仿射变换类型 更多...
 
using Triangle3D = Triangle< double >
 双精度三维三角形 更多...
 
using Triangle3f = Triangle< float >
 单精度三维三角形 更多...
 

函数

std::vector< Point2Dconvex_hull_2d (const std::vector< Point2D > &points)
 二维凸包计算(Graham Scan 算法) 更多...
 
std::vector< std::array< Point3D, 3 > > convex_hull_3d (const std::vector< Point3D > &points)
 三维凸包计算(QuickHull 算法) 更多...
 
double distance (const Point3D &a, const Point3D &b)
 两点之间的欧氏距离 更多...
 
double distance (const Point3D &p, const Line3D< double > &line)
 点到直线的距离 更多...
 
double distance (const Point3D &p, const Segment3D< double > &seg)
 点到线段的距离 更多...
 
double distance (const Point3D &p, const Plane< double > &plane)
 点到平面的距离 更多...
 
double distance (const Point3D &p, const Triangle< double > &tri)
 点到三角形的距离 更多...
 
double distance (const Point3D &p, const AABB< double > &box)
 点到包围盒的距离 更多...
 
double distance (const Segment3D< double > &a, const Segment3D< double > &b)
 两条线段之间的最短距离 更多...
 
double distance (const Line3D< double > &a, const Line3D< double > &b)
 两条直线之间的最短距离 更多...
 
double distance (const AABB< double > &a, const AABB< double > &b)
 两个包围盒之间的最短距离 更多...
 
double distance (const Triangle< double > &a, const Triangle< double > &b)
 两个三角形之间的最短距离 更多...
 
Point3D closest_point (const Point3D &p, const Triangle< double > &tri)
 三角形上距给定点最近的点 更多...
 
Point3D closest_point (const Point3D &p, const Segment3D< double > &seg)
 线段上距给定点最近的点 更多...
 
Point3D closest_point (const Point3D &p, const AABB< double > &box)
 包围盒上距给定点最近的点 更多...
 
Point3D closest_point (const Point3D &p, const Plane< double > &plane)
 平面上距给定点最近的点(正交投影) 更多...
 
ICPResult icp_register (const std::vector< Point3D > &source, const std::vector< Point3D > &target, int max_iter=50, double tolerance=1e-6)
 迭代最近点(ICP)刚体点云配准 更多...
 
Transform3D translate (const Vector3D &v)
 创建平移变换 更多...
 
Transform3D translate (double x, double y, double z)
 创建平移变换(分量形式) 更多...
 
Transform3D rotate (const Vector3D &axis, double angle_rad)
 创建旋转变换(轴-角表示) 更多...
 
Transform3D rotate_x (double rad)
 绕 X 轴旋转 更多...
 
Transform3D rotate_y (double rad)
 绕 Y 轴旋转 更多...
 
Transform3D rotate_z (double rad)
 绕 Z 轴旋转 更多...
 
Transform3D scale (double sx, double sy, double sz)
 创建非均匀缩放变换 更多...
 
Transform3D scale (double s)
 创建均匀缩放变换 更多...
 
std::vector< VoronoiCellvoronoi_2d (const std::vector< Point2D > &points)
 二维 Voronoi 图生成(通过 Delaunay 对偶图) 更多...
 

类型定义说明

◆ AABB3D

using vde::core::AABB3D = typedef AABB<double>

双精度三维包围盒

在文件 aabb.h131 行定义.

◆ AABB3f

using vde::core::AABB3f = typedef AABB<float>

单精度三维包围盒

在文件 aabb.h133 行定义.

◆ Line3Dd

using vde::core::Line3Dd = typedef Line3D<double>

双精度三维直线

在文件 line.h137 行定义.

◆ Plane3D

using vde::core::Plane3D = typedef Plane<double>

双精度三维平面

在文件 plane.h94 行定义.

◆ Point

template<typename T , size_t Dim>
using vde::core::Point = typedef foundation::Point<T, Dim>

通用 N 维点类型(重新导出,便于 core 模块使用)

模板参数
T标量类型
Dim维度

在文件 point.h26 行定义.

◆ Point2D

双精度二维点(重新导出)

在文件 point.h29 行定义.

◆ Point2f

单精度二维点(重新导出)

在文件 point.h33 行定义.

◆ Point3D

双精度三维点(重新导出)

在文件 point.h31 行定义.

◆ Point3f

单精度三维点(重新导出)

在文件 point.h35 行定义.

◆ Ray3Dd

using vde::core::Ray3Dd = typedef Ray3D<double>

双精度三维射线

在文件 line.h141 行定义.

◆ Segment3Dd

using vde::core::Segment3Dd = typedef Segment3D<double>

双精度三维线段

在文件 line.h139 行定义.

◆ Triangle3D

using vde::core::Triangle3D = typedef Triangle<double>

双精度三维三角形

在文件 triangle.h105 行定义.

◆ Triangle3f

using vde::core::Triangle3f = typedef Triangle<float>

单精度三维三角形

在文件 triangle.h107 行定义.

◆ Vector

template<typename T , size_t Dim>
using vde::core::Vector = typedef foundation::Vector<T, Dim>

通用 N 维向量类型(重新导出)

模板参数
T标量类型
Dim维度

在文件 point.h44 行定义.

◆ Vector2D

双精度二维向量(重新导出)

在文件 point.h47 行定义.

◆ Vector3D

双精度三维向量(重新导出)

在文件 point.h49 行定义.