sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1713014 - in /sis/ip-review: ./ rev/06673/ rev/07843/ rev/09131/ rev/10796/ rev/13437/ rev/20874/ rev/31567/
Date Fri, 06 Nov 2015 18:38:05 GMT
Author: desruisseaux
Date: Fri Nov  6 18:38:05 2015
New Revision: 1713014

URL: http://svn.apache.org/viewvc?rev=1713014&view=rev
Log:
Added IP review for Molodensky transformation.

Added:
    sis/ip-review/MolodenskyTransform.xhtml   (with props)
    sis/ip-review/MolodenskyTransformTest.xhtml   (with props)
    sis/ip-review/rev/06673/
    sis/ip-review/rev/06673/HEADER.html   (with props)
    sis/ip-review/rev/06673/MolodenskyTransform.xhtml   (with props)
    sis/ip-review/rev/07843/MolodenskyTransform.xhtml   (with props)
    sis/ip-review/rev/09131/MolodenskyTransform.xhtml   (with props)
    sis/ip-review/rev/10796/MolodenskyTransform.xhtml   (with props)
    sis/ip-review/rev/13437/
    sis/ip-review/rev/13437/HEADER.html   (with props)
    sis/ip-review/rev/13437/MolodenskyTransform.xhtml   (with props)
    sis/ip-review/rev/20874/MolodenskyTransform.xhtml   (with props)
    sis/ip-review/rev/31567/
    sis/ip-review/rev/31567/MolodenskyTransformTest.xhtml   (with props)

