<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Region (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Region (Apache Commons Math 3.3 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/Region.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 class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Hyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html" title="enum in org.apache.commons.math3.geometry.partitioning"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/geometry/partitioning/Region.html" target="_top">Frames</a></li>
<li><a href="Region.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All 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><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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.commons.math3.geometry.partitioning</div>
<h2 title="Interface Region" class="title">Interface Region&lt;S extends <a href="../../../../../../org/apache/commons/math3/geometry/Space.html" title="interface in org.apache.commons.math3.geometry">Space</a>&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>S</code> - Type of the space.</dd></dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/AbstractRegion.html" title="class in org.apache.commons.math3.geometry.partitioning">AbstractRegion</a>, <a href="../../../../../../org/apache/commons/math3/geometry/spherical/oned/ArcsSet.html" title="class in org.apache.commons.math3.geometry.spherical.oned">ArcsSet</a>, <a href="../../../../../../org/apache/commons/math3/geometry/euclidean/oned/IntervalsSet.html" title="class in org.apache.commons.math3.geometry.euclidean.oned">IntervalsSet</a>, <a href="../../../../../../org/apache/commons/math3/geometry/euclidean/twod/PolygonsSet.html" title="class in org.apache.commons.math3.geometry.euclidean.twod">PolygonsSet</a>, <a href="../../../../../../org/apache/commons/math3/geometry/euclidean/threed/PolyhedronsSet.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">PolyhedronsSet</a>, <a href="../../../../../../org/apache/commons/math3/geometry/spherical/twod/SphericalPolygonsSet.html" title="class in org.apache.commons.math3.geometry.spherical.twod">SphericalPolygonsSet</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">Region&lt;S extends <a href="../../../../../../org/apache/commons/math3/geometry/Space.html" title="interface in org.apache.commons.math3.geometry">Space</a>&gt;</span></pre>
<div class="block">This interface represents a region of a space as a partition.

 <p>Region are subsets of a space, they can be infinite (whole
 space, half space, infinite stripe ...) or finite (polygons in 2D,
 polyhedrons in 3D ...). Their main characteristic is to separate
 points that are considered to be <em>inside</em> the region from
 points considered to be <em>outside</em> of it. In between, there
 may be points on the <em>boundary</em> of the region.</p>

 <p>This implementation is limited to regions for which the boundary
 is composed of several <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/SubHyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning"><code>sub-hyperplanes</code></a>,
 including regions with no boundary at all: the whole space and the
 empty region. They are not necessarily finite and not necessarily
 path-connected. They can contain holes.</p>

 <p>Regions can be combined using the traditional sets operations :
 union, intersection, difference and symetric difference (exclusive
 or) for the binary operations, complement for the unary
 operation.</p>

 <p>
 Note that this interface is <em>not</em> intended to be implemented
 by Apache Commons Math users, it is only intended to be implemented
 within the library itself. New methods may be added even for minor
 versions, which breaks compatibility for external implementations.
 </p></div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>3.0</dd>
<dt><span class="strong">Version:</span></dt>
  <dd>$Id: Region.java 1566416 2014-02-09 20:56:55Z luc $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html" title="enum in org.apache.commons.math3.geometry.partitioning">Region.Location</a></strong></code>
<div class="block">Enumerate for the location of a point with respect to the region.</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning">Region</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#buildNew(org.apache.commons.math3.geometry.partitioning.BSPTree)">buildNew</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;newTree)</code>
<div class="block">Build a region using the instance as a prototype.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html" title="enum in org.apache.commons.math3.geometry.partitioning">Region.Location</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#checkPoint(org.apache.commons.math3.geometry.Point)">checkPoint</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/Point.html" title="interface in org.apache.commons.math3.geometry">Point</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;point)</code>
<div class="block">Check a point with respect to the region.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#contains(org.apache.commons.math3.geometry.partitioning.Region)">contains</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning">Region</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;region)</code>
<div class="block">Check if the instance entirely contains another region.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning">Region</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#copySelf()">copySelf</a></strong>()</code>
<div class="block">Copy the instance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/Point.html" title="interface in org.apache.commons.math3.geometry">Point</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#getBarycenter()">getBarycenter</a></strong>()</code>
<div class="block">Get the barycenter of the instance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#getBoundarySize()">getBoundarySize</a></strong>()</code>
<div class="block">Get the size of the boundary.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#getSize()">getSize</a></strong>()</code>
<div class="block">Get the size of the instance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#getTree(boolean)">getTree</a></strong>(boolean&nbsp;includeBoundaryAttributes)</code>
<div class="block">Get the underlying BSP tree.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/SubHyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning">SubHyperplane</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#intersection(org.apache.commons.math3.geometry.partitioning.SubHyperplane)">intersection</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/SubHyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning">SubHyperplane</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;sub)</code>
<div class="block">Get the parts of a sub-hyperplane that are contained in the region.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#isEmpty()">isEmpty</a></strong>()</code>
<div class="block">Check if the instance is empty.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#isEmpty(org.apache.commons.math3.geometry.partitioning.BSPTree)">isEmpty</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;node)</code>
<div class="block">Check if the sub-tree starting at a given node is empty.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#isFull()">isFull</a></strong>()</code>
<div class="block">Check if the instance covers the full space.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#isFull(org.apache.commons.math3.geometry.partitioning.BSPTree)">isFull</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;node)</code>
<div class="block">Check if the sub-tree starting at a given node covers the full space.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BoundaryProjection.html" title="class in org.apache.commons.math3.geometry.partitioning">BoundaryProjection</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#projectToBoundary(org.apache.commons.math3.geometry.Point)">projectToBoundary</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/Point.html" title="interface in org.apache.commons.math3.geometry">Point</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;point)</code>
<div class="block">Project a point on the boundary of the region.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Side.html" title="enum in org.apache.commons.math3.geometry.partitioning">Side</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#side(org.apache.commons.math3.geometry.partitioning.Hyperplane)">side</a></strong>(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Hyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning">Hyperplane</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;hyperplane)</code>
<div class="block">Compute the relative position of the instance with respect to an
 hyperplane.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="buildNew(org.apache.commons.math3.geometry.partitioning.BSPTree)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildNew</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning">Region</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;buildNew(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;newTree)</pre>
<div class="block">Build a region using the instance as a prototype.
 <p>This method allow to create new instances without knowing
 exactly the type of the region. It is an application of the
 prototype design pattern.</p>
 <p>The leaf nodes of the BSP tree <em>must</em> have a
 <code>Boolean</code> attribute representing the inside status of
 the corresponding cell (true for inside cells, false for outside
 cells). In order to avoid building too many small objects, it is
 recommended to use the predefined constants
 <code>Boolean.TRUE</code> and <code>Boolean.FALSE</code>. The
 tree also <em>must</em> have either null internal nodes or
 internal nodes representing the boundary as specified in the
 <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html#getTree(boolean)"><code>getTree</code></a> method).</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newTree</code> - inside/outside BSP tree representing the new region</dd>
<dt><span class="strong">Returns:</span></dt><dd>the built region</dd></dl>
</li>
</ul>
<a name="copySelf()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copySelf</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning">Region</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;copySelf()</pre>
<div class="block">Copy the instance.
 <p>The instance created is completely independant of the original
 one. A deep copy is used, none of the underlying objects are
 shared (except for the underlying tree <code>Boolean</code>
 attributes and immutable objects).</p></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>a new region, copy of the instance</dd></dl>
</li>
</ul>
<a name="isEmpty()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
<pre>boolean&nbsp;isEmpty()</pre>
<div class="block">Check if the instance is empty.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the instance is empty</dd></dl>
</li>
</ul>
<a name="isEmpty(org.apache.commons.math3.geometry.partitioning.BSPTree)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
<pre>boolean&nbsp;isEmpty(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;node)</pre>
<div class="block">Check if the sub-tree starting at a given node is empty.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>node</code> - root node of the sub-tree (<em>must</em> have <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning"><code>Region</code></a> tree semantics, i.e. the leaf nodes must have
 <code>Boolean</code> attributes representing an inside/outside
 property)</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the sub-tree starting at the given node is empty</dd></dl>
</li>
</ul>
<a name="isFull()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFull</h4>
<pre>boolean&nbsp;isFull()</pre>
<div class="block">Check if the instance covers the full space.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>true if the instance covers the full space</dd></dl>
</li>
</ul>
<a name="isFull(org.apache.commons.math3.geometry.partitioning.BSPTree)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFull</h4>
<pre>boolean&nbsp;isFull(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;node)</pre>
<div class="block">Check if the sub-tree starting at a given node covers the full space.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>node</code> - root node of the sub-tree (<em>must</em> have <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning"><code>Region</code></a> tree semantics, i.e. the leaf nodes must have
 <code>Boolean</code> attributes representing an inside/outside
 property)</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the sub-tree starting at the given node covers the full space</dd></dl>
</li>
</ul>
<a name="contains(org.apache.commons.math3.geometry.partitioning.Region)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre>boolean&nbsp;contains(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="interface in org.apache.commons.math3.geometry.partitioning">Region</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;region)</pre>
<div class="block">Check if the instance entirely contains another region.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>region</code> - region to check against the instance</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the instance contains the specified tree</dd></dl>
</li>
</ul>
<a name="checkPoint(org.apache.commons.math3.geometry.Point)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkPoint</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html" title="enum in org.apache.commons.math3.geometry.partitioning">Region.Location</a>&nbsp;checkPoint(<a href="../../../../../../org/apache/commons/math3/geometry/Point.html" title="interface in org.apache.commons.math3.geometry">Point</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;point)</pre>
<div class="block">Check a point with respect to the region.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>point</code> - point to check</dd>
<dt><span class="strong">Returns:</span></dt><dd>a code representing the point status: either <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html#INSIDE"><code>Region.Location.INSIDE</code></a>, <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html#OUTSIDE"><code>Region.Location.OUTSIDE</code></a> or <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html#BOUNDARY"><code>Region.Location.BOUNDARY</code></a></dd></dl>
</li>
</ul>
<a name="projectToBoundary(org.apache.commons.math3.geometry.Point)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectToBoundary</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BoundaryProjection.html" title="class in org.apache.commons.math3.geometry.partitioning">BoundaryProjection</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;projectToBoundary(<a href="../../../../../../org/apache/commons/math3/geometry/Point.html" title="interface in org.apache.commons.math3.geometry">Point</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;point)</pre>
<div class="block">Project a point on the boundary of the region.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>point</code> - point to check</dd>
<dt><span class="strong">Returns:</span></dt><dd>projection of the point on the boundary</dd><dt><span class="strong">Since:</span></dt>
  <dd>3.3</dd></dl>
</li>
</ul>
<a name="getTree(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTree</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BSPTree.html" title="class in org.apache.commons.math3.geometry.partitioning">BSPTree</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;getTree(boolean&nbsp;includeBoundaryAttributes)</pre>
<div class="block">Get the underlying BSP tree.

 <p>Regions are represented by an underlying inside/outside BSP
 tree whose leaf attributes are <code>Boolean</code> instances
 representing inside leaf cells if the attribute value is
 <code>true</code> and outside leaf cells if the attribute is
 <code>false</code>. These leaf attributes are always present and
 guaranteed to be non null.</p>

 <p>In addition to the leaf attributes, the internal nodes which
 correspond to cells split by cut sub-hyperplanes may contain
 <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BoundaryAttribute.html" title="class in org.apache.commons.math3.geometry.partitioning"><code>BoundaryAttribute</code></a> objects representing
 the parts of the corresponding cut sub-hyperplane that belong to
 the boundary. When the boundary attributes have been computed,
 all internal nodes are guaranteed to have non-null
 attributes, however some <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BoundaryAttribute.html" title="class in org.apache.commons.math3.geometry.partitioning"><code>BoundaryAttribute</code></a> instances may have their <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BoundaryAttribute.html#getPlusInside()"><code>getPlusInside</code></a> and <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BoundaryAttribute.html#getPlusOutside()"><code>getPlusOutside</code></a> methods both
 returning null if the corresponding cut sub-hyperplane does not
 have any parts belonging to the boundary.</p>

 <p>Since computing the boundary is not always required and can be
 time-consuming for large trees, these internal nodes attributes
 are computed using lazy evaluation only when required by setting
 the <code>includeBoundaryAttributes</code> argument to
 <code>true</code>. Once computed, these attributes remain in the
 tree, which implies that in this case, further calls to the
 method for the same region will always include these attributes
 regardless of the value of the
 <code>includeBoundaryAttributes</code> argument.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>includeBoundaryAttributes</code> - if true, the boundary attributes
 at internal nodes are guaranteed to be included (they may be
 included even if the argument is false, if they have already been
 computed due to a previous call)</dd>
<dt><span class="strong">Returns:</span></dt><dd>underlying BSP tree</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/BoundaryAttribute.html" title="class in org.apache.commons.math3.geometry.partitioning"><code>BoundaryAttribute</code></a></dd></dl>
</li>
</ul>
<a name="getBoundarySize()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBoundarySize</h4>
<pre>double&nbsp;getBoundarySize()</pre>
<div class="block">Get the size of the boundary.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the size of the boundary (this is 0 in 1D, a length in
 2D, an area in 3D ...)</dd></dl>
</li>
</ul>
<a name="getSize()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSize</h4>
<pre>double&nbsp;getSize()</pre>
<div class="block">Get the size of the instance.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the size of the instance (this is a length in 1D, an area
 in 2D, a volume in 3D ...)</dd></dl>
</li>
</ul>
<a name="getBarycenter()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBarycenter</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/Point.html" title="interface in org.apache.commons.math3.geometry">Point</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;getBarycenter()</pre>
<div class="block">Get the barycenter of the instance.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>an object representing the barycenter</dd></dl>
</li>
</ul>
<a name="side(org.apache.commons.math3.geometry.partitioning.Hyperplane)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>side</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Side.html" title="enum in org.apache.commons.math3.geometry.partitioning">Side</a>&nbsp;side(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Hyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning">Hyperplane</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;hyperplane)</pre>
<div class="block">Compute the relative position of the instance with respect to an
 hyperplane.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>hyperplane</code> - reference hyperplane</dd>
<dt><span class="strong">Returns:</span></dt><dd>one of <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Side.html#PLUS"><code>Side.PLUS</code></a>, <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Side.html#MINUS"><code>Side.MINUS</code></a>, <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Side.html#BOTH"><code>Side.BOTH</code></a> or <a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Side.html#HYPER"><code>Side.HYPER</code></a> (the latter result can occur only if the tree
 contains only one cut hyperplane)</dd></dl>
</li>
</ul>
<a name="intersection(org.apache.commons.math3.geometry.partitioning.SubHyperplane)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>intersection</h4>
<pre><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/SubHyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning">SubHyperplane</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;intersection(<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/SubHyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning">SubHyperplane</a>&lt;<a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.html" title="type parameter in Region">S</a>&gt;&nbsp;sub)</pre>
<div class="block">Get the parts of a sub-hyperplane that are contained in the region.
 <p>The parts of the sub-hyperplane that belong to the boundary are
 <em>not</em> included in the resulting parts.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sub</code> - sub-hyperplane traversing the region</dd>
<dt><span class="strong">Returns:</span></dt><dd>filtered sub-hyperplane</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/Region.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 class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Hyperplane.html" title="interface in org.apache.commons.math3.geometry.partitioning"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/geometry/partitioning/Region.Location.html" title="enum in org.apache.commons.math3.geometry.partitioning"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/geometry/partitioning/Region.html" target="_top">Frames</a></li>
<li><a href="Region.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All 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><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
