Classes | Public Types | Static Public Member Functions
pcl::on_nurbs::ClosingBoundary Class Reference

Functions for finding the common boundary of adjacent NURBS patches. More...

#include <closing_boundary.h>

List of all members.

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 &params1, Eigen::Vector2d &params2, 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 &params1, Eigen::Vector2d &params2, 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 &params1, Eigen::Vector2d &params2, 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 &param_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

Detailed Description

Functions for finding the common boundary of adjacent NURBS patches.

Author:
Thomas Mörwald

Definition at line 53 of file closing_boundary.h.


Member Enumeration Documentation

Enumerator:
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.


Member Function Documentation

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.


The documentation for this class was generated from the following files:


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:44:31