This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Trimmed Spline Surfaces with
Accurate Boundary Control

Florian Martin and Ulrich Reif
(January 16, 2025)
Abstract

We introduce trimmed NURBS surfaces with accurate boundary control, briefly called ABC-surfaces, as a solution to the notorious problem of constructing watertight or smooth (G1G^{1} and G2)G^{2}) multi-patch surfaces within the function range of standard CAD/CAM systems and the associated file exchange formats. Our construction is based on the appropriate blend of a base surface, which traces out the intended global shape, and a series of reparametrized ribbons, which dominate the shape near the boundary.

1 Introduction

Trimmed NURBS surfaces are the standard for industrial surface modeling, today. This class of surfaces combines computational efficiency, geometric flexibility, and ease of use for the designer. All current CAD/CAM systems and various file exchange formats support this–and typically only this–method. While the advantages of trimmed NURBS are undisputed, there is one severe and persistent shortcoming that has not found a commonly accepted solution in decades: multi-patch arrangements of trimmed NURBS surfaces are typically discontinuous along common boundary curves of neighboring pieces. The problem is the following: Given a tensor product spline surface 𝐬:23\mathbf{s}:\mathbb{R}^{2}\to\mathbb{R}^{3}, current CAD systems provide two ways of representing the boundaries of a trimmed NURBS surface. Either one can use a planar spline curve γ:2\gamma:\mathbb{R}\to\mathbb{R}^{2} to bound the domain or one can use a spatial spline curve 𝐜:3\mathbf{c}:\mathbb{R}\to\mathbb{R}^{3} to bound the trace. The first variant leads to the boundary curve 𝐬γ\mathbf{s}\circ\gamma in three-space. This is a spline curve, again, but typically, it has high degree and many knots, stemming not only from the breaks of γ\gamma but also from all points where the trace of γ\gamma intersects a knot line of 𝐬\mathbf{s}. The resulting knot structure is uneven and hardly predictable111 Basically, the only case which does not lead to exploding complexity is the special situation where γ\gamma parametrizes a straight line parallel to one of the coordinate axes.. This fact makes it virtually impossible to match 𝐬γ\mathbf{s}\circ\gamma with any other surface boundary at reasonable expense. The second variant is equally discouraging. It seems to be impossible to find a surface 𝐬\mathbf{s} and a curve 𝐜\mathbf{c} such that the trace of 𝐬\mathbf{s} contains the trace of 𝐜\mathbf{c} exactly. The makeshift for this problem is to accept disjoint traces, and to project 𝐜\mathbf{c} onto 𝐬\mathbf{s} in order to determine the actual trimming curve. In general, however, this curve is no longer a spline and again not suitable for a watertight match with a neighboring patch.

To avoid the described problem, one can try to find arrangements of patches for the desired shape which do without trimming. This approach leads to methods like geometric continuity [Pet02], singular parametrization [Rei97], or subdivision [PR08], and also to a variety of constructions for nn-sided patches [PGVACN06, VSK16]. As a matter of fact, none of these concepts has found widespread acceptance in industrial CAD/CAM applications. It may be speculated that a certain perseverance of designers and executives is responsible for that situation. However, there is also a more solid explanation. The flow of parametric lines is most important for the design process222This observation is a blatant contradiction to the concepts of differentiable geometry, which rely on the independence of geometric properties of the chosen parametrization.. On one hand, the parametric lines should follow the shape characteristics (e.g., ridges or curvature lines) of the desired surface to obtain convincing results. On the other hand, a ‘natural’ arrangement of control meshes greatly favors the intuitive character of interactive modeling techniques. Thus, there is little flexibility in the choice of an adequate parametrization, and the corresponding patches must be trimmed at places where neighbors meet. To sum up, the advantages of a well-adapted parametrization seem to be rated higher than the notorious trouble with the trimming issue.

In CAD/CAM applications, the usual solution to the problem of nonmatching trimming curves is to simply accept little gaps in surface representations, and to make them so small that they do not impair the quality of the product to be manufactured. This allows modeling surfaces of adequate quality, but the price to pay is a certain inconvenience of the design process. The challenge is to design patches that are not only fair by themselves but join with neighbors within a typically very small margin333Customary tolerances for traditional production techniques have to be decreased even further for modern 3d printing systems with their incredible attention to detail.. Further, not only positions must be matched, but possibly also surface normals and curvature tensors in the sense of an approximate G1G^{1}- or G2G^{2}-continuity of the composite surface. For high quality surface design, as requested for instance in the automotive industry, the only way to achieve this is a time-consuming manual process of iterated boundary adaption and fairing.

Besides these practical considerations, there is another issue with the current state of technology. Surface models with disconnected pieces are not well suited for simulation purposes. No matter how small the gaps are, they appear insurmountable444Advanced methods like discontinuous Galerkin may offer a remedy. for heat conduction, transmission of forces and bending moments, or other physical processes. For this reason, multi-patch CAD models are usually converted to watertight meshes by elaborate procedures to prepare them for simulation. Volumetric modeling techniques as requested for Isogeometric Analysis with its potential to save this effort are currently studied. However, they seem to be quite far from a breakthrough for freeform surface design in industrial applications.

From the abundance of material on the design of surfaces of arbitrary topology in general and trimmed NURBS in particular, we want to briefly mention only two recent approaches. In [MH17], a procedure for converting an assembly of trimmed NURBS patches to a watertight model is suggested. It is based on local remodeling such that trimming curves become parametric lines. Without doubt, this is a reasonable practical procedure, even though some issues with a special kind of singularities appearing there (cf. [MR]) and also general fairness aspects are still waiting for a detailed assessment and analysis. Another line of research that has to be discussed in this context is documented in [VSVS20, VVSS20]. It is based on ideas similar those presented here, but there are also significant differences. Before we compare the methods, we briefly explain the basic principles of our approach.

Refer to caption
Refer to caption
Figure 1: Base 𝐛\mathbf{b} and ribbons 𝐫\mathbf{r}_{\ell} (left); ABC-surface 𝐚\mathbf{a} (right).

Let 𝐛\mathbf{b} be a spline surface, called base, and 𝐫1,,𝐫L\mathbf{r}_{1},\dots,\mathbf{r}_{L} be a sequence of other spline surfaces, called ribbons. Then we define the ABC-surface

𝐚:=w𝐛+=1Lw𝐫κw+=1Lw\mathbf{a}:=\frac{w\cdot\mathbf{b}+\sum_{\ell=1}^{L}w_{\ell}\cdot\mathbf{r}_{\ell}\circ\kappa_{\ell}}{w+\sum_{\ell=1}^{L}w_{\ell}}

with suitable reparametrizations κ\kappa_{\ell} and weight functions ww and ww_{\ell}. Figure 1 illustrates the setting. It is instructive, but not necessary, to think of 𝐛\mathbf{b} as a standard spline surface describing the overall shape to be designed. When trimmed, its boundaries are close to the desired behavior, but do not match exactly. The ribbons 𝐫\mathbf{r}_{\ell} are employed to adjust that deviation.

The domain Γ2\Gamma\subset\mathbb{R}^{2} of 𝐚\mathbf{a} is assumed to be bounded by LL smooth segments Γ1,,ΓL\Gamma_{1},\dots,\Gamma_{L} meeting at corners σ1,,σL\sigma_{1},\dots,\sigma_{L}. The base 𝐛\mathbf{b} describes the intended shape globally on Γ\Gamma, and each ribbon 𝐫\mathbf{r}_{\ell} describes that shape locally in a vicinity of the segment Γ\Gamma_{\ell} of the boundary. This is done in such a way that the spline curve 𝐜:=𝐫(,0)\mathbf{c}_{\ell}:=\mathbf{r}_{\ell}(\cdot,0) parametrizes the segment 𝐚(Γ)\mathbf{a}(\Gamma_{\ell}) of the boundary of the trace of 𝐚\mathbf{a}. The reparametrizations κ\kappa_{\ell} are used to reconcile the otherwise unrelated surface representations, and the weights are used for blending. When approaching the boundary, ww vanishes and makes the base disappear. Further, near the boundary segment Γj2\Gamma_{j}\subset\mathbb{R}^{2} corresponding to 𝐜j\mathbf{c}_{j} all weights ww_{\ell} except for wjw_{j} vanish so that also all ribbons but 𝐫j\mathbf{r}_{j} are faded out. Hence, this surface dominates the behavior of 𝐚\mathbf{a} near the boundary in a way that will be made precise below. The accurate boundary control of the surface 𝐚\mathbf{a} by means of ribbons explains the acronym ABC-surface.

The basic principle and some technical details of ABC-surfaces were first presented in [Rei]. Roughly at the same time and independent of our research, another group developed similar ideas [VVSS20], which were recently brought to our attention. The formal similarities are obvious, but there are also differences, and one of them is significant.

First, the weighted base w𝐛w\mathbf{b} does not appear in that form555It does appear in a similar form in [VSR12] for the special case of straight boundaries and polynomial ribbons. in [VVSS20]. Instead, a linear combination jbj𝐩j\sum_{j}b_{j}\mathbf{p}_{j} of control points 𝐩j3\mathbf{p}_{j}\in\mathbb{R}^{3} and B-splines bjb_{j} is used, where only B-splines with support completely contained in the domain of the surface are permitted so that there is no influence on the shape near the boundary. Accordingly, the term ww in the denominator is replaced by jbj\sum_{j}b_{j}. This can be considered a minor technical detail, but it also reveals a slightly different, though equally valid philosophy behind the construction. We think of the base as a relatively accurate description of the entire surface, and of the ribbons as small, local correctives, used only to adapt 𝐛\mathbf{b} to the desired boundary behavior. By contrast, the ribbons in [VVSS20] are the major building blocks for the shape to be modeled. The summands bj𝐩jb_{j}\mathbf{p}_{j}, if included at all, are only used for variations inside if the shape defined by the ribbons alone does not yet meet expectations.

