blob: b2259b588bd6e473a05a96572d8ab0456e0eba46 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_92) on Wed Jul 13 13:04:17 CEST 2016 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractEnvelope (Apache SIS 0.7 API)</title>
<meta name="date" content="2016-07-13">
<meta name="keywords" content="org.apache.sis.geometry.AbstractEnvelope class">
<meta name="keywords" content="castOrCopy()">
<meta name="keywords" content="getLowerCorner()">
<meta name="keywords" content="getUpperCorner()">
<meta name="keywords" content="getMedian()">
<meta name="keywords" content="getLower()">
<meta name="keywords" content="getUpper()">
<meta name="keywords" content="getMinimum()">
<meta name="keywords" content="getMaximum()">
<meta name="keywords" content="getSpan()">
<meta name="keywords" content="toSimpleEnvelopes()">
<meta name="keywords" content="isEmpty()">
<meta name="keywords" content="isAllNaN()">
<meta name="keywords" content="contains()">
<meta name="keywords" content="intersects()">
<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">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractEnvelope (Apache SIS 0.7 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":6,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":6,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractEnvelope.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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/sis/geometry/AbstractDirectPosition.html" title="class in org.apache.sis.geometry"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/sis/geometry/DirectPosition1D.html" title="class in org.apache.sis.geometry"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/sis/geometry/AbstractEnvelope.html" target="_top">Frames</a></li>
<li><a href="AbstractEnvelope.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.sis.geometry</div>
<h2 title="Class AbstractEnvelope" class="title">Class AbstractEnvelope</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></li>
<li>
<ul class="inheritance">
<li>AbstractEnvelope</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/sis/util/Emptiable.html" title="interface in org.apache.sis.util">Emptiable</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/apache/sis/geometry/GeneralEnvelope.html" title="class in org.apache.sis.geometry">GeneralEnvelope</a>, <a href="../../../../org/apache/sis/geometry/ImmutableEnvelope.html" title="class in org.apache.sis.geometry">ImmutableEnvelope</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractEnvelope</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>, <a href="../../../../org/apache/sis/util/Emptiable.html" title="interface in org.apache.sis.util">Emptiable</a></pre>
<div class="block">Default implementations of most <code>Envelope</code> methods, leaving the data storage to subclasses.
This base class does not hold any state and does not implement the <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><code>Serializable</code></a>
or <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang"><code>Cloneable</code></a> interfaces. The internal representation, and the choice to be cloneable or
serializable, is left to subclasses.
<p>Implementors needs to define at least the following methods:</p>
<ul>
<li><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry"><code>Envelope​.get­Dimension()</code></a></li>
<li><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getCoordinateReferenceSystem--" title="class or interface in org.opengis.geometry"><code>Envelope​.get­Coordinate­Reference­System()</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getLower-int-"><code>get­Lower(int)</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getUpper-int-"><code>get­Upper(int)</code></a></li>
</ul>
<p>All other methods, including <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#toString--"><code>to­String()</code></a>, <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#equals-java.lang.Object-"><code>equals(Object)</code></a> and <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#hashCode--"><code>hash­Code()</code></a>,
are implemented on top of the above four methods.</p>
<div class="section">Spanning the anti-meridian of a Geographic CRS</div>
The <cite>Web Coverage Service</cite> (WCS) specification authorizes (with special treatment)
cases where <var>upper</var> &lt; <var>lower</var> at least in the longitude case. They are
envelopes crossing the anti-meridian, like the red box below (the green box is the usual case).
The default implementation of methods listed in the right column can handle such cases.
<center><table class="compact" summary="Anti-meridian spanning support."><tr><td>
<img style="vertical-align: middle" src="doc-files/AntiMeridian.png" alt="Envelope spannning the anti-meridian">
</td><td style="vertical-align: middle">
Supported methods:
<ul>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMinimum-int-"><code>get­Minimum(int)</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMaximum-int-"><code>get­Maximum(int)</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMedian-int-"><code>get­Median(int)</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getSpan-int-"><code>get­Span(int)</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#toSimpleEnvelopes--"><code>to­Simple­Envelopes()</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.DirectPosition-"><code>contains(Direct­Position)</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-"><code>contains(Envelope)</code></a></li>
<li><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-"><code>intersects(Envelope)</code></a></li>
</ul>
</td></tr></table></center>
<div class="section">Choosing the range of longitude values</div>
Geographic CRS typically have longitude values in the [-180 … +180]° range, but the [0 … 360]°
range is also occasionally used. Users of this class need to ensure that this envelope CRS is
associated to axes having the desired <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystemAxis.html?is-external=true#getMinimumValue--" title="class or interface in org.opengis.referencing.cs">minimum</a>
and <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystemAxis.html?is-external=true#getMaximumValue--" title="class or interface in org.opengis.referencing.cs">maximum value</a>.
<div class="section">Note on positive and negative zeros</div>
The IEEE 754 standard defines two different values for positive zero and negative zero.
When used with SIS envelopes and keeping in mind the above discussion, those zeros have
different meanings:
<ul>
<li>The [-0…0]° range is an empty envelope.</li>
<li>The [0…-0]° range makes a full turn around the globe, like the [-180…180]°
range except that the former range spans across the anti-meridian.</li>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.3</dd>
<p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#AbstractEnvelope--">Abstract­Envelope</a></span>()</code>
<div class="block">Constructs an envelope.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html" title="class in org.apache.sis.geometry">Abstract­Envelope</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#castOrCopy-org.opengis.geometry.Envelope-">cast­Or­Copy</a></span>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope)</code>
<div class="block">Returns the given envelope as an <code>Abstract­Envelope</code> instance.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.DirectPosition-">contains</a></span>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">Direct­Position</a>&nbsp;position)</code>
<div class="block">Tests if a specified coordinate is inside the boundary of this envelope.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-">contains</a></span>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope)</code>
<div class="block">Returns <code>true</code> if this envelope completely encloses the specified envelope.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-boolean-">contains</a></span>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope,
boolean&nbsp;edges­Inclusive)</code>
<div class="block">Returns <code>true</code> if this envelope completely encloses the specified envelope.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#equals-org.opengis.geometry.Envelope-double-boolean-">equals</a></span>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;other,
double&nbsp;eps,
boolean&nbsp;eps­Is­Relative)</code>
<div class="block">Compares to the specified envelope for equality up to the specified tolerance value.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</code>
<div class="block">Returns <code>true</code> if the specified object is an envelope of the same class
with equals coordinates and <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getCoordinateReferenceSystem--" title="class or interface in org.opengis.geometry">CRS</a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getLower-int-">get­Lower</a></span>(int&nbsp;dimension)</code>
<div class="block">Returns the limit in the direction of decreasing ordinate values in the specified dimension.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">Direct­Position</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getLowerCorner--">get­Lower­Corner</a></span>()</code>
<div class="block">A coordinate position consisting of all the lower ordinate values.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMaximum-int-">get­Maximum</a></span>(int&nbsp;dimension)</code>
<div class="block">Returns the maximal ordinate value for the specified dimension.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">Direct­Position</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMedian--">get­Median</a></span>()</code>
<div class="block">A coordinate position consisting of all the median ordinate values.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMedian-int-">get­Median</a></span>(int&nbsp;dimension)</code>
<div class="block">Returns the median ordinate along the specified dimension.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMinimum-int-">get­Minimum</a></span>(int&nbsp;dimension)</code>
<div class="block">Returns the minimal ordinate value for the specified dimension.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getSpan-int-">get­Span</a></span>(int&nbsp;dimension)</code>
<div class="block">Returns the envelope span (typically width or height) along the specified dimension.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getSpan-int-javax.measure.unit.Unit-">get­Span</a></span>(int&nbsp;dimension,
Unit&lt;?&gt;&nbsp;unit)</code>
<div class="block">Returns the envelope span along the specified dimension, in terms of the given units.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>abstract double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getUpper-int-">get­Upper</a></span>(int&nbsp;dimension)</code>
<div class="block">Returns the limit in the direction of increasing ordinate values in the specified dimension.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">Direct­Position</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getUpperCorner--">get­Upper­Corner</a></span>()</code>
<div class="block">A coordinate position consisting of all the upper ordinate values.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#hashCode--">hash­Code</a></span>()</code>
<div class="block">Returns a hash value for this envelope.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-">intersects</a></span>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope)</code>
<div class="block">Returns <code>true</code> if this envelope intersects the specified envelope.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-boolean-">intersects</a></span>(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope,
boolean&nbsp;edges­Inclusive)</code>
<div class="block">Returns <code>true</code> if this envelope intersects the specified envelope.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#isAllNaN--">is­All­Na­N</a></span>()</code>
<div class="block">Returns <code>false</code> if at least one ordinate value is not <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang">NaN</a>.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#isEmpty--">is­Empty</a></span>()</code>
<div class="block">Determines whether or not this envelope is empty.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#toSimpleEnvelopes--">to­Simple­Envelopes</a></span>()</code>
<div class="block">Returns this envelope as an array of simple (without wraparound) envelopes.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#toString--">to­String</a></span>()</code>
<div class="block">Formats this envelope as a "<code>BOX</code>" element.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">get­Class</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notify­All</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.Envelope">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getCoordinateReferenceSystem--" title="class or interface in org.opengis.geometry">get­Coordinate­Reference­System</a>, <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">get­Dimension</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractEnvelope--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractEnvelope</h4>
<pre>protected&nbsp;AbstractEnvelope()</pre>
<div class="block">Constructs an envelope.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="castOrCopy-org.opengis.geometry.Envelope-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>castOrCopy</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html" title="class in org.apache.sis.geometry">AbstractEnvelope</a>&nbsp;castOrCopy(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope)</pre>
<div class="block">Returns the given envelope as an <code>Abstract­Envelope</code> instance.
If the given envelope is already an instance of <code>Abstract­Envelope</code>,
then it is returned unchanged. Otherwise the coordinate values and the CRS
of the given envelope are copied in a new envelope.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>envelope</code> - The envelope to cast, or <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The values of the given envelope as an <code>Abstract­Envelope</code> instance.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/GeneralEnvelope.html#castOrCopy-org.opengis.geometry.Envelope-"><code>General­Envelope​.cast­Or­Copy(Envelope)</code></a>,
<a href="../../../../org/apache/sis/geometry/ImmutableEnvelope.html#castOrCopy-org.opengis.geometry.Envelope-"><code>Immutable­Envelope​.cast­Or­Copy(Envelope)</code></a></dd>
</dl>
</li>
</ul>
<a name="getLowerCorner--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLowerCorner</h4>
<pre>public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">DirectPosition</a>&nbsp;getLowerCorner()</pre>
<div class="block">A coordinate position consisting of all the lower ordinate values.
The default implementation returns a view over the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getLower-int-"><code>get­Lower(int)</code></a> method,
so changes in this envelope will be immediately reflected in the returned direct position.
If the particular case of the <code>General­Envelope</code> subclass, the returned position
supports also <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true#setOrdinate-int-double-" title="class or interface in org.opengis.geometry">write operations</a>,
so changes in the position are reflected back in the envelope.
<div class="note"><b>Note:</b>
The <cite>Web Coverage Service</cite> (WCS) 1.1 specification uses an extended interpretation of the
bounding box definition. In a WCS 1.1 data structure, the lower corner defines the edges region in the
directions of <em>decreasing</em> coordinate values in the envelope CRS. This is usually the algebraic
minimum coordinates, but not always. For example, an envelope crossing the anti-meridian could have a
lower corner longitude greater than the upper corner longitude. Such extended interpretation applies
mostly to axes having <code>WRAPAROUND</code> range meaning.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getLowerCorner--" title="class or interface in org.opengis.geometry">get­Lower­Corner</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A view over the lower corner, typically (but not necessarily) containing minimal ordinate values.</dd>
</dl>
</li>
</ul>
<a name="getUpperCorner--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUpperCorner</h4>
<pre>public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">DirectPosition</a>&nbsp;getUpperCorner()</pre>
<div class="block">A coordinate position consisting of all the upper ordinate values.
The default implementation returns a view over the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getUpper-int-"><code>get­Upper(int)</code></a> method,
so changes in this envelope will be immediately reflected in the returned direct position.
If the particular case of the <code>General­Envelope</code> subclass, the returned position
supports also <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true#setOrdinate-int-double-" title="class or interface in org.opengis.geometry">write operations</a>,
so changes in the position are reflected back in the envelope.
<div class="note"><b>Note:</b>
The <cite>Web Coverage Service</cite> (WCS) 1.1 specification uses an extended interpretation of the
bounding box definition. In a WCS 1.1 data structure, the upper corner defines the edges region in the
directions of <em>increasing</em> coordinate values in the envelope CRS. This is usually the algebraic
maximum coordinates, but not always. For example, an envelope crossing the anti-meridian could have an
upper corner longitude less than the lower corner longitude. Such extended interpretation applies
mostly to axes having <code>WRAPAROUND</code> range meaning.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getUpperCorner--" title="class or interface in org.opengis.geometry">get­Upper­Corner</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A view over the upper corner, typically (but not necessarily) containing maximal ordinate values.</dd>
</dl>
</li>
</ul>
<a name="getMedian--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMedian</h4>
<pre>public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">DirectPosition</a>&nbsp;getMedian()</pre>
<div class="block">A coordinate position consisting of all the median ordinate values.
The default implementation returns a view over the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMedian-int-"><code>get­Median(int)</code></a> method,
so changes in this envelope will be immediately reflected in the returned direct position.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The median coordinates.</dd>
</dl>
</li>
</ul>
<a name="getLower-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLower</h4>
<pre>public abstract&nbsp;double&nbsp;getLower(int&nbsp;dimension)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">IndexOutOfBoundsException</a></pre>
<div class="block">Returns the limit in the direction of decreasing ordinate values in the specified dimension.
This is usually the algebraic <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMinimum-int-">minimum</a>, except if this envelope
spans the anti-meridian.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimension</code> - The dimension for which to obtain the ordinate value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The starting ordinate value at the given dimension.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">Index­Out­Of­Bounds­Exception</a></code> - If the given index is negative or is equals or greater
than the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">envelope dimension</a>.</dd>
</dl>
</li>
</ul>
<a name="getUpper-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUpper</h4>
<pre>public abstract&nbsp;double&nbsp;getUpper(int&nbsp;dimension)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">IndexOutOfBoundsException</a></pre>
<div class="block">Returns the limit in the direction of increasing ordinate values in the specified dimension.
This is usually the algebraic <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getMaximum-int-">maximum</a>, except if this envelope
spans the anti-meridian.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimension</code> - The dimension for which to obtain the ordinate value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The starting ordinate value at the given dimension.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">Index­Out­Of­Bounds­Exception</a></code> - If the given index is negative or is equals or greater
than the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">envelope dimension</a>.</dd>
</dl>
</li>
</ul>
<a name="getMinimum-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinimum</h4>
<pre>public&nbsp;double&nbsp;getMinimum(int&nbsp;dimension)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">IndexOutOfBoundsException</a></pre>
<div class="block">Returns the minimal ordinate value for the specified dimension. In the typical case
of envelopes <em>not</em> spanning the anti-meridian, this method returns the
<a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getLower-int-"><code>get­Lower(int)</code></a> value verbatim. In the case of envelope spanning the anti-meridian,
this method returns the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystemAxis.html?is-external=true#getMinimumValue--" title="class or interface in org.opengis.referencing.cs">axis minimum value</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getMinimum-int-" title="class or interface in org.opengis.geometry">get­Minimum</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimension</code> - The dimension for which to obtain the ordinate value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The minimal ordinate value at the given dimension.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">Index­Out­Of­Bounds­Exception</a></code> - If the given index is negative or is equals or greater
than the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">envelope dimension</a>.</dd>
</dl>
</li>
</ul>
<a name="getMaximum-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaximum</h4>
<pre>public&nbsp;double&nbsp;getMaximum(int&nbsp;dimension)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">IndexOutOfBoundsException</a></pre>
<div class="block">Returns the maximal ordinate value for the specified dimension. In the typical case
of envelopes <em>not</em> spanning the anti-meridian, this method returns the
<a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getUpper-int-"><code>get­Upper(int)</code></a> value verbatim. In the case of envelope spanning the anti-meridian,
this method returns the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystemAxis.html?is-external=true#getMaximumValue--" title="class or interface in org.opengis.referencing.cs">axis maximum value</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getMaximum-int-" title="class or interface in org.opengis.geometry">get­Maximum</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimension</code> - The dimension for which to obtain the ordinate value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The maximal ordinate value at the given dimension.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">Index­Out­Of­Bounds­Exception</a></code> - If the given index is negative or is equals or greater
than the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">envelope dimension</a>.</dd>
</dl>
</li>
</ul>
<a name="getMedian-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMedian</h4>
<pre>public&nbsp;double&nbsp;getMedian(int&nbsp;dimension)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">IndexOutOfBoundsException</a></pre>
<div class="block">Returns the median ordinate along the specified dimension.
In most cases, the result is equals (minus rounding error) to:
<blockquote><pre>median = (<b>getUpper</b>(dimension) + <b>getLower</b>(dimension)) / 2;</pre></blockquote>
<div class="section">Spanning the anti-meridian of a Geographic CRS</div>
If <var>upper</var> &lt; <var>lower</var> and the
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystemAxis.html?is-external=true#getRangeMeaning--" title="class or interface in org.opengis.referencing.cs">range meaning</a> for the requested
dimension is <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/RangeMeaning.html?is-external=true#WRAPAROUND" title="class or interface in org.opengis.referencing.cs">wraparound</a>, then the median calculated
above is actually in the middle of the space <em>outside</em> the envelope. In such cases,
this method shifts the <var>median</var> value by half of the periodicity (180° in the
longitude case) in order to switch from <cite>outer</cite> space to <cite>inner</cite>
space. If the axis range meaning is not <code>WRAPAROUND</code>, then this method returns
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang"><code>Na­N</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getMedian-int-" title="class or interface in org.opengis.geometry">get­Median</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimension</code> - The dimension for which to obtain the ordinate value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The median ordinate at the given dimension, or <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang"><code>Double​.Na­N</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">Index­Out­Of­Bounds­Exception</a></code> - If the given index is negative or is equals or greater
than the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">envelope dimension</a>.</dd>
</dl>
</li>
</ul>
<a name="getSpan-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSpan</h4>
<pre>public&nbsp;double&nbsp;getSpan(int&nbsp;dimension)</pre>
<div class="block">Returns the envelope span (typically width or height) along the specified dimension.
In most cases, the result is equals (minus rounding error) to:
<blockquote><pre>span = <b>getUpper</b>(dimension) - <b>getLower</b>(dimension);</pre></blockquote>
<div class="section">Spanning the anti-meridian of a Geographic CRS</div>
If <var>upper</var> &lt; <var>lower</var> and the
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystemAxis.html?is-external=true#getRangeMeaning--" title="class or interface in org.opengis.referencing.cs">range meaning</a> for the requested
dimension is <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/RangeMeaning.html?is-external=true#WRAPAROUND" title="class or interface in org.opengis.referencing.cs">wraparound</a>, then the span calculated
above is negative. In such cases, this method adds the periodicity (typically 360° of
longitude) to the span. If the result is a positive number, it is returned. Otherwise
this method returns <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang"><code>Na­N</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getSpan-int-" title="class or interface in org.opengis.geometry">get­Span</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimension</code> - The dimension for which to obtain the span.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The span (typically width or height) at the given dimension, or <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang"><code>Double​.Na­N</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">Index­Out­Of­Bounds­Exception</a></code> - If the given index is negative or is equals or greater
than the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">envelope dimension</a>.</dd>
</dl>
</li>
</ul>
<a name="getSpan-int-javax.measure.unit.Unit-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSpan</h4>
<pre>public&nbsp;double&nbsp;getSpan(int&nbsp;dimension,
Unit&lt;?&gt;&nbsp;unit)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">IndexOutOfBoundsException</a>,
ConversionException</pre>
<div class="block">Returns the envelope span along the specified dimension, in terms of the given units.
The default implementation invokes <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getSpan-int-"><code>get­Span(int)</code></a> and converts the result.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dimension</code> - The dimension to query.</dd>
<dd><code>unit</code> - The unit for the return value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The span in terms of the given unit.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" title="class or interface in java.lang">Index­Out­Of­Bounds­Exception</a></code> - If the given index is out of bounds.</dd>
<dd><code>Conversion­Exception</code> - if the length can't be converted to the specified units.</dd>
</dl>
</li>
</ul>
<a name="toSimpleEnvelopes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toSimpleEnvelopes</h4>
<pre>public&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>[]&nbsp;toSimpleEnvelopes()</pre>
<div class="block">Returns this envelope as an array of simple (without wraparound) envelopes.
The length of the returned array depends on the number of dimensions where a
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/RangeMeaning.html?is-external=true#WRAPAROUND" title="class or interface in org.opengis.referencing.cs">wraparound</a> range is found.
Typically, wraparound occurs only in the range of longitude values, when the range crosses
the anti-meridian (a.k.a. date line). However this implementation will take in account any
axis having wraparound <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/cs/CoordinateSystemAxis.html?is-external=true#getRangeMeaning--" title="class or interface in org.opengis.referencing.cs">range meaning</a>.
<p>Special cases:</p>
<ul>
<li>If this envelope <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#isEmpty--">is empty</a>, then this method returns an empty array.</li>
<li>If this envelope does not have any wraparound behavior, then this method returns <code>this</code>
in an array of length 1. This envelope is <strong>not</strong> cloned.</li>
<li>If this envelope crosses the <cite>anti-meridian</cite> (a.k.a. <cite>date line</cite>)
then this method represents this envelope as two separated simple envelopes.
<li>While uncommon, the envelope could theoretically crosses the limit of other axis having
wraparound range meaning. If wraparound occur along <var>n</var> axes, then this method
represents this envelope as 2ⁿ separated simple envelopes.
</ul></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A representation of this envelope as an array of non-empty envelope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/Envelope2D.html#toRectangles--"><code>Envelope2D​.to­Rectangles()</code></a>,
<a href="../../../../org/apache/sis/geometry/GeneralEnvelope.html#simplify--"><code>General­Envelope​.simplify()</code></a></dd>
</dl>
</li>
</ul>
<a name="isEmpty--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
<pre>public&nbsp;boolean&nbsp;isEmpty()</pre>
<div class="block">Determines whether or not this envelope is empty. An envelope is empty if it has zero
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">dimension</a>, or if the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getSpan-int-">span</a> of
at least one axis is negative, 0 or <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang"><code>Na­N</code></a>.
<div class="note"><b>Note:</b>
Strictly speaking, there is an ambiguity if a span is <code>Na­N</code> or if the envelope contains
both 0 and infinite spans (since 0⋅∞ = <code>Na­N</code>). In such cases, this method arbitrarily
ignores the infinite values and returns <code>true</code>.</div>
If <code>is­Empty()</code> returns <code>false</code>, then <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#isAllNaN--"><code>is­All­Na­N()</code></a> is guaranteed to
also return <code>false</code>. However the converse is not always true.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/sis/util/Emptiable.html#isEmpty--">is­Empty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/sis/util/Emptiable.html" title="interface in org.apache.sis.util">Emptiable</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this envelope is empty.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/metadata/iso/extent/DefaultGeographicBoundingBox.html#isEmpty--"><code>Default­Geographic­Bounding­Box​.is­Empty()</code></a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/awt/geom/RectangularShape.html?is-external=true#isEmpty--" title="class or interface in java.awt.geom"><code>Rectangular­Shape​.is­Empty()</code></a></dd>
</dl>
</li>
</ul>
<a name="isAllNaN--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAllNaN</h4>
<pre>public&nbsp;boolean&nbsp;isAllNaN()</pre>
<div class="block">Returns <code>false</code> if at least one ordinate value is not <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang">NaN</a>.
This <code>is­All­Na­N()</code> check is different than the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#isEmpty--"><code>is­Empty()</code></a> check since it
returns <code>false</code> for a partially initialized envelope, while <code>is­Empty()</code>
returns <code>false</code> only after all dimensions have been initialized.
More specifically, the following rules apply:
<ul>
<li>If <code>is­All­Na­N() == true</code>, then <code>is­Empty() == true</code></li>
<li>If <code>is­Empty() == false</code>, then <code>is­All­Na­N() == false</code></li>
<li>The converse of the above-cited rules are not always true.</li>
</ul>
Note that an all-NaN envelope can still have a non-null
<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getCoordinateReferenceSystem--" title="class or interface in org.opengis.geometry">coordinate reference system</a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this envelope has NaN values.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/GeneralEnvelope.html#setToNaN--"><code>General­Envelope​.set­To­Na­N()</code></a>,
<a href="../../../../org/apache/sis/metadata/iso/extent/DefaultGeographicBoundingBox.html#isEmpty--"><code>Default­Geographic­Bounding­Box​.is­Empty()</code></a></dd>
</dl>
</li>
</ul>
<a name="contains-org.opengis.geometry.DirectPosition-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre>public&nbsp;boolean&nbsp;contains(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/DirectPosition.html?is-external=true" title="class or interface in org.opengis.geometry">DirectPosition</a>&nbsp;position)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">MismatchedDimensionException</a></pre>
<div class="block">Tests if a specified coordinate is inside the boundary of this envelope.
If it least one ordinate value in the given point is <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang"><code>Na­N</code></a>,
then this method returns <code>false</code>.
<div class="section">Pre-conditions</div>
This method assumes that the specified point uses the same CRS than this envelope.
For performance reasons, it will no be verified unless Java assertions are enabled.
<div class="section">Spanning the anti-meridian of a Geographic CRS</div>
For any dimension, if <var>upper</var> &lt; <var>lower</var> then this method uses an
algorithm which is the opposite of the usual one: rather than testing if the given point is
inside the envelope interior, this method tests if the given point is <em>outside</em> the
envelope <em>exterior</em>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - The point to text.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the specified coordinate is inside the boundary of this envelope; <code>false</code> otherwise.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">Mismatched­Dimension­Exception</a></code> - if the specified point doesn't have the expected dimension.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang">Assertion­Error</a></code> - If assertions are enabled and the envelopes have mismatched CRS.</dd>
</dl>
</li>
</ul>
<a name="contains-org.opengis.geometry.Envelope-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre>public&nbsp;boolean&nbsp;contains(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">MismatchedDimensionException</a></pre>
<div class="block">Returns <code>true</code> if this envelope completely encloses the specified envelope.
<div class="section">Pre-conditions</div>
This method assumes that the specified envelope uses the same CRS than this envelope.
For performance reasons, it will no be verified unless Java assertions are enabled.
<div class="section">Spanning the anti-meridian of a Geographic CRS</div>
For every cases illustrated below, the yellow box is considered completely enclosed
in the blue envelope:
<p><img src="doc-files/Contains.png" alt="Examples of envelope inclusions"></p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>envelope</code> - The envelope to test for inclusion.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this envelope completely encloses the specified one.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">Mismatched­Dimension­Exception</a></code> - if the specified envelope doesn't have the expected dimension.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang">Assertion­Error</a></code> - If assertions are enabled and the envelopes have mismatched CRS.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-"><code>intersects(Envelope)</code></a>,
<a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#equals-org.opengis.geometry.Envelope-double-boolean-"><code>equals(Envelope, double, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="contains-org.opengis.geometry.Envelope-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre>public&nbsp;boolean&nbsp;contains(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope,
boolean&nbsp;edgesInclusive)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">MismatchedDimensionException</a></pre>
<div class="block">Returns <code>true</code> if this envelope completely encloses the specified envelope.
If one or more edges from the specified envelope coincide with an edge from this
envelope, then this method returns <code>true</code> only if <code>edges­Inclusive</code>
is <code>true</code>.
<p>This method is subject to the same pre-conditions than <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-"><code>contains(Envelope)</code></a>,
and handles envelopes spanning the anti-meridian in the same way.</p>
<div class="warning"><b>Warning:</b> This method may change or be removed in a future SIS version.
For API stability, use the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-"><code>contains(Envelope)</code></a> method instead.
See <a href="http://issues.apache.org/jira/browse/SIS-172">SIS-172</a> for more information.</div></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>envelope</code> - The envelope to test for inclusion.</dd>
<dd><code>edges­Inclusive</code> - <code>true</code> if this envelope edges are inclusive.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this envelope completely encloses the specified one.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">Mismatched­Dimension­Exception</a></code> - if the specified envelope doesn't have the expected dimension.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang">Assertion­Error</a></code> - If assertions are enabled and the envelopes have mismatched CRS.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-boolean-"><code>intersects(Envelope, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="intersects-org.opengis.geometry.Envelope-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersects</h4>
<pre>public&nbsp;boolean&nbsp;intersects(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">MismatchedDimensionException</a></pre>
<div class="block">Returns <code>true</code> if this envelope intersects the specified envelope.
<div class="section">Pre-conditions</div>
This method assumes that the specified envelope uses the same CRS than this envelope.
For performance reasons, it will no be verified unless Java assertions are enabled.
<div class="section">Spanning the anti-meridian of a Geographic CRS</div>
This method can handle envelopes spanning the anti-meridian.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>envelope</code> - The envelope to test for intersection.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this envelope intersects the specified one.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">Mismatched­Dimension­Exception</a></code> - if the specified envelope doesn't have the expected dimension.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang">Assertion­Error</a></code> - If assertions are enabled and the envelopes have mismatched CRS.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-boolean-"><code>contains(Envelope, boolean)</code></a>,
<a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#equals-org.opengis.geometry.Envelope-double-boolean-"><code>equals(Envelope, double, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="intersects-org.opengis.geometry.Envelope-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersects</h4>
<pre>public&nbsp;boolean&nbsp;intersects(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;envelope,
boolean&nbsp;edgesInclusive)
throws <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">MismatchedDimensionException</a></pre>
<div class="block">Returns <code>true</code> if this envelope intersects the specified envelope.
If one or more edges from the specified envelope coincide with an edge from this envelope,
then this method returns <code>true</code> only if <code>edges­Inclusive</code> is <code>true</code>.
<p>This method is subject to the same pre-conditions than <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-"><code>intersects(Envelope)</code></a>,
and handles envelopes spanning the anti-meridian in the same way.</p>
<div class="warning"><b>Warning:</b> This method may change or be removed in a future SIS version.
For API stability, use the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-"><code>intersects(Envelope)</code></a> method instead.
See <a href="http://issues.apache.org/jira/browse/SIS-172">SIS-172</a> for more information.</div></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>envelope</code> - The envelope to test for intersection.</dd>
<dd><code>edges­Inclusive</code> - <code>true</code> if this envelope edges are inclusive.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this envelope intersects the specified one.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/MismatchedDimensionException.html?is-external=true" title="class or interface in org.opengis.geometry">Mismatched­Dimension­Exception</a></code> - if the specified envelope doesn't have the expected dimension.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang">Assertion­Error</a></code> - If assertions are enabled and the envelopes have mismatched CRS.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-boolean-"><code>contains(Envelope, boolean)</code></a>,
<a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#equals-org.opengis.geometry.Envelope-double-boolean-"><code>equals(Envelope, double, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="equals-org.opengis.geometry.Envelope-double-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(<a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true" title="class or interface in org.opengis.geometry">Envelope</a>&nbsp;other,
double&nbsp;eps,
boolean&nbsp;epsIsRelative)</pre>
<div class="block">Compares to the specified envelope for equality up to the specified tolerance value.
The tolerance value <code>eps</code> can be either relative to the <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getSpan-int-">envelope span</a> along each dimension or can be an absolute value (as for example some
ground resolution of a grid coverage).
<ul>
<li>If <code>eps­Is­Relative</code> is set to <code>true</code>, the actual tolerance value for a
given dimension <var>i</var> is <code>eps</code> × <code>span</code> where <code>span</code>
is the maximum of <a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getSpan-int-">this envelope span</a> and the specified
envelope span along dimension <var>i</var>.</li>
<li>If <code>eps­Is­Relative</code> is set to <code>false</code>, the actual tolerance value for a
given dimension <var>i</var> is <code>eps</code>.</li>
</ul>
<div class="note"><b>Note:</b>
Relative tolerance values (as opposed to absolute tolerance values) help to workaround the
fact that tolerance value are CRS dependent. For example the tolerance value need to be
smaller for geographic CRS than for UTM projections, because the former typically has a
[-180…180]° range while the later can have a range of thousands of meters.</div>
<div class="section">Coordinate Reference System</div>
To be considered equal, the two envelopes must have the same <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">dimension</a>
and their CRS must be <a href="../../../../org/apache/sis/util/Utilities.html#equalsIgnoreMetadata-java.lang.Object-java.lang.Object-">equals,
ignoring metadata</a>. If at least one envelope has a null CRS, then the CRS are ignored and the
ordinate values are compared as if the CRS were equal.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>other</code> - The envelope to compare with.</dd>
<dd><code>eps</code> - The tolerance value to use for numerical comparisons.</dd>
<dd><code>eps­Is­Relative</code> - <code>true</code> if the tolerance value should be relative to
axis length, or <code>false</code> if it is an absolute value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given object is equal to this envelope up to the given tolerance value.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#contains-org.opengis.geometry.Envelope-"><code>contains(Envelope)</code></a>,
<a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#intersects-org.opengis.geometry.Envelope-"><code>intersects(Envelope)</code></a></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
<div class="block">Returns <code>true</code> if the specified object is an envelope of the same class
with equals coordinates and <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getCoordinateReferenceSystem--" title="class or interface in org.opengis.geometry">CRS</a>.
<div class="note"><b>Implementation note:</b>
This implementation requires that the provided <code>object</code> argument is of the same class than this envelope.
We do not relax this rule since not every implementations in the SIS code base follow the same contract.</div></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - The object to compare with this envelope.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given object is equal to this envelope.</dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns a hash value for this envelope.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<div class="block">Formats this envelope as a "<code>BOX</code>" element.
The output is of the form "<code>BOX</code><var>n</var><code>D(</code><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getLowerCorner--">lower corner</a><code>,</code><a href="../../../../org/apache/sis/geometry/AbstractEnvelope.html#getUpperCorner--">upper corner</a><code>)</code>"
where <var>n</var> is the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/geometry/Envelope.html?is-external=true#getDimension--" title="class or interface in org.opengis.geometry">number of dimensions</a>.
The number of dimension is written only if different than 2.
<div class="note"><b>Example:</b>
<ul>
<li><code>BOX(-90 -180, 90 180)</code></li>
<li><code>BOX3D(-90 -180 0, 90 180 1)</code></li>
</ul>
</div>
<div class="note"><b>Note:</b>
The <code>BOX</code> element is not part of the standard <cite>Well Known Text</cite> (WKT) format.
However it is understood by many softwares, for example GDAL and PostGIS.</div>
The string returned by this method can be <a href="../../../../org/apache/sis/geometry/GeneralEnvelope.html#GeneralEnvelope-java.lang.CharSequence-">parsed</a>
by the <code>General­Envelope</code> constructor.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">to­String</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This envelope as a <code>BOX</code> or <code>BOX3D</code> (most typical dimensions) element.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractEnvelope.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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/sis/geometry/AbstractDirectPosition.html" title="class in org.apache.sis.geometry"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/sis/geometry/DirectPosition1D.html" title="class in org.apache.sis.geometry"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/sis/geometry/AbstractEnvelope.html" target="_top">Frames</a></li>
<li><a href="AbstractEnvelope.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>