Functions for finding the common boundary of adjacent NURBS patches. More...
#include <closing_boundary.h>
Classes | |
| struct | Parameter |
Public Types | |
| enum | Type { COMMON_BOUNDARY_POINT_MEAN, COMMON_BOUNDARY_POINT_TANGENTS, COMMON_BOUNDARY_POINT_PLANES, CLOSEST_POINTS_BOUNDARY, CLOSEST_POINTS_INTERIOR } |
Static Public Member Functions | |
| static Eigen::Vector3d | commonBoundaryPoint1 (ON_NurbsSurface &n1, ON_NurbsSurface &n2, Eigen::Vector2d ¶ms1, Eigen::Vector2d ¶ms2, const Eigen::Vector3d &start, unsigned nsteps, double &error, double accuracy) |
| calculate common boundary by iteratively calculating the mean of the closest points to the 'start' point on both of the NURBS. | |
| static Eigen::Vector3d | commonBoundaryPoint2 (ON_NurbsSurface &n1, ON_NurbsSurface &n2, Eigen::Vector2d ¶ms1, Eigen::Vector2d ¶ms2, const Eigen::Vector3d &start, unsigned nsteps, double &error, double accuracy) |
| calculate common boundary by iteratively calculating the intersections of the tangent of the closest points to the 'start' point. | |
| static Eigen::Vector3d | commonBoundaryPoint3 (ON_NurbsSurface &n1, ON_NurbsSurface &n2, Eigen::Vector2d ¶ms1, Eigen::Vector2d ¶ms2, const Eigen::Vector3d &start, unsigned nsteps, double &error, double accuracy) |
| calculate common boundary by iteratively calculating the intersection of the tangent planes at the closest points and the plane defined by the 'start' and the 2 closest points. | |
| static double | getLineDistance (const Eigen::Vector3d &P0, const Eigen::Vector3d &u, const Eigen::Vector3d &Q0, const Eigen::Vector3d &v, Eigen::Vector3d &P, Eigen::Vector3d &Q) |
| calculate the distance and end-points (P,Q) of two skew lines defined as L0 = P0 + t*u, L1 = Q0 + s*v | |
| static Eigen::Vector3d | intersectPlanes (const Eigen::Vector3d &N1, double d1, const Eigen::Vector3d &N2, double d2, const Eigen::Vector3d &N3, double d3) |
| calculate intersection point of three planes | |
| static void | optimizeBoundary (std::vector< ON_NurbsSurface > &nurbs_list, std::vector< NurbsDataSurface > &data_list, Parameter param) |
| close boundary sequentially (for global optimization, look up global_optimization.h). Common boundary points are computed and added to | |
| static void | sampleFromBoundary (ON_NurbsSurface *nurbs, vector_vec3d &point_list, vector_vec2d ¶m_list, unsigned samples) |
| sample points from nurbs surface boundary, uniform distributed | |
| static void | sampleRandom (ON_NurbsSurface *nurbs, vector_vec3d &point_list, unsigned samples) |
| sample points from nurbs surface patch, random distributed | |
| static void | sampleUniform (ON_NurbsSurface *nurbs, vector_vec3d &point_list, unsigned samples) |
| sample points from nurbs surface patch, uniform distributed | |
Functions for finding the common boundary of adjacent NURBS patches.
Definition at line 53 of file closing_boundary.h.
| COMMON_BOUNDARY_POINT_MEAN | |
| COMMON_BOUNDARY_POINT_TANGENTS | |
| COMMON_BOUNDARY_POINT_PLANES | |
| CLOSEST_POINTS_BOUNDARY | |
| CLOSEST_POINTS_INTERIOR |
Definition at line 56 of file closing_boundary.h.
| Eigen::Vector3d ClosingBoundary::commonBoundaryPoint1 | ( | ON_NurbsSurface & | n1, |
| ON_NurbsSurface & | n2, | ||
| Eigen::Vector2d & | params1, | ||
| Eigen::Vector2d & | params2, | ||
| const Eigen::Vector3d & | start, | ||
| unsigned | nsteps, | ||
| double & | error, | ||
| double | accuracy | ||
| ) | [static] |
calculate common boundary by iteratively calculating the mean of the closest points to the 'start' point on both of the NURBS.
Definition at line 73 of file closing_boundary.cpp.
| Eigen::Vector3d ClosingBoundary::commonBoundaryPoint2 | ( | ON_NurbsSurface & | n1, |
| ON_NurbsSurface & | n2, | ||
| Eigen::Vector2d & | params1, | ||
| Eigen::Vector2d & | params2, | ||
| const Eigen::Vector3d & | start, | ||
| unsigned | nsteps, | ||
| double & | error, | ||
| double | accuracy | ||
| ) | [static] |
calculate common boundary by iteratively calculating the intersections of the tangent of the closest points to the 'start' point.
Definition at line 112 of file closing_boundary.cpp.
| Eigen::Vector3d ClosingBoundary::commonBoundaryPoint3 | ( | ON_NurbsSurface & | n1, |
| ON_NurbsSurface & | n2, | ||
| Eigen::Vector2d & | params1, | ||
| Eigen::Vector2d & | params2, | ||
| const Eigen::Vector3d & | start, | ||
| unsigned | nsteps, | ||
| double & | error, | ||
| double | accuracy | ||
| ) | [static] |
calculate common boundary by iteratively calculating the intersection of the tangent planes at the closest points and the plane defined by the 'start' and the 2 closest points.
Definition at line 173 of file closing_boundary.cpp.
| double ClosingBoundary::getLineDistance | ( | const Eigen::Vector3d & | P0, |
| const Eigen::Vector3d & | u, | ||
| const Eigen::Vector3d & | Q0, | ||
| const Eigen::Vector3d & | v, | ||
| Eigen::Vector3d & | P, | ||
| Eigen::Vector3d & | Q | ||
| ) | [static] |
calculate the distance and end-points (P,Q) of two skew lines defined as L0 = P0 + t*u, L1 = Q0 + s*v
Definition at line 44 of file closing_boundary.cpp.
| Eigen::Vector3d ClosingBoundary::intersectPlanes | ( | const Eigen::Vector3d & | N1, |
| double | d1, | ||
| const Eigen::Vector3d & | N2, | ||
| double | d2, | ||
| const Eigen::Vector3d & | N3, | ||
| double | d3 | ||
| ) | [static] |
calculate intersection point of three planes
Definition at line 66 of file closing_boundary.cpp.
| void ClosingBoundary::optimizeBoundary | ( | std::vector< ON_NurbsSurface > & | nurbs_list, |
| std::vector< NurbsDataSurface > & | data_list, | ||
| Parameter | param | ||
| ) | [static] |
close boundary sequentially (for global optimization, look up global_optimization.h). Common boundary points are computed and added to
Definition at line 330 of file closing_boundary.cpp.
| void ClosingBoundary::sampleFromBoundary | ( | ON_NurbsSurface * | nurbs, |
| vector_vec3d & | point_list, | ||
| vector_vec2d & | param_list, | ||
| unsigned | samples | ||
| ) | [static] |
sample points from nurbs surface boundary, uniform distributed
Definition at line 273 of file closing_boundary.cpp.
| void ClosingBoundary::sampleRandom | ( | ON_NurbsSurface * | nurbs, |
| vector_vec3d & | point_list, | ||
| unsigned | samples | ||
| ) | [static] |
sample points from nurbs surface patch, random distributed
Definition at line 251 of file closing_boundary.cpp.
| void ClosingBoundary::sampleUniform | ( | ON_NurbsSurface * | nurbs, |
| vector_vec3d & | point_list, | ||
| unsigned | samples | ||
| ) | [static] |
sample points from nurbs surface patch, uniform distributed
Definition at line 224 of file closing_boundary.cpp.