Servizio Comunitario di Informazione in materia di Ricerca e Sviluppo - CORDIS

Approximation of point clounds by piecewise implicit curves and surfaces

The approximate implicitization method, developed by the project partner at Johannes Kepler University `Linz', has been implemented in C++. The `Linz' method is characterized by the simultaneous approximation of sampled point data pi (xi, yi, zi) and estimated normals ni at these points.

The method produces an approximate implicit representation of the form:
f(x, y, z) = sum (C_i x B_i) with basis functions B_i and a certain coefficients C_i. This method is fully general, i.e., it can be applied to any space of functions. For practical applications, however, fast evaluation of basis functions is important. For this reason we implemented the algorithm for using only polynomial function, namely, Tetrahedral Bèzier patch, Tensor product Bèzier patches, and Tensor product B-splines.

We implemented a prototype, which is used as a stand-alone version for experimental purposes. It can be run from a Linux shell using the parameters:
Offset OffsetDistance Basis Degree Cellsize [nonstop] [debug]'.

The parameters have the following meaning:
The input file including the full patch.

Offset: an intger switch whether to approximate an offset surface, set to be 0 (no offset) 1 (offset one side), 2 (offset double sides).

OffsetDistance: the offset distance in the case of offset surface.
Basis: an integer set to be 1 (Tensor product B-splines), 2 (Tensor product Bèzier) or 3 (Tetrahedral Bèzier).

Degree: the degree of the basis.
[Nonstop]: an integer switch the user input from the keyboard during the running.
[Debug]: an integer control the debug messegs: 0 no, 1 part, 2 full.

We are planning to make the source code available as Open Source, from the project web page.

Reported by

Johannes Kepler University
Institute of Applied Geometry, Altenberger Str. 69
4040 Linz
See on map