Martin Desruisseaux created SIS-498:
---------------------------------------
Summary: Replace PassthroughTransform by CompoundTransform
Key: SIS-498
URL: https://issues.apache.org/jira/browse/SIS-498
Project: Spatial Information Systems
Issue Type: Task
Components: Referencing
Affects Versions: 1.0
Reporter: Martin Desruisseaux
{{PassthroughTransform}} could be replaced by a new implementation, {{CompoundTransform}},
which juxtapose an arbitrary amount of {{MathTransform}} components (in a way similar to {{CompoundCRS}}
which juxtapose an arbitrary amount of {{SingleCRS}} elements). {{PassthroughTransform}} can
be understood as a special case of {{CompoundTransform}} where leading or trailing ordinates
are "transformed" by identity transforms.
The use of {{CompoundTransform}} may simplify internal mechanic and improve performances compared
to {{PassthroughTransform}}. It may be necessary to decompose {{CompoundTransform}} into synthetic
concatenation of {{PassthroughTransform}} at WKT time if we want to format an OGC 01-009 compliant
WKT string, but we are already doing this kind of exercise for map projections. Decomposition
would look like:
{noformat}
CONCAT_MT[PASSTHROUGH_MT[…], PASSTHROUGH_MT[…]]
{noformat}
h2. Existing implementation
A first draft of {{CompoundTransform}} implementation is available in the {{org.apache.sis.internal.coverage}}
package. We should complete this implementation by resolving all "TODO" comments, remove the
restriction to {{MathTransform1D}} (while keeping the {{MathTransform1D}}-based implementation
as a specialization), add a {{MathTransform2D}} implementation (can happen only with a compound
of 2 {{MathTransform1D}}), make the implementations serializable, move them as package-private
classes in {{org.apache.sis.referencing.operation.transform}} package, and defines {{PassthroughTransform}}
as a subclass for above-cited special case.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
|