| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (19) --> |
| <title>AbstractMathTransform (Apache SIS 1.3 API)</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta name="description" content="declaration: package: org.apache.sis.referencing.operation.transform, class: AbstractMathTransform"> |
| <meta name="generator" content="javadoc/ClassWriterImpl"> |
| <meta name="keywords" content="org.apache.sis.referencing.operation.transform.AbstractMathTransform class"> |
| <meta name="keywords" content="getSourceDimensions()"> |
| <meta name="keywords" content="getTargetDimensions()"> |
| <meta name="keywords" content="getDomain()"> |
| <meta name="keywords" content="getParameterDescriptors()"> |
| <meta name="keywords" content="getParameterValues()"> |
| <meta name="keywords" content="getContextualParameters()"> |
| <meta name="keywords" content="isIdentity()"> |
| <meta name="keywords" content="transform()"> |
| <meta name="keywords" content="derivative()"> |
| <meta name="keywords" content="inverse()"> |
| <meta name="keywords" content="tryConcatenate()"> |
| <meta name="keywords" content="hashCode()"> |
| <meta name="keywords" content="computeHashCode()"> |
| <meta name="keywords" content="equals()"> |
| <meta name="keywords" content="formatTo()"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../sis.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style"> |
| <script type="text/javascript" src="../../../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script> |
| <script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script> |
| </head> |
| <body class="class-declaration-page"> |
| <script type="text/javascript">var pathtoroot = "../../../../../../"; |
| loadScripts(document, 'script');</script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <div class="flex-box"> |
| <header role="banner" class="flex-header"> |
| <nav role="navigation"> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> |
| <div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> |
| <ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> |
| <li><a href="../../../../../../index.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="nav-bar-cell1-rev">Class</li> |
| <li><a href="class-use/AbstractMathTransform.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../../help-doc.html#class">Help</a></li> |
| </ul> |
| <ul class="sub-nav-list-small"> |
| <li> |
| <p>Summary:</p> |
| <ul> |
| <li><a href="#nested-class-summary">Nested</a></li> |
| <li>Field</li> |
| <li><a href="#constructor-summary">Constr</a></li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| </li> |
| <li> |
| <p>Detail:</p> |
| <ul> |
| <li>Field</li> |
| <li><a href="#constructor-detail">Constr</a></li> |
| <li><a href="#method-detail">Method</a></li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <div class="sub-nav"> |
| <div id="navbar-sub-list"> |
| <ul class="sub-nav-list"> |
| <li>Summary: </li> |
| <li><a href="#nested-class-summary">Nested</a> | </li> |
| <li>Field | </li> |
| <li><a href="#constructor-summary">Constr</a> | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor-detail">Constr</a> | </li> |
| <li><a href="#method-detail">Method</a></li> |
| </ul> |
| </div> |
| <div class="nav-list-search"><a href="../../../../../../search.html">SEARCH</a> |
| <input type="text" id="search-input" disabled placeholder="Search"> |
| <input type="reset" id="reset-button" disabled value="reset"> |
| </div> |
| </div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <span class="skip-nav" id="skip-navbar-top"></span></nav> |
| </header> |
| <div class="flex-content"> |
| <main role="main"> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">org.apache.sis.referencing.operation.transform</a></div> |
| <h1 title="Class AbstractMathTransform" class="title">Class AbstractMathTransform</h1> |
| </div> |
| <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> |
| <div class="inheritance"><a href="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a> |
| <div class="inheritance">AbstractMathTransform</div> |
| </div> |
| </div> |
| <section class="class-description" id="class-description"> |
| <dl class="notes"> |
| <dt>All Implemented Interfaces:</dt> |
| <dd><code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code>, <code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">LenientComparable</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| </dl> |
| <dl class="notes"> |
| <dt>Direct Known Subclasses:</dt> |
| <dd><code><a href="AbstractMathTransform.Inverse.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform.Inverse</a></code>, <code><a href="AbstractMathTransform1D.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform1D</a></code>, <code><a href="AbstractMathTransform2D.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform2D</a></code>, <code><a href="DatumShiftTransform.html" title="class in org.apache.sis.referencing.operation.transform">DatumShiftTransform</a></code>, <code><a href="EllipsoidToCentricTransform.html" title="class in org.apache.sis.referencing.operation.transform">EllipsoidToCentricTransform</a></code>, <code><a href="PassThroughTransform.html" title="class in org.apache.sis.referencing.operation.transform">PassThroughTransform</a></code>, <code><a href="WraparoundTransform.html" title="class in org.apache.sis.referencing.operation.transform">WraparoundTransform</a></code></dd> |
| </dl> |
| <hr> |
| <div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">AbstractMathTransform</span> |
| <span class="extends-implements">extends <a href="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a> |
| implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a>, <a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a>, <a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">LenientComparable</a></span></div> |
| <div class="block">Provides a default implementation for most methods required by the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>MathTransform</code></a> interface. |
| A <code>MathTransform</code> is an object that actually does the work of applying a |
| <a href="../DefaultFormula.html" title="class in org.apache.sis.referencing.operation">formula</a> to coordinate values. |
| The math transform does not know or care how the coordinates relate to positions in the real world. |
| For example if an affine transform scales <var>z</var> values by a factor of 1000, |
| then it could be converting metres to millimetres, or it could be converting kilometres to metres. |
| |
| <p><code>AbstractMathTransform</code> provides a convenient base class from which <code>MathTransform</code> implementations |
| can be easily derived. It also defines a few additional SIS-specific methods for convenience of performance. |
| The simplest way to implement this abstract class is to provide an implementation for the following methods only:</p> |
| |
| <ul> |
| <li><a href="#getSourceDimensions()"><code>getSourceDimensions()</code></a></li> |
| <li><a href="#getTargetDimensions()"><code>getTargetDimensions()</code></a></li> |
| <li><a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>transform(double[], int, double[], int, boolean)</code></a></li> |
| </ul> |
| |
| However, more performance may be gained by overriding the other <code>transform(…)</code> methods as well. |
| |
| <h2>Immutability and thread safety</h2> |
| All Apache SIS implementations of <code>MathTransform</code> are immutable and thread-safe. |
| It is highly recommended that third-party implementations be immutable and thread-safe too. |
| This means that unless otherwise noted in the javadoc, <code>MathTransform</code> instances can |
| be shared by many objects and passed between threads without synchronization. |
| |
| <h2>Serialization</h2> |
| <code>MathTransform</code> may or may not be serializable, at implementation choices. |
| Most Apache SIS implementations are serializable, but the serialized objects are not guaranteed to be compatible |
| with future SIS versions. Serialization should be used only for short term storage or RMI between applications |
| running the same SIS version.</div> |
| <dl class="notes"> |
| <dt>Since:</dt> |
| <dd>0.5</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="DefaultMathTransformFactory.html" title="class in org.apache.sis.referencing.operation.transform"><code>DefaultMathTransformFactory</code></a></li> |
| <li><a href="../AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation"><code>AbstractCoordinateOperation</code></a></li> |
| </ul> |
| </dd> |
| |
| <p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p> |
| </dl> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <li> |
| <section class="nested-class-summary" id="nested-class-summary"> |
| <h2>Nested Class Summary</h2> |
| <div class="caption"><span>Nested Classes</span></div> |
| <div class="summary-table three-column-summary"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Class</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>protected static class </code></div> |
| <div class="col-second even-row-color"><code><a href="AbstractMathTransform.Inverse.html" class="type-name-link" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform.Inverse</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Base class for implementations of inverse math transforms.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <li> |
| <section class="constructor-summary" id="constructor-summary"> |
| <h2>Constructor Summary</h2> |
| <div class="caption"><span>Constructors</span></div> |
| <div class="summary-table three-column-summary"> |
| <div class="table-header col-first">Modifier</div> |
| <div class="table-header col-second">Constructor</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>protected </code></div> |
| <div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">AbstractMathTransform</a>()</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Constructor for subclasses.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <li> |
| <section class="method-summary" id="method-summary"> |
| <h2>Method Summary</h2> |
| <div id="method-summary-table"> |
| <div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> |
| <div id="method-summary-table.tabpanel" role="tabpanel"> |
| <div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Method</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected int</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#computeHashCode()" class="member-name-link">computeHashCode</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Computes a hash value for this transform.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#derivative(org.opengis.geometry.DirectPosition)" class="member-name-link">derivative</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a> point)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Gets the derivative of this transform at a point.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> object)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Compares the specified object with this math transform for strict equality.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> object, |
| <a href="../../../util/ComparisonMode.html" title="enum class in org.apache.sis.util">ComparisonMode</a> mode)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Compares the specified object with this math transform for equality.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#formatTo(org.apache.sis.io.wkt.Formatter)" class="member-name-link">formatTo</a><wbr>(<a href="../../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a> formatter)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Formats the inner part of a <cite>Well Known Text</cite> version 1 (WKT 1) element.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="ContextualParameters.html" title="class in org.apache.sis.referencing.operation.transform">ContextualParameters</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getContextualParameters()" class="member-name-link">getContextualParameters</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the parameters for a sequence of <cite>normalize</cite> → <code>this</code> → <cite>denormalize</cite> |
| transforms (<i>optional operation</i>).</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/Envelope.html" title="class or interface in org.opengis.geometry" class="external-link">Envelope</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDomain(org.apache.sis.referencing.operation.transform.DomainDefinition)" class="member-name-link">getDomain</a><wbr>(<a href="DomainDefinition.html" title="class in org.apache.sis.referencing.operation.transform">DomainDefinition</a> criteria)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the ranges of coordinate values which can be used as inputs.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptorGroup</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getParameterDescriptors()" class="member-name-link">getParameterDescriptors</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the parameter descriptors for this math transform, or <code>null</code> if unknown.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getParameterValues()" class="member-name-link">getParameterValues</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the parameter values for this math transform, or <code>null</code> if unknown.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract int</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getSourceDimensions()" class="member-name-link">getSourceDimensions</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Returns the number of dimensions of input points.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract int</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getTargetDimensions()" class="member-name-link">getTargetDimensions</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Returns the number of dimensions of output points.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final int</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hashCode</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns a hash value for this transform.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#inverse()" class="member-name-link">inverse</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the inverse transform of this object.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isIdentity()" class="member-name-link">isIdentity</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Tests whether this transform does not move any points.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)" class="member-name-link">transform</a><wbr>(double[] srcPts, |
| int srcOff, |
| double[] dstPts, |
| int dstOff, |
| boolean derivate)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Transforms a single coordinate tuple in an array, and optionally computes the transform |
| derivative at that location.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#transform(double%5B%5D,int,double%5B%5D,int,int)" class="member-name-link">transform</a><wbr>(double[] srcPts, |
| int srcOff, |
| double[] dstPts, |
| int dstOff, |
| int numPts)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Transforms a list of coordinate tuples.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#transform(double%5B%5D,int,float%5B%5D,int,int)" class="member-name-link">transform</a><wbr>(double[] srcPts, |
| int srcOff, |
| float[] dstPts, |
| int dstOff, |
| int numPts)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Transforms a list of coordinate tuples.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#transform(float%5B%5D,int,double%5B%5D,int,int)" class="member-name-link">transform</a><wbr>(float[] srcPts, |
| int srcOff, |
| double[] dstPts, |
| int dstOff, |
| int numPts)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Transforms a list of coordinate tuples.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#transform(float%5B%5D,int,float%5B%5D,int,int)" class="member-name-link">transform</a><wbr>(float[] srcPts, |
| int srcOff, |
| float[] dstPts, |
| int dstOff, |
| int numPts)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Transforms a list of coordinate tuples.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)" class="member-name-link">transform</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a> ptSrc, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a> ptDst)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Transforms the specified <code>ptSrc</code> and stores the result in <code>ptDst</code>.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)" class="member-name-link">tryConcatenate</a><wbr>(boolean applyOtherFirst, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> other, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a> factory)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Concatenates or pre-concatenates in an optimized way this math transform with the given one, if possible.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-FormattableObject">Methods inherited from class <a href="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></h3> |
| <code><a href="../../../io/wkt/FormattableObject.html#print()">print</a>, <a href="../../../io/wkt/FormattableObject.html#toString()">toString</a>, <a href="../../../io/wkt/FormattableObject.html#toString(org.apache.sis.io.wkt.Convention)">toString</a>, <a href="../../../io/wkt/FormattableObject.html#toWKT()">toWKT</a></code></div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-Object">Methods inherited from class <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> |
| <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-MathTransform">Methods inherited from interface <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></h3> |
| <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#toWKT()" title="class or interface in org.opengis.referencing.operation" class="external-link">toWKT</a></code></div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <section class="details"> |
| <ul class="details-list"> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <li> |
| <section class="constructor-details" id="constructor-detail"> |
| <h2>Constructor Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="<init>()"> |
| <h3>AbstractMathTransform</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="element-name">AbstractMathTransform</span>()</div> |
| <div class="block">Constructor for subclasses.</div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| <!-- ============ METHOD DETAIL ========== --> |
| <li> |
| <section class="method-details" id="method-detail"> |
| <h2>Method Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="getSourceDimensions()"> |
| <h3>getSourceDimensions</h3> |
| <div class="member-signature"><span class="modifiers">public abstract</span> <span class="return-type">int</span> <span class="element-name">getSourceDimensions</span>()</div> |
| <div class="block">Returns the number of dimensions of input points.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#getSourceDimensions()" title="class or interface in org.opengis.referencing.operation" class="external-link">getSourceDimensions</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the number of dimensions of input points.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="../DefaultOperationMethod.html#getSourceDimensions()"><code>DefaultOperationMethod.getSourceDimensions()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getTargetDimensions()"> |
| <h3>getTargetDimensions</h3> |
| <div class="member-signature"><span class="modifiers">public abstract</span> <span class="return-type">int</span> <span class="element-name">getTargetDimensions</span>()</div> |
| <div class="block">Returns the number of dimensions of output points.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#getTargetDimensions()" title="class or interface in org.opengis.referencing.operation" class="external-link">getTargetDimensions</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the number of dimensions of output points.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="../DefaultOperationMethod.html#getTargetDimensions()"><code>DefaultOperationMethod.getTargetDimensions()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDomain(org.apache.sis.referencing.operation.transform.DomainDefinition)"> |
| <h3>getDomain</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a><<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/Envelope.html" title="class or interface in org.opengis.geometry" class="external-link">Envelope</a>></span> <span class="element-name">getDomain</span><wbr><span class="parameters">(<a href="DomainDefinition.html" title="class in org.apache.sis.referencing.operation.transform">DomainDefinition</a> criteria)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Returns the ranges of coordinate values which can be used as inputs. |
| They are limits where the transform is mathematically and numerically applicable. |
| This is <em>not</em> the domain of validity for which a coordinate reference system has been defined, |
| because this method ignores "real world" considerations such as datum and country boundaries. |
| |
| <p>This method is for allowing callers to crop their data for removing areas that may cause numerical problems. |
| For example, results of Mercator projection tend to infinity when the latitude value approaches a pole. |
| For avoiding data structures with unreasonably large values or <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Double.html#NaN" title="class or interface in java.lang" class="external-link"><code>Double.NaN</code></a>, |
| we commonly crop data to some arbitrary maximal latitude value (typically 80 or 84°) before projection. |
| Those limits are arbitrary, the transform does not become suddenly invalid after a limit. |
| The <a href="DomainDefinition.html" title="class in org.apache.sis.referencing.operation.transform"><code>DomainDefinition</code></a> gives some controls on the criteria for choosing a limit.</p> |
| |
| <p>Many transforms, in particular all affine transforms, have no mathematical limits. |
| Consequently, the default implementation returns an empty value. |
| Again it does not mean that the <a href="../AbstractCoordinateOperation.html" title="class in org.apache.sis.referencing.operation">coordinate operation</a> has no geospatial domain of validity, but the latter is not the purpose of this method. |
| This method is (for example) for preventing a viewer to crash when attempting to render a world-wide image.</p> |
| |
| <p>Callers do not need to search through <a href="MathTransforms.html#getSteps(org.opengis.referencing.operation.MathTransform)">transform steps</a>. |
| SIS implementation of <a href="MathTransforms.html#concatenate(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)"><code>concatenated transforms</code></a> |
| do that automatically.</p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>criteria</code> - controls the definition of transform domain.</dd> |
| <dt>Returns:</dt> |
| <dd>estimation of a domain where this transform is considered numerically applicable.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if the domain cannot be estimated.</dd> |
| <dt>Since:</dt> |
| <dd>1.3</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="MathTransforms.html#getDomain(org.opengis.referencing.operation.MathTransform)"><code>MathTransforms.getDomain(MathTransform)</code></a></li> |
| <li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html#getDomainOfValidity()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>CoordinateOperation.getDomainOfValidity()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getParameterDescriptors()"> |
| <h3>getParameterDescriptors</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterDescriptorGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterDescriptorGroup</a></span> <span class="element-name">getParameterDescriptors</span>()</div> |
| <div class="block">Returns the parameter descriptors for this math transform, or <code>null</code> if unknown. |
| |
| <div class="note"><b>Relationship with ISO 19111:</b> |
| This method is similar to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/OperationMethod.html#getParameters()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>OperationMethod.getParameters()</code></a>, except that typical |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>MathTransform</code></a> implementations return parameters in standard units (usually |
| <a href="../../../measure/Units.html#METRE">metres</a> or |
| <a href="../../../measure/Units.html#DEGREE">decimal degrees</a>). |
| </div></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../../../parameter/Parameterized.html#getParameterDescriptors()">getParameterDescriptors</a></code> in interface <code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the parameter descriptors for this math transform, or <code>null</code> if unspecified.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="../DefaultOperationMethod.html#getParameters()"><code>DefaultOperationMethod.getParameters()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getParameterValues()"> |
| <h3>getParameterValues</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/parameter/ParameterValueGroup.html" title="class or interface in org.opengis.parameter" class="external-link">ParameterValueGroup</a></span> <span class="element-name">getParameterValues</span>()</div> |
| <div class="block">Returns the parameter values for this math transform, or <code>null</code> if unknown. |
| This is not necessarily the parameters that the user specified at construction time, |
| since implementations may have applied normalizations. |
| |
| <h4>Normalized and contextual parameters</h4> |
| Most Apache SIS implementations of map projections perform their calculations on an ellipsoid |
| having a semi-major axis length of 1. In such cases, the group returned by this method contains |
| a <code>"semi_major"</code> parameter with a value of 1. If the real axis length is desired, we need |
| to take in account the context of this math transform, i.e. the scales and offsets applied before |
| and after this transform. This information is provided by <a href="#getContextualParameters()"><code>getContextualParameters()</code></a>.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../../../parameter/Parameterized.html#getParameterValues()">getParameterValues</a></code> in interface <code><a href="../../../parameter/Parameterized.html" title="interface in org.apache.sis.parameter">Parameterized</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the parameter values for this math transform, or <code>null</code> if unspecified. |
| Note that those parameters may be normalized (e.g. represent a transformation |
| of an ellipsoid of semi-major axis length of 1).</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#getContextualParameters()"><code>getContextualParameters()</code></a></li> |
| <li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/SingleOperation.html#getParameterValues()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>SingleOperation.getParameterValues()</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getContextualParameters()"> |
| <h3>getContextualParameters</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type"><a href="ContextualParameters.html" title="class in org.apache.sis.referencing.operation.transform">ContextualParameters</a></span> <span class="element-name">getContextualParameters</span>()</div> |
| <div class="block">Returns the parameters for a sequence of <cite>normalize</cite> → <code>this</code> → <cite>denormalize</cite> |
| transforms (<i>optional operation</i>). |
| |
| Subclasses can override this method if they choose to split their computation in linear and non-linear parts. |
| Such split is optional: it can leads to better performance (because SIS can concatenate efficiently consecutive |
| linear transforms), but should not change significantly the result (ignoring differences in rounding errors). |
| If a split has been done, then this <code>MathTransform</code> represents only the non-linear step and Apache SIS |
| needs this method for reconstructing the parameters of the complete transform.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the parameter values for the sequence of <cite>normalize</cite> → <code>this</code> → <cite>denormalize</cite> |
| transforms, or <code>null</code> if unspecified. |
| Callers should not modify the returned parameters, since modifications (if allowed) |
| will generally not be reflected back in this <code>MathTransform</code>.</dd> |
| <dt>Since:</dt> |
| <dd>0.6</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isIdentity()"> |
| <h3>isIdentity</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">isIdentity</span>()</div> |
| <div class="block">Tests whether this transform does not move any points. |
| The default implementation always returns <code>false</code>.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#isIdentity()" title="class or interface in org.opengis.referencing.operation" class="external-link">isIdentity</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)"> |
| <h3>transform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a></span> <span class="element-name">transform</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a> ptSrc, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a> ptDst)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Transforms the specified <code>ptSrc</code> and stores the result in <code>ptDst</code>. |
| The default implementation performs the following steps: |
| |
| <ul> |
| <li>Ensures that the dimension of the given points are consistent with the |
| <a href="#getSourceDimensions()">source</a> and <a href="#getTargetDimensions()">target dimensions</a> of this math transform.</li> |
| <li>Delegates to the <a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>transform(double[], int, double[], int, boolean)</code></a> method.</li> |
| </ul> |
| |
| This method does not update the associated <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/crs/CoordinateReferenceSystem.html" title="class or interface in org.opengis.referencing.crs" class="external-link"><code>CoordinateReferenceSystem</code></a> value.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)" title="class or interface in org.opengis.referencing.operation" class="external-link">transform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>ptSrc</code> - the coordinate tuple to be transformed.</dd> |
| <dd><code>ptDst</code> - the coordinate tuple that stores the result of transforming <code>ptSrc</code>, or <code>null</code>.</dd> |
| <dt>Returns:</dt> |
| <dd>the coordinate tuple after transforming <code>ptSrc</code> and storing the result in <code>ptDst</code>, |
| or a newly created point if <code>ptDst</code> was null.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/MismatchedDimensionException.html" title="class or interface in org.opengis.geometry" class="external-link">MismatchedDimensionException</a></code> - if <code>ptSrc</code> or <code>ptDst</code> doesn't have the expected dimension.</dd> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if the point cannot be transformed.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transform(double[],int,double[],int,boolean)"> |
| <h3>transform</h3> |
| <div class="member-signature"><span class="modifiers">public abstract</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></span> <span class="element-name">transform</span><wbr><span class="parameters">(double[] srcPts, |
| int srcOff, |
| double[] dstPts, |
| int dstOff, |
| boolean derivate)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Transforms a single coordinate tuple in an array, and optionally computes the transform |
| derivative at that location. Invoking this method is conceptually equivalent to running |
| the following: |
| |
| <blockquote><pre>Matrix derivative = <font color="green">null</font>; |
| <font color="green">if</font> (derivate) { |
| <font color="green">double</font>[] coordinates = Arrays.<b>copyOfRange</b>(srcPts, srcOff, srcOff + <b>getSourceDimensions</b>()); |
| derivative = <font color="green">this</font>.<b>derivative</b>(<font color="green">new</font> <b>GeneralDirectPosition</b>(coordinates)); |
| } |
| <font color="green">this</font>.<b>transform</b>(srcPts, srcOff, dstPts, dstOff, 1); <i><font color="gray">// May overwrite srcPts.</font></i> |
| <font color="green">return</font> derivative;</pre></blockquote> |
| |
| However, this method provides two advantages: |
| |
| <ul> |
| <li>It is usually easier to implement for <code>AbstractMathTransform</code> subclasses. |
| The default <a href="#transform(double%5B%5D,int,double%5B%5D,int,int)"><code>transform(double[], int, double[], int, int)</code></a> method implementation will invoke this |
| method in a loop, taking care of the <a href="IterationStrategy.html" title="enum class in org.apache.sis.referencing.operation.transform">iteration strategy</a> depending on the |
| argument value.</li> |
| |
| <li>When both the transformed point and its derivative are needed, this method may be significantly faster than |
| invoking the <code>transform</code> and <code>derivative</code> methods separately because many internal calculations are |
| the same. Computing those two information in a single step can help to reduce redundant calculation.</li> |
| </ul> |
| |
| <h4>Note for implementers</h4> |
| The source and destination may overlap. Consequently, implementers must read all source |
| coordinate values before to start writing the transformed coordinates in the destination array.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>srcPts</code> - the array containing the source coordinates (cannot be <code>null</code>).</dd> |
| <dd><code>srcOff</code> - the offset to the point to be transformed in the source array.</dd> |
| <dd><code>dstPts</code> - the array into which the transformed coordinates is returned. May be the same than <code>srcPts</code>. |
| May be <code>null</code> if only the derivative matrix is desired.</dd> |
| <dd><code>dstOff</code> - the offset to the location of the transformed point that is stored in the destination array.</dd> |
| <dd><code>derivate</code> - <code>true</code> for computing the derivative, or <code>false</code> if not needed.</dd> |
| <dt>Returns:</dt> |
| <dd>the matrix of the transform derivative at the given source position, |
| or <code>null</code> if the <code>derivate</code> argument is <code>false</code>.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if the point cannot be transformed or |
| if a problem occurred while calculating the derivative.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#derivative(org.opengis.geometry.DirectPosition)"><code>derivative(DirectPosition)</code></a></li> |
| <li><a href="#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)"><code>transform(DirectPosition, DirectPosition)</code></a></li> |
| <li><a href="MathTransforms.html#derivativeAndTransform(org.opengis.referencing.operation.MathTransform,double%5B%5D,int,double%5B%5D,int)"><code>MathTransforms.derivativeAndTransform(MathTransform, double[], int, double[], int)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transform(double[],int,double[],int,int)"> |
| <h3>transform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">transform</span><wbr><span class="parameters">(double[] srcPts, |
| int srcOff, |
| double[] dstPts, |
| int dstOff, |
| int numPts)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Transforms a list of coordinate tuples. This method is provided for efficiently transforming many points. |
| The supplied array of coordinate values will contain packed coordinate values. |
| |
| <div class="note"><b>Example:</b> if the source dimension is 3, then the coordinates will be packed in this order: |
| (<var>x₀</var>,<var>y₀</var>,<var>z₀</var>, |
| <var>x₁</var>,<var>y₁</var>,<var>z₁</var> …). |
| </div> |
| |
| The default implementation invokes <a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>transform(double[], int, double[], int, boolean)</code></a> in a loop, |
| using an <a href="IterationStrategy.html" title="enum class in org.apache.sis.referencing.operation.transform">iteration strategy</a> determined from the arguments for iterating |
| over the points. |
| |
| <div class="note"><b>Implementation note:</b> see <a href="IterationStrategy.html" title="enum class in org.apache.sis.referencing.operation.transform"><code>IterationStrategy</code></a> javadoc for a method skeleton.</div></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="external-link">transform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>srcPts</code> - the array containing the source point coordinates.</dd> |
| <dd><code>srcOff</code> - the offset to the first point to be transformed in the source array.</dd> |
| <dd><code>dstPts</code> - the array into which the transformed point coordinates are returned. |
| May be the same than <code>srcPts</code>.</dd> |
| <dd><code>dstOff</code> - the offset to the location of the first transformed point that is stored in the destination array.</dd> |
| <dd><code>numPts</code> - the number of point objects to be transformed.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if a point cannot be transformed. Some implementations will stop at the first failure, |
| wile some other implementations will fill the untransformable points with <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Double.html#NaN" title="class or interface in java.lang" class="external-link">Double.NaN</a> values, |
| continue and throw the exception only at end. Implementations that fall in the latter case should set the |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html#getLastCompletedTransform()" title="class or interface in org.opengis.referencing.operation" class="external-link">last completed transform</a> to <code>this</code>.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transform(float[],int,float[],int,int)"> |
| <h3>transform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">transform</span><wbr><span class="parameters">(float[] srcPts, |
| int srcOff, |
| float[] dstPts, |
| int dstOff, |
| int numPts)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Transforms a list of coordinate tuples. The default implementation delegates |
| to <a href="#transform(double%5B%5D,int,double%5B%5D,int,int)"><code>transform(double[], int, double[], int, int)</code></a> using a temporary array of doubles. |
| |
| <div class="note"><b>Implementation note:</b> see <a href="IterationStrategy.html" title="enum class in org.apache.sis.referencing.operation.transform"><code>IterationStrategy</code></a> javadoc for a method skeleton.</div></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#transform(float%5B%5D,int,float%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="external-link">transform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>srcPts</code> - the array containing the source point coordinates.</dd> |
| <dd><code>srcOff</code> - the offset to the first point to be transformed in the source array.</dd> |
| <dd><code>dstPts</code> - the array into which the transformed point coordinates are returned. |
| May be the same than <code>srcPts</code>.</dd> |
| <dd><code>dstOff</code> - the offset to the location of the first transformed point that is stored in the destination array.</dd> |
| <dd><code>numPts</code> - the number of point objects to be transformed.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if a point cannot be transformed. Some implementations will stop at the first failure, |
| wile some other implementations will fill the un-transformable points with <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Float.html#NaN" title="class or interface in java.lang" class="external-link"><code>Float.NaN</code></a> values, |
| continue and throw the exception only at end. Implementations that fall in the latter case should set |
| the <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html#getLastCompletedTransform()" title="class or interface in org.opengis.referencing.operation" class="external-link">last completed transform</a> to <code>this</code>.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transform(double[],int,float[],int,int)"> |
| <h3>transform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">transform</span><wbr><span class="parameters">(double[] srcPts, |
| int srcOff, |
| float[] dstPts, |
| int dstOff, |
| int numPts)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Transforms a list of coordinate tuples. The default implementation delegates |
| to <a href="#transform(double%5B%5D,int,double%5B%5D,int,int)"><code>transform(double[], int, double[], int, int)</code></a> using a temporary array of doubles.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#transform(double%5B%5D,int,float%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="external-link">transform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>srcPts</code> - the array containing the source point coordinates.</dd> |
| <dd><code>srcOff</code> - the offset to the first point to be transformed in the source array.</dd> |
| <dd><code>dstPts</code> - the array into which the transformed point coordinates are returned.</dd> |
| <dd><code>dstOff</code> - the offset to the location of the first transformed point that is stored in the destination array.</dd> |
| <dd><code>numPts</code> - the number of point objects to be transformed.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if a point cannot be transformed. Some implementations will stop at the first failure, |
| wile some other implementations will fill the untransformable points with <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Float.html#NaN" title="class or interface in java.lang" class="external-link">Float.NaN</a> values, |
| continue and throw the exception only at end. Implementations that fall in the latter case should set the |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html#getLastCompletedTransform()" title="class or interface in org.opengis.referencing.operation" class="external-link">last completed transform</a> to <code>this</code>.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transform(float[],int,double[],int,int)"> |
| <h3>transform</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">transform</span><wbr><span class="parameters">(float[] srcPts, |
| int srcOff, |
| double[] dstPts, |
| int dstOff, |
| int numPts)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Transforms a list of coordinate tuples. The default implementation delegates |
| to <a href="#transform(double%5B%5D,int,double%5B%5D,int,int)"><code>transform(double[], int, double[], int, int)</code></a> using a temporary array of doubles |
| if necessary.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#transform(float%5B%5D,int,double%5B%5D,int,int)" title="class or interface in org.opengis.referencing.operation" class="external-link">transform</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>srcPts</code> - the array containing the source point coordinates.</dd> |
| <dd><code>srcOff</code> - the offset to the first point to be transformed in the source array.</dd> |
| <dd><code>dstPts</code> - the array into which the transformed point coordinates are returned.</dd> |
| <dd><code>dstOff</code> - the offset to the location of the first transformed point that is stored in the destination array.</dd> |
| <dd><code>numPts</code> - the number of point objects to be transformed.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if a point cannot be transformed. Some implementations will stop at the first failure, |
| wile some other implementations will fill the untransformable points with <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Double.html#NaN" title="class or interface in java.lang" class="external-link">Double.NaN</a> values, |
| continue and throw the exception only at end. Implementations that fall in the latter case should set the |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html#getLastCompletedTransform()" title="class or interface in org.opengis.referencing.operation" class="external-link">last completed transform</a> to <code>this</code>.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="derivative(org.opengis.geometry.DirectPosition)"> |
| <h3>derivative</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></span> <span class="element-name">derivative</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/DirectPosition.html" title="class or interface in org.opengis.geometry" class="external-link">DirectPosition</a> point)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></span></div> |
| <div class="block">Gets the derivative of this transform at a point. |
| The default implementation performs the following steps: |
| |
| <ul> |
| <li>Ensure that the <code>point</code> dimension is equal to this math transform |
| <a href="#getSourceDimensions()">source dimensions</a>.</li> |
| <li>Copy the coordinates in a temporary array and pass that array to the |
| <a href="#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>transform(double[], int, double[], int, boolean)</code></a> method, |
| with the <code>derivate</code> boolean argument set to <code>true</code>.</li> |
| <li>If the latter method returned a non-null matrix, returns that matrix. |
| Otherwise throws <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>TransformException</code></a>.</li> |
| </ul></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#derivative(org.opengis.geometry.DirectPosition)" title="class or interface in org.opengis.referencing.operation" class="external-link">derivative</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>point</code> - the coordinate tuple where to evaluate the derivative.</dd> |
| <dt>Returns:</dt> |
| <dd>the derivative at the specified point (never <code>null</code>).</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the derivative depends on coordinates and <code>point</code> is <code>null</code>.</dd> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/geometry/MismatchedDimensionException.html" title="class or interface in org.opengis.geometry" class="external-link">MismatchedDimensionException</a></code> - if <code>point</code> does not have the expected dimension.</dd> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/TransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">TransformException</a></code> - if the derivative cannot be evaluated at the specified point.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="inverse()"> |
| <h3>inverse</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">inverse</span>() |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/NoninvertibleTransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">NoninvertibleTransformException</a></span></div> |
| <div class="block">Returns the inverse transform of this object. The default implementation returns |
| <code>this</code> if this transform is an <a href="#isIdentity()">identity</a> transform, |
| or throws an exception otherwise. Subclasses should override this method. |
| |
| <div class="note"><b>Implementation note:</b> the <a href="AbstractMathTransform.Inverse.html" title="class in org.apache.sis.referencing.operation.transform"><code>AbstractMathTransform.Inverse</code></a> inner class can be used as |
| a base for inverse transform implementations.</div></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#inverse()" title="class or interface in org.opengis.referencing.operation" class="external-link">inverse</a></code> in interface <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></code></dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/NoninvertibleTransformException.html" title="class or interface in org.opengis.referencing.operation" class="external-link">NoninvertibleTransformException</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)"> |
| <h3>tryConcatenate</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a></span> <span class="element-name">tryConcatenate</span><wbr><span class="parameters">(boolean applyOtherFirst, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform</a> other, |
| <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransformFactory.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransformFactory</a> factory)</span> |
| throws <span class="exceptions"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></span></div> |
| <div class="block">Concatenates or pre-concatenates in an optimized way this math transform with the given one, if possible. |
| If an optimization is possible, a new math transform is created to perform the combined transformation. |
| The <code>applyOtherFirst</code> value determines the transformation order as bellow: |
| |
| <ul> |
| <li>If <code>applyOtherFirst</code> is <code>true</code>, then transforming a point |
| <var>p</var> by the combined transform is equivalent to first transforming |
| <var>p</var> by <code>other</code> and then transforming the result by <code>this</code>.</li> |
| <li>If <code>applyOtherFirst</code> is <code>false</code>, then transforming a point |
| <var>p</var> by the combined transform is equivalent to first transforming |
| <var>p</var> by <code>this</code> and then transforming the result by <code>other</code>.</li> |
| </ul> |
| |
| If no optimization is available for the combined transform, then this method returns <code>null</code>. |
| In the latter case, the concatenation will be prepared by <a href="DefaultMathTransformFactory.html" title="class in org.apache.sis.referencing.operation.transform"><code>DefaultMathTransformFactory</code></a> using |
| a generic implementation. |
| |
| <p>The default implementation returns the identity transform if the other transform is the inverse |
| of this transform, or returns <code>null</code> otherwise. This method is ought to be overridden |
| by subclasses capable of concatenating some combination of transforms in a special way. |
| <a href="LinearTransform.html" title="interface in org.apache.sis.referencing.operation.transform"><code>LinearTransform</code></a> implementations do not need to override this method since matrix multiplications |
| will be handled automatically, and this method does not need to handle the <a href="#isIdentity()"><code>isIdentity()</code></a> case.</p></div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>applyOtherFirst</code> - <code>true</code> if the transformation order is <code>other</code> followed by <code>this</code>, or |
| <code>false</code> if the transformation order is <code>this</code> followed by <code>other</code>.</dd> |
| <dd><code>other</code> - the other math transform to (pre-)concatenate with this transform.</dd> |
| <dd><code>factory</code> - the factory which is (indirectly) invoking this method, or <code>null</code> if none.</dd> |
| <dt>Returns:</dt> |
| <dd>the math transforms combined in an optimized way, or <code>null</code> if no such optimization is available.</dd> |
| <dt>Throws:</dt> |
| <dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/util/FactoryException.html" title="class or interface in org.opengis.util" class="external-link">FactoryException</a></code> - if an error occurred while combining the transforms.</dd> |
| <dt>Since:</dt> |
| <dd>0.8</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="DefaultMathTransformFactory.html#createConcatenatedTransform(org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransform)"><code>DefaultMathTransformFactory.createConcatenatedTransform(MathTransform, MathTransform)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="hashCode()"> |
| <h3>hashCode</h3> |
| <div class="member-signature"><span class="modifiers">public final</span> <span class="return-type">int</span> <span class="element-name">hashCode</span>()</div> |
| <div class="block">Returns a hash value for this transform. This method invokes <a href="#computeHashCode()"><code>computeHashCode()</code></a> |
| when first needed and caches the value for future invocations. Subclasses shall override |
| <code>computeHashCode()</code> instead of this method.</div> |
| <dl class="notes"> |
| <dt>Overrides:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a></code> in class <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the hash code value. This value may change between different execution of the Apache SIS library.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="computeHashCode()"> |
| <h3>computeHashCode</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type">int</span> <span class="element-name">computeHashCode</span>()</div> |
| <div class="block">Computes a hash value for this transform. This method is invoked by <a href="#hashCode()"><code>hashCode()</code></a> when first needed.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the hash code value. This value may change between different execution of the Apache SIS library.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="equals(java.lang.Object)"> |
| <h3>equals</h3> |
| <div class="member-signature"><span class="modifiers">public final</span> <span class="return-type">boolean</span> <span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> object)</span></div> |
| <div class="block">Compares the specified object with this math transform for strict equality. |
| This method is implemented as below (omitting assertions): |
| |
| <blockquote><pre><font color="green">return</font> <b>equals</b>(other, ComparisonMode.STRICT);</pre></blockquote></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../../../util/LenientComparable.html#equals(java.lang.Object)">equals</a></code> in interface <code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">LenientComparable</a></code></dd> |
| <dt>Overrides:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code> in class <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>object</code> - the object to compare with this transform.</dd> |
| <dt>Returns:</dt> |
| <dd><code>true</code> if the given object is a transform of the same class and using the same parameter values.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../util/ComparisonMode.html#STRICT"><code>ComparisonMode.STRICT</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="equals(java.lang.Object,org.apache.sis.util.ComparisonMode)"> |
| <h3>equals</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> object, |
| <a href="../../../util/ComparisonMode.html" title="enum class in org.apache.sis.util">ComparisonMode</a> mode)</span></div> |
| <div class="block">Compares the specified object with this math transform for equality. |
| Two math transforms are considered equal if, given identical source positions, their |
| <a href="#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)">transformed</a> positions would be |
| equal or <a href="../../../util/ComparisonMode.html#APPROXIMATE"><code>approximately</code></a> equal. |
| This method may conservatively returns <code>false</code> if unsure. |
| |
| <p>The default implementation returns <code>true</code> if the following conditions are met:</p> |
| <ul> |
| <li><code>object</code> is an instance of the same class than <code>this</code>. We require the |
| same class because there is no interface for the various kinds of transform.</li> |
| <li>If the hash code value has already been <a href="#computeHashCode()">computed</a> for both |
| instances, their values are the same <i>(opportunist performance enhancement)</i>.</li> |
| <li>The <a href="#getContextualParameters()">contextual parameters</a> are equal according |
| the given comparison mode.</li> |
| </ul></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../../../util/LenientComparable.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code> in interface <code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">LenientComparable</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>object</code> - the object to compare with this transform.</dd> |
| <dd><code>mode</code> - the strictness level of the comparison. Default to <a href="../../../util/ComparisonMode.html#STRICT"><code>STRICT</code></a>.</dd> |
| <dt>Returns:</dt> |
| <dd><code>true</code> if the given object is considered equals to this math transform.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="../../../util/Utilities.html#deepEquals(java.lang.Object,java.lang.Object,org.apache.sis.util.ComparisonMode)"><code>Utilities.deepEquals(Object, Object, ComparisonMode)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="formatTo(org.apache.sis.io.wkt.Formatter)"> |
| <h3>formatTo</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span> <span class="element-name">formatTo</span><wbr><span class="parameters">(<a href="../../../io/wkt/Formatter.html" title="class in org.apache.sis.io.wkt">Formatter</a> formatter)</span></div> |
| <div class="block">Formats the inner part of a <cite>Well Known Text</cite> version 1 (WKT 1) element. |
| The default implementation formats all parameter values returned by <a href="#getParameterValues()"><code>getParameterValues()</code></a>. |
| The parameter group name is used as the math transform name. |
| |
| <div class="note"><b>Compatibility note:</b> |
| <code>Param_MT</code> is defined in the WKT 1 specification only. |
| If the <a href="../../../io/wkt/Formatter.html#getConvention()">formatter convention</a> is set to WKT 2, |
| then this method silently uses the WKT 1 convention without raising an error |
| (unless this <code>MathTransform</code> cannot be formatted as valid WKT 1 neither).</div></div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../../../io/wkt/FormattableObject.html#formatTo(org.apache.sis.io.wkt.Formatter)">formatTo</a></code> in class <code><a href="../../../io/wkt/FormattableObject.html" title="class in org.apache.sis.io.wkt">FormattableObject</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>formatter</code> - the formatter to use.</dd> |
| <dt>Returns:</dt> |
| <dd>the WKT element name, which is <code>"Param_MT"</code> in the default implementation.</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="DefaultMathTransformFactory.html#createFromWKT(java.lang.String)"><code>DefaultMathTransformFactory.createFromWKT(String)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <!-- ========= END OF CLASS DATA ========= --> |
| </main> |
| <footer role="contentinfo"> |
| <hr> |
| <p class="legal-copy"><small>Copyright © 2010–2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </footer> |
| </div> |
| </div> |
| </body> |
| </html> |