Hello all
The work on Feature is complete for now, and pending feedbacks. I will
post more on features in two weeks.
The port of "MathTransform" implementations is under way. Those
implementations are in the
org.apache.sis.referencing.operation.transform package [1]. Most
implementation are package-privated, since the main public API is the
MathTransform interface [2] and knowledge of underlying implementation
is generally not needed.
MathTransform are used for coordinate conversions or transformations,
including map projections (not yet ported). They can:
* Transform a single point
* Transform efficiently an array of coordinates
* Transform a Java2D shape
* Compute the transform derivative at a location (for advanced users)
MathTransform are truly n-dimensional, but specialized implementations
for 1D and 2D cases are provided for performance or for
inter-operability with Java2D. In the 2D-case, SIS delegates to
java.awt.geom.AffineTransform when possible.
The implementations committed so far cover the foundation: conversions
using linear formulas (often known as "affine transforms" - see the
LinearTransform interface for more details), and MathTransform
concatenation in order to build a transformation chain.
Matrices are at the core of SIS MathTransform, because they allow very
efficient concatenations (a matrix multiplication). Matrices operations
are also efficiently handled by GPU, but I do not have knowledge in this
area. If anyone has GPU knowledge, it would be nice to look at what we
can delegate to the GPU...
Martin
[1]
https://builds.apache.org/job/sis-dev/javadoc/org/apache/sis/referencing/operation/transform/package-summary.html
[2]
http://www.geoapi.org/snapshot/pending/org/opengis/referencing/operation/MathTransform.html