I wondered if the “Match surface” command could be upgraded to apply G1 or G2 to the general shape of a surface, while preserving the flow of its control points. The current implementation with curvature match (G2) forces the 3rd row of control points to follow the direction of the 2nd row. However, in many situations this will destroy the ideal shape of a surface. For example, Alias could apply curvature match that only adjusts the control points of the matched surface only in the normal direction, while preserving the flow of its control points.
The image below shows 3 different ways to match a surface with curvature continuity:
The 1st example is the original surface with straight distribution of the control points. By using a “Keep edge” option the “Match surface” command would apply curvature match while preserving the structure (flow) of the entire surface except for the adjustment of the 2nd and 3rd rows in the normal direction.
The 2nd example uses a “Keep tangency” option that would affect the 2nd row of control points while keeping the 3rd row nearly identical to what it appeared in the original surface (again, with G2 affecting those rows only in the normal direction).
The 3rd example shows what Rhino usually does by changing the orientation of the 3rd row of control points, so that it moves inline with the 2nd row.
Rhino has a “Preserve isocurve direction” option that always forces the 3rd row of control points to move according to the 2nd row. While this is handy in certain situations, it can’t preserve the general flow of a surface.