A new version WOML modules "2011/06/15" was released today. The biggest change in this release is what hopefully is the last major turn in the multi stage development of curve handling of WOML features. The curve handling was changed in versions 2009/06/13, 2011/03/15 and unfortunately also in this latest release.
As of this version the only supported way to use spline curves is through the new woml:CubicBSplineType which tries to model the cubic B-spline curve as it's typically interpreted in computer science: a combination of cubic Bezier curves each having four control points. There is a CubicSplineType, BSplineType and BezierType in GML 3.2, but all these are problematic to too complex for WOML purposes:
- The gml:CubicSplineType defines a polynomial spline, but it's not composed of cubic Bezier curves.
- The gml:BSplineType can be a polynomial or rational curve as specified by ISO 19107:2003. The model unnecessarily complicated and allows for too much freedom for the users when considering the application developers: WOML should only support the basic cubic B-splines for which there is a built-in support in many graphics libraries (see for example the CubicCurve2D of the Java standard library).
- The gml:BezierType extends the gml:BSplineType by restricting it's properties. While this is technically possible, restriction of complex types is asking for trouble IMHO. For the application developers the end result is that while certain properties exist in handler objects generated from the XML Schema files, their is forbidden by the schema. When we really only need the four positions of the control points for each bezier segment, the complexity of gml:BezierType is very uncomfortable.
Detailed release notes:
List of all the issues resolved in these releases:
Please let us know if you have any issues with the new versions of the schemas, or would like additions or changes made in the following versions.