Added: sis/ip-review/MolodenskyTransform.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/MolodenskyTransform.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/MolodenskyTransform.xhtml (added)
+++ sis/ip-review/MolodenskyTransform.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransform history</title>
+    <style type="text/css" media="all">
+      @import url("./reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransform history</h1>
+  <p>Click on the commit message for inspecting the <code>diff</code> and how the code has been rewritten.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn log -r31996:6673 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/MolodenskiTransform.java</code></blockquote>
+<table>
+  <tr>
+    <th>Rev.</th>
+    <th>Date</th>
+    <th>Author</th>
+    <th class="last">Message</th>
+  </tr>
+<tr><td class="rev">31567</td><td>2008-09-22</td><td>desruisseaux</td><td>Fixed GEOT-2046. Patch submitted by Tara Athan.</td></tr>
+<tr><td class="rev">30760</td><td>2008-06-18</td><td>desruisseaux</td><td>Upgrated from JSR-108 to JSR-275 (GEOT-1266). Some opportunist javadoc fixes and @Override annotations in the process.</td></tr>
+<tr><td class="rev">30641</td><td>2008-06-12</td><td>acuster</td><td>Copyright headers: lib/referencing, this time with feeling (and the el in Toolkit)</td></tr>
+<tr><td class="rev">30639</td><td>2008-06-12</td><td>acuster</td><td>Copyright headers: cleanup library/referencing</td></tr>
+<tr><td class="rev">30521</td><td>2008-06-05</td><td>acuster</td><td>Copyright: Update referencing headers</td></tr>
+<tr><td class="rev">30258</td><td>2008-05-08</td><td>acuster</td><td>Reshuffle the top level repo: drop uDig, move up trunk, tags, and branches.</td></tr>
+<tr><td class="rev">30257</td><td>2008-05-08</td><td>acuster</td><td>Move trunk/gt/ directory contents up to trunk/ and drop gt</td></tr>
+<tr><td class="rev">29852</td><td>2008-04-08</td><td>desruisseaux</td><td>The previous commit was about simplifying (in the sense of simplier MathTransform result, not simplier code) ConcatenatedTransform. This commit is about simplifying the ConcatenatedOperation which contains that ConcatenatedTransform. Related to GEOT-1419.</td></tr>
+<tr><td class="rev">28922</td><td>2008-01-24</td><td>acuster</td><td>Bump the (at)since version to 2.5 since WKTParser was cut from 2.4</td></tr>
+<tr><td class="rev">28846</td><td>2008-01-20</td><td>desruisseaux</td><td>Covariant return type for inverse() method in MathTransform1D and MathTransform2D. Also javadoc fixes and Java 5 type safety. Changed ViewType to an enum and initial implementation of GridCoverageViews (not yet connected to GridCoverage2D).</td></tr>
+<tr><td class="rev">28540</td><td>2007-12-29</td><td>acuster</td><td>Hide buttons which are not yet used</td></tr>
+<tr><td class="rev">28520</td><td>2007-12-27</td><td>desruisseaux</td><td>Added @Override annotation for safety.</td></tr>
+<tr><td class="rev">28081</td><td>2007-11-27</td><td>desruisseaux</td><td>Java 5 constructs: replaced some StringBuffer by StringBuilder in order to avoid unecessary synchronisation; rely on auto-boxing in order to give a chance to the JVM to reuse its cached values.</td></tr>
+<tr><td class="rev">27575</td><td>2007-10-22</td><td>desruisseaux</td><td>Converted Java source files from ISO-LATIN-1 encoding to UTF-8 (GEOT-1516).</td></tr>
+<tr><td class="rev">24384</td><td>2007-02-14</td><td>desruisseaux</td><td>GEOT-1160: First working implementation of AbstractAuthorityFactory.find(IdentifiedObject). This includes a package-privated AuthorityFactoryProxy class, together with many fix in the code base in order to get CRS.equalsIgnoreCase to work in the ProjectedCRS case.</td></tr>
+<tr><td class="rev">23632</td><td>2006-12-29</td><td>desruisseaux</td><td>GEOT-859: Refactored the URN syntax adapter for CRS factories. The adapter now apply to any factory. Some progress toward version management (but not yet there). NOTE: this new implementation forces axis order "as specified in the database", which is different from the original "URNEPSGAdapter" implementation which used (x,y) order. Various changes in many corners of "org.geotools.referencing.factory" as a side-effect of this work. Minor opportunist javadoc fixes in other modules.</td></tr>
+<tr><td class="rev">22327</td><td>2006-10-23</td><td>desruisseaux</td><td>GEOT-982: regroup 'module', 'plugin', 'ext' and 'unsupported' in a common directory.</td></tr>
+<tr><td class="rev">22315</td><td>2006-10-22</td><td>desruisseaux</td><td>Reorganisation of directory tree structure (GEOT-982) phase 1: moved 'src' to 'src/main/java'.</td></tr>
+<tr><td class="rev">20874</td><td>2006-08-07</td><td class="unav">jgarnett</td><td><a href="rev/20874/MolodenskyTransform.xhtml">ip review</a></td></tr>
+<tr><td class="rev">19769</td><td>2006-06-02</td><td>desruisseaux</td><td>Javadoc fix: replaced 'degrees' by 'decimal degrees' when relevant (GEOT-855)</td></tr>
+<tr><td class="rev">17672</td><td>2006-01-19</td><td>desruisseaux</td><td>Added @source tag.</td></tr>
+<tr><td class="rev">17660</td><td>2006-01-18</td><td>desruisseaux</td><td>Fixed SVN attributes, including the addition of URL attribute.</td></tr>
+<tr><td class="rev">16983</td><td>2005-11-25</td><td>desruisseaux</td><td>Replaced references to static fields and methods of CitationImpl.* by Citations.*</td></tr>
+<tr><td class="rev">15350</td><td>2005-08-16</td><td>desruisseaux</td><td>Merged the 'split-main' branch to trunk (GEOT-662)</td></tr>
+<tr><td class="rev">15256</td><td>2005-08-09</td><td>desruisseaux</td><td>Extraction of referencing module from main</td></tr>
+<tr><td class="rev">15255</td><td>2005-08-09</td><td>desruisseaux</td><td>Prepare branch for splitting main</td></tr>
+<tr><td class="rev">14834</td><td>2005-07-20</td><td>desruisseaux</td><td>Reorganized I18N resources</td></tr>
+<tr><td class="rev">14657</td><td>2005-07-01</td><td>desruisseaux</td><td>Ongoing work for the port of grid coverage operations from 'legacy' to 'main' (GEOT-413): ported SampleDimensionSelect</td></tr>
+<tr><td class="rev">14593</td><td>2005-06-23</td><td>desruisseaux</td><td>First JUnit test for 'createCoordinateOperation' (GEOT-589)</td></tr>
+<tr><td class="rev">14581</td><td>2005-06-22</td><td>desruisseaux</td><td>Implemented South-Orientated transverse mercator / more GEOT-589 work</td></tr>
+<tr><td class="rev">14570</td><td>2005-06-21</td><td>desruisseaux</td><td>Addition of geocentric affine transform as of GEOT-591</td></tr>
+<tr><td class="rev">14235</td><td>2005-06-10</td><td>desruisseaux</td><td>Replaced _PROPERTY suffix by _KEY as of GEOT-577</td></tr>
+<tr><td class="rev">13925</td><td>2005-05-30</td><td>desruisseaux</td><td>Added @since javadoc tag</td></tr>
+<tr><td class="rev">13922</td><td>2005-05-29</td><td>desruisseaux</td><td>Renaming of remainding GeoAPI implementations. Renaming is now finished.</td></tr>
+<tr><td class="rev">13907</td><td>2005-05-28</td><td>desruisseaux</td><td>More additions of 'Default' prefix in CRS package</td></tr>
+<tr><td class="rev">13853</td><td>2005-05-26</td><td>desruisseaux</td><td>Bug fix: arrays must be NamedIndentifier[], because it implements two interfaces</td></tr>
+<tr><td class="rev">13836</td><td>2005-05-26</td><td>desruisseaux</td><td>Added 'Default' suffix to some CRS implementations: partial work</td></tr>
+<tr><td class="rev">13773</td><td>2005-05-24</td><td>desruisseaux</td><td>Removed old metadata implementations (they are now renamed with 'Impl' suffix) / Use OGC citation instead of OPEN_GIS</td></tr>
+<tr><td class="rev">13752</td><td>2005-05-23</td><td>desruisseaux</td><td>Added the 'Impl' suffix to direct implementations of all metadata interfaces; deprecated the old implementations (not yet deleted).</td></tr>
+<tr><td class="rev">13453</td><td>2005-05-11</td><td>desruisseaux</td><td>Added an explanation about the purpose of the complicated assert expression</td></tr>
+<tr><td class="rev">13437</td><td>2005-05-11</td><td class="unav">jeichar</td><td><a href="rev/13437/MolodenskyTransform.xhtml">fixed so it will compile in eclipse</a></td></tr>
+<tr><td class="rev">13396</td><td>2005-05-07</td><td>desruisseaux</td><td>Implemented MolodenskiTransform.inverse(). Merged AbridgedMolodenskiTransform with MolodenskiTransform as a side effect.</td></tr>
+<tr><td class="rev">13387</td><td>2005-05-06</td><td>desruisseaux</td><td>Added Hints.LENIENT_DATUM_SHIFT and the necessary mechanic to honor it</td></tr>
+<tr><td class="rev">11144</td><td>2005-02-07</td><td>desruisseaux</td><td>Fixed GEOT-400 (create appropriate instance of Operation subclasses)</td></tr>
+<tr><td class="rev">11074</td><td>2005-02-03</td><td>desruisseaux</td><td>Revisited CRSFactory.createProjectedCRS(...) API</td></tr>
+<tr><td class="rev">11001</td><td>2005-02-02</td><td>desruisseaux</td><td>Fixed wrong encoding in main/src</td></tr>
+<tr><td class="rev">10796</td><td>2005-01-28</td><td class="unav">dzwiers</td><td><a href="rev/10796/MolodenskyTransform.xhtml">imports cleaned</a></td></tr>
+<tr><td class="rev">10469</td><td>2005-01-11</td><td>desruisseaux</td><td>Replaced calls to 'getDim[Source|Target]' by 'get[Source|Target]Dimensions</td></tr>
+<tr><td class="rev">10228</td><td>2005-01-04</td><td>desruisseaux</td><td>Renamed 'getDimSource' as 'getSourceDimension'</td></tr>
+<tr><td class="rev">9266</td><td>2004-11-23</td><td>desruisseaux</td><td>Last WKT tuning; parsing and formatting should now be functional</td></tr>
+<tr><td class="rev">9131</td><td>2004-11-16</td><td class="unav">rschulz</td><td><a href="rev/09131/MolodenskyTransform.xhtml">updated parameter and math transform aliases (GEOT-337)</a></td></tr>
+<tr><td class="rev">9118</td><td>2004-11-14</td><td>desruisseaux</td><td>Mercator projection port completed (but untested) as a use case for other projection ports</td></tr>
+<tr><td class="rev">9104</td><td>2004-11-12</td><td>desruisseaux</td><td>First prototype of a MapProjection implementation</td></tr>
+<tr><td class="rev">9092</td><td>2004-11-11</td><td>desruisseaux</td><td>Slight modification in the protected API for handling parameters</td></tr>
+<tr><td class="rev">8726</td><td>2004-10-21</td><td>desruisseaux</td><td>Various bug fixes in parameter handling</td></tr>
+<tr><td class="rev">7843</td><td>2004-09-08</td><td class="unav">jgarnett</td><td><a href="rev/07843/MolodenskyTransform.xhtml">First round of resync with geoapi</a></td></tr>
+<tr><td class="rev">7707</td><td>2004-08-31</td><td class="unav">jgarnett</td><td><a href="rev/07843/MolodenskyTransform.xhtml">Change over to parameter descriptor.</a></td></tr>
+<tr><td class="rev">6708</td><td>2004-07-04</td><td>desruisseaux</td><td>Initial draft of MapProjection.Provider</td></tr>
+<tr><td class="rev">6704</td><td>2004-07-03</td><td>desruisseaux</td><td>Parse MathTransform arguments using parametes available in providers</td></tr>
+<tr><td class="rev">6673</td><td>2004-07-01</td><td class="unav">rschulz</td><td><a href="rev/06673/MolodenskyTransform.xhtml">ported to use GeoAPI interfaces</a></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/MolodenskyTransformTest.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/MolodenskyTransformTest.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/MolodenskyTransformTest.xhtml (added)
+++ sis/ip-review/MolodenskyTransformTest.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransformTest history</title>
+    <style type="text/css" media="all">
+      @import url("./reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransformTest history</h1>
+  <p>Click on the commit message for inspecting the <code>diff</code> and how the code has been rewritten.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn log -r31996:1 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/test/java/org/geotools/referencing/operation/transform/MolodenskiTransformTest.java</code></blockquote>
+<table>
+  <tr>
+    <th>Rev.</th>
+    <th>Date</th>
+    <th>Author</th>
+    <th class="last">Message</th>
+  </tr>
+  <tr><td class="rev">31567</td><td>2008-09-22</td><td>desruisseaux</td><td><a href="rev/31567/MolodenskyTransformTest.xhtml">Fixed GEOT-2046. Patch submitted by Tara Athan.</a></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/MolodenskyTransformTest.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/MolodenskyTransformTest.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/06673/HEADER.html
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/06673/HEADER.html?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/06673/HEADER.html (added)
+++ sis/ip-review/rev/06673/HEADER.html Fri Nov  6 18:38:05 2015
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Revision 6673</title>
+  </head>
+  <body>
+    <div>
+      <h1>Revision 6673</h1>
+<table>
+  <tr><td><b>Author:</b></td><td>rschulz</td></tr>
+  <tr><td><b>Date:</b></td><td>2004-07-01</td></tr>
+  <tr><td><b>Message:</b></td><td>ported to use GeoAPI interfaces</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/06673/HEADER.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/06673/HEADER.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/06673/MolodenskyTransform.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/06673/MolodenskyTransform.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/06673/MolodenskyTransform.xhtml (added)
+++ sis/ip-review/rev/06673/MolodenskyTransform.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,466 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransform at revision 6673</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransform at revision 6673</h1>
+      <p>This class is in large part Rueben's work. It has been rewritten in Apache SIS using the formulas published
+        in §2.4.4.2 of <cite>IOGP Publication 373-7-2 – Geomatics Guidance Note number 7, part 2 – April 2015</cite>
+        for the abridged Molodensky case, and from
+        <a href="http://earth-info.nga.mil/GandG/coordsys/datums/standardmolodensky.html">http://earth-info.nga.mil/GandG/coordsys/datums/standardmolodensky.html</a>
+        for the non-abridged case.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn cat -r6673 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/MolodenskiTransform.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 6673</th></tr>
+<tr><td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2003, 2004 Geotools Project Managment Committee (PMC)
+ * (C) 2001, Institut de Recherche pour le D?veloppement
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License as published by the Free Software Foundation; either
+ *    version 2.1 of the License, or (at your option) any later version.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ *
+ *    This package contains documentation from OpenGIS specifications.
+ *    OpenGIS consortium's work is fully acknowledged here.
+ */
+package org.geotools.referencing.operation.transform;
+
+// J2SE dependencies
+import java.io.Serializable;
+import javax.units.Unit;
+import javax.units.SI;
+
+// OpenGIS dependencies
+import org.opengis.parameter.ParameterValue;
+import org.opengis.parameter.OperationParameter;
+import org.opengis.parameter.ParameterValueGroup;
+import org.opengis.parameter.OperationParameterGroup;
+import org.opengis.parameter.ParameterNotFoundException;
+import org.opengis.referencing.operation.MathTransform;
+
+// Geotools dependencies
+import org.geotools.metadata.citation.Citation;
+import org.geotools.referencing.Identifier;
+import org.geotools.referencing.operation.MathTransformProvider;
+import org.geotools.parameter.ParameterRealValue;
+import org.geotools.resources.cts.Resources;
+import org.geotools.resources.cts.ResourceKeys;
+
+
+/**
+ * The Molodensky transformation (EPSG code 9604) transforms three dimensional
+ * geographic points from one geographic coordinate reference system to another
+ * (a datum shift), using three shift parameters (delta X, delta Y, delta Z) and
+ * the difference between the semi-major axis and flattenings of the two ellipsoids.
+ * &lt;br&gt;&lt;br&gt;
+ *
+ * Unlike the Bursa-Wolf 3 parameter method (which acts on geocentric coordinates),
+ * this transformation can be performed directly on geographic coordinates.
+ * &lt;br&gt;&lt;br&gt;
+ *
+ * &lt;strong&gt;References:&lt;/strong&gt;&lt;ul&gt;
+ *   &lt;li&gt; Defense Mapping Agency (DMA), The Universal Grids: Universal Transverse
+ *        Mercator (UTM) and Universal Polar Stereographic (UPS), Fairfax VA, Technical Manual 8358.2.
+ *        Available from &lt;a href="http://earth-info.nga.mil/GandG/pubs.html"&gt;http://earth-info.nga.mil/GandG/pubs.html&lt;/a&gt;&lt;/li&gt;
+ *   &lt;li&gt; National Imagry and Mapping Agency (NIMA), Department of Defense World
+ *        Geodetic System 1984, Technical Report 8350.2.
+ *        Available from &lt;a href="http://earth-info.nga.mil/GandG/pubs.html"&gt;http://earth-info.nga.mil/GandG/pubs.html&lt;/a&gt;&lt;/li&gt;
+ *   &lt;li&gt; "Coordinate Conversions and Transformations including Formulas",
+ *        EPSG Guidence Note Number 7, Version 19.&lt;/li&gt;
+ * &lt;/ul&gt;
+ *
+ * @version $Id: MolodenskiTransform.java 6673 2004-07-01 02:16:05Z rschulz $
+ * @author Rueben Schulz
+ */
+class MolodenskiTransform extends AbstractMathTransform implements Serializable {
+
+    /**
+     * Serial number for interoperability with different versions.
+     */
+    private static final long serialVersionUID = -5965481951620975152L;
+
+    /**
+     * &lt;code&gt;true&lt;/code&gt; for a 3D transformation, or
+     * &lt;code&gt;false&lt;/code&gt; for a 2D transformation.
+     */
+    private final boolean source3D, target3D;
+
+    /**
+     * X,Y,Z shift in meters.
+     */
+    private final double dx, dy, dz;
+
+    /**
+     * Semi-major (&lt;var&gt;a&lt;/var&gt;) semi-minor (&lt;var&gt;b/&lt;var&gt;) radius in meters.
+     */
+    private final double a, b;
+
+    /**
+     * Difference in the semi-major (&lt;code&gt;da = target a - source a&lt;/code&gt;) and semi-minor
+     * (&lt;code&gt;db=target b - source b&lt;/code&gt;) axes of the target and source ellipsoids.
+     */
+    private final double da, db;
+
+    /**
+     * Difference between the flattenings (&lt;code&gt;df = target f - source f&lt;/code&gt;)
+     * of the target and source ellipsoids.
+     */
+    private final double df;
+
+    /**
+     * Ratio of the Semi-major (&lt;var&gt;a&lt;/var&gt;) semi-minor (&lt;var&gt;b/&lt;var&gt;) axis
+     * values (&lt;code&gt;a_b = a/b&lt;/code&gt; and &lt;code&gt;b_a = b/a&lt;/code&gt;).
+     */
+    private final double b_a, a_b;
+
+    /**
+     * Some more constants (&lt;code&gt;daa = da*a&lt;/code&gt; and &lt;code&gt;da_a = da/a&lt;/code&gt;).
+     */
+    private final double daa, da_a;
+
+    /**
+     * The square of excentricity of the ellipsoid: e? = (a?-b?)/a? where
+     * &lt;var&gt;a&lt;/var&gt; is the semi-major axis length and
+     * &lt;var&gt;b&lt;/var&gt; is the semi-minor axis length.
+     */
+    private final double e2;
+
+    /**
+     * Construct a MolodenskiTransform from the specified datums.
+     *
+     * @param source source horizontal datum you are transforming from.
+     * @param target target horizontal datum you are transforming to.
+     * @param source3D &lt;code&gt;true&lt;/code&gt; if the source geographic CRS has a Z-axis (3 dimentional)
+     * @param target3D &lt;code&gt;true&lt;/code&gt; if the target geographic CRS has a Z-axis (3 dimentional)
+     */
+//This cannot be ported until a WGS84 Parameters replacement is completed.
+//This should call MolodenskiTransform(ParameterValueGroup).
+//    protected MolodenskiTransform(final HorizontalDatum source,
+//                                          final HorizontalDatum target,
+//                                          final boolean source3D, final boolean target3D)
+//    {
+
+//    }
+
+    /**
+     * Construct a MolodenskiTransform from the specified parameters.
+     *
+     * @param  parameters The parameter values in standard units.
+     */
+    protected MolodenskiTransform(final ParameterValueGroup values) {
+        final int dim = values.getValue("dim").intValue();
+        switch (dim) {
+            case 2:  source3D=target3D=false; break;
+            case 3:  source3D=target3D=true;  break;
+            default: throw new IllegalArgumentException(Resources.format(
+                                ResourceKeys.ERROR_ILLEGAL_ARGUMENT_$2, "dim", new Integer(dim)));
+        }
+        final double ta, tb, f;
+        dx = values.getValue("dx").doubleValue();
+        dy = values.getValue("dy").doubleValue();
+        dz = values.getValue("dz").doubleValue();
+        a  = values.getValue("src_semi_major").doubleValue();
+        b  = values.getValue("src_semi_minor").doubleValue();
+        ta = values.getValue("tgt_semi_major").doubleValue();
+        tb = values.getValue("tgt_semi_minor").doubleValue();
+        da = ta - a;
+        db = tb - b;
+        a_b = a/b;
+        b_a = b/a;
+        daa = da*a;
+        da_a = da/a;
+        f  = (a-b)/a;
+        df = (ta-tb)/ta - f;
+        e2  = 1 - (b*b)/(a*a);
+    }
+
+    /**
+     * Returns the parameters for this math transform.
+     *
+     * @return The parameters for this math transform.
+     */
+    public ParameterValueGroup getParameterValues() {
+        final ParameterValue dim = new org.geotools.parameter.ParameterValue(Provider.DIM);
+        dim.setValue(getDimSource());
+        return new org.geotools.parameter.ParameterValueGroup(Provider.PARAMETERS,
+               new ParameterValue[] {
+                   dim,
+                   new ParameterRealValue(Provider.DX,             dx),
+                   new ParameterRealValue(Provider.DY,             dy),
+                   new ParameterRealValue(Provider.DZ,             dz),
+                   new ParameterRealValue(Provider.SRC_SEMI_MAJOR, a),
+                   new ParameterRealValue(Provider.SRC_SEMI_MINOR, b),
+                   new ParameterRealValue(Provider.TGT_SEMI_MAJOR, a+da),
+                   new ParameterRealValue(Provider.TGT_SEMI_MINOR, b+db)
+               });
+    }
+
+    /**
+     * Gets the dimension of input points.
+     */
+    public int getDimSource() {
+        return source3D ? 3 : 2;
+    }
+
+    /**
+     * Gets the dimension of output points.
+     */
+    public final int getDimTarget() {
+        return target3D ? 3 : 2;
+    }
+
+    /**
+     * Transforms a list of coordinate point ordinal values.
+     * This method is provided for efficiently transforming many points.
+     * The supplied array of ordinal values will contain packed ordinal
+     * values.  For example, if the source dimension is 3, then the ordinals
+     * will be packed in this order:
+     *
+     * (&lt;var&gt;x&lt;sub&gt;0&lt;/sub&gt;&lt;/var&gt;,&lt;var&gt;y&lt;sub&gt;0&lt;/sub&gt;&lt;/var&gt;,&lt;var&gt;z&lt;sub&gt;0&lt;/sub&gt;&lt;/var&gt;,
+     *  &lt;var&gt;x&lt;sub&gt;1&lt;/sub&gt;&lt;/var&gt;,&lt;var&gt;y&lt;sub&gt;1&lt;/sub&gt;&lt;/var&gt;,&lt;var&gt;z&lt;sub&gt;1&lt;/sub&gt;&lt;/var&gt; ...).
+     *
+     * @param srcPts the array containing the source point coordinates.
+     * @param srcOff the offset to the first point to be transformed
+     *               in the source array.
+     * @param dstPts the array into which the transformed point
+     *               coordinates are returned. May be the same
+     *               than &lt;code&gt;srcPts&lt;/code&gt;.
+     * @param dstOff the offset to the location of the first
+     *               transformed point that is stored in the
+     *               destination array.
+     * @param numPts the number of point objects to be transformed.
+     */
+    public void transform(final double[] srcPts, int srcOff,
+                          final double[] dstPts, int dstOff, int numPts)
+    {
+        int step = 0;
+        if (srcPts==dstPts &amp;&amp; srcOff&lt;dstOff &amp;&amp; srcOff+numPts*getDimSource()&gt;dstOff) {
+            if (source3D != target3D) {
+                // TODO: we need to figure out a general way to handle this case
+                //       (overwritting the source array  while source and target
+                //       dimensions are not the same).   This case occurs enough
+                //       in the CTS implementation...
+                throw new UnsupportedOperationException();
+            }
+            step = -getDimSource();
+            srcOff -= (numPts-1)*step;
+            dstOff -= (numPts-1)*step;
+        }
+        while (--numPts &gt;= 0) {
+            double x = Math.toRadians(srcPts[srcOff++]);
+            double y = Math.toRadians(srcPts[srcOff++]);
+            double z = (source3D) ? srcPts[srcOff++] : 0;
+            final double sinX = Math.sin(x);
+            final double cosX = Math.cos(x);
+            final double sinY = Math.sin(y);
+            final double cosY = Math.cos(y);
+            final double sin2Y = sinY*sinY;
+            final double Rn = a / Math.sqrt(1 - e2*sin2Y);
+            final double Rm = Rn * (1 - e2) / (1 - e2*sin2Y);
+
+            // Note: Computation of 'x' and 'y' ommit the division by sin(1"), because
+            //       1/sin(1") / (60*60*180/PI) = 1.0000000000039174050898603898692...
+            //       (60*60 is for converting the final result from seconds to degrees,
+            //       and 180/PI is for converting degrees to radians). This is an error
+            //       of about 8E-7 arc seconds, probably close to rounding errors anyway.
+            y += (dz*cosY - sinY*(dy*sinX + dx*cosX) + da_a*(Rn*e2*sinY*cosY) +
+                  df*(Rm*(a_b) + Rn*(b_a))*sinY*cosY) / (Rm + z);
+            x += (dy*cosX - dx*sinX) / ((Rn + z)*cosY);
+
+            //stay within latitude +-90 deg. and longitude +-180 deg.
+            if (Math.abs(y) &gt; Math.PI/2.0) {
+                dstPts[dstOff++] = 0.0;
+                dstPts[dstOff++] = (y &gt; 0.0) ? 90.0 : -90.0;
+            } else {
+                dstPts[dstOff++] = Math.toDegrees(rollLongitude(x));
+                dstPts[dstOff++] = Math.toDegrees(y);
+            }
+            if (target3D) {
+                z += dx*cosY*cosX + dy*cosY*sinX + dz*sinY + df*(b_a)*Rn*sin2Y - daa/Rn;
+                dstPts[dstOff++] = z;
+            }
+            srcOff += step;
+            dstOff += step;
+        }
+    }
+
+    /**
+     * Returns a hash value for this transform.
+     */
+    public final int hashCode() {
+        final long code = Double.doubleToLongBits(dx) +
+                          37*(Double.doubleToLongBits(dy) +
+                          37*(Double.doubleToLongBits(dz) +
+                          37*(Double.doubleToLongBits(a ) +
+                          37*(Double.doubleToLongBits(b ) +
+                          37*(Double.doubleToLongBits(da) +
+                          37*(Double.doubleToLongBits(db)))))));
+        return (int) code ^ (int) (code &gt;&gt;&gt; 32);
+    }
+
+    /**
+     * Compares the specified object with
+     * this math transform for equality.
+     */
+    public final boolean equals(final Object object) {
+        if (object == this) {
+            // Slight optimization
+            return true;
+        }
+        if (super.equals(object)) {
+            final MolodenskiTransform that = (MolodenskiTransform) object;
+            return Double.doubleToLongBits(this.dx) == Double.doubleToLongBits(that.dx) &amp;&amp;
+                   Double.doubleToLongBits(this.dy) == Double.doubleToLongBits(that.dy) &amp;&amp;
+                   Double.doubleToLongBits(this.dz) == Double.doubleToLongBits(that.dz) &amp;&amp;
+                   Double.doubleToLongBits(this.a ) == Double.doubleToLongBits(that.a ) &amp;&amp;
+                   Double.doubleToLongBits(this.b ) == Double.doubleToLongBits(that.b ) &amp;&amp;
+                   Double.doubleToLongBits(this.da) == Double.doubleToLongBits(that.da) &amp;&amp;
+                   Double.doubleToLongBits(this.db) == Double.doubleToLongBits(that.db) &amp;&amp;
+                   this.source3D == that.source3D &amp;&amp;
+                   this.target3D == that.target3D;
+        }
+        return false;
+    }
+
+
+    /**
+     * The provider for {@link MolodenskiTransform}. This provider will construct transforms
+     * from {@linkplain org.geotools.referencing.crs.GeographicCRS geographic} to
+     * {@linkplain org.geotools.referencing.crs.GeographicCRS geographic} coordinate reference
+     * systems.
+     *
+     * @version $Id: MolodenskiTransform.java 6673 2004-07-01 02:16:05Z rschulz $
+     * @author Rueben Schulz
+     */
+    public static class Provider extends MathTransformProvider {
+        /**
+         * Serial number for interoperability with different versions.
+         *
+         * @toDo serialver gives me the same value for MolodenskiTransform as
+         *       for MolodenskiTransform$Provider
+         */
+        //private static final long serialVersionUID = 6831719006135449291L;
+
+        /**
+         * The number of geographic dimension (2 or 3). The default value is 2.
+         */
+        public static final OperationParameter DIM = new org.geotools.parameter.OperationParameter(
+                "dim", 2, 2, 3);
+
+        /**
+         * The operation parameter descriptor for the "dx" parameter value.
+         * Valid values range from -infinity to infinity.
+         */
+        public static final OperationParameter DX = new org.geotools.parameter.OperationParameter(
+                "dx", Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+        /**
+         * The operation parameter descriptor for the "dy" parameter value.
+         * Valid values range from -infinity to infinity.
+         */
+        public static final OperationParameter DY = new org.geotools.parameter.OperationParameter(
+                "dy", Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+        /**
+         * The operation parameter descriptor for the "dx" parameter value.
+         * Valid values range from -infinity to infinity, default is 0.0.
+         */
+        public static final OperationParameter DZ = new org.geotools.parameter.OperationParameter(
+                "dz", 0.0, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+        /**
+         * The operation parameter descriptor for the "src_semi_major" parameter value.
+         * Valid values range from 0 to infinity.
+         */
+        public static final OperationParameter SRC_SEMI_MAJOR = new org.geotools.parameter.OperationParameter(
+                "src_semi_major", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+        /**
+         * The operation parameter descriptor for the "src_semi_minor" parameter value.
+         * Valid values range from 0 to infinity.
+         */
+        public static final OperationParameter SRC_SEMI_MINOR = new org.geotools.parameter.OperationParameter(
+                "src_semi_minor", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+        /**
+         * The operation parameter descriptor for the "tgt_semi_major" parameter value.
+         * Valid values range from 0 to infinity.
+         */
+        public static final OperationParameter TGT_SEMI_MAJOR = new org.geotools.parameter.OperationParameter(
+                "tgt_semi_major", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+        /**
+         * The operation parameter descriptor for the "tgt_semi_minor" parameter value.
+         * Valid values range from 0 to infinity.
+         */
+        public static final OperationParameter TGT_SEMI_MINOR = new org.geotools.parameter.OperationParameter(
+                "tgt_semi_minor", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+        /**
+         * The parameters group.
+         */
+        static final OperationParameterGroup PARAMETERS = group(
+                     new Identifier[] {
+                        new Identifier(Citation.OPEN_GIS, null,  "Molodenski"),
+                        new Identifier(Citation.EPSG,    "EPSG", "9604")
+                     }, new OperationParameter[] {
+                        DIM, DX, DY, DZ,
+                        SRC_SEMI_MAJOR, SRC_SEMI_MINOR,
+                        TGT_SEMI_MAJOR, TGT_SEMI_MINOR
+                     });
+
+        /**
+         * Constructs a provider.
+         */
+        public Provider() {
+            super(3, 3, PARAMETERS);
+        }
+
+        /**
+         * Returns the resources key for {@linkplain #getName localized name}.
+         * This method is for internal purpose by Geotools implementation only.
+         */
+        protected int getLocalizationKey() {
+            return ResourceKeys.MOLODENSKI_TRANSFORM;
+        }
+
+        /**
+         * Creates a math transform from the specified group of parameter values.
+         *
+         * @param  values The group of parameter values.
+         * @return The created math transform.
+         * @throws ParameterNotFoundException if a required parameter was not found.
+         */
+        protected MathTransform createMathTransform(final ParameterValueGroup values)
+                throws ParameterNotFoundException
+        {
+            return new MolodenskiTransform(values);
+        }
+    }
+
+}
+</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/06673/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/06673/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/07843/MolodenskyTransform.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/07843/MolodenskyTransform.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/07843/MolodenskyTransform.xhtml (added)
+++ sis/ip-review/rev/07843/MolodenskyTransform.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,225 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransform changes for revisions 7706:7843</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransform changes for revisions 7706:7843</h1>
+      <p>This change has been forced by a GeoAPI change. Reverting this commit causes compilation error,
+         which can only be fixed by reapplying the same changes regarding GeoAPI interfaces.
+         The change in GeoTools class name does not apply to Apache SIS since we did not ported that class.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r7706:7843 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/MolodenskiTransform.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 7706</th><th>Revision 7843</th></tr>
+<tr><td><pre>// J2SE dependencies
+import java.io.Serializable;
+<span class="del">import javax.units.Unit;</span>
+import javax.units.SI;
+
+// OpenGIS dependencies
+import org.opengis.parameter.ParameterValue;
+<span class="del">import org.opengis.parameter.OperationParameter;</span>
+import org.opengis.parameter.ParameterValueGroup;
+<span class="del">import org.opengis.parameter.OperationParameterGroup;</span>
+import org.opengis.parameter.ParameterNotFoundException;
+import org.opengis.referencing.operation.MathTransform;</pre></td>
+<td><pre>// J2SE dependencies
+import java.io.Serializable;
+import javax.units.SI;
+
+// OpenGIS dependencies
+import org.opengis.parameter.ParameterValue;
+<span class="add">import org.opengis.parameter.ParameterDescriptor;</span>
+import org.opengis.parameter.ParameterValueGroup;
+<span class="add">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+import org.opengis.parameter.ParameterNotFoundException;
+import org.opengis.referencing.operation.MathTransform;</pre></td></tr>
+<tr><td><pre>import org.geotools.metadata.citation.Citation;
+import org.geotools.referencing.Identifier;
+import org.geotools.referencing.operation.MathTransformProvider;
+<span class="del">import org.geotools.parameter.ParameterRealValue;</span>
+import org.geotools.resources.cts.Resources;
+import org.geotools.resources.cts.ResourceKeys;</pre></td>
+<td><pre>import org.geotools.metadata.citation.Citation;
+import org.geotools.referencing.Identifier;
+import org.geotools.referencing.operation.MathTransformProvider;
+<span class="add">import org.geotools.parameter.ParameterReal;</span>
+import org.geotools.resources.cts.Resources;
+import org.geotools.resources.cts.ResourceKeys;</pre></td></tr>
+<tr><td><pre> * @return The parameters for this math transform.
+ */
+public ParameterValueGroup getParameterValues() {
+<span class="del">    final ParameterValue dim = new org.geotools.parameter.ParameterValue(Provider.DIM);</span>
+    dim.setValue(getDimSource());
+<span class="del">    return new org.geotools.parameter.ParameterValueGroup(Provider.PARAMETERS,</span>
+           new ParameterValue[] {
+               dim,
+<span class="del">               new ParameterRealValue(Provider.DX,             dx),</span>
+<span class="del">               new ParameterRealValue(Provider.DY,             dy),</span>
+<span class="del">               new ParameterRealValue(Provider.DZ,             dz),</span>
+<span class="del">               new ParameterRealValue(Provider.SRC_SEMI_MAJOR, a),</span>
+<span class="del">               new ParameterRealValue(Provider.SRC_SEMI_MINOR, b),</span>
+<span class="del">               new ParameterRealValue(Provider.TGT_SEMI_MAJOR, a+da),</span>
+<span class="del">               new ParameterRealValue(Provider.TGT_SEMI_MINOR, b+db)</span>
+           });
+}</pre></td>
+<td><pre> * @return The parameters for this math transform.
+ */
+public ParameterValueGroup getParameterValues() {
+<span class="add">    final ParameterValue dim = new org.geotools.parameter.Parameter(Provider.DIM);</span>
+    dim.setValue(getDimSource());
+<span class="add">    return new org.geotools.parameter.ParameterGroup(Provider.PARAMETERS,</span>
+           new ParameterValue[] {
+               dim,
+<span class="add">               new ParameterReal(Provider.DX,             dx),</span>
+<span class="add">               new ParameterReal(Provider.DY,             dy),</span>
+<span class="add">               new ParameterReal(Provider.DZ,             dz),</span>
+<span class="add">               new ParameterReal(Provider.SRC_SEMI_MAJOR, a),</span>
+<span class="add">               new ParameterReal(Provider.SRC_SEMI_MINOR, b),</span>
+<span class="add">               new ParameterReal(Provider.TGT_SEMI_MAJOR, a+da),</span>
+<span class="add">               new ParameterReal(Provider.TGT_SEMI_MINOR, b+db)</span>
+           });
+}</pre></td></tr>
+<tr><td><pre>/**
+ * The number of geographic dimension (2 or 3). The default value is 2.
+ */
+<span class="del">public static final OperationParameter DIM = new org.geotools.parameter.OperationParameter(</span>
+        "dim", 2, 2, 3);
+
+/**</pre></td>
+<td><pre>/**
+ * The number of geographic dimension (2 or 3). The default value is 2.
+ */
+<span class="add">public static final ParameterDescriptor DIM = new org.geotools.parameter.ParameterDescriptor(</span>
+        "dim", 2, 2, 3);
+
+/**</pre></td></tr>
+<tr><td><pre> * The operation parameter descriptor for the "dx" parameter value.
+ * Valid values range from -infinity to infinity.
+ */
+<span class="del">public static final OperationParameter DX = new org.geotools.parameter.OperationParameter(</span>
+        "dx", Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td>
+<td><pre> * The operation parameter descriptor for the "dx" parameter value.
+ * Valid values range from -infinity to infinity.
+ */
+<span class="add">public static final ParameterDescriptor DX = new org.geotools.parameter.ParameterDescriptor(</span>
+        "dx", Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td></tr>
+<tr><td><pre> * The operation parameter descriptor for the "dy" parameter value.
+ * Valid values range from -infinity to infinity.
+ */
+<span class="del">public static final OperationParameter DY = new org.geotools.parameter.OperationParameter(</span>
+        "dy", Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td>
+<td><pre> * The operation parameter descriptor for the "dy" parameter value.
+ * Valid values range from -infinity to infinity.
+ */
+<span class="add">public static final ParameterDescriptor DY = new org.geotools.parameter.ParameterDescriptor(</span>
+        "dy", Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td></tr>
+<tr><td><pre> * The operation parameter descriptor for the "dx" parameter value.
+ * Valid values range from -infinity to infinity, default is 0.0.
+ */
+<span class="del">public static final OperationParameter DZ = new org.geotools.parameter.OperationParameter(</span>
+        "dz", 0.0, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td>
+<td><pre> * The operation parameter descriptor for the "dx" parameter value.
+ * Valid values range from -infinity to infinity, default is 0.0.
+ */
+<span class="add">public static final ParameterDescriptor DZ = new org.geotools.parameter.ParameterDescriptor(</span>
+        "dz", 0.0, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td></tr>
+<tr><td><pre> * The operation parameter descriptor for the "src_semi_major" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="del">public static final OperationParameter SRC_SEMI_MAJOR = new org.geotools.parameter.OperationParameter(</span>
+        "src_semi_major", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td>
+<td><pre> * The operation parameter descriptor for the "src_semi_major" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="add">public static final ParameterDescriptor SRC_SEMI_MAJOR = new org.geotools.parameter.ParameterDescriptor(</span>
+        "src_semi_major", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td></tr>
+<tr><td><pre> * The operation parameter descriptor for the "src_semi_minor" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="del">public static final OperationParameter SRC_SEMI_MINOR = new org.geotools.parameter.OperationParameter(</span>
+        "src_semi_minor", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td>
+<td><pre> * The operation parameter descriptor for the "src_semi_minor" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="add">public static final ParameterDescriptor SRC_SEMI_MINOR = new org.geotools.parameter.ParameterDescriptor(</span>
+        "src_semi_minor", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td></tr>
+<tr><td><pre> * The operation parameter descriptor for the "tgt_semi_major" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="del">public static final OperationParameter TGT_SEMI_MAJOR = new org.geotools.parameter.OperationParameter(</span>
+        "tgt_semi_major", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td>
+<td><pre> * The operation parameter descriptor for the "tgt_semi_major" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="add">public static final ParameterDescriptor TGT_SEMI_MAJOR = new org.geotools.parameter.ParameterDescriptor(</span>
+        "tgt_semi_major", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**</pre></td></tr>
+<tr><td><pre> * The operation parameter descriptor for the "tgt_semi_minor" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="del">public static final OperationParameter TGT_SEMI_MINOR = new org.geotools.parameter.OperationParameter(</span>
+        "tgt_semi_minor", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**
+ * The parameters group.
+ */
+<span class="del">static final OperationParameterGroup PARAMETERS = group(</span>
+             new Identifier[] {
+                new Identifier(Citation.OPEN_GIS, null,  "Molodenski"),
+                new Identifier(Citation.EPSG,    "EPSG", "9604")
+<span class="del">             }, new OperationParameter[] {</span>
+                DIM, DX, DY, DZ,
+                SRC_SEMI_MAJOR, SRC_SEMI_MINOR,
+                TGT_SEMI_MAJOR, TGT_SEMI_MINOR</pre></td>
+<td><pre> * The operation parameter descriptor for the "tgt_semi_minor" parameter value.
+ * Valid values range from 0 to infinity.
+ */
+<span class="add">public static final ParameterDescriptor TGT_SEMI_MINOR = new org.geotools.parameter.ParameterDescriptor(</span>
+        "tgt_semi_minor", Double.NaN, 0.0, Double.POSITIVE_INFINITY, SI.METER);
+
+/**
+ * The parameters group.
+ */
+<span class="add">static final ParameterDescriptorGroup PARAMETERS = group(</span>
+             new Identifier[] {
+                new Identifier(Citation.OPEN_GIS, null,  "Molodenski"),
+                new Identifier(Citation.EPSG,    "EPSG", "9604")
+<span class="add">             }, new ParameterDescriptor[] {</span>
+                DIM, DX, DY, DZ,
+                SRC_SEMI_MAJOR, SRC_SEMI_MINOR,
+                TGT_SEMI_MAJOR, TGT_SEMI_MINOR</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/07843/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/07843/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/09131/MolodenskyTransform.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/09131/MolodenskyTransform.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/09131/MolodenskyTransform.xhtml (added)
+++ sis/ip-review/rev/09131/MolodenskyTransform.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransform changes for revisions 9130:9131</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransform changes for revisions 9130:9131</h1>
+      <p>The information contained in this commit come from the EPSG registry.
+      The identifier (not the comment) has been applied independently in SIS with fixed spelling
+      (EPSG spells "Molodensky" instead of "Molodenski").</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r9130:9131 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/MolodenskiTransform.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 9130</th><th>Revision 9131</th></tr>
+<tr><td><pre>* {@linkplain org.geotools.referencing.crs.GeographicCRS geographic} coordinate reference
+* systems.
+*
+* @version $Id$
+* @author Rueben Schulz
+*/</pre></td>
+<td><pre>* {@linkplain org.geotools.referencing.crs.GeographicCRS geographic} coordinate reference
+* systems.
+*
+<span class="add">* The EPSG does not use src_semi_major, etc. parameters and instead uses</span>
+<span class="add">* "Semi-major axis length difference" and "Flattening difference".</span>
+<span class="add">*</span>
+* @version $Id$
+* @author Rueben Schulz
+*/</pre></td></tr>
+<tr><td><pre> */
+static final ParameterDescriptorGroup PARAMETERS = createDescriptorGroup(new Identifier[] {
+        new Identifier(Citation.OPEN_GIS, "Molodenski"),
+        new Identifier(Citation.EPSG,     "9604"),
+        new Identifier(Citation.GEOTOOLS, Resources.formatInternational(
+                                          ResourceKeys.MOLODENSKI_TRANSFORM))</pre></td>
+<td><pre> */
+static final ParameterDescriptorGroup PARAMETERS = createDescriptorGroup(new Identifier[] {
+        new Identifier(Citation.OPEN_GIS, "Molodenski"),
+<span class="add">        new Identifier(Citation.EPSG,     "Molodenski"),</span>
+        new Identifier(Citation.EPSG,     "9604"),
+        new Identifier(Citation.GEOTOOLS, Resources.formatInternational(
+                                          ResourceKeys.MOLODENSKI_TRANSFORM))</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/09131/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/09131/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/10796/MolodenskyTransform.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/10796/MolodenskyTransform.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/10796/MolodenskyTransform.xhtml (added)
+++ sis/ip-review/rev/10796/MolodenskyTransform.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransform changes for revisions 10795:10796</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransform changes for revisions 10795:10796</h1>
+<p>Changes in this commit seem to be the result of some <cite>"auto reformat"</cite> tool execution.
+The <cite>Java</cite> - <cite>GeoAPI</cite> - <cite>GeoTools</cite> import ordering is altered,
+imports used only in Javadoc are lost and the encoding of non-ASCII characters is broken.
+This commit has been reverted, except for the removal of really unused imports which are keep removed.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r10795:10796 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/MolodenskiTransform.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 10795</th><th>Revision 10796</th></tr>
+<tr><td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2003, 2004 Geotools Project Managment Committee (PMC)
+<span class="del"> * (C) 2001, Institut de Recherche pour le Développement</span>
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public</pre></td>
+<td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2003, 2004 Geotools Project Managment Committee (PMC)
+<span class="add"> * (C) 2001, Institut de Recherche pour le D�veloppement</span>
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public</pre></td></tr>
+<tr><td><pre>// J2SE dependencies
+import java.io.Serializable;
+<span class="del">import javax.units.SI;</span>
+
+<span class="del">// OpenGIS dependencies</span>
+<span class="del">import org.opengis.parameter.ParameterValue;</span>
+import org.opengis.parameter.ParameterDescriptor;
+<span class="del">import org.opengis.parameter.ParameterValueGroup;</span>
+import org.opengis.parameter.ParameterDescriptorGroup;
+import org.opengis.parameter.ParameterNotFoundException;
+import org.opengis.referencing.operation.MathTransform;
+
+<span class="del">// Geotools dependencies</span>
+<span class="del">import org.geotools.metadata.citation.Citation;</span>
+<span class="del">import org.geotools.referencing.Identifier;</span>
+<span class="del">import org.geotools.referencing.operation.MathTransformProvider;</span>
+<span class="del">import org.geotools.parameter.ParameterReal;</span>
+<span class="del">import org.geotools.resources.cts.Resources;</span>
+<span class="del">import org.geotools.resources.cts.ResourceKeys;</span>
+
+<span class="del"></span>
+/**
+ * Two- or three-dimensional datum shift using the Molodensky transformation.
+ * The Molodensky transformation (EPSG code 9604) transforms two or three dimensional</pre></td>
+<td><pre>// J2SE dependencies
+import java.io.Serializable;
+
+<span class="add">import org.geotools.metadata.citation.Citation;</span>
+<span class="add">import org.geotools.parameter.ParameterReal;</span>
+<span class="add">import org.geotools.referencing.Identifier;</span>
+<span class="add">import org.geotools.referencing.operation.MathTransformProvider;</span>
+<span class="add">import org.geotools.resources.cts.ResourceKeys;</span>
+<span class="add">import org.geotools.resources.cts.Resources;</span>
+import org.opengis.parameter.ParameterDescriptor;
+import org.opengis.parameter.ParameterDescriptorGroup;
+import org.opengis.parameter.ParameterNotFoundException;
+<span class="add">import org.opengis.parameter.ParameterValue;</span>
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+import org.opengis.referencing.operation.MathTransform;
+
+
+/**
+ * Two- or three-dimensional datum shift using the Molodensky transformation.
+ * The Molodensky transformation (EPSG code 9604) transforms two or three dimensional</pre></td></tr>
+<tr><td><pre>private final double daa, da_a;
+
+/**
+<span class="del"> * The square of excentricity of the ellipsoid: e² = (a²-b²)/a² where</span>
+ * &lt;var&gt;a&lt;/var&gt; is the semi-major axis length and
+ * &lt;var&gt;b&lt;/var&gt; is the semi-minor axis length.
+ */</pre></td>
+<td><pre>private final double daa, da_a;
+
+/**
+<span class="add"> * The square of excentricity of the ellipsoid: e� = (a�-b�)/a� where</span>
+ * &lt;var&gt;a&lt;/var&gt; is the semi-major axis length and
+ * &lt;var&gt;b&lt;/var&gt; is the semi-minor axis length.
+ */</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/10796/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/10796/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/13437/HEADER.html
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/13437/HEADER.html?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/13437/HEADER.html (added)
+++ sis/ip-review/rev/13437/HEADER.html Fri Nov  6 18:38:05 2015
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Revision 13437</title>
+  </head>
+  <body>
+    <div>
+      <h1>Revision 13437</h1>
+<table>
+  <tr><td><b>Author:</b></td><td>jeichar</td></tr>
+  <tr><td><b>Date:</b></td><td>2005-05-11</td></tr>
+  <tr><td><b>Message:</b></td><td>fixed so it will compile in eclipse</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/13437/HEADER.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/13437/HEADER.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/13437/MolodenskyTransform.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/13437/MolodenskyTransform.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/13437/MolodenskyTransform.xhtml (added)
+++ sis/ip-review/rev/13437/MolodenskyTransform.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransform changes for revisions 13436:13437</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransform changes for revisions 13436:13437</h1>
+      <p>That assertion statement has been removed in Apache SIS.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r13436:13437 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/MolodenskiTransform.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 13436</th><th>Revision 13437</th></tr>
+<tr><td><pre>private final double daa, da_a;
+
+/**
+<span class="del"> * The square of excentricity of the ellipsoid: e² = (a²-b²)/a² where</span>
+ * &lt;var&gt;a&lt;/var&gt; is the semi-major axis length and
+ * &lt;var&gt;b&lt;/var&gt; is the semi-minor axis length.
+ */</pre></td>
+<td><pre>private final double daa, da_a;
+
+/**
+<span class="add"> * The square of excentricity of the ellipsoid: e� = (a�-b�)/a� where</span>
+ * &lt;var&gt;a&lt;/var&gt; is the semi-major axis length and
+ * &lt;var&gt;b&lt;/var&gt; is the semi-minor axis length.
+ */</pre></td></tr>
+<tr><td><pre>    // Assertions: computes the inverse transform in the 3D-case only
+    //             (otherwise the transform is too approximative).
+    final float error;
+<span class="del">    assert !(target3D &amp;&amp; srcPts!=dstPts &amp;&amp;</span>
+<span class="del">            (error=maxError(null, srcPts, srcOff, null, dstPts, dstOff, numPts)) &gt; EPS) : error;</span>
+}
+
+/**</pre></td>
+<td><pre>    // Assertions: computes the inverse transform in the 3D-case only
+    //             (otherwise the transform is too approximative).
+    final float error;
+<span class="add">    error=maxError(null, srcPts, srcOff, null, dstPts, dstOff, numPts);</span>
+<span class="add"></span>
+<span class="add">    assert !(target3D &amp;&amp; srcPts!=dstPts &amp;&amp; error &gt; EPS) : error;</span>
+}
+
+/**</pre></td></tr>
+<tr><td><pre>    // Assertions: computes the inverse transform in the 3D-case only
+    //             (otherwise the transform is too approximative).
+    final float error;
+<span class="del">    assert !(target3D &amp;&amp; srcPts!=dstPts &amp;&amp;</span>
+<span class="del">            (error=maxError(srcPts, null, srcOff, dstPts, null, dstOff, numPts)) &gt; EPS) : error;</span>
+}
+
+/**</pre></td>
+<td><pre>    // Assertions: computes the inverse transform in the 3D-case only
+    //             (otherwise the transform is too approximative).
+    final float error;
+<span class="add">    error=maxError(srcPts, null, srcOff, dstPts, null, dstOff, numPts);</span>
+<span class="add">    assert !(target3D &amp;&amp; srcPts!=dstPts &amp;&amp;error &gt; EPS) : error;</span>
+}
+
+/**</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/13437/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/13437/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/20874/MolodenskyTransform.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/20874/MolodenskyTransform.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/20874/MolodenskyTransform.xhtml (added)
+++ sis/ip-review/rev/20874/MolodenskyTransform.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransform changes for revisions 20873:20874</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransform changes for revisions 20873:20874</h1>
+<p>Changes in GeoTools header only. The removal of the <cite>"or (at your option) any later version"</cite> clause
+must be keep in Geotk for every classes having contribution from a developer other than those who accepted re-licensing.
+This header does not apply to Apache SIS, since the above-cited contributions are omitted.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r20873:20874 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/transform/MolodenskiTransform.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 20873</th><th>Revision 20874</th></tr>
+<tr><td><pre>/*
+<span class="del"> * Geotools 2 - OpenSource mapping toolkit</span>
+<span class="del"> * (C) 2003, 2004 Geotools Project Managment Committee (PMC)</span>
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License as published by the Free Software Foundation; either</pre></td>
+<td><pre>/*
+<span class="add"> *    GeoTools - OpenSource mapping toolkit</span>
+<span class="add"> *    http://geotools.org</span>
+ *
+<span class="add"> *   (C) 2003-2006, Geotools Project Managment Committee (PMC)</span>
+<span class="add"> *</span>
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License as published by the Free Software Foundation; either</pre></td></tr>
+<tr><td><pre> *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+<span class="del"> *</span>
+<span class="del"> *    You should have received a copy of the GNU Lesser General Public</span>
+<span class="del"> *    License along with this library; if not, write to the Free Software</span>
+<span class="del"> *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
+ */
+package org.geotools.referencing.operation.transform;</pre></td>
+<td><pre> *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ */
+package org.geotools.referencing.operation.transform;</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/20874/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/20874/MolodenskyTransform.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/31567/MolodenskyTransformTest.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/31567/MolodenskyTransformTest.xhtml?rev=1713014&view=auto
==============================================================================
--- sis/ip-review/rev/31567/MolodenskyTransformTest.xhtml (added)
+++ sis/ip-review/rev/31567/MolodenskyTransformTest.xhtml Fri Nov  6 18:38:05 2015
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MolodenskyTransformTest at revision 31567</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MolodenskyTransformTest at revision 31567</h1>
+      <p>The point used in this test have been replaced by sample points provide in
+        §2.4.4.2 of <cite>IOGP Publication 373-7-2 – Geomatics Guidance Note number 7, part 2 – April 2015</cite>.
+        The <code>testArrayOverwrite()</code> method has been removed - the feature tested by that method
+        is now covered by GeoAPI tests anyway.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn cat -r31567 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/test/java/org/geotools/referencing/operation/transform/MolodenskiTransformTest.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 6673</th></tr>
+<tr><td><pre>/*
+ *    GeoTools - The Open Source Java GIS Toolkit
+ *    http://geotools.org
+ *
+ *    (C) 2008, Open Source Geospatial Foundation (OSGeo)
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License as published by the Free Software Foundation;
+ *    version 2.1 of the License.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ */
+package org.geotools.referencing.operation.transform;
+
+import org.geotools.referencing.operation.TransformTestBase;
+
+import org.junit.*;
+import static org.junit.Assert.*;
+
+
+/**
+ * Tests the {@link MolodenskiTransform} class.
+ *
+ * @author Tara Athan
+ */
+public final class MolodenskiTransformTest extends TransformTestBase {
+    /**
+     * An array with a variety of test points
+     */
+    private float[] srcFloat2 = {
+           0.0f,      0.0f,
+           0.0f,     89.999f,
+           0.0f,    -89.999f,
+         179.999f,    0.0f,
+        -179.999f,    0.0f,
+           0.0f,      0.0f,
+        -123.19641f, 39.26859f
+    };
+
+    /**
+     * The molodenski transform to use for testing.
+     */
+    private MolodenskiTransform molodenski00;
+
+    /**
+     * Sets up common objects used for all tests. Source ellipsoid is WGS84.
+     * Target ellipsoid is the same (that is, we are testing an identity transform).
+     */
+    @Before
+    public void setUp() {
+        double a  = 6378137.0;
+        double b  = 6356752.0;
+        molodenski00 = new MolodenskiTransform(false, a, b, false, a, b, false, 0.0, 0.0, 0.0);
+    }
+
+    /**
+     * Tests overwriting the source array, with a target offset slightyly greater than
+     * the source offset.
+     */
+    @Test
+    public void testArrayOverwrite() {
+        int srcOff = 0;
+        int dstOff = 2;
+        int numPts = 2;
+        float[] overWriteTestArray = srcFloat2.clone();
+        molodenski00.transform(overWriteTestArray, srcOff, overWriteTestArray, dstOff, numPts);
+
+        int dim = 2;
+        for (int i=0; i&lt;numPts; i++) {
+            assertEquals(srcFloat2[srcOff+dim*i  ], overWriteTestArray[dstOff+dim*i  ], 1E-6);
+            assertEquals(srcFloat2[srcOff+dim*i+1], overWriteTestArray[dstOff+dim*i+1], 1E-6);
+        }
+    }
+}</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/31567/MolodenskyTransformTest.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/31567/MolodenskyTransformTest.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html



Mime
View raw message