INTERFACE SPBezPolyPWFunction; (* Piecewise non-homogeneous polynomial functions on the sphere (Bezier rep) *) IMPORT SPPWFunction, SPDeCasteljau, SPBezierPWFunction; TYPE T = SPPWFunction.T; TYPE TriangleData <: PublicTriangleData; PublicTriangleData = SPPWFunction.TriangleData OBJECT deg: CARDINAL; (* Degree of polynomials in each triangle *) c0: REF ControlValues; (* Bezier coeficients for "deg" component. *) c1: REF ControlValues; (* Bezier coeficients for "deg-1" component. *) END; TYPE ControlValues = SPDeCasteljau.ControlValues; (* Bezier Control values for one triangle. The order is defined in SPHomoLabel.i3; for degree 6 it is C600, C510, C501, C420, C411, C402, ... , C006 *) PROCEDURE FromHomo(t: SPBezierPWFunction.T; deg: CARDINAL): T; (* Converts a homogeneous spherical polynomial spline "t", in Bezier form, to a non-homogenous spherical polynomial spline, also in Bezier form. The degree of "t" must be "deg" or "deg-1". *) TYPE Basis = ARRAY OF T; PROCEDURE Print(READONLY f: T); END SPBezPolyPWFunction.