Second, and this difference is much more important, the surfaces constructed in [VSVS20, VVSS20] are transfinite in the sense that they do not possess a closed-form representation by means of elementary functions. In particular, these surfaces are not piecewise polynomial or rational and thus cannot be stored in standard file formats, as requested in many applications. The point is that the curves γ\gamma_{\ell} bounding the domain Γ\Gamma are defined explicitly as splines. Once this is done, there is no way to continue the construction within the spline framework. For instance, it is in general impossible to find splines ww_{\ell} that vanish on all but one of these boundary curves666 The special case of straight boundaries, which admits rational constructions, was discussed in [VSR12, SVR14, VSK16, VSK17].. In [VSVS20, VVSS20], it is suggested to construct reparametrizations and weights as solutions of variational problems with the curves γ\gamma_{\ell} providing the boundary conditions. This requests a certain computational effort, but visually, the results appear to be excellent. By contrast, in our construction, the boundary curves γ\gamma_{\ell} are defined implicitly as zero levelsets of spline functions. That way, the problem described above disappears. It may be objected that explicit evaluation of the boundary of the domain is now much more expensive than it was before, but as a matter of fact, this is hardly ever requested in practice as long as the spatial boundary curves 𝐜\mathbf{c}_{\ell} are available.

The paper is organized as follows: In the next section, we introduce and analyze the basic principle for the construction of ABC-surfaces in a very general setting. Three theorems concerning the behavior of positions, normals, and curvature tensors at the boundary are provided. They establish the validity of our construction, but also that of the methods presented in the more application-oriented papers [SVR14, VSVS20, VVSS20]. In Section 3, we specialize the principle to the spline setting and describe in detail how to construct adequate reparametrizations and weights from given bases and ribbons. Section 4 addresses some important technical issues related to the limitations of current standard formats for file exchange with respect to trimming. Finally, in Section 5, we present a few examples of ABC-spline surfaces to demonstrate the potential of our method.

2 Basic principle

Throughout, boldface letters denote points and functions with values in 3\mathbb{R}^{3}, while greek letters denote points and functions with values in 2\mathbb{R}^{2}. Except for the surface 𝐚\mathbf{a} to be constructed, all functions appearing below are assumed to be sufficiently smooth. In particular, their derivatives mentioned anywhere (explicitly or implicitly through notions like normals or curvatures) are assumed to exist and to be continuous. Further, to avoid a discussion of degenerate cases, surfaces are always assumed to be immersed, i.e., the partial derivatives are linearly independent everywhere. The following definitions are crucial for the construction of ABC-surfaces:

Refer to caption
Refer to caption
Figure 2: Parametrizing function pp (left) and implicit representation qq (right).
Definition 2.1

The function p:2p:\mathbb{R}^{2}\to\mathbb{R} parametrizes the planar curve γ:[0,1]2\gamma:[0,1]\to\mathbb{R}^{2} if p(γ(u))=up(\gamma(u))=u for all u[0,1]u\in[0,1], see Figure 2 (left). The function q:2q:\mathbb{R}^{2}\to\mathbb{R} is an implicit representation of the planar curve γ\gamma if q(γ(u))=0q(\gamma(u))=0 for all u[0,1]u\in[0,1], see Figure 2 (right). The function κ:=[p,q]:22\kappa:=[p,q]:\mathbb{R}^{2}\to\mathbb{R}^{2} defines γ\gamma if there exists a unique regular curve γ:[0,1]2\gamma:[0,1]\to\mathbb{R}^{2} with implicit representation qq that is parametrized by pp.

Now, we describe the construction of a surface 𝐚\mathbf{a}, whose domain Γ2\Gamma\subset\mathbb{R}^{2} of definition is bounded by a sequence γ1,,γL\gamma_{1},\dots,\gamma_{L} of planar trimming curves γ:[0,1]2\gamma_{\ell}:[0,1]\to\mathbb{R}^{2}. When concatenated according to

γ1(1)=γ(0),\gamma_{\ell-1}(1)=\gamma_{\ell}(0), (1)

these curves form a closed loop without self-intersections. Here and below, the index \ell always runs from 11 through LL and is understood modulo LL. Let

σ:=γ(0)andΓ:={γ(u):0u<1},\sigma_{\ell}:=\gamma_{\ell}(0)\quad\text{and}\quad\Gamma_{\ell}:=\{\gamma_{\ell}(u):0\leq u<1\},

denote the corners and boundary segments of Γ\Gamma, respectively. Formally, the endpoint γ(1)\gamma_{\ell}(1) is missing in the definition of Γ\Gamma_{\ell} to obtain a disjoint union Γ=Γ\partial\Gamma=\bigcup_{\ell}\Gamma_{\ell} for the boundary of Γ\Gamma. Accordingly, for each boundary point βΓ\beta\in\partial\Gamma, there exist unique values \ell and u[0,1)u\in[0,1) such β=γ(u)\beta=\gamma_{\ell}(u).

Refer to caption
Refer to caption
Figure 3: Weights ww (left) and ww_{\ell} (right).

The building blocks for the construction of the surface 𝐚\mathbf{a} are the following:

  • Let κ:=[p,q]:22\kappa_{\ell}:=[p_{\ell},q_{\ell}]:\mathbb{R}^{2}\to\mathbb{R}^{2} be functions that define trimming curves γ\gamma_{\ell} in the sense of Definition 2.1 according to the setting described above.

  • Let w:2w:\mathbb{R}^{2}\to\mathbb{R} be an implicit representation of all trimming curves. That is,

    wγj=0,j=1,,L.w\circ\gamma_{j}=0,\quad j=1,\dots,L.

    Further, it is assumed that ww is positive on the interior of Γ\Gamma, see Figure 3 (left).

  • For each \ell, let w:22w_{\ell}:\mathbb{R}^{2}\to\mathbb{R}^{2} be an implicit representation of all trimming curves but γ\gamma_{\ell}. That is,

    wγj=0,j=1,,1,+1,,L.w_{\ell}\circ\gamma_{j}=0,\quad j=1,\dots,\ell-1,\ell+1,\dots,L.

    Further, it is assumed that ww_{\ell} is non-negative on Γ\Gamma, and that the only zeros of the sum w\sum_{\ell}w_{\ell} in Γ\Gamma are the corners, see Figure 3 (right).

  • Let 𝐛:23\mathbf{b}:\mathbb{R}^{2}\to\mathbb{R}^{3} be a surface, called the base. Unit normal and curvature tensor of 𝐛\mathbf{b} are denoted by 𝐧𝐛\mathbf{n}_{\mathbf{b}} and E𝐛E_{\mathbf{b}}, respectively.

  • For =1,,L\ell=1,\dots,L, let 𝐫:23\mathbf{r}_{\ell}:\mathbb{R}^{2}\to\mathbb{R}^{3} be surfaces, called ribbons. Unit normal and curvature tensor of 𝐫\mathbf{r}_{\ell} are denoted by 𝐧\mathbf{n}_{\ell} and EE_{\ell}, respectively.

With these ingredients, we construct a new surface that combines base and ribbons in a specific way:

Definition 2.2

The ABC-surface 𝐚:Γ3\mathbf{a}:\Gamma\to\mathbb{R}^{3} corresponding to the data 𝐛,𝐫,w,w,κ\mathbf{b},\mathbf{r}_{\ell},w,w_{\ell},\kappa_{\ell}, as defined above, is given by

𝐚:=w𝐛+=1Lw𝐫κw+=1Lw.\mathbf{a}:=\frac{w\cdot\mathbf{b}+\sum_{\ell=1}^{L}w_{\ell}\cdot\mathbf{r}_{\ell}\circ\kappa_{\ell}}{w+\sum_{\ell=1}^{L}w_{\ell}}. (2)

At corners, where the right hand side is not yet well defined, let

𝐚(σ):=𝐫(0,0),=1,,L.\mathbf{a}(\sigma_{\ell}):=\mathbf{r}_{\ell}(0,0),\quad\ell=1,\dots,L.

For the sake of simplicity, this definition is restricted to the case that the domain Γ\Gamma is simply connected and has always LL corners and boundary segments. Generalizations to multiply-connected domains and to disc-like surfaces bounded by one smooth, periodic curve will be discussed in a forthcoming report.

Two basic elements characterize the construction in the definition above. First, the functions κ\kappa_{\ell}, which define the trimming curves, are used as reparametrizations for the ribbons 𝐫\mathbf{r}_{\ell} to adapt them to the otherwise unrelated base 𝐛\mathbf{b}. Second, near the boundary segment Γj\Gamma_{j} the various implicit representations ww and ww_{\ell} are used as weights to fade out the influence of the base 𝐛\mathbf{b} and all ribbons 𝐫\mathbf{r}_{\ell} except for 𝐫j\mathbf{r}_{j}. The ribbon 𝐫j\mathbf{r}_{j} becomes dominant and determines the shape of 𝐚\mathbf{a}. Thus, the construction provides accurate boundary control for 𝐚\mathbf{a}, giving rise to the acronym ABC-surface. For a more detailed assessment of this raw idea, we need a further definition:

Definition 2.3

Let 𝐚\mathbf{a} be an ABC-surface according to Definition 2.2. It has contact order kk at the boundary segment Γj\Gamma_{j} if for any σ=γj(u)Γj\sigma=\gamma_{j}(u)\in\Gamma_{j} it holds

w¯(τ):=w(σ+τ)wj(σ+τ)=O(|τ|k+1)\bar{w}(\tau):=\frac{w(\sigma+\tau)}{w_{j}(\sigma+\tau)}=O(|\tau|^{k+1})

and, unless =j\ell=j or σ=σj\sigma=\sigma_{j} and =j1\ell=j-1, also

w¯(τ):=w(σ+τ)wj(σ+τ)=O(|τ|k+1).\bar{w}_{\ell}(\tau):=\frac{w_{\ell}(\sigma+\tau)}{w_{j}(\sigma+\tau)}=O(|\tau|^{k+1}).

Further introducing the notation

𝐫¯(τ):=𝐫(κ(σ+τ))\mathbf{\bar{r}}_{\ell}(\tau):=\mathbf{r}_{\ell}(\kappa_{\ell}(\sigma+\tau))

for the reparametrized ribbons, 𝐚\mathbf{a} can be written in the form

𝐚(σ+τ)=w¯(τ)𝐛(σ+τ)+w¯(τ)𝐫¯(τ)w¯(τ)+w¯(τ).\mathbf{a}(\sigma+\tau)=\frac{\bar{w}(\tau)\mathbf{b}(\sigma+\tau)+\sum_{\ell}\bar{w}_{\ell}(\tau)\mathbf{\bar{r}}_{\ell}(\tau)}{\bar{w}(\tau)+\sum_{\ell}\bar{w}_{\ell}(\tau)}. (3)

