*2.1. Three-Dimensional (3D) Surface*

To generate a surface model from a point cloud, the reconstruction technique implemented in dedicated software conventionally uses: tessellation, 3D reconstruction using Delaunay triangulation or NURBS surfaces. This procedure may show poor accuracy near the edges or with sudden surface changes from normal. Furthermore, the representation of such surfaces could require numerous pieces and, consequently, greater computational capabilities. By decimating the triangulation, information could be lost on the geometry of the structure under examination. This is the reason why many commercial software products are not able to use mesh models, but use precise analytical models in which surfaces are represented mathematically [14]. In the following sections, the triangular irregular network (TIN) and NURB are described in detail.

#### *2.2. Triangular Irregular Network (TIN)*

TIN generation is a way to obtain surface reconstruction. Triangulation may be performed in two or in three dimensions, in accordance with the geometry of the input data. TIN utilizes the original sample points to create many non-overlapping triangles that cover the entire region according to a set of rules. The surface is described (approximately) with these triangles [15]. The computer graphics community tends to call this polygonal model "*mesh*". A mesh contains vertices, edges and faces and its easiest representation is a single face. For triangular meshes, an indexed face list consists of an array of vertices each having three coordinates, and an array of faces each having three indices in the vertex array [16]. The criterion for triangulation division is often used to construct the non-overlapping triangles based on the discrete sampling points. Delaunay is the most common triangulation algorithm.

### *2.3. Non-Uniform Rational B-Spline (NURBS)*

The NURBS are mathematical representations of 3D geometry that accurately define a generic geometric entity, such as simple or more complex shapes. The NURBS curve is mathematically defined by the following equation:

$$C(u) = \frac{\sum\_{i=0}^{n} N\_{i,p}(u) \ w\_i P\_i}{\sum\_{i=0}^{n} N\_{i,p}(u) \ w\_i} \tag{1}$$

 where the *wi* are the weights, the *Pi* are the control points, and the *Ni*,*<sup>p</sup>*(*u*) are the normalized B-Spline basis functions of degree *p* recursively as [17,18]:

$$\begin{aligned} N\_{i,0}(u) &= \begin{cases} 1 & \text{if } u\_i \le u \le u\_{i+1} \\ 0 & \text{otherwise} \end{cases} \\ N\_{i,p}(u) &= \frac{u-u\_i}{u\_{i+p}-u\_i} N\_{i,p-1}(u) + \frac{u\_{i+p+1}-u}{u\_{i+p+1}-u\_{i+1}} N\_{i+1,p-1}(u) \end{aligned} \tag{2}$$

where *ui* are the knots forming the knot vector *U* = *<sup>u</sup>*0; *u*0; ... ; *un*+*p*+<sup>1</sup>!.

Therefore, a NURBS curve is defined by four characteristics: the degree, the control vertices, the knot vectors and the weights. The degree of the NURBS (a positive integer) defines mathematically the piecewise polynomial blending function. The higher the degree of the polynomial, the more flexible the curve and surface. The control vertices are a row of points at least equal to (degree + 1). The knot vectors define how the polynomial pieces are blended together with the proper smoothness. Generally, there are two kinds of knot vector definition: uniform (i.e., with constant spacing between the knots) and non-uniform (i.e., with varying spacing between knot vectors).

A weight is associated with each control point (i.e., its ability to attract the curve). Excluding some exceptions, weights are positive numbers. When the control points of a curve all have the same weight (usually equal to 1), the curve is called "non-rational" and the NURBS curve is reduced to a B-spline curve; otherwise, it is called "rational." For this reason, the letter R of the acronym NURBS stands for "rational" and indicates that a NURBS curve can be rational.
