MbCoonsPatchSurface Coons Surface
Class MbCoonsPatchSurface is declared in file surf_coons_surface.h.
Bicubic Coons patch surface MbCoonsPatchSurface is constructed similarly to Coons surface MbCoverSurface and has additional conditions for the radius vector at the edges. Bicubic Coons patch surface MbCoonsPatchSurface is defined by four curves MbCurve3D * curve0, curve1, curve2, curve3, derivative curve0V of the surface radius vector along curve curve0 with respect to the second surface parameter, derivative curve1U of the surface radius vector along curve curve1 with respect to the first surface parameter, derivative curve2V of the surface radius vector along curve curve2 with respect to the second surface parameter, derivative curve3U of the surface radius vector along curve curve3 with respect to the first surface parameter, four corner points vertex[4], four derivatives with respect to the first surface parameter at the corner points vertexU[4], four derivatives with respect to the second surface parameter at the corner points vertexV[4], four mixed derivatives with respect to the first and second surface parameters at the corner points vertexUV[4], four pairs of boundary values of the parameters of the corresponding curves: t0min, t0max, t1min, t1max, t2min, t2max, t3min, t3max, a flag of periodicity of the surface in the first parameter uclosed, and a flag of periodicity of the surface in the second parameter vclosed. The surface also has some additional data that are not mandatory and are used to speed up the work of the surface methods.
The first parameter of the surface u takes values on the segment 0 ≤ u ≤ 1. The surface can be periodic in the first parameter if curves curve0, curve2, curveV0, curveV2 are periodic and curves curveU1 and curveU3 coincide.
The second parameter of the surface v takes values on the segment 0 ≤ v ≤ 1. The surface can be periodic in the second parameter if curves curve1 and curve3, curveU1, curveU3 are periodic and curves curveV0 and curveV2 coincide.
Adjacent curves curve0, curve1, curve2, curve3 must have intersection points or crossing points with each other. Parameters of the curves t0min, t0max, t1min, t1max, t2min, t2max, t3min, t3max are computed from the intersection or crossing points of the curves and define the working segments of the curves and points vertex[4], vertexU[4], vertexV[4], vertexUV[4]. The directions of the curves are not important for the surface, but the parameterization of pairs of curves curve0 and curveV0, curve2 and curveV2, curve1 and curveU1, curve3 and curveU3 must coincide.
In method PointOn( double u, double v, MbCartPoint3D & s ) the radius vector of the surface s is described by a vector function given in the book “Geometric Modelling” by N. N. Golovanov. Bicubic Coons patch surface is constructed from precomputed data and is used to construct blends and patches with edge continuity conditions. Bicubic Coons patch surface is shown in Fig. 1.
Fig. 1
The shape of the surface depends on the shape of the curves and derivatives. If adjacent curves intersect at points vertex[4], the surface passes along segments of the curves: for u = 0 the surface passes along a segment of curve curve3, for v = 0 the surface passes along a segment of curve curve0, for u = 1 the surface passes along a segment of curve curve1, and for v = 1 the surface passes along a segment of curve curve2.