Here and below, the variable σ\sigma is always assumed to be fixed and mostly omitted in the notation for the sake of simplicity. Unit normal 𝐧¯\mathbf{\bar{n}}_{\ell} and curvature tensor E¯\bar{E}_{\ell} of 𝐫¯\mathbf{\bar{r}}_{\ell} coincide with the respective quantities of 𝐫\mathbf{r}_{\ell} since these surfaces are related by reparametrization,

𝐧¯(τ)=𝐧(κ(σ+τ)),E¯(τ)=E(κ(σ+τ)).\mathbf{\bar{n}}_{\ell}(\tau)=\mathbf{n}_{\ell}(\kappa_{\ell}(\sigma+\tau)),\quad\bar{E}_{\ell}(\tau)=E_{\ell}(\kappa_{\ell}(\sigma+\tau)). (4)

In the interior of Γ\Gamma, 𝐚\mathbf{a} is a blend of smooth surfaces and thus can be expected to be smooth, too. As always, exceptions may occur in case of an incidental loss of regularity. We will not discuss such degenerate cases, but focus on the behavior of 𝐚\mathbf{a} at the boundary. The following three theorems clarify the situation:

Theorem 2.4 (G0G^{0}-boundary)

Consider an ABC-surface 𝐚\mathbf{a} according to Definition 2.2 with contact order k=0k=0 at Γj\Gamma_{j}. If the ribbons are consistent according to

𝐫j1(1,0)=𝐫j(0,0),\mathbf{r}_{j-1}(1,0)=\mathbf{r}_{j}(0,0),

then 𝐚\mathbf{a} is continuous at Γj\Gamma_{j}, and it holds

𝐚(γj(u))=𝐫j(u,0),u[0,1].\mathbf{a}(\gamma_{j}(u))=\mathbf{r}_{j}(u,0),\quad u\in[0,1]. (5)

In the following proofs, it is convenient to use the abbreviations

h(τ):=11+w¯j1(τ)=wj(σj+τ)wj1(σj+τ)+wj(σj+τ),h(τ):=1h(τ),h(\tau):=\frac{1}{1+\bar{w}_{j-1}(\tau)}=\frac{w_{j}(\sigma_{j}+\tau)}{w_{j-1}(\sigma_{j}+\tau)+w_{j}(\sigma_{j}+\tau)},\quad h^{\prime}(\tau):=1-h(\tau),

to expand 𝐚\mathbf{a} in a vicinity of the corner σj\sigma_{j}. Since weights are assumed to be nonnegative, it is h(τ)[0,1]h(\tau)\in[0,1]. For contact order k=r1k=r-1, we obtain

𝐚(σj+τ)\displaystyle\mathbf{a}(\sigma_{j}+\tau) =𝐫¯j(τ)+w¯j1(τ)𝐫¯j1(τ)+O(|τ|r)1+w¯j1(τ)+O(|τ|r)\displaystyle=\frac{\mathbf{\bar{r}}_{j}(\tau)+\bar{w}_{j-1}(\tau)\mathbf{\bar{r}}_{j-1}(\tau)+O(|\tau|^{r})}{1+\bar{w}_{j-1}(\tau)+O(|\tau|^{r})}
=h(τ)𝐫¯j(τ)+h(τ)𝐫¯j1(τ)+O(|τ|r).\displaystyle=h(\tau)\mathbf{\bar{r}}_{j}(\tau)+h^{\prime}(\tau)\mathbf{\bar{r}}_{j-1}(\tau)+O(|\tau|^{r}). (6)

Proof. Consider the point σ=γj(u)Γj\sigma=\gamma_{j}(u)\in\Gamma_{j} and 𝐚\mathbf{a} in the form (3). We note that 𝐫¯j(τ)=𝐫j(u,0)+O(|τ|)\mathbf{\bar{r}}_{j}(\tau)=\mathbf{r}_{j}(u,0)+O(|\tau|) and, by consistency, 𝐫¯j1(τ)=𝐫j(0,0)+O(|τ|)\mathbf{\bar{r}}_{j-1}(\tau)=\mathbf{r}_{j}(0,0)+O(|\tau|). For u>0u>0, (5) follows from

𝐚(σ+τ)=𝐫¯j(τ)+O(|τ|)1+O(|τ|)=𝐫¯j(τ)+O(|τ|)=𝐫j(u,0)+O(|τ|).\mathbf{a}(\sigma+\tau)=\frac{\mathbf{\bar{r}}_{j}(\tau)+O(|\tau|)}{1+O(|\tau|)}=\mathbf{\bar{r}}_{j}(\tau)+O(|\tau|)=\mathbf{r}_{j}(u,0)+O(|\tau|).

For u=0u=0, (6) yields

𝐚(σ+τ)=h(τ)𝐫¯j(τ)+h(τ)𝐫¯j1(τ)+O(|τ|)=𝐫j(0,0)+O(|τ|).\mathbf{a}(\sigma+\tau)=h(\tau)\mathbf{\bar{r}}_{j}(\tau)+h^{\prime}(\tau)\mathbf{\bar{r}}_{j-1}(\tau)+O(|\tau|)=\mathbf{r}_{j}(0,0)+O(|\tau|).

\square

In the following, 1f,2f\partial_{1}f,\partial_{2}f denote the partial derivatives of the bivariate function f:2nf:\mathbb{R}^{2}\to\mathbb{R}^{n}, respectively. Df:=[1f2f]:2n×2Df:=[\partial_{1}f\ \partial_{2}f]:\mathbb{R}^{2}\to\mathbb{R}^{n\times 2} denotes the Jacobian.

Theorem 2.5 (G1G^{1}-boundary)

Consider an ABC-surface 𝐚\mathbf{a} according to Definition 2.2 with contact order k=1k=1 at Γj\Gamma_{j}. If the conditions of Theorem 2.4 are satisfied, if the unit normals of ribbons are consistent according to

𝐧j1(1,0)=𝐧j(0,0),\mathbf{n}_{j-1}(1,0)=\mathbf{n}_{j}(0,0),

and if the regularity condition

rank(tD𝐫¯j(0)+(1t)D𝐫¯j1(0))=2\operatorname{rank}\bigl{(}tD\mathbf{\bar{r}}_{j}(0)+(1-t)D\mathbf{\bar{r}}_{j-1}(0)\bigr{)}=2 (7)

is satisfied for all t[0,1]t\in[0,1], then 𝐚\mathbf{a} has a well-defined unit normal 𝐧𝐚\mathbf{n}_{\mathbf{a}} at Γj\Gamma_{j}, and it holds

𝐧𝐚(γj(u))=𝐧j(u,0),u[0,1].\mathbf{n}_{\mathbf{a}}(\gamma_{j}(u))=\mathbf{n}_{j}(u,0),\quad u\in[0,1]. (8)

Proof. Analogous to the previous proof, we obtain for u>0u>0

𝐚(σ+τ)=𝐫¯j(τ)+O(|τ|2)1+O(|τ|2)=𝐫¯j(τ)+O(|τ|2).\mathbf{a}(\sigma+\tau)=\frac{\mathbf{\bar{r}}_{j}(\tau)+O(|\tau|^{2})}{1+O(|\tau|^{2})}=\mathbf{\bar{r}}_{j}(\tau)+O(|\tau|^{2}).

Differing only by second order terms, the surfaces 𝐚(σ+)\mathbf{a}(\sigma+\cdot) and 𝐫¯\mathbf{\bar{r}} have the same normal at the origin. Hence, using (4), we obtain

𝐧𝐚(σ)=𝐧¯j(0)=𝐧j(u,0).\mathbf{n}_{\mathbf{a}}(\sigma)=\mathbf{\bar{n}}_{j}(0)=\mathbf{n}_{j}(u,0).

Below, we mostly omit not only notating σ\sigma, but also the argument τ\tau. For u=0u=0, corresponding to the case σ=σj\sigma=\sigma_{j}, (6) yields the derivative

D𝐚(σj+τ)=hD𝐫¯j+hD𝐫¯j1+(𝐫¯j𝐫¯j1)Dh+O(|τ|).D\mathbf{a}(\sigma_{j}+\tau)=hD\mathbf{\bar{r}}_{j}+h^{\prime}D\mathbf{\bar{r}}_{j-1}+(\mathbf{\bar{r}}_{j}-\mathbf{\bar{r}}_{j-1})Dh+O(|\tau|).

By consistency of ribbons, it is 𝐫¯j𝐫¯j1=O(|τ|)\mathbf{\bar{r}}_{j}-\mathbf{\bar{r}}_{j-1}=O(|\tau|) so that

D𝐚(σj+τ)=hD𝐫¯j(0)+hD𝐫¯j1(0)+O(|τ|).D\mathbf{a}(\sigma_{j}+\tau)=hD\mathbf{\bar{r}}_{j}(0)+h^{\prime}D\mathbf{\bar{r}}_{j-1}(0)+O(|\tau|).

Let us consider the leading matrix, defined by the first two summands. Since h[0,1]h\in[0,1], it is a convex combination of D𝐫¯j(0)D\mathbf{\bar{r}}_{j}(0) and D𝐫¯j1(0)D\mathbf{\bar{r}}_{j-1}(0). By the regularity condition, it has rank 22, and by consistency of normal vectors, both columns are perpendicular to 𝐧j(0,0)\mathbf{n}_{j}(0,0). Hence, normalizing the cross product of these columns and passing to the limit τ0\tau\to 0 yields 𝐧𝐚(σj)=𝐧j(0,0)\mathbf{n}_{\mathbf{a}}(\sigma_{j})=\mathbf{n}_{j}(0,0), as stated. Clearly, in general, the derivative D𝐚(σj+τ)D\mathbf{a}(\sigma_{j}+\tau) itself does not possess a limit for τ0\tau\to 0. \square

We note that the regularity condition (7) is purely technical and typically satisfied. It rules out a degenerate situation, which can occur in a similar way anywhere in any common surface modeling system for an unfortune choice of control data.

