Classes | Public Member Functions | Protected Member Functions
pcl::on_nurbs::FittingSurfaceTDM Class Reference

Fitting a B-Spline surface to 3D point-clouds using tangent-distance-minimization Based on paper: TODO. More...

#include <fitting_surface_tdm.h>

Inheritance diagram for pcl::on_nurbs::FittingSurfaceTDM:
Inheritance graph
[legend]

List of all members.

Classes

struct  ParameterTDM
 Parameters with TDM extensions for fitting. More...

Public Member Functions

virtual void assemble (ParameterTDM param=ParameterTDM())
 Assemble the system of equations for fitting.
 FittingSurfaceTDM (NurbsDataSurface *data, const ON_NurbsSurface &ns)
 Constructor initializing with the B-Spline surface given in argument 2.
 FittingSurfaceTDM (int order, NurbsDataSurface *data, Eigen::Vector3d z=Eigen::Vector3d(0.0, 0.0, 1.0))
 Constructor initializing B-Spline surface using initNurbsPCA(...).
virtual void solve (double damp=1.0)
 Solve system of equations using Eigen or UmfPack (can be defined in on_nurbs.cmake), and updates B-Spline surface if a solution can be obtained.
virtual void updateSurf (double damp)
 Update surface according to the current system of equations.

Protected Member Functions

virtual void addBoundaryRegularisation (int, int, int, double, unsigned &)
 Add minimization constraint: boundary smoothness by derivatives regularisation.
virtual void addCageBoundaryRegularisation (double weight, int side, unsigned &row)
 Add minimization constraint: boundary smoothness by control point regularisation.
virtual void addCageCornerRegularisation (double weight, unsigned &row)
 Add minimization constraint: corner smoothness by control point regularisation.
virtual void addCageInteriorRegularisation (double weight, unsigned &row)
 Add minimization constraint: interior smoothness by control point regularisation.
virtual void addInteriorRegularisation (int, int, int, double, unsigned &)
 Add minimization constraint: interior smoothness by derivatives regularisation.
virtual void addPointConstraint (const Eigen::Vector2d &params, const Eigen::Vector3d &point, const Eigen::Vector3d &normal, const Eigen::Vector3d &tu, const Eigen::Vector3d &tv, double tangent_weight, double weight, unsigned &row)
 Add minimization constraint: point-to-surface distance (point-distance-minimization).
virtual void assembleBoundary (double wBnd, double wTangent, unsigned &row)
 Assemble point-to-surface constraints for boundary points.
virtual void assembleInterior (double wInt, double wTangent, unsigned &row)
 Assemble point-to-surface constraints for interior points.

Detailed Description

Fitting a B-Spline surface to 3D point-clouds using tangent-distance-minimization Based on paper: TODO.

Author:
Thomas Mörwald

Definition at line 51 of file fitting_surface_tdm.h.


Constructor & Destructor Documentation

Constructor initializing with the B-Spline surface given in argument 2.

Parameters:
[in]datapointer to the 3D point-cloud data to be fit.
[in]nsB-Spline surface used for fitting.

Definition at line 45 of file fitting_surface_tdm.cpp.

FittingSurfaceTDM::FittingSurfaceTDM ( int  order,
NurbsDataSurface data,
Eigen::Vector3d  z = Eigen::Vector3d (0.0, 0.0, 1.0) 
)

Constructor initializing B-Spline surface using initNurbsPCA(...).

Parameters:
[in]orderthe polynomial order of the B-Spline surface.
[in]datapointer to the 2D point-cloud data to be fit.
[in]zvector defining front face of surface.

Definition at line 49 of file fitting_surface_tdm.cpp.


Member Function Documentation

virtual void pcl::on_nurbs::FittingSurfaceTDM::addBoundaryRegularisation ( int  order,
int  resU,
int  resV,
double  weight,
unsigned &  row 
) [inline, protected, virtual]

Add minimization constraint: boundary smoothness by derivatives regularisation.

Reimplemented from pcl::on_nurbs::FittingSurface.

Definition at line 130 of file fitting_surface_tdm.h.

void FittingSurfaceTDM::addCageBoundaryRegularisation ( double  weight,
int  side,
unsigned &  row 
) [protected, virtual]

Add minimization constraint: boundary smoothness by control point regularisation.

Reimplemented from pcl::on_nurbs::FittingSurface.

Definition at line 302 of file fitting_surface_tdm.cpp.

void FittingSurfaceTDM::addCageCornerRegularisation ( double  weight,
unsigned &  row 
) [protected, virtual]

Add minimization constraint: corner smoothness by control point regularisation.

Reimplemented from pcl::on_nurbs::FittingSurface.

Definition at line 364 of file fitting_surface_tdm.cpp.

void FittingSurfaceTDM::addCageInteriorRegularisation ( double  weight,
unsigned &  row 
) [protected, virtual]

Add minimization constraint: interior smoothness by control point regularisation.

Reimplemented from pcl::on_nurbs::FittingSurface.

Definition at line 267 of file fitting_surface_tdm.cpp.

virtual void pcl::on_nurbs::FittingSurfaceTDM::addInteriorRegularisation ( int  order,
int  resU,
int  resV,
double  weight,
unsigned &  row 
) [inline, protected, virtual]

Add minimization constraint: interior smoothness by derivatives regularisation.

Reimplemented from pcl::on_nurbs::FittingSurface.

Definition at line 126 of file fitting_surface_tdm.h.

void FittingSurfaceTDM::addPointConstraint ( const Eigen::Vector2d &  params,
const Eigen::Vector3d &  point,
const Eigen::Vector3d &  normal,
const Eigen::Vector3d &  tu,
const Eigen::Vector3d &  tv,
double  tangent_weight,
double  weight,
unsigned &  row 
) [protected, virtual]

Add minimization constraint: point-to-surface distance (point-distance-minimization).

Definition at line 226 of file fitting_surface_tdm.cpp.

void FittingSurfaceTDM::assemble ( ParameterTDM  param = ParameterTDM ()) [virtual]

Assemble the system of equations for fitting.

  • for large point-clouds this is time consuming.
  • should be done once before refinement to initialize the starting points for point inversion.

Definition at line 55 of file fitting_surface_tdm.cpp.

void FittingSurfaceTDM::assembleBoundary ( double  wBnd,
double  wTangent,
unsigned &  row 
) [protected, virtual]

Assemble point-to-surface constraints for boundary points.

Definition at line 184 of file fitting_surface_tdm.cpp.

void FittingSurfaceTDM::assembleInterior ( double  wInt,
double  wTangent,
unsigned &  row 
) [protected, virtual]

Assemble point-to-surface constraints for interior points.

Definition at line 139 of file fitting_surface_tdm.cpp.

void FittingSurfaceTDM::solve ( double  damp = 1.0) [virtual]

Solve system of equations using Eigen or UmfPack (can be defined in on_nurbs.cmake), and updates B-Spline surface if a solution can be obtained.

Reimplemented from pcl::on_nurbs::FittingSurface.

Definition at line 107 of file fitting_surface_tdm.cpp.

void FittingSurfaceTDM::updateSurf ( double  damp) [virtual]

Update surface according to the current system of equations.

Parameters:
[in]dampdamping factor from one iteration to the other.

Reimplemented from pcl::on_nurbs::FittingSurface.

Definition at line 114 of file fitting_surface_tdm.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:32