G1 Filling Multi-Sided Holes

We have recently implemented the multisided surface that
can connect all surrounding surfaces in G1. Moreover,
our surface can represent the inner part of the irregular
region fairly well.

The problem of smoothly filling multisided hole has been
addressed as an interesting problem for decades. Although many
approaches have been designed, there are still difficulties
in building desirable surfaces on irregular regions.

Our new functionality typically solved the following problem:

Given N-Bezier patches circularly (consecutive corners
should have the same surface normal), a single surface is built
that connect all of them in G1.

We adopted two existing methodologies: the S-Patch which
is in Bezier simplex form, and the Gregory representation.
We have chosen the good part from both of them,
improved the fundamental surface construction method
so that our surface is flexible to make G1, as well as
the surface itself is, overall, in quite natural shape.

We have incooperated this multisided surface into our GHL system.

Theoretically, our method can handle any number of sides,
and any degree for boundary curves.
Our current implementation can handle quadratic and cubic
Bezier curves as boundary curves. We have done fairly intensive
testing on 5, 6, and 7 sided surfaces,
while our current implementation can handle up to 10 sided surfaces.
There are no special restrictions on the surrounding Bezier patches.

It will need only little more effort to build more sided
surface, or, with higher degree boundary curves.

Now, the multisided surface can be converted to triangular mesh in
given tolerance; and it can also be approximated by tensor
product Bezier patches.

Our next major step will be focusing on building the rational
multisided surface.

Corner fillet with different rounding radii
is often required, which will leave multisided region with
circular and elliptical curves as boundaries.
We expect the rational multisided surface can represent
this kind of region well.

The following 5 pictures are produced from exactly the same data
(just viewed from different directions): there are 7
Bezier patches that form a hole, and a 7-sided
Gregory S-patch that fills the hole and connects all of them
in G1.