The crucial conditions for the existence of normal vectors at the boundary are algebraic (proper decay of the functions w¯\bar{w} and w¯\bar{w}_{\ell}) and geometric (consistency of ribbons and normals). Similar conditions appear in the following theorem concerning curvature tensors. However, and this may be unexpected, also a parametric condition (consistency of derivatives of ribbons) has to be met to guarantee existence of a curvature tensor at corners.

Theorem 2.6 (G2G^{2}-boundary)

Consider an ABC-surface 𝐚\mathbf{a} according to Definition 2.2 with contact order k=2k=2 at Γj\Gamma_{j}. If the conditions of theorems 2.4 and 2.5 are satisfied, if the curvature tensors of ribbons are consistent according to

Ej1(1,0)=Ej(0,0),E_{j-1}(1,0)=E_{j}(0,0),

and if the condition

D𝐫¯j1(0)=D𝐫¯j(0)D\mathbf{\bar{r}}_{j-1}(0)=D\mathbf{\bar{r}}_{j}(0) (9)

is satisfied, then 𝐚\mathbf{a} has a well-defined curvature tensor E𝐚E_{\mathbf{a}} at Γj\Gamma_{j}, and it holds

E𝐚(γj(u))=Ej(u,0),u[0,1].E_{\mathbf{a}}(\gamma_{j}(u))=E_{j}(u,0),\quad u\in[0,1]. (10)

Proof. As before, we obtain for u>0u>0

𝐚(σ+τ)=𝐫¯j(τ)+O(|τ|3)1+O(|τ|3)=𝐫¯j(τ)+O(|τ|3).\mathbf{a}(\sigma+\tau)=\frac{\mathbf{\bar{r}}_{j}(\tau)+O(|\tau|^{3})}{1+O(|\tau|^{3})}=\mathbf{\bar{r}}_{j}(\tau)+O(|\tau|^{3}).

Differing only by third order terms, the surfaces 𝐚(σ+)\mathbf{a}(\sigma+\cdot) and 𝐫¯\mathbf{\bar{r}} have the same curvature tensor at the origin. Hence, using (4), we obtain

E𝐚(σ)=Ej(0)=Ej(u,0).E_{\mathbf{a}}(\sigma)=E_{j}(0)=E_{j}(u,0).

Analogous to the previous proof, we obtain for u=0u=0, corresponding to the case σ=σj\sigma=\sigma_{j},

𝐚(σj+τ)=h𝐫¯j+h𝐫¯j1+O(|τ|3)\mathbf{a}(\sigma_{j}+\tau)=h\mathbf{\bar{r}}_{j}+h^{\prime}\mathbf{\bar{r}}_{j-1}+O(|\tau|^{3})

and, using (9),

D𝐚(σj+τ)=hD𝐫¯j(0)+hD𝐫¯j1(0)+O(|τ|)=D𝐫¯j(0)+O(|τ|).D\mathbf{a}(\sigma_{j}+\tau)=hD\mathbf{\bar{r}}_{j}(0)+h^{\prime}D\mathbf{\bar{r}}_{j-1}(0)+O(|\tau|)=D\mathbf{\bar{r}}_{j}(0)+O(|\tau|).

This time, the derivative has a limit at the corner,

D𝐚(σj)=D𝐫¯j(0).D\mathbf{a}(\sigma_{j})=D\mathbf{\bar{r}}_{j}(0). (11)

The second order partial derivatives are given by

μν𝐚(σj+τ)=\displaystyle\partial_{\mu\nu}\mathbf{a}(\sigma_{j}+\tau)= μνh(𝐫¯j𝐫¯j1)+μh(ν𝐫¯jν𝐫¯j1)+\displaystyle\partial_{\mu\nu}h(\mathbf{\bar{r}}_{j}-\mathbf{\bar{r}}_{j-1})+\partial_{\mu}h\,(\partial_{\nu}\mathbf{\bar{r}}_{j}-\partial_{\nu}\mathbf{\bar{r}}_{j-1})+
νh(μ𝐫¯jμ𝐫¯j1)+hμν𝐫¯j+hμν𝐫¯j1+O(|τ|)\displaystyle\partial_{\nu}h\,(\partial_{\mu}\mathbf{\bar{r}}_{j}-\partial_{\mu}\mathbf{\bar{r}}_{j-1})+h\partial_{\mu\nu}\mathbf{\bar{r}}_{j}+h^{\prime}\partial_{\mu\nu}\mathbf{\bar{r}}_{j-1}+O(|\tau|)
=\displaystyle= hμν𝐫¯j(0)+hμν𝐫¯j1(0)+O(|τ|),\displaystyle h\partial_{\mu\nu}\mathbf{\bar{r}}_{j}(0)+h^{\prime}\partial_{\mu\nu}\mathbf{\bar{r}}_{j-1}(0)+O(|\tau|),

where we used that 𝐫¯j1(0)=𝐫¯j(0)\mathbf{\bar{r}}_{j-1}(0)=\mathbf{\bar{r}}_{j}(0) and D𝐫¯j1(0)=D𝐫¯j(0)D\mathbf{\bar{r}}_{j-1}(0)=D\mathbf{\bar{r}}_{j}(0). Further, the curvature tensors of 𝐫¯j1\mathbf{\bar{r}}_{j-1} and 𝐫¯j\mathbf{\bar{r}}_{j} coincide at the origin, E¯j1(0)=E¯j(0)\bar{E}_{j-1}(0)=\bar{E}_{j}(0). This implies that also the second fundamental forms coincide,

B¯j1μν(0):=𝐧¯j1(0),μν𝐫¯j1(0)=𝐧¯j(0),μν𝐫¯j(0)=:B¯jμν(0).\bar{B}_{j-1}^{\mu\nu}(0):=\langle\mathbf{\bar{n}}_{j-1}(0),\partial_{\mu\nu}\mathbf{\bar{r}}_{j-1}(0)\rangle=\langle\mathbf{\bar{n}}_{j}(0),\partial_{\mu\nu}\mathbf{\bar{r}}_{j}(0)\rangle=:\bar{B}_{j}^{\mu\nu}(0).

The second fundamental form of 𝐚\mathbf{a} is

B𝐚μν(σj+τ):=𝐧𝐚(σj+τ),μν𝐚(σj+τ).B_{\mathbf{a}}^{\mu\nu}(\sigma_{j}+\tau):=\langle\mathbf{n}_{\mathbf{a}}(\sigma_{j}+\tau),\partial_{\mu\nu}\mathbf{a}(\sigma_{j}+\tau)\rangle.

By Theorem 2.5, the normal vector of 𝐚\mathbf{a} converges, i.e., 𝐧𝐚(σj+τ)=𝐧𝐚(σj)+O(|τ|)\mathbf{n}_{\mathbf{a}}(\sigma_{j}+\tau)=\mathbf{n}_{\mathbf{a}}(\sigma_{j})+O(|\tau|). Hence, we obtain

B𝐚μν(σj+τ)\displaystyle B_{\mathbf{a}}^{\mu\nu}(\sigma_{j}+\tau) =h𝐧𝐚(σj),μν𝐫¯j(0)+h𝐧𝐚(σj),μν𝐫¯j1(0)+O(|τ|)\displaystyle=h\langle\mathbf{n}_{\mathbf{a}}(\sigma_{j}),\partial_{\mu\nu}\mathbf{\bar{r}}_{j}(0)\rangle+h^{\prime}\langle\mathbf{n}_{\mathbf{a}}(\sigma_{j}),\partial_{\mu\nu}\mathbf{\bar{r}}_{j-1}(0)\rangle+O(|\tau|)
=hBjμν(0)+hBj1μν(0)+O(|τ|)=Bjμν(0)+O(|τ|)\displaystyle=hB_{j}^{\mu\nu}(0)+h^{\prime}B_{j-1}^{\mu\nu}(0)+O(|\tau|)=B_{j}^{\mu\nu}(0)+O(|\tau|)

and finally, using 𝐧𝐚(σj)=𝐧¯j(0)=𝐧¯j1(0)\mathbf{n}_{\mathbf{a}}(\sigma_{j})=\mathbf{\bar{n}}_{j}(0)=\mathbf{\bar{n}}_{j-1}(0),

B𝐚μν(σj)=Bjμν(0).B_{\mathbf{a}}^{\mu\nu}(\sigma_{j})=B_{j}^{\mu\nu}(0).

Together with (11) and (4), this implies coincidence of curvature tensors,

E𝐚(σj)=E¯j(0)=Ej(0,0),E_{\mathbf{a}}(\sigma_{j})=\bar{E}_{j}(0)=E_{j}(0,0),

and the proof is complete. \square

The proofs of the three theorems show that GkG^{k}-properties on the interior part of the boundary segments (0<u<1)(0<u<1) are easily achieved by requesting proper decay of the functions w¯\bar{w} and w¯\bar{w}_{\ell}. Consistency and regularity conditions are requested only to guarantee good behavior at the corners. Remarkably, condition (9) concerning consistency of the derivatives of reparametrized ribbons shows that the functions κ\kappa_{\ell} cannot be chosen independently of the ribbons 𝐫\mathbf{r}_{\ell}. More precisely, the interrelation

D𝐫¯j1(0)=D𝐫j1(1,0)Dκj1(σj)=D𝐫j(0,0)Dκj(σj)=D𝐫¯j(0)D\mathbf{\bar{r}}_{j-1}(0)=D\mathbf{r}_{j-1}(1,0)D\kappa_{j-1}(\sigma_{j})=D\mathbf{r}_{j}(0,0)D\kappa_{j}(\sigma_{j})=D\mathbf{\bar{r}}_{j}(0) (12)

must be observed. Assuming that the ribbons are given and the reparametrizations are still unknown, this equation yields a linear constraint on the pair Dκj1,DκjD\kappa_{j-1},D\kappa_{j} at the corner σj\sigma_{j}. Vice versa, if the reparametrizations are given, the space of admissible ribbons is restricted to a linear subspace.

The following example shows that this condition is in fact crucial. Let

𝐫¯j1(x,y)=[xyx2],𝐫¯j(x,y)=[2x2y4x2],(x,y)[0,1]2.\mathbf{\bar{r}}_{j-1}(x,y)=\begin{bmatrix}x\\ y\\ x^{2}\end{bmatrix},\quad\mathbf{\bar{r}}_{j}(x,y)=\begin{bmatrix}2x\\ 2y\\ 4x^{2}\end{bmatrix},\quad(x,y)\in[0,1]^{2}.

