blob: 6a3f759490f175073b3db147e6817856e03bba3b [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 05 19:54:57 CEST 2023 -->
<title>GridOrientation (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.feature, package: org.apache.sis.coverage.grid, class: GridOrientation">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.coverage.grid.GridOrientation class">
<meta name="keywords" content="HOMOTHETY">
<meta name="keywords" content="REFLECTION_Y">
<meta name="keywords" content="DISPLAY">
<meta name="keywords" content="flipGridAxis()">
<meta name="keywords" content="useVariantOfCRS()">
<meta name="keywords" content="canReorderGridAxis()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="hashCode()">
<meta name="keywords" content="toString()">
<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>Nested</li>
<li><a href="#field-summary">Field</a></li>
<li>Constr</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>Constr</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>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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.feature</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.coverage.grid</a></div>
<h1 title="Class GridOrientation" class="title">Class GridOrientation</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">GridOrientation</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">GridOrientation</span>
<span class="extends-implements">extends <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>
implements <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></span></div>
<div class="block">High-level description about how a grid is orientated relative to the CRS axes. The orientation of a grid
is closely related to the <a href="GridGeometry.html#getGridToCRS(org.opengis.referencing.datum.PixelInCell)">grid to CRS</a> transform.
For example, the conversion from grid coordinates to CRS coordinates may flip the <var>y</var> axis
(grid coordinates increasing toward down on screen), or may swap <var>x</var> and <var>y</var> axes, <i>etc.</i>
The constants enumerated in this class cover only a few common cases where the grid is
<a href="https://en.wikipedia.org/wiki/Axis-aligned_object">axis-aligned</a> with the CRS.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>1.1</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="GridGeometry.html#%3Cinit%3E(org.apache.sis.coverage.grid.GridExtent,org.opengis.geometry.Envelope,org.apache.sis.coverage.grid.GridOrientation)"><code>Grid­Geometry(Grid­Extent, Envelope, Grid­Orientation)</code></a></li>
<li><a href="../../../../../../serialized-form.html#org.apache.sis.coverage.grid.GridOrientation">Serialized Form</a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== 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>static final <a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">Grid­Orientation</a></code></div>
<div class="col-second even-row-color"><code><a href="#DISPLAY" class="member-name-link">DISPLAY</a></code></div>
<div class="col-last even-row-color">
<div class="block">CRS axes are reordered and oriented toward directions commonly used for displaying purpose.</div>
</div>
<div class="col-first odd-row-color"><code>static final <a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">Grid­Orientation</a></code></div>
<div class="col-second odd-row-color"><code><a href="#HOMOTHETY" class="member-name-link">HOMOTHETY</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The <code>grid­To­CRS</code> transform applies only scales and translations (no axis flip or swap).</div>
</div>
<div class="col-first even-row-color"><code>static final <a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">Grid­Orientation</a></code></div>
<div class="col-second even-row-color"><code><a href="#REFLECTION_Y" class="member-name-link">REFLECTION_Y</a></code></div>
<div class="col-last even-row-color">
<div class="block">The <code>grid­To­CRS</code> transform applies scales and translations with a flip of the second axis (<var>y</var>).</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="GridOrientation.html" title="class in org.apache.sis.coverage.grid">Grid­Orientation</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#canReorderGridAxis(boolean)" class="member-name-link">can­Reorder­Grid­Axis</a><wbr>(boolean&nbsp;enabled)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Specifies whether a change of CRS axis order should be accompanied by an equivalent change of grid axis order.</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)" class="member-name-link">equals</a><wbr>(<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>&nbsp;other)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns whether this object is equal to the given object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">Grid­Orientation</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#flipGridAxis(int)" class="member-name-link">flip­Grid­Axis</a><wbr>(int&nbsp;dimension)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Reverses axis direction in the specified grid dimension.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>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">hash­Code</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 code value for this grid orientation.</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/11/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="#toString()" class="member-name-link">to­String</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 a string representation of this grid orientation.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">Grid­Orientation</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#useVariantOfCRS(org.apache.sis.referencing.cs.AxesConvention)" class="member-name-link">use­Variant­Of­CRS</a><wbr>(<a href="../../../../../../org.apache.sis.referencing/org/apache/sis/referencing/cs/AxesConvention.html" title="enum class in org.apache.sis.referencing.cs">Axes­Convention</a>&nbsp;variant)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Substitutes the user-specified CRS by a variant of it, for example with different axis order.</div>
</div>
</div>
</div>
</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>
</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="HOMOTHETY">
<h3>HOMOTHETY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">GridOrientation</a></span>&nbsp;<span class="element-name">HOMOTHETY</span></div>
<div class="block">The <code>grid­To­CRS</code> transform applies only scales and translations (no axis flip or swap).
Moving along the grid axis in dimension <var>i</var> causes a displacement along the CRS axis
in the same dimension <var>i</var>.
In matrix terms all non-zero coefficients are on the diagonal or in the translation column.
For example, in the three-dimensional case:
<pre class="math">
┌ ┐
│ Sx 0 0 Tx │
│ 0 Sy 0 Ty │
│ 0 0 Sz Tz │
│ 0 0 0 1 │
└ ┘</pre>
with
<var>S<sub>x</sub></var> &gt; 0,
<var>S<sub>y</sub></var> &gt; 0 and
<var>S<sub>z</sub></var> &gt; 0.</div>
</section>
</li>
<li>
<section class="detail" id="REFLECTION_Y">
<h3>REFLECTION_Y</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">GridOrientation</a></span>&nbsp;<span class="element-name">REFLECTION_Y</span></div>
<div class="block">The <code>grid­To­CRS</code> transform applies scales and translations with a flip of the second axis (<var>y</var>).
This is equivalent to <code>HOMOTHETY​.flip­Grid­Axis(1)</code>; i.e.
this is the same kind of conversion than <a href="#HOMOTHETY"><code>HOMOTHETY</code></a> except that the <var>S<sub>y</sub></var> term in
the matrix is replaced by −<var>S<sub>y</sub></var> and the <var>T<sub>y</sub></var> term has a different value.
For example in the three-dimensional case, the <code>grid­To­CRS</code> transform is:
<pre class="math">
┌ ┐
│ Sx 0 0 Tx │
│ 0 −Sy 0 Ty′ │
│ 0 0 Sz Tz │
│ 0 0 0 1 │
└ ┘</pre>
<h4 id="when-to-use-heading">When to use</h4>
<code>REFLECTION_Y</code> is commonly used when the grid is a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a>.
By contrast, an <a href="#HOMOTHETY"><code>HOMOTHETY</code></a> transform often results in <var>y</var> axis oriented toward up,
instead of down as commonly expected with rendered images.
This <code>REFLECTION_Y</code> value matches the common usage for grids backed by images.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#flipGridAxis(int)"><code>flip­Grid­Axis(int)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="DISPLAY">
<h3>DISPLAY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">GridOrientation</a></span>&nbsp;<span class="element-name">DISPLAY</span></div>
<div class="block">CRS axes are reordered and oriented toward directions commonly used for displaying purpose.
This is equivalent to <code>REFLECTION_Y​.use­Variant­Of­CRS(Axes­Convention​.DISPLAY_ORIENTED)</code>.
<a href="GridGeometry.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Geometry</code></a>s created with this orientation have properties computed as below:
<ul>
<li>The <a href="GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a> specified by user (never modified).</li>
<li>An envelope initialized to user-specified envelope (potentially modified as described below).</li>
<li>A <code>grid­To­CRS</code> initialized to <a href="#REFLECTION_Y"><code>REFLECTION_Y</code></a> (potentially modified as described below).</li>
<li>The <a href="../../../../../../org.apache.sis.referencing/org/apache/sis/referencing/cs/AxesConvention.html#DISPLAY_ORIENTED">display oriented</a> variant of the CRS specified by user.</li>
<li>If above CRS variant is same as user-specified CRS, we are done. Otherwise:
<ul>
<li>Envelope dimensions are reordered to match axis order in above CRS variant
Those changes are applied on a copy of user-specified envelope.</li>
<li>The <code>grid­To­CRS</code> transform is amended with the same reordering (applied on columns)
as for envelope.</li>
</ul>
</li>
</ul>
Below is an example of <code>grid­To­CRS</code> transform obtained when the display-oriented CRS variant
is different than the user-specified CRS (if those CRSs are equal, then the transform is rather
like the one shown in <a href="#REFLECTION_Y"><code>REFLECTION_Y</code></a>):
<pre class="math">
┌ ┐
│ 0 Sx 0 Tx │
│ −Sy 0 0 Ty′ │
│ 0 0 Sz Tz │
│ 0 0 0 1 │
└ ┘</pre>
<h4 id="when-to-use-heading1">When to use</h4>
This orientation can be used for deriving a coordinate reference system with the
<i>(<var>longitude</var>, <var>latitude</var>)</i> or <i>(<var>x</var>,<var>y</var>)</i> axis order,
but without altering grid axes order.
<h4 id="alternative-heading">Alternative</h4>
<code>DISPLAY​.can­Reorder­Grid­Axis(true)</code> is an alternative where grid axes get the same reordering than CRS axes.
Consequently, the <a href="GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a> may be different then the specified extent
but the <code>grid­To­CRS</code> transform always has the form shown in <a href="#REFLECTION_Y"><code>REFLECTION_Y</code></a>.
This alternative can be used for deriving a coordinate reference system with the
<i>(<var>longitude</var>, <var>latitude</var>)</i> or <i>(<var>x</var>,<var>y</var>)</i> axis order,
and modify grid cell layout (i.e. replace the <a href="GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a> instance)
in way that allows <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a> to appear with expected orientation.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#useVariantOfCRS(org.apache.sis.referencing.cs.AxesConvention)"><code>use­Variant­Of­CRS(Axes­Convention)</code></a></li>
<li><a href="../../../../../../org.apache.sis.referencing/org/apache/sis/referencing/cs/AxesConvention.html#DISPLAY_ORIENTED"><code>Axes­Convention​.DISPLAY_ORIENTED</code></a></li>
</ul>
</dd>
</dl>
</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="flipGridAxis(int)">
<h3>flipGridAxis</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">GridOrientation</a></span>&nbsp;<span class="element-name">flipGridAxis</span><wbr><span class="parameters">(int&nbsp;dimension)</span></div>
<div class="block">Reverses axis direction in the specified grid dimension.
For example if grid indices are (<var>column</var>, <var>row</var>),
then <code>flip­Grid­Axis(1)</code> will reverse the direction of rows axis.
Invoking this method a second time for the same dimension will cancel the flipping.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>dimension</code> - index of the dimension in the grid on which to apply direction reversal.</dd>
<dt>Returns:</dt>
<dd>a grid orientation equals to this one except for the axis flip in specified dimension.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#REFLECTION_Y"><code>REFLECTION_Y</code></a></li>
<li><a href="GridCoverageBuilder.html#flipGridAxis(int)"><code>Grid­Coverage­Builder​.flip­Grid­Axis(int)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="useVariantOfCRS(org.apache.sis.referencing.cs.AxesConvention)">
<h3>useVariantOfCRS</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">GridOrientation</a></span>&nbsp;<span class="element-name">useVariantOfCRS</span><wbr><span class="parameters">(<a href="../../../../../../org.apache.sis.referencing/org/apache/sis/referencing/cs/AxesConvention.html" title="enum class in org.apache.sis.referencing.cs">AxesConvention</a>&nbsp;variant)</span></div>
<div class="block">Substitutes the user-specified CRS by a variant of it, for example with different axis order.
If the CRS axis order changed as a result of this substitution, then:
<ul>
<li>Order of envelope coordinates are changed accordingly.</li>
<li>CRS axis order change is mapped to the grid in one of the following ways:
<ul>
<li>If <code>can­Reorder­Grid­Axis(true)</code> has been invoked, then the same change is applied
on grid axis order. Consequently, grid axes and CRS axes stay in the same order,
but the resulting <a href="GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a> may be different than the specified one.</li>
<li>Otherwise <a href="GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a> stay unchanged and axis order change is handled in the
<code>grid­To­CRS</code> transform instead.</li>
</ul>
</li>
</ul>
<h4 id="limitations-heading">Limitations</h4>
Current implementation accepts only axis order changes and direction changes.
The units of measurement changes are not yet supported.
Consequently, <a href="../../../../../../org.apache.sis.referencing/org/apache/sis/referencing/cs/AxesConvention.html#NORMALIZED"><code>Axes­Convention​.NORMALIZED</code></a> is not accepted.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>variant</code> - the kind of substitution to apply on CRS, or <code>null</code> if none.</dd>
<dt>Returns:</dt>
<dd>a grid orientation equals to this one except that it uses the specified CRS variant.</dd>
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="#DISPLAY"><code>DISPLAY</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="canReorderGridAxis(boolean)">
<h3>canReorderGridAxis</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="GridOrientation.html" title="class in org.apache.sis.coverage.grid">GridOrientation</a></span>&nbsp;<span class="element-name">canReorderGridAxis</span><wbr><span class="parameters">(boolean&nbsp;enabled)</span></div>
<div class="block">Specifies whether a change of CRS axis order should be accompanied by an equivalent change of grid axis order.
A value of <code>true</code> implies that user-specified <a href="GridExtent.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Extent</code></a> may be replaced by a different extent.
If <code>false</code> (the default), then axis order changes will be handled in the <code>grid­To­CRS</code> transform
instead.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>enabled</code> - whether changes of CRS axis order should be reflected by changes of grid axis order.</dd>
<dt>Returns:</dt>
<dd>a grid orientation equals to this one except that it has the specified flag.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<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>&nbsp;other)</span></div>
<div class="block">Returns whether this object is equal to the given object.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/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>&nbsp;in class&nbsp;<code><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></code></dd>
<dt>Parameters:</dt>
<dd><code>other</code> - the other object to compare with this object.</dd>
<dt>Returns:</dt>
<dd>whether the two objects are equal.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block">Returns a hash code value for this grid orientation.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a></code>&nbsp;in class&nbsp;<code><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></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</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.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Returns a string representation of this grid orientation.
This is for debugging purpose and may change in any future version.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a></code>&nbsp;in class&nbsp;<code><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></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>