Author: desruisseaux
Date: Fri Jun 27 18:44:27 2014
New Revision: 1606180
URL: http://svn.apache.org/r1606180
Log:
Merge from the JDK8 branch.
Modified:
sis/branches/JDK7/ (props changed)
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform2D.java
Propchange: sis/branches/JDK7/
------------------------------------------------------------------------------
Merged /sis/branches/JDK8:r1606174-1606178
Modified:
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform2D.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform2D.java?rev=1606180&r1=1606179&r2=1606180&view=diff
==============================================================================
---
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform2D.java
[UTF-8] (original)
+++
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform2D.java
[UTF-8] Fri Jun 27 18:44:27 2014
@@ -380,6 +380,32 @@ public abstract class AbstractMathTransf
}
/**
+ * Gets the derivative of this transform at a point.
+ * The default implementation performs the following steps:
+ *
+ * <ul>
+ * <li>Copy the coordinate in a temporary array and pass that array
to the
+ * {@link #transform(double[], int, double[], int, boolean)}
method,
+ * with the {@code derivate} boolean argument set to {@code
true}.</li>
+ * <li>If the later method returned a non-null matrix, returns that
matrix.
+ * Otherwise throws {@link TransformException}.</li>
+ * </ul>
+ *
+ * @param point The coordinate point where to evaluate the derivative.
+ * @return The derivative at the specified point as a 2×2 matrix.
+ * @throws TransformException if the derivative can not be evaluated
at the specified point.
+ */
+ @Override
+ public Matrix derivative(final Point2D point) throws
TransformException {
+ final double[] coordinate = new double[] {point.getX(),
point.getY()};
+ final Matrix derivative = transform(coordinate, 0, null, 0, true);
+ if (derivative == null) {
+ throw new
TransformException(Errors.format(Errors.Keys.CanNotComputeDerivative));
+ }
+ return derivative;
+ }
+
+ /**
* Same work than {@link AbstractMathTransform2D#beforeFormat(List,
int, boolean)}
* but with the knowledge that this transform is an inverse transform.
*/