blob: 0ae6245736b278e27d369fd1a8045272be870764 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>AbstractMathTransform2D (Apache SIS 1.4 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="dc.created" content="2023-10-05">
<meta name="description" content="declaration: module: org.apache.sis.referencing, package: org.apache.sis.referencing.operation.transform, class: AbstractMathTransform2D">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.referencing.operation.transform.AbstractMathTransform2D class">
<meta name="keywords" content="DIMENSION">
<meta name="keywords" content="getSourceDimensions()">
<meta name="keywords" content="getTargetDimensions()">
<meta name="keywords" content="transform()">
<meta name="keywords" content="createTransformedShape()">
<meta name="keywords" content="derivative()">
<meta name="keywords" content="inverse()">
<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">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-3.6.1.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">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</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="../../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</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><a href="#field-summary">Field</a></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><a href="#field-detail">Field</a></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:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</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="module-label-in-type">Module</span>&nbsp;<a href="../../../../../../module-summary.html">org.apache.sis.referencing</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.referencing.operation.transform</a></div>
<h1 title="Class AbstractMathTransform2D" class="title">Class AbstractMathTransform2D</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/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"><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a>
<div class="inheritance">AbstractMathTransform2D</div>
</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="../../../../../../../org.apache.sis.util/org/apache/sis/util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</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">Math­Transform</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform2D</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="PoleRotation.html" title="class in org.apache.sis.referencing.operation.transform">Pole­Rotation</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">AbstractMathTransform2D</span>
<span class="extends-implements">extends <a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a>
implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform2D</a></span></div>
<div class="block">Base class for math transforms that are known to be two-dimensional in all cases.
Two-dimensional math transforms are not required to extend this class,
however doing so may simplify their implementation.
<p>The simplest way to implement this abstract class is to provide an implementation for the following methods
only:</p>
<ul>
<li><a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>Abstract­Math­Transform​.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 id="immutability-and-thread-safety-heading">Immutability and thread safety</h2>
All Apache SIS implementations of <code>Math­Transform2D</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>Math­Transform2D</code> instances can
be shared by many objects and passed between threads without synchronization.
<h2 id="serialization-heading">Serialization</h2>
<code>Math­Transform2D</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>
</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&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="AbstractMathTransform2D.Inverse.html" class="type-name-link" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform2D​.Inverse</a></code></div>
<div class="col-last even-row-color">
<div class="block">Base class for implementation of inverse math transforms.</div>
</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</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">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected static final int</code></div>
<div class="col-second even-row-color"><code><a href="#DIMENSION" class="member-name-link">DIMENSION</a></code></div>
<div class="col-last even-row-color">
<div class="block">Number of input and output dimensions of all <code>Abstract­Math­Transform2D</code>, which is 2.</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">Abstract­Math­Transform2D</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-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><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/Shape.html" title="class or interface in java.awt" class="external-link">Shape</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createTransformedShape(java.awt.Shape)" class="member-name-link">create­Transformed­Shape</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/Shape.html" title="class or interface in java.awt" class="external-link">Shape</a>&nbsp;shape)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Transforms the specified shape.</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(java.awt.geom.Point2D)" class="member-name-link">derivative</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</a>&nbsp;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 int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSourceDimensions()" class="member-name-link">get­Source­Dimensions</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 dimension of input points, which is always <a href="#DIMENSION">2</a>.</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="#getTargetDimensions()" class="member-name-link">get­Target­Dimensions</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 dimension of output points, which is always <a href="#DIMENSION">2</a>.</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/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform2D</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><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</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(java.awt.geom.Point2D,java.awt.geom.Point2D)" class="member-name-link">transform</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</a>&nbsp;pt­Src,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</a>&nbsp;pt­Dst)</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>pt­Src</code> and stores the result in <code>pt­Dst</code>.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-AbstractMathTransform">Methods inherited from class&nbsp;<a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">AbstractMathTransform</a></h3>
<code><a href="AbstractMathTransform.html#computeHashCode()">compute­Hash­Code</a>, <a href="AbstractMathTransform.html#derivative(org.opengis.geometry.DirectPosition)">derivative</a>, <a href="AbstractMathTransform.html#equals(java.lang.Object)">equals</a>, <a href="AbstractMathTransform.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a>, <a href="AbstractMathTransform.html#formatTo(org.apache.sis.io.wkt.Formatter)">format­To</a>, <a href="AbstractMathTransform.html#getContextualParameters()">get­Contextual­Parameters</a>, <a href="AbstractMathTransform.html#getDomain(org.apache.sis.referencing.operation.transform.DomainDefinition)">get­Domain</a>, <a href="AbstractMathTransform.html#getParameterDescriptors()">get­Parameter­Descriptors</a>, <a href="AbstractMathTransform.html#getParameterValues()">get­Parameter­Values</a>, <a href="AbstractMathTransform.html#hashCode()">hash­Code</a>, <a href="AbstractMathTransform.html#isIdentity()">is­Identity</a>, <a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,boolean)">transform</a>, <a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(double%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(float%5B%5D,int,double%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(float%5B%5D,int,float%5B%5D,int,int)">transform</a>, <a href="AbstractMathTransform.html#transform(org.opengis.geometry.DirectPosition,org.opengis.geometry.DirectPosition)">transform</a>, <a href="AbstractMathTransform.html#tryConcatenate(boolean,org.opengis.referencing.operation.MathTransform,org.opengis.referencing.operation.MathTransformFactory)">try­Concatenate</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-FormattableObject">Methods inherited from class&nbsp;<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()">to­String</a>, <a href="../../../io/wkt/FormattableObject.html#toString(org.apache.sis.io.wkt.Convention)">to­String</a>, <a href="../../../io/wkt/FormattableObject.html#toWKT()">to­WKT</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/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/11/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/11/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/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/11/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/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/11/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/11/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/11/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&nbsp;<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#derivative(org.opengis.geometry.DirectPosition)" title="class or interface in org.opengis.referencing.operation" class="external-link">derivative</a>, <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">is­Identity</a>, <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">to­WKT</a>, <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>, <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>, <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>, <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>, <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></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="DIMENSION">
<h3>DIMENSION</h3>
<div class="member-signature"><span class="modifiers">protected static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">DIMENSION</span></div>
<div class="block">Number of input and output dimensions of all <code>Abstract­Math­Transform2D</code>, which is 2.
We define this constant for clarity only; its value shall not be modified.
This is used for making clearer in the code when the literal 2 stands for the number of dimensions.
It reduces confusion in contexts where the literal 2 also appear for other meanings than the number
of dimensions.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>1.2</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#getSourceDimensions()"><code>get­Source­Dimensions()</code></a></li>
<li><a href="#getTargetDimensions()"><code>get­Target­Dimensions()</code></a></li>
<li><a href="../../../../../../../constant-values.html#org.apache.sis.referencing.operation.transform.AbstractMathTransform2D.DIMENSION">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>AbstractMathTransform2D</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">AbstractMathTransform2D</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 final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getSourceDimensions</span>()</div>
<div class="block">Returns the dimension of input points, which is always <a href="#DIMENSION">2</a>.</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">get­Source­Dimensions</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="AbstractMathTransform.html#getSourceDimensions()">get­Source­Dimensions</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt>Returns:</dt>
<dd>the number of dimensions of input points.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="../DefaultOperationMethod.html#getSourceDimensions()"><code>Default­Operation­Method​.get­Source­Dimensions()</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 final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getTargetDimensions</span>()</div>
<div class="block">Returns the dimension of output points, which is always <a href="#DIMENSION">2</a>.</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">get­Target­Dimensions</a></code>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="AbstractMathTransform.html#getTargetDimensions()">get­Target­Dimensions</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</a></code></dd>
<dt>Returns:</dt>
<dd>the number of dimensions of output points.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="../DefaultOperationMethod.html#getTargetDimensions()"><code>Default­Operation­Method​.get­Target­Dimensions()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="transform(java.awt.geom.Point2D,java.awt.geom.Point2D)">
<h3>transform</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</a></span>&nbsp;<span class="element-name">transform</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</a>&nbsp;ptSrc,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</a>&nbsp;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>pt­Src</code> and stores the result in <code>pt­Dst</code>.
The default implementation invokes <a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>Abstract­Math­Transform​.transform(double[], int, double[], int, boolean)</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/MathTransform2D.html#transform(java.awt.geom.Point2D,java.awt.geom.Point2D)" title="class or interface in org.opengis.referencing.operation" class="external-link">transform</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform2D</a></code></dd>
<dt>Parameters:</dt>
<dd><code>pt­Src</code> - the coordinate tuple to be transformed.</dd>
<dd><code>pt­Dst</code> - the coordinate tuple that stores the result of transforming <code>pt­Src</code>,
or <code>null</code> if a new point shall be created.</dd>
<dt>Returns:</dt>
<dd>the coordinate tuple after transforming <code>pt­Src</code> and storing the result in <code>pt­Dst</code>,
or in a new point if <code>pt­Dst</code> was null.</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">Transform­Exception</a></code> - if the point cannot be transformed.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html#transform(java.awt.geom.Point2D,java.awt.geom.Point2D)" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Math­Transform2D​.transform(Point2D, Point2D)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createTransformedShape(java.awt.Shape)">
<h3>createTransformedShape</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/Shape.html" title="class or interface in java.awt" class="external-link">Shape</a></span>&nbsp;<span class="element-name">createTransformedShape</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/Shape.html" title="class or interface in java.awt" class="external-link">Shape</a>&nbsp;shape)</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 shape. The default implementation computes quadratic curves
using three points for each line segment in the shape. The returned object is often
a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Path2D.html" title="class or interface in java.awt.geom" class="external-link"><code>Path2D</code></a>, but may also be a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Line2D.html" title="class or interface in java.awt.geom" class="external-link"><code>Line2D</code></a> or a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/QuadCurve2D.html" title="class or interface in java.awt.geom" class="external-link"><code>Quad­Curve2D</code></a> if such
simplification is possible.</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/MathTransform2D.html#createTransformedShape(java.awt.Shape)" title="class or interface in org.opengis.referencing.operation" class="external-link">create­Transformed­Shape</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform2D</a></code></dd>
<dt>Parameters:</dt>
<dd><code>shape</code> - shape to transform.</dd>
<dt>Returns:</dt>
<dd>transformed shape, or <code>shape</code> if this transform is the identity transform.</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">Transform­Exception</a></code> - if a transform failed.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="derivative(java.awt.geom.Point2D)">
<h3>derivative</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<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>&nbsp;<span class="element-name">derivative</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Point2D.html" title="class or interface in java.awt.geom" class="external-link">Point2D</a>&nbsp;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>Copy the coordinates in a temporary array and pass that array to the
<a href="AbstractMathTransform.html#transform(double%5B%5D,int,double%5B%5D,int,boolean)"><code>Abstract­Math­Transform​.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>Transform­Exception</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/MathTransform2D.html#derivative(java.awt.geom.Point2D)" title="class or interface in org.opengis.referencing.operation" class="external-link">derivative</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform2D</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 as a 2×2 matrix.</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">Transform­Exception</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>&nbsp;<span class="return-type"><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">MathTransform2D</a></span>&nbsp;<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 identity transform,
or throws an exception otherwise. Subclasses should override this method.</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>&nbsp;in interface&nbsp;<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">Math­Transform</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html#inverse()" title="class or interface in org.opengis.referencing.operation" class="external-link">inverse</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform2D.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Math­Transform2D</a></code></dd>
<dt>Overrides:</dt>
<dd><code><a href="AbstractMathTransform.html#inverse()">inverse</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMathTransform.html" title="class in org.apache.sis.referencing.operation.transform">Abstract­Math­Transform</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">Noninvertible­Transform­Exception</a></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>