Near the origin, the traces of both surfaces coincide so that consistency of point, normal, and curvature tensor is guaranteed. However,

D𝐫¯j1(0,0)=[100100][200200]=D𝐫¯j(0,0).D\mathbf{\bar{r}}_{j-1}(0,0)=\begin{bmatrix}1&0\\ 0&1\\ 0&0\end{bmatrix}\neq\begin{bmatrix}2&0\\ 0&2\\ 0&0\end{bmatrix}=D\mathbf{\bar{r}}_{j}(0,0).

The weight functions wj1(x,y)=x3,wj(x,y)=y3w_{j-1}(x,y)=x^{3},w_{j}(x,y)=y^{3} have proper decay at the boundary curves γj1(u)=[u,0,0]\gamma_{j-1}(u)=[u,0,0] and γj(u)=[0,u,0]\gamma_{j}(u)=[0,u,0]. Assuming for simplicity that the base and all other ribbons vanish, we obtain

𝐚(x,y)=1x3+y3[x(x3+2y3)y(x3+2y3)x2(x3+4y3)].\mathbf{a}(x,y)=\frac{1}{x^{3}+y^{3}}\,\begin{bmatrix}x(x^{3}+2y^{3})\\ y(x^{3}+2y^{3})\\ x^{2}(x^{3}+4y^{3})\end{bmatrix}.

Skipping the technical details, we note that

lim(x,y)(0,0)𝐚(x,y)=𝐫¯j1(0,0)=𝐫¯j(0,0)=[000]\lim_{(x,y)\to(0,0)}\mathbf{a}(x,y)=\mathbf{\bar{r}}_{j-1}(0,0)=\mathbf{\bar{r}}_{j}(0,0)=\begin{bmatrix}0\\ 0\\ 0\end{bmatrix}

and

lim(x,y)(0,0)𝐧𝐚(x,y)=𝐧¯j1(0,0)=𝐧¯j(0,0)=[001].\lim_{(x,y)\to(0,0)}\mathbf{n}_{\mathbf{a}}(x,y)=\mathbf{\bar{n}}_{j-1}(0,0)=\mathbf{\bar{n}}_{j}(0,0)=\begin{bmatrix}0\\ 0\\ 1\end{bmatrix}.

However, the curvature tensor E𝐚E_{\mathbf{a}} is discontinuous at the origin. Figure 4 shows the surface 𝐚\mathbf{a} (left) and the Gaussian curvature K(rcosφ,rsinφ)K(r\cos\varphi,r\sin\varphi) (right) as a function of rr. The individual lines correspond to 3030 equally spaced angles φ\varphi in the interval [0,π/2][0,\pi/2]. For φ=0\varphi=0 and φ=π/2\varphi=\pi/2, corresponding to the trimming curves γj1\gamma_{j-1} and γj\gamma_{j}, it is limr0K(r,0)=limr=0K(0,r)=0\lim_{r\to 0}K(r,0)=\lim_{r=0}K(0,r)=0, as suggested by the cylindrical shape of 𝐫¯j1\mathbf{\bar{r}}_{j-1} and 𝐫¯j\mathbf{\bar{r}}_{j}. However, other angles yield non-zero limits.

Refer to caption
Refer to caption
Figure 4: Surface 𝐚(x,y)\mathbf{a}(x,y) obtained by blending inappropriately reparametrized ribbons (left) and its Gaussian curvature K(rcosφ,rsinφ)K(r\cos\varphi,r\sin\varphi) plottet over r(0,1]r\in(0,1] for 30 different angles φ[0,π/2]{\color[rgb]{0,0,.0}\varphi\in[0,\pi/2]} (right).

3 ABC-spline surfaces

In the previous section, the ABC-principle was introduced in great generality. Our main goal, however, is to find a special embodiment of the setup that is fully compatible with the predominant standard of industrial surface modeling: trimmed NURBS.

To this end, we assume that all building blocks of the ABC-surface 𝐚\mathbf{a} are tensor product NURBS. Even more, for the sake of simplicity, we consider only purely polynomial, i.e., non-rational splines. Further, it is practical (but not necessary) to use a common set of knot vectors for the base 𝐛\mathbf{b}, the weights w,ww,w_{\ell} and the reparametrizations κ\kappa_{\ell}; degrees may be different. By contrast, the knots of the ribbons 𝐫\mathbf{r}_{\ell} are completely independent. It is immediately clear that the concatenation, multiplication, summation and division of piecewise polynomial functions yields a piecewise rational function 𝐚\mathbf{a}. Denoting the coordinate degree of the bivariate spline ss by degs02\operatorname{deg}s\in\mathbb{N}_{0}^{2} and its total degree by |degs|0|\operatorname{deg}s|\in\mathbb{N}_{0}, we obtain

d\displaystyle d :=deg(w𝐛)=degw+deg𝐛\displaystyle:=\operatorname{deg}(w\mathbf{b})=\operatorname{deg}w+\operatorname{deg}\mathbf{b}
d\displaystyle d_{\ell} :=deg(w𝐫κ)=degw+|deg𝐫|degκ.\displaystyle:=\operatorname{deg}(w_{\ell}{\color[rgb]{0,0,.0}\mathbf{r}_{\ell}}\circ\kappa_{\ell})=\operatorname{deg}w_{\ell}+|\operatorname{deg}\mathbf{r}_{\ell}|\operatorname{deg}\kappa_{\ell}.

Together, the maximal degree of the rational pieces of 𝐚\mathbf{a} equals that of the corresponding numerators, and is given by

deg𝐚=max{d,d1,,dL},\operatorname{deg}\mathbf{a}=\max\{d,d_{1},\dots,d_{L}\}, (13)

where the maximum is taken component-wise. More specific results will be presented later on.

The crucial question that has to be addressed now concerns the construction of suitable splines w,ww,w_{\ell}, and κ\kappa_{\ell}. In recent works [VSVS20, VVSS20], reparametrizations for domains bounded by curves are obtained as solutions to variational problems with the given trimming curves γ\gamma_{\ell} as boundary conditions. It can be expected that this yields good visual results, but of course, there does not exist a closed-form solution, and much less a spline fulfilling the condition κ(γ(u))=[u,0]\kappa_{\ell}(\gamma(u))=[u,0]. Similar problems arise when seeking weights vanishing at the boundary or parts thereof.

The solution of the problem to find weights and reparametrizations compatible with the boundary is amazingly simple: There is no need to define the boundary curves γ\gamma_{\ell} explicitly. It suffices to define them implicitly by the functions κ\kappa_{\ell} according to Definition 2.1,

γ(u):={ξ2:κ(ξ)=[u,0]}.\gamma_{\ell}(u):=\{\xi\in\mathbb{R}^{2}:\kappa_{\ell}(\xi)=[u,0]\}.

This setting is justified by the fact that standard CAD systems and also standard file exchange formats like STEP or IGES allow trimming curves to be specified explicitly as a closed loop of spline curves in the parametric domain, or alternatively–and this is the option used here–as a closed loop of spline curves in 3\mathbb{R}^{3} bounding the trace of the given NURBS surface. By Theorem 2.4, the curves

[0,1]u𝐜(u):=𝐫(u,0)=𝐚(γ(u)),=1,,L,[0,1]\ni u\ \mapsto\ \mathbf{c}_{\ell}(u):=\mathbf{r}_{\ell}(u,0)=\mathbf{a}(\gamma_{\ell}(u)),\quad\ell=1,\dots,L,

can serve exactly that purpose. Actually, the planar trimming curves γ\gamma_{\ell} need not be computed at any processing step of ABC-spline surfaces as long as geometric trimming by spatial curves, as explaind in Section 4, is available.

Now, we elaborate on methods how to determine suitable reparametrizations κ\kappa_{\ell} and weights w,ww,w_{\ell} under the assumption that the base 𝐛\mathbf{b} and the ribbons 𝐫\mathbf{r}_{\ell} are given.

3.1 Reparametrization

In principle, the functions κ\kappa_{\ell} can be chosen quite arbitrarily. Basically, only the consistency condition (1) must be satisfied. This means that there exist points σ2\sigma_{\ell}\in\mathbb{R}^{2} such that

κ(σ)=[0,0],κ1(σ)=[1,0]\kappa_{\ell}(\sigma_{\ell})=[0,0],\quad\kappa_{\ell-1}(\sigma_{\ell})=[1,0]

for all \ell. If continuity of curvature tensors is requested, also condition (12) must be observed, i.e.,

D𝐫1(1,0)Dκ1(σ)=D𝐫(0,0)Dκ(σ).D\mathbf{r}_{\ell-1}(1,0)\cdot D\kappa_{\ell-1}(\sigma_{\ell})=D\mathbf{r}_{\ell}(0,0)\cdot D\kappa_{\ell}(\sigma_{\ell}). (14)

Further, to obtain fair surfaces, it is reasonable to request that κ\kappa_{\ell} reparametrizes 𝐫\mathbf{r}_{\ell} in such a way that it is close to the base,

𝐫κ𝐛.\mathbf{r}_{\ell}\circ\kappa_{\ell}\approx\mathbf{b}.

The simplest way to achieve this (and possibly other desirable properties) is as follows: First, for each \ell, we consider pairs of parameters σ,τ2\sigma_{\ell},\tau_{\ell}\in\mathbb{R}^{2}, characterized by

𝐫(τ)𝐛(σ).\mathbf{r}_{\ell}(\tau_{\ell})\approx\mathbf{b}(\sigma_{\ell}).

Collecting a sufficiently large, but finite number of them yields the set KK_{\ell}. Such pairs (σ,τ)K(\sigma_{\ell},\tau_{\ell})\in K_{\ell} can be found easily by requesting that the line connecting the points 𝐫(τ)\mathbf{r}_{\ell}(\tau_{\ell}) and 𝐛(σ)\mathbf{b}(\sigma_{\ell}) be perpendicular to one of the two surfaces. To address the special role of corners, the set KK_{\ell} must contain the τ\tau values τ0:=[0,0]\tau_{\ell}^{0}:=[0,0] and τ1:=[1,0]\tau_{\ell}^{1}:=[1,0]. The corresponding σ\sigma-values must be consistent in the sense that the corners

σ:=σ0=σ11\sigma_{\ell}:=\sigma_{\ell}^{0}=\sigma_{\ell-1}^{1}

are well-defined. At this and possibly other data points, the function κ\kappa_{\ell} should not only approximate but interpolate the prescribed values. More precisely, let KKK^{\prime}_{\ell}\subset K_{\ell} be the subsets of pairs intended for interpolation and K′′:=KKK^{\prime\prime}_{\ell}:=K_{\ell}\setminus K^{\prime}_{\ell} the remainders. In particular, the pairs (σ0,τ0)(\sigma_{\ell}^{0},\tau_{\ell}^{0}) and (σ1,τ1)(\sigma_{\ell}^{1},\tau_{\ell}^{1}) addressing the corners belong to KK_{\ell}^{\prime}. Now, the conditions to be satisfied by κ\kappa_{\ell} are

κ(σ)\displaystyle\kappa_{\ell}(\sigma_{\ell}) =τ,(σ,τ)K\displaystyle=\tau_{\ell},\quad(\sigma_{\ell},\tau_{\ell})\in K_{\ell}^{\prime}
κ(σ)\displaystyle\kappa_{\ell}(\sigma_{\ell}) τ,(σ,τ)K′′.\displaystyle\approx\tau_{\ell},\quad(\sigma_{\ell},\tau_{\ell})\in K_{\ell}^{\prime\prime}.

Standard techniques, including all kinds of least squares methods or smoothing splines can be used to select κ\kappa_{\ell} accordingly from a given space of splines. If the problem is overconstrained in the sense that no solution exists, the spline space must be enlarged or the conditions must be relaxed. Conversely, if the solution is not unique, the spline space must be reduced or more conditions must be specified.

The interpolation conditions κ(σ)=[0,0]\kappa_{\ell}(\sigma_{\ell})=[0,0] and κ1(σ)=[1,0]\kappa_{\ell-1}(\sigma_{\ell})=[1,0] for the corners yield

γ(0)=γl1(1)=σ,\gamma_{\ell}(0)=\gamma_{l-1}(1)=\sigma_{\ell},

as requested by (1). Still, condition (14) needs to be addressed. When needed, one determines matrices T3×2T_{\ell}\in\mathbb{R}^{3\times 2} such that

TD𝐛(σ),𝐧(0,0)tT=0,=1,,L.T_{\ell}\approx D\mathbf{b}(\sigma_{\ell}),\quad\mathbf{n}_{\ell}(0,0)^{\rm t}\cdot T_{\ell}=0,\quad\ell=1,\dots,L.

In particular, the columns of TT_{\ell} span the wanted tangent space at σ\sigma_{\ell}. Now, κ\kappa_{\ell} is determined as before, but such that is satisfies the additional conditions

D𝐫(0,0)Dκ(σ)\displaystyle D\mathbf{r}_{\ell}(0,0)\cdot D\kappa_{\ell}(\sigma_{\ell}) =T\displaystyle=T_{\ell}
D𝐫(1,0)Dκ(σ+1)\displaystyle D\mathbf{r}_{\ell}(1,0)\cdot D\kappa_{\ell}(\sigma_{\ell+1}) =T+1.\displaystyle=T_{\ell+1}.

As the chain rule shows, this is in accordance with 𝐫κ𝐛\mathbf{r}_{\ell}\circ\kappa_{\ell}\approx\mathbf{b}, and it also implies (14).

3.2 Weights

Once the reparametrizations κ=[p,q]\kappa_{\ell}=[p_{\ell},q_{\ell}] are known, also suitable weights ww and ww_{\ell} can be determined conveniently.

By definition, the second coordinate qq_{\ell} of κ\kappa_{\ell} vanishes at γ\gamma_{\ell}. Assuming that the ABC-surface 𝐚\mathbf{a} to be determined should have contact order k0k_{\ell}\geq 0 at the boundary segment Γ\Gamma_{\ell}, the simplest choice for ww is

w=q1r1qLrL,w=q_{1}^{r_{1}}\cdots q_{L}^{r_{L}}, (15)

where the exponents are r:=k+1r_{\ell}:=k_{\ell}+1. At this point, it has to be made sure that each factor qq_{\ell} is positive on ΓΓ\Gamma\setminus\Gamma_{\ell}. Additional zeros away from Γ\Gamma_{\ell} are not critical. Increasing some control points of B-splines vanishing at that boundary segment, these zeros can be removed without changing the crucial boundary behavior. However, zeros near the boundary may be persistent so that the whole construction fails. In particular, reentrant corners are likely to cause such a situation. This case requires a special treatment and will be discussed in a forthcoming report.

Omitting one factor yields possible weights

w=q1r1q1r1q+1r+1qLrL.w_{\ell}=q_{1}^{r_{1}}\cdots q_{\ell-1}^{r_{\ell-1}}q_{\ell+1}^{r_{\ell+1}}\cdots q_{L}^{r_{L}}.

Let us check the conditions concerning contact order given in Definition 2.3. For σΓj\sigma\in\Gamma_{j}, we obtain

w¯(τ)=w(σ+τ)wj(σ+τ)=qjrj(σ+τ)=O(|τ|rj)\bar{w}(\tau)=\frac{w(\sigma+\tau)}{w_{j}(\sigma+\tau)}=q_{j}^{r_{j}}(\sigma+\tau)=O(|\tau|^{r_{j}})

since qj(σ)=0q_{j}(\sigma)=0. Further,

w¯(τ)=w(σ+τ)wj(σ+τ)=qjrj(σ+τ)qr(σ+τ)=O(|τ|rj)\bar{w}_{\ell}(\tau)=\frac{w_{\ell}(\sigma+\tau)}{w_{j}(\sigma+\tau)}=\frac{q_{j}^{r_{j}}(\sigma+\tau)}{q_{\ell}^{r_{\ell}}(\sigma+\tau)}=O(|\tau|^{r_{j}})

unless the denominator vanishes at σ\sigma, and this is only possible if =j\ell=j or =j1\ell=j-1 and σ=σj\sigma=\sigma_{j}. Exactly these cases are excluded in the definition.

The weights suggested above have two drawbacks: First, the influence of each ribbon extends over the whole surface, which might be unwanted. Second, the polynomial degree of such weights is increasing with LL. If, for example, L=6L=6, degq=[3,3]\operatorname{deg}q_{\ell}=[3,3], and r=3r_{\ell}=3 for all \ell to achieve contact order k=2k=2 everywhere, then degw==1Lrdegq=[54,54]\operatorname{deg}w=\sum_{\ell=1}^{L}r_{\ell}\operatorname{deg}q_{\ell}=[54,54]. This might cause problems with efficiency of storage and speed of evaluation after converting the surface 𝐚\mathbf{a} from its procedural definition (2) to the usual form

𝐚=iωibi𝐩iiωibi\mathbf{a}=\frac{\sum_{i}\omega_{i}b_{i}\mathbf{p}_{i}}{\sum_{i}\omega_{i}b_{i}}

of a NURBS surface, i.e., the linear combination of control points 𝐩i\mathbf{p}_{i} by means of B-splines bib_{i} and (constant) weights ωi\omega_{i}. The latter is requested in particular for the export of 𝐚\mathbf{a} to standard file formats, as addressed in the next section. The following modification of weights away from the boundary of the domain Γ\Gamma solves both issues:

Refer to caption
Refer to caption
Figure 5: Boundary stripes (left) and univariate plateau generation with original control points \bullet, unchanged control points \oplus, constant control points \otimes, and optimized control points \circ (right).

Denote by

Σ:={σΓ:q(σ)h}\Sigma_{\ell}:=\{\sigma\in\Gamma:q_{\ell}(\sigma)\leq h_{\ell}\}

the boundary stripes of Γ\Gamma with width hh_{\ell}. The widths h>0h_{\ell}>0 are assumed to be chosen small enough to make sure that only boundary stripes of neighboring curves intersect, and that these intersections as well as the stripes themselves consist of a single connected piece, see Figure 5 (left). Now, we derive from qq_{\ell} a new spline q¯\bar{q}_{\ell} as follows: First, classify the indices in the B-spline representation q=iqibiq_{\ell}=\sum_{i}q_{\ell}^{i}b_{i} according to

I\displaystyle I_{\ell} :={i:q(σ)=0 for some σsuppbi}\displaystyle:=\{i:q_{\ell}(\sigma)=0\text{ for some }\sigma\in\operatorname{supp}b_{i}\}
J\displaystyle J_{\ell} :={i:q(σ)>h for some σsuppbi}.\displaystyle:=\{i:q_{\ell}(\sigma)>h_{\ell}\text{ for some }\sigma\in\operatorname{supp}b_{i}\}.

That is, B-splines bib_{i} affect the boundary if iIi\in I_{\ell}, and they affect the part beyond the boundary stripe if iJi\in J_{\ell}. Second, if the sets II_{\ell} and JJ_{\ell} are not disjoint, refine the B-spline representation of qq_{\ell} by knot insertion and repeat the first step. Third, set

q¯i:={qi if iIh if iJ.\bar{q}_{\ell}^{i}:=\begin{cases}q_{\ell}^{i}&\text{ if }i\in I_{\ell}\\ h_{\ell}&\text{ if }i\in J_{\ell}.\end{cases} (16)

Coefficients with indices neither in II_{\ell} nor in JJ_{\ell} are determined such that the resulting spline has reasonable shape, for instance by minimizing a standard fairness functional. Fourth, define the spline q¯:=iq¯ibi\bar{q}_{\ell}:=\sum_{i}\bar{q}_{\ell}^{i}b_{i}. By construction, q¯\bar{q}_{\ell} is an implicit representation of γ\gamma_{\ell}, but has a plateau with constant value hh_{\ell} beyond the boundary stripe Σ\Sigma_{\ell}. Figure 5 (right) illustrates the procedure exemplarily in the univariate case. Replacing (15) by

w=q¯1r1q¯LrL,w=\bar{q}_{1}^{r_{1}}\cdots\bar{q}_{L}^{r_{L}},

we obtain an implicit representation of Γ\partial\Gamma with plateau on the interior part of the domain that is not covered by a boundary stripe, see Figure 6 (left). By construction, the coordinate degree of ww is bounded by

degwmax(rdegq+r+1degq+1)\operatorname{deg}w\leq\max_{\ell}\bigl{(}r_{\ell}\operatorname{deg}q_{\ell}+r_{\ell+1}\operatorname{deg}q_{\ell+1}\bigr{)}

since at any given point σΓ\sigma\in\Gamma at most two factors are non-constant. Notably, the degree does not depend on the number LL of boundary segments. In the example above, we have now degq=[18,18]\operatorname{deg}q=[18,18]. This is still a relatively high degree, but much less than before, and can be considered manageable.

Refer to caption
Refer to caption
Figure 6: Weights ww (left) and ww_{\ell} (right) with plateau.

The weights ww_{\ell} may be modified in a similar spirit. We define the functions

q^:=q¯1q¯+1\hat{q}_{\ell}:=\bar{q}_{\ell-1}\bar{q}_{\ell+1}

and process them exactly like the functions qq_{\ell} above, but now replacing (16) by

q~i:={q^i if iI0 if iJ.\tilde{q}_{\ell}^{i}:=\begin{cases}\hat{q}_{\ell}^{i}&\text{ if }i\in I_{\ell}\\ 0&\text{ if }i\in J_{\ell}.\end{cases}

This way, we produce a function with a zero plateau beyond the boundary stripe. The desired weight is now simply given by

w:=q~r,w_{\ell}:=\tilde{q}_{\ell}^{r_{\ell}},

see Figure 6 (right). The degree

degw=rmax(degq1,degq+1)\operatorname{deg}w_{\ell}=r_{\ell}\max(\operatorname{deg}q_{\ell-1},\operatorname{deg}q_{\ell+1})

is again independent of LL.

Let us reconsider the degree of 𝐚\mathbf{a} for weights ww and ww_{\ell} with plateau, as defined above. For simplicity, we assume that deg𝐛=degκ=[n,n]\operatorname{deg}\mathbf{b}=\operatorname{deg}\kappa_{\ell}=[n,n] and deg𝐫=[n,m]\operatorname{deg}\mathbf{r}_{\ell}=[n,m], and that all contact orders are equal to k=r1k=r-1. Then, using (13),

deg𝐚=[n,n]max{2r+1,r+n+m}.\operatorname{deg}\mathbf{a}=[n,n]\cdot\max\{2r+1,r+n+m\}.

The coordinate degree of the ribbons is set to the unmatched pair [n,m][n,m] for the following reason: In the first direction, corresponding to the behavior along the boundary, full flexibility concerning the choice of knots and degrees is provided to model a large variety of shapes. By contrast, in the second direction, corresponding to the behavior transversal to the boundary, it is sufficient to deal with pure polynomials of low degree. For instance, choosing m=1m=1 allows the definition of the boundary curves 𝐫(u,0)\mathbf{r}_{\ell}(u,0) and the boundary normals 𝐧(u,0)\mathbf{n}_{\ell}(u,0) along Γ\Gamma_{\ell}. When also the curvature tensors E(u,0)E_{\ell}(u,0) shall be prescribed, it suffices to choose m=2m=2. The minimal configuration yielding a G1G^{1}-patch and contact order k=1k=1 requests n=2n=2 and m=1m=1, leading to deg𝐚=[10,10]\operatorname{deg}\mathbf{a}=[10,10]. For a G2G^{2}-patch and contact order k=2k=2, one chooses at least n=3n=3 and m=2m=2 to obtain deg𝐚=[24,24]\operatorname{deg}\mathbf{a}=[24,24].

Modeling with surfaces of such a high degree is commonly considered to be impractical. However, this is never requested. The geometric building blocks–base and ribbons–can be assumed to be splines of low degree, and their control points can be manipulated (manually or automatically) as usual. The conversion of the ABC-surface 𝐚\mathbf{a} to NURBS form

𝐚=iωibi𝐩iiwibi,\mathbf{a}=\frac{\sum_{i}\omega_{i}b_{i}\mathbf{p}_{i}}{{\color[rgb]{0,0,.0}\sum_{i}}w_{i}b_{i}},

as detailed in the next section, serves only the purpose to prepare it for file export according to industrial standards. It should be considered as a read-only representation, to be used for evaluation purposes. Never ever, the control points 𝐩i\mathbf{p}_{i} should be touched again after being derived from (2).

4 File export

As a matter of fact, data exchange between industrial CAD/CAM systems is limited to a few completely standardized file formats, like IGES or STEP. The only type of surfaces commonly available therein are trimmed NURBS. Other modeling paradigms, say based on box splines, exponential splines, or subdivision are typically not supported. For the trimming of a NURBS surface 𝐬:23\mathbf{s}:\mathbb{R}^{2}\to\mathbb{R}^{3}, the following three options can be assumed to be available:

Parametric trimming. A closed loop of planar spline curves γ1,,γL\gamma_{1},\dots,\gamma_{L} without self-intersections is specified. The compact set Γ2\Gamma\subset\mathbb{R}^{2} bounded by these curves is used as the domain of the trimmed surface 𝐬\mathbf{s}.

Geometric trimming. A closed loop of spatial spline curves 𝐜1,,𝐜L\mathbf{c}_{1},\dots,\mathbf{c}_{L} is specified. Since it cannot be assumed that the traces of these curves are contained in the surface, the corresponding planar curves are defined by γ(u):=α\gamma_{\ell}(u):=\alpha where α2\alpha\in\mathbb{R}^{2} is chosen such that 𝐬(α)𝐜(u){\color[rgb]{0,0,.0}\mathbf{s}}(\alpha)\approx\mathbf{c}_{\ell}(u) with the help of some projection method. These curves γ\gamma_{\ell} need not be splines by themselves, but are computed numerically. They are merely assumed to form a closed loop, which is bounding the domain Γ\Gamma.

Hybrid trimming. Some segments of the boundary are defined by planar spline curves, and the other ones by spatial spline curves. The planar curves together with the preimages of the projected spatial curves are assumed to form a closed loop, which is bounding the domain Γ\Gamma.

As we have seen, ABC-spline surfaces are piecewise rational. But nevertheless, in general, they cannot be represented as trimmed NURBS in the requested way. The point is that the summands 𝐫κ\mathbf{r}_{\ell}\circ\kappa_{\ell} may produce inner boundaries between rational segments that are not axis-aligned in the parameter domain and hence cannot be understood as knot lines. To solve this issue, we present a special construction of the reparametrizations κ\kappa_{\ell} that leads to a situation where 𝐚\mathbf{a} can be represented as the union of separate parts, each of which is a genuine trimmed NURBS surface with boundary segments given either geometrically by a 3d spline curve or parametrically by a 2d spline curve.

For a spline ss of degree nn with knot vector U=[u0,,uN]U=[u^{0},\dots,u^{N}], the natural domain of definition is the interval [un,uNn][u^{n},u^{N-n}]. We assume that ss can be evaluated on all of \mathbb{R} by simply prolonging the leftmost polynomial piece from [un,un+1][u^{n},u^{n+1}] to [,un+1][-\infty,u^{n+1}] and the rightmost piece from [uNn1,uNn][u^{N-n-1},u^{N-n}] to [uNn1,)[u^{N-n-1},\infty). Hence, true break points, where higher order derivatives are discontinuous, appear only at the inner knots un+1,,uNn1u^{n+1},\dots,u^{N-n-1}.

Denote the knot vectors of 𝐫\mathbf{r}_{\ell} by U,VU_{\ell},V_{\ell}. We start with considering the second vector VV_{\ell}. Critical points σ2\sigma\subset\mathbb{R}^{2} that are mapped to the knot line ×{vj}\mathbb{R}\times\{v_{\ell}^{j}\} for some inner knot vjVv_{\ell}^{j}\in V_{\ell} by the reparametrization κ=[p,q]\kappa_{\ell}=[p_{\ell},q_{\ell}] are characterized by

q(σ)=vj.q_{\ell}(\sigma)=v_{\ell}^{j}.

In general, neither the levelsets of qq_{\ell} nor their images under 𝐫\mathbf{r}_{\ell} are splines. Special constructions for qq_{\ell} to create such a situation are possible, but impractical. It is much easier and completely sufficient to request that VV_{\ell} does not possess any inner knots at all. For instance, we may assume V=[0,,0,1,,1]V_{\ell}=[0,\dots,0,1,\dots,1], what is just the knot vector for polynomials in Bézier form. We identified this setting already at the end of the preceding section as a legitimate choice. To sum up, ribbons that are pure polynomials in the second coordinate are able to carry information on location, unit normal, and curvature tensor along the boundary curve, and they do not have breaks in the second coordinate.

The treatment of the first variable is more involved since assuming also this dependence to be purely polynomial would unduly restrict the variety of shapes that can be modeled. Critical points σ2\sigma\subset\mathbb{R}^{2} that are mapped to the inner knot uiUu_{\ell}^{i}\in U_{\ell} by κ\kappa_{\ell} are characterized by

p(σ)=ui.p_{\ell}(\sigma)=u_{\ell}^{i}.

This time, it is appropriate to demand that the critical levelsets of pp_{\ell} corresponding to inner knots of UU_{\ell} are linear. More precisely, let

μi:={σΓ:p(σ)=ui and w(σ)>0}\mu_{\ell}^{i}:=\{\sigma\in\Gamma:p_{\ell}(\sigma)=u_{\ell}^{i}\text{ and }w_{\ell}(\sigma)>0\}

denote the relevant parts of the levelsets of pp_{\ell} corresponding to the knots uiu_{\ell}^{i}. In general, these curves are bent, see Figure 7 (left), but pp_{\ell} can be determined such that they become straight lines, see Figure 7 (right). One may proceed as follows:

Refer to caption
Refer to caption
Figure 7: Genral (left) and straight (right) levelsets μi\mu_{\ell}^{i}.

First, for each knot uiUu_{\ell}^{i}\in U_{\ell}, choose a direction δi2\delta_{\ell}^{i}\in\mathbb{R}^{2} such that

𝐫(ui,t)𝐛(γ(ui)+tδi)\mathbf{r}_{\ell}(u_{\ell}^{i},t)\approx\mathbf{b}(\gamma_{\ell}(u_{\ell}^{i})+t\delta_{\ell}^{i})

for arguments γ(ui)+tδi\gamma_{\ell}(u_{\ell}^{i})+t\delta_{\ell}^{i} within the boundary stripe Σ\Sigma_{\ell}. Denoting by D𝐛+:=(D𝐛TD𝐛)1D𝐛TD\mathbf{b}^{+}:=(D\mathbf{b}^{T}D\mathbf{b})^{-1}D\mathbf{b}^{T} the pseudo-inverse of the Jacobian D𝐛D\mathbf{b}, one may set in particular

δi:=D𝐛+(γ(ui))2𝐫(ui,0).\delta_{\ell}^{i}:=D\mathbf{b}^{+}(\gamma_{\ell}(u_{\ell}^{i}))\cdot\partial_{2}\mathbf{r}_{\ell}(u_{\ell}^{i},0).

Second, define the line segment

μi:={γi+tδi:t}Σ\mu_{\ell}^{i}:=\bigl{\{}\gamma_{\ell}^{i}+t\delta_{\ell}^{i}:t\in\mathbb{R}\bigr{\}}\cap\Sigma_{\ell}

with direction δi\delta_{\ell}^{i} within the boundary stripe Σ\Sigma_{\ell}. Third, choose sufficiently many pairs of points (σ,τ)(\sigma_{\ell},\tau_{\ell}) of the form

σ=γ(ui)+tδiμi,τ=(ui,t)\sigma_{\ell}=\gamma_{\ell}(u_{\ell}^{i})+t\delta_{\ell}^{i}\in\mu_{\ell}^{i},\quad\tau_{\ell}=(u_{\ell}^{i},t)

and add them to the set KK_{\ell}^{\prime} of data to be interpolated.

Using this setup, points σΓ\sigma\in\Gamma that are mapped to the inner knot uiu_{\ell}^{i} of 𝐫\mathbf{r}_{\ell} by pp_{\ell} either lie on the straight line μi\mu_{\ell}^{i} or are irrelevant since w(σ)=0w_{\ell}(\sigma)=0.

Assuming that the ribbons 𝐫\mathbf{r}_{\ell} are polynomials in the second variable and that the level sets μi\mu_{\ell}^{i} are straight, as described, we can partition the domain Γ\Gamma into an interior part Γ0\Gamma_{0} and boundary parts Γi\Gamma_{\ell}^{i} by a network of curves, consisting of three different types: First, there are the segments γi\gamma_{\ell}^{i} of the trimming curves γ\gamma_{\ell} corresponding to intervals between consecutive knots in UU_{\ell}. Second, there are the level sets μi\mu_{\ell}^{i}, and third, there are auxiliary spline curves αi\alpha_{\ell}^{i}, to be chosen at will, connecting the endpoints of the level sets. Figure 8 illustrates the setting. Restricting the ABC-surface 𝐚\mathbf{a} to the subdomains Γ0,Γi\Gamma_{0},\Gamma_{\ell}^{i} yields pieces 𝐚0,𝐚i\mathbf{a}_{0},\mathbf{a}_{\ell}^{i}, respectively, which are trimmed NURBS surfaces ready for filing with standard data formats. They do not have interior breaks aside from a regular knot grid, and their boundaries are formed by spatial spline curves 𝐚γi\mathbf{a}\circ\gamma_{\ell}^{i} and planar spline curves μi,αi\mu_{\ell}^{i},\alpha_{\ell}^{i}.

Refer to caption
Figure 8: Partition of the domain Γ\Gamma into pieces ready for file export.

5 Examples

The focus of this article is on theory, but still, skipping many technical details, we want to present three examples to illustrate the potential of our approach. They show in turn composite surfaces with G0,G1G^{0},G^{1}, and G2G^{2} contact according to theorems 2.4, 2.5, and 2.6, respectively. All surfaces, reparametrizations, and weights are bicubic tensor product splines; all weights are used in the version with plateau.

Refer to caption

Refer to captionXX

Refer to caption
Refer to caption
Figure 9: Two intersecting cylinders – paramatric lines (top left), ribbons near intersection curve (top right), isophotes (bottom left), and mean curvature shading (bottom right).

Figure 9 presents a typical example from solid modeling: two intersecting cylinders that trim each other. The first plot shows two ABC-surfaces 𝐚1,𝐚2\mathbf{a}^{1},\mathbf{a}^{2} together with a few parameter lines, which follow the given shapes in the natural way. The spline representations 𝐛1,𝐛2\mathbf{b}^{1},\mathbf{b}^{2} of the two original cylinders serve as bases for 𝐚1,𝐚2\mathbf{a}^{1},\mathbf{a}^{2}, respectively. The second plot shows the pair of ribbons 𝐫1,𝐫2\mathbf{r}^{1},\mathbf{r}^{2} used to model the region near the intersection curve. Both ribbons have 99 interior knots in longitudinal direction. Their parametrizations are adapted to the local situation and chosen such that they share a common curve 𝐜=𝐫1(,0)=𝐫2(,0)\mathbf{c}=\mathbf{r}^{1}(\cdot,0)=\mathbf{r}^{2}(\cdot,0). This curve approximates the exact intersection 𝐛1𝐛2\mathbf{b}^{1}\cap\mathbf{b}^{2} of the two original cylinders with high accuracy. The watertight connection of ribbons is easy to achieve by coinciding boundary control points since both ribbons are in Bézier form in transversal direction. Theorem 2.4 says that this property is inherited by the two ABC-surfaces, i.e., they also join seemlessly at 𝐜\mathbf{c}. The third plot shows the impeccable pattern of isophotes, while the fourth one is colored by mean curvature. Only here, one can see that the two surfaces 𝐚1,𝐚2\mathbf{a}^{1},\mathbf{a}^{2} slightly deviate from the perfect cylindrical shape of the original surfaces. This deviation could be made arbitrarily small by choosing finer knot sequences. However, as a matter of fact, it is impossible to do without any deviation since the exact intersection of the original cylinders cannot be represented by a spline curve–neither in geometry space nor in the parametric domain.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 10: Fender of a fictional car – whole composite surface (top left), zoom on cross section (top right), isophotes (bottom left), and mean curvature shading (bottom right).

Figure 10 shows the fender of a fictional car777The geometry shown here was kindly provided my Malcolm Sabin, who modeled a similar composite G2G^{2}-surface using a completely different, hitherto unpublished technique.. The whole geometry consists of a bigger, uniformly curved part and a bulged-out, annular area that can be viewed as part of the wheel case. While it is possible to model the object by a single spline surface, it is much more convenient and natural to assemble it from two pieces. The ring-shaped part is modelled by an untrimmed standard spline surface 𝐬\mathbf{s}. The other part is an ABC-surface 𝐚\mathbf{a}, whose ribbon along the junction has C1C^{1}-contact with 𝐬\mathbf{s}, which is easy to achieve. This implies coinciding normals along the common boundary, and hence, by Theorem 2.5, a G1G^{1} contact between 𝐚\mathbf{a} and 𝐬\mathbf{s}. The first plot shows the complete composite surface, while the second one features a zoom on a cross-section profile. The third and fourth plot show isophotes (which are continuos) and mean curvature (which is discontinuous), respectively.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 11: Filling of a triangular hole – Arrangement of standard patches surrounding the hole (top left), surrounding patches and ABC-filling with some parametric lines (top right), isophotes (bottom left), and mean curvature shading (bottom right).

Figure 11 presents a classical hole-filling problem. Several standard spline surfaces are surrounding a triangular region, and another surface is sought that closes the gap smoothly. Here, we show that this can be achieved by an ABC-surface with three ribbons, each joining C2C^{2} with the corresponding outer part. By Theorem 2.6, this guarantees a G2G^{2}-contact. The first plot shows the configuration defining the three-sided hole, and the second one the completed structure together with a few parameter lines. Isophotes and also the distribution of mean curvature, as shown by the third and fourth plot, indicate that the generated shape leaves little room for improvement.


Acknowledgement. We would like to thank Malcolm Sabin for fruitful discussions and comments.

References

  • [MH17] B. Marussig and Th.J.R. Hughes. A review of trimming in isogeometric analysis: Challenges, data exchange and simulation aspects. Archives of Computational Methods in Engineering, 25:1–69, 2017.
  • [MR] B. Marussig and U. Reif. Surface patches with rounded corners. In preparation.
  • [Pet02] J. Peters. Geometric continuity. In M.S. Kim G. Farin, J. Hoschek, editor, Handbook of Computer Aided Geometric Design, pages 193–227. 2002.
  • [PGVACN06] N. Pla-Garcia, M. Vigo-Anglada, and J. Cotrina-Navau. N-sided patches with B-spline boundaries. Computers and Graphics, 30:959–970, 2006.
  • [PR08] J. Peters and U. Reif. Subdivision surfaces, volume 3 of Series Geometry and Computing. 2008.
  • [Rei] U. Reif. System and method for defining trimmed spline surfaces with accurate boundary control. Patent application EP19192703.7.
  • [Rei97] U. Reif. A refinable space of smooth spline surfaces of arbitrary topological genus. Journal of Approximation Theory, 90:174–199, 1997.
  • [SVR14] P. Salvi, T. Várady, and A.P. Rockwood. Ribbon-based transfinite surfaces. Computer Aided Geometric Design, 31(9):613 – 630, 2014.
  • [VSK16] T. Várady, P. Salvi, and G. Karikó. A multi-sided Bézier patch with a simple control structure. Comput. Graph. Forum, 35:307–317, 2016.
  • [VSK17] T. Várady, P. Salvi, and I. Kovács. Enhancement of a multi-sided Bézier surface representation. Comput. Aided Geom. Des., 55:69–83, 2017.
  • [VSR12] T. Várady, P. Salvi, and A.P. Rockwood. Transfinite surface interpolation with interior control. Graph. Model., 74:311–320, 2012.
  • [VSVS20] T. Várady, P. Salvi, M. Vaitkus, and A. Sipos. Multi-sided Bézier surfaces over curved, multi-connected domains. Computer Aided Geometric Design, 78:101828, 2020.
  • [VVSS20] M. Vaitkus, T. Várady, P. Salvi, and A. Sipos. Multi-sided B-spline surfaces over curved, multi-connected domains, 2020. Unpublished manuscript.