Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 1099e73f16f15ba3cf656e619f52a447 > files > 288

ompl-devel-0.9.5-1.fc14.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8"/>
<title>OMPL: src/ompl/base/SpaceInformation.h Source File</title>
<meta name="author" content="Ioan A. Șucan, Mark Moll, Lydia E. Kavraki">
<link rel="stylesheet" href="../css/screen.css" type="text/css" media="screen, projection">
<link rel="stylesheet" href="../css/print.css" type="text/css" media="print">
<!--[if lt IE 7]>
<script type="text/javascript" src="../js/jquery/jquery.js"></script>
<script type="text/javascript" src="../js/jquery/jquery.dropdown.js"></script>
<![endif]-->
<script type="text/javaScript" src="search/search.js"></script>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-9156598-2']);
  _gaq.push(['_trackPageview']);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search API');
--></script>
<div class="navigation" id="top">
  <div class="tabs" id="ompltitle">
    <ul class="tablist">
      <li>The Open Motion Planning Library</li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search API" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)"
               onblur="searchBox.OnSearchFieldFocus(false)"
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>

  <ul id="nav" class="dropdown">
    <li class="first"><a href="index.html">Home</a></li>
    <li><a href="download.html">Download</a></li>
    <li><a href="documentation.html">Documentation</a></li>
    <li><span class="dir">Code API</span>
      <ul>
        <li><a href="api_overview.html">API Overview</a></li>
        <li><a href="namespaces.html">Namespaces</a></li>
        <li><a href="annotated.html">Classes</a></li>
        <li><a href="files.html">Files</a></li>
        <li><a href="dirs.html">Directories</a></li>
      </ul>
    </li>
    <li><span class="dir">Community</span>
      <ul>
        <li><a href="developers.html">Developers</a></li>
        <li><a href="thirdparty.html">Contributions</a></li>
        <li><a href="education.html">Education</a></li>
        <li><a href="gallery.html">Gallery</a></li>
      </ul>
    </li>
    <li><span class="dir">About</span>
      <ul>
        <li><a href="license.html">License</a></li>
        <li><a href="citations.html">Citations</a></li>
        <li><a href="acknowledgements.html">Acknowledgments</a></li>
        <li><a href="contact.html">Contact Us</a></li>
      </ul>
    </li>
  </ul>
</div>

<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
  onmouseover="return searchBox.OnSearchSelectShow()"
  onmouseout="return searchBox.OnSearchSelectHide()"
  onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
  <iframe src="" frameborder="0"name="MSearchResults" id="MSearchResults"></iframe>
</div>

<div class="container">
  <div class="span-22 push-2 first last">
  <div>
<!-- Generated by Doxygen 1.7.4 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_f5421e52a658cd938113ed6044324834.html">src</a>      </li>
      <li class="navelem"><a class="el" href="dir_ae92c2ff78847f0cb49b545f9089bbbc.html">ompl</a>      </li>
      <li class="navelem"><a class="el" href="dir_40bc83a902349ad67ef9d1cb49964511.html">base</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<div class="title">SpaceInformation.h</div>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*********************************************************************</span>
<a name="l00002"></a>00002 <span class="comment">* Software License Agreement (BSD License)</span>
<a name="l00003"></a>00003 <span class="comment">*</span>
<a name="l00004"></a>00004 <span class="comment">*  Copyright (c) 2010, Rice University</span>
<a name="l00005"></a>00005 <span class="comment">*  All rights reserved.</span>
<a name="l00006"></a>00006 <span class="comment">*</span>
<a name="l00007"></a>00007 <span class="comment">*  Redistribution and use in source and binary forms, with or without</span>
<a name="l00008"></a>00008 <span class="comment">*  modification, are permitted provided that the following conditions</span>
<a name="l00009"></a>00009 <span class="comment">*  are met:</span>
<a name="l00010"></a>00010 <span class="comment">*</span>
<a name="l00011"></a>00011 <span class="comment">*   * Redistributions of source code must retain the above copyright</span>
<a name="l00012"></a>00012 <span class="comment">*     notice, this list of conditions and the following disclaimer.</span>
<a name="l00013"></a>00013 <span class="comment">*   * Redistributions in binary form must reproduce the above</span>
<a name="l00014"></a>00014 <span class="comment">*     copyright notice, this list of conditions and the following</span>
<a name="l00015"></a>00015 <span class="comment">*     disclaimer in the documentation and/or other materials provided</span>
<a name="l00016"></a>00016 <span class="comment">*     with the distribution.</span>
<a name="l00017"></a>00017 <span class="comment">*   * Neither the name of the Rice University nor the names of its</span>
<a name="l00018"></a>00018 <span class="comment">*     contributors may be used to endorse or promote products derived</span>
<a name="l00019"></a>00019 <span class="comment">*     from this software without specific prior written permission.</span>
<a name="l00020"></a>00020 <span class="comment">*</span>
<a name="l00021"></a>00021 <span class="comment">*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
<a name="l00022"></a>00022 <span class="comment">*  &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
<a name="l00023"></a>00023 <span class="comment">*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS</span>
<a name="l00024"></a>00024 <span class="comment">*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE</span>
<a name="l00025"></a>00025 <span class="comment">*  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,</span>
<a name="l00026"></a>00026 <span class="comment">*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,</span>
<a name="l00027"></a>00027 <span class="comment">*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span>
<a name="l00028"></a>00028 <span class="comment">*  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER</span>
<a name="l00029"></a>00029 <span class="comment">*  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
<a name="l00030"></a>00030 <span class="comment">*  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN</span>
<a name="l00031"></a>00031 <span class="comment">*  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span>
<a name="l00032"></a>00032 <span class="comment">*  POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00033"></a>00033 <span class="comment">*********************************************************************/</span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="comment">/* Author: Ioan Sucan */</span>
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 <span class="preprocessor">#ifndef OMPL_BASE_SPACE_INFORMATION_</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define OMPL_BASE_SPACE_INFORMATION_</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &quot;ompl/base/State.h&quot;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;ompl/base/StateValidityChecker.h&quot;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;ompl/base/MotionValidator.h&quot;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;ompl/base/StateSpace.h&quot;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;ompl/base/ValidStateSampler.h&quot;</span>
<a name="l00045"></a>00045 
<a name="l00046"></a>00046 <span class="preprocessor">#include &quot;ompl/util/ClassForward.h&quot;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &quot;ompl/util/Console.h&quot;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &quot;ompl/util/Exception.h&quot;</span>
<a name="l00049"></a>00049 
<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;boost/noncopyable.hpp&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;boost/function.hpp&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;boost/bind.hpp&gt;</span>
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;utility&gt;</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
<a name="l00056"></a>00056 <span class="preprocessor">#include &lt;vector&gt;</span>
<a name="l00057"></a>00057 <span class="preprocessor">#include &lt;iostream&gt;</span>
<a name="l00058"></a>00058 
<a name="l00060"></a>00060 <span class="keyword">namespace </span>ompl
<a name="l00061"></a>00061 {
<a name="l00062"></a>00062 
<a name="l00067"></a>00067     <span class="keyword">namespace </span>base
<a name="l00068"></a>00068     {
<a name="l00069"></a>00069 
<a name="l00071"></a>00071         <a class="code" href="namespaceompl_1_1base.html#a746ce4d50a7f41d386a33d2a9ed069f8" title="Forward declaration of ompl::base::Goal.">ClassForward</a>(SpaceInformation);
<a name="l00072"></a>00072 
<a name="l00079"></a><a class="code" href="namespaceompl_1_1base.html#a208ad51fcef09961293d23b589a4dbfa">00079</a>         <span class="keyword">typedef</span> boost::function1&lt;bool, const State*&gt; <a class="code" href="namespaceompl_1_1base.html#a208ad51fcef09961293d23b589a4dbfa" title="If no state validity checking class is specified (StateValidityChecker), a boost function can be spec...">StateValidityCheckerFn</a>;
<a name="l00080"></a>00080 
<a name="l00081"></a>00081 
<a name="l00085"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html">00085</a>         <span class="keyword">class </span><a class="code" href="classompl_1_1base_1_1SpaceInformation.html" title="The base class for space information. This contains all the information about the space planning is d...">SpaceInformation</a> : <span class="keyword">private</span> boost::noncopyable
<a name="l00086"></a>00086         {
<a name="l00087"></a>00087         <span class="keyword">public</span>:
<a name="l00088"></a>00088 
<a name="l00090"></a>00090             <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a60718797ea47fe7ccd4a5c14acaee510" title="Constructor. Sets the instance of the state space to plan with.">SpaceInformation</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1StateSpacePtr.html" title="A boost shared pointer wrapper for ompl::base::StateSpace.">StateSpacePtr</a> &amp;space);
<a name="l00091"></a>00091 
<a name="l00092"></a>00092             <span class="keyword">virtual</span> ~<a class="code" href="classompl_1_1base_1_1SpaceInformation.html" title="The base class for space information. This contains all the information about the space planning is d...">SpaceInformation</a>(<span class="keywordtype">void</span>)
<a name="l00093"></a>00093             {
<a name="l00094"></a>00094             }
<a name="l00095"></a>00095 
<a name="l00097"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af79b66aea243ec09f9f0db949efbe86b">00097</a>             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af79b66aea243ec09f9f0db949efbe86b" title="Check if a given state is valid or not.">isValid</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state)<span class="keyword"> const</span>
<a name="l00098"></a>00098 <span class="keyword">            </span>{
<a name="l00099"></a>00099                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a03cab04f748eb6637fb5a088f21cead9" title="The instance of the state validity checker used for determining the validity of states in the plannin...">stateValidityChecker_</a>-&gt;isValid(state);
<a name="l00100"></a>00100             }
<a name="l00101"></a>00101 
<a name="l00103"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a69c22d6da354e45f65c4308a5ea10011">00103</a>             <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1StateSpacePtr.html" title="A boost shared pointer wrapper for ompl::base::StateSpace.">StateSpacePtr</a>&amp; <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a69c22d6da354e45f65c4308a5ea10011" title="Return the instance of the used state space.">getStateSpace</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00104"></a>00104 <span class="keyword">            </span>{
<a name="l00105"></a>00105                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>;
<a name="l00106"></a>00106             }
<a name="l00107"></a>00107 
<a name="l00112"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6a58af29d996a5fa0b05f58e3493af7f">00112</a>             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6a58af29d996a5fa0b05f58e3493af7f" title="Check if two states are the same.">equalStates</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state1, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state2)<span class="keyword"> const</span>
<a name="l00113"></a>00113 <span class="keyword">            </span>{
<a name="l00114"></a>00114                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;equalStates(state1, state2);
<a name="l00115"></a>00115             }
<a name="l00116"></a>00116 
<a name="l00118"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ad76b863efa604add17cae43b4ebcb0b9">00118</a>             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ad76b863efa604add17cae43b4ebcb0b9" title="Check if a state is inside the bounding box.">satisfiesBounds</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state)<span class="keyword"> const</span>
<a name="l00119"></a>00119 <span class="keyword">            </span>{
<a name="l00120"></a>00120                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;satisfiesBounds(state);
<a name="l00121"></a>00121             }
<a name="l00122"></a>00122 
<a name="l00124"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ac8cadda9547f74d4193c3168a3b2d34f">00124</a>             <span class="keywordtype">double</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ac8cadda9547f74d4193c3168a3b2d34f" title="Compute the distance between two states.">distance</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state1, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state2)<span class="keyword"> const</span>
<a name="l00125"></a>00125 <span class="keyword">            </span>{
<a name="l00126"></a>00126                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;distance(state1, state2);
<a name="l00127"></a>00127             }
<a name="l00128"></a>00128 
<a name="l00130"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ae59039c648f01e6bb3bf16de03b91574">00130</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ae59039c648f01e6bb3bf16de03b91574" title="Bring the state within the bounds of the state space.">enforceBounds</a>(<a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state)<span class="keyword"> const</span>
<a name="l00131"></a>00131 <span class="keyword">            </span>{
<a name="l00132"></a>00132                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;enforceBounds(state);
<a name="l00133"></a>00133             }
<a name="l00134"></a>00134 
<a name="l00136"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a0113dd07660e15d54a8f8c05562633d6">00136</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a0113dd07660e15d54a8f8c05562633d6" title="Print a state to a stream.">printState</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state, std::ostream &amp;out = std::cout)<span class="keyword"> const</span>
<a name="l00137"></a>00137 <span class="keyword">            </span>{
<a name="l00138"></a>00138                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;printState(state, out);
<a name="l00139"></a>00139             }
<a name="l00140"></a>00140 
<a name="l00149"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a0449ec0893e02aca2bdfc63323b624e5">00149</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a0449ec0893e02aca2bdfc63323b624e5" title="Set the instance of the state validity checker to use. Parallel implementations of planners assume th...">setStateValidityChecker</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1StateValidityCheckerPtr.html" title="A boost shared pointer wrapper for ompl::base::StateValidityChecker.">StateValidityCheckerPtr</a> &amp;svc)
<a name="l00150"></a>00150             {
<a name="l00151"></a>00151                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a03cab04f748eb6637fb5a088f21cead9" title="The instance of the state validity checker used for determining the validity of states in the plannin...">stateValidityChecker_</a> = svc;
<a name="l00152"></a>00152                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af5dd22573e611e150d15af2081dd26c8" title="Flag indicating whether setup() has been called on this instance.">setup_</a> = <span class="keyword">false</span>;
<a name="l00153"></a>00153             }
<a name="l00154"></a>00154 
<a name="l00160"></a>00160             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a0449ec0893e02aca2bdfc63323b624e5" title="Set the instance of the state validity checker to use. Parallel implementations of planners assume th...">setStateValidityChecker</a>(<span class="keyword">const</span> <a class="code" href="namespaceompl_1_1base.html#a208ad51fcef09961293d23b589a4dbfa" title="If no state validity checking class is specified (StateValidityChecker), a boost function can be spec...">StateValidityCheckerFn</a> &amp;svc);
<a name="l00161"></a>00161 
<a name="l00163"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a8ab8714ed0d6b784404aae4c5b4954db">00163</a>             <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1StateValidityCheckerPtr.html" title="A boost shared pointer wrapper for ompl::base::StateValidityChecker.">StateValidityCheckerPtr</a>&amp; <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a8ab8714ed0d6b784404aae4c5b4954db" title="Return the instance of the used state validity checker.">getStateValidityChecker</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00164"></a>00164 <span class="keyword">            </span>{
<a name="l00165"></a>00165                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a03cab04f748eb6637fb5a088f21cead9" title="The instance of the state validity checker used for determining the validity of states in the plannin...">stateValidityChecker_</a>;
<a name="l00166"></a>00166             }
<a name="l00167"></a>00167 
<a name="l00171"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a69e58548f91db3e30ac7f41c87459279">00171</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a69e58548f91db3e30ac7f41c87459279" title="Set the instance of the motion validity checker to use. Parallel implementations of planners assume t...">setMotionValidator</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1MotionValidatorPtr.html" title="A boost shared pointer wrapper for ompl::base::MotionValidator.">MotionValidatorPtr</a> &amp;mv)
<a name="l00172"></a>00172             {
<a name="l00173"></a>00173                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ace9276cca898e91739b7e8b0b2daafb1" title="The instance of the motion validator to use when determining the validity of motions in the planning ...">motionValidator_</a> = mv;
<a name="l00174"></a>00174                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af5dd22573e611e150d15af2081dd26c8" title="Flag indicating whether setup() has been called on this instance.">setup_</a> = <span class="keyword">false</span>;
<a name="l00175"></a>00175             }
<a name="l00176"></a>00176 
<a name="l00178"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a22d6e08c0fadd4c751aff912e56342c2">00178</a>             <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1MotionValidatorPtr.html" title="A boost shared pointer wrapper for ompl::base::MotionValidator.">MotionValidatorPtr</a>&amp; <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a22d6e08c0fadd4c751aff912e56342c2" title="Return the instance of the used state validity checker.">getMotionValidator</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00179"></a>00179 <span class="keyword">            </span>{
<a name="l00180"></a>00180                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ace9276cca898e91739b7e8b0b2daafb1" title="The instance of the motion validator to use when determining the validity of motions in the planning ...">motionValidator_</a>;
<a name="l00181"></a>00181             }
<a name="l00182"></a>00182 
<a name="l00189"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a2bcd47fd9b7cf54b086d2122646736bf">00189</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a2bcd47fd9b7cf54b086d2122646736bf" title="Set the resolution at which state validity needs to be verified in order for a motion between two sta...">setStateValidityCheckingResolution</a>(<span class="keywordtype">double</span> resolution)
<a name="l00190"></a>00190             {
<a name="l00191"></a>00191                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;setLongestValidSegmentFraction(resolution);
<a name="l00192"></a>00192                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af5dd22573e611e150d15af2081dd26c8" title="Flag indicating whether setup() has been called on this instance.">setup_</a> = <span class="keyword">false</span>;
<a name="l00193"></a>00193             }
<a name="l00194"></a>00194 
<a name="l00199"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a41910a9525c7d88a64147af4f2bb35bc">00199</a>             <span class="keywordtype">double</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a41910a9525c7d88a64147af4f2bb35bc" title="Get the resolution at which state validity is verified. This call is only applicable if a ompl::base:...">getStateValidityCheckingResolution</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00200"></a>00200 <span class="keyword">            </span>{
<a name="l00201"></a>00201                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;getLongestValidSegmentFraction();
<a name="l00202"></a>00202             }
<a name="l00203"></a>00203 
<a name="l00204"></a>00204 
<a name="l00208"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#aef300c1eff0e5a5f23dd8a621d892574">00208</a>             <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#aef300c1eff0e5a5f23dd8a621d892574" title="Return the dimension of the state space.">getStateDimension</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00209"></a>00209 <span class="keyword">            </span>{
<a name="l00210"></a>00210                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;getDimension();
<a name="l00211"></a>00211             }
<a name="l00212"></a>00212 
<a name="l00217"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a9e758a30cc13bd00c6cee667c9232e88">00217</a>             <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a>* <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a9e758a30cc13bd00c6cee667c9232e88" title="Allocate memory for a state.">allocState</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00218"></a>00218 <span class="keyword">            </span>{
<a name="l00219"></a>00219                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;allocState();
<a name="l00220"></a>00220             }
<a name="l00221"></a>00221 
<a name="l00223"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ae94a80be6d748f0d241beeab28c86957">00223</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ae94a80be6d748f0d241beeab28c86957" title="Allocate memory for each element of the array states.">allocStates</a>(std::vector&lt;State*&gt; &amp;states)<span class="keyword"> const</span>
<a name="l00224"></a>00224 <span class="keyword">            </span>{
<a name="l00225"></a>00225                 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0 ; i &lt; states.size() ; ++i)
<a name="l00226"></a>00226                     states[i] = <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;allocState();
<a name="l00227"></a>00227             }
<a name="l00228"></a>00228 
<a name="l00230"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a78dff42e6a76b87a9a4d19680fb82e31">00230</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a78dff42e6a76b87a9a4d19680fb82e31" title="Free the memory of a state.">freeState</a>(<a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state)<span class="keyword"> const</span>
<a name="l00231"></a>00231 <span class="keyword">            </span>{
<a name="l00232"></a>00232                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;freeState(state);
<a name="l00233"></a>00233             }
<a name="l00234"></a>00234 
<a name="l00236"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a720c113d34500de5929e3fb908641079">00236</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a720c113d34500de5929e3fb908641079" title="Free the memory of an array of states.">freeStates</a>(std::vector&lt;State*&gt; &amp;states)<span class="keyword"> const</span>
<a name="l00237"></a>00237 <span class="keyword">            </span>{
<a name="l00238"></a>00238                 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0 ; i &lt; states.size() ; ++i)
<a name="l00239"></a>00239                     <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;freeState(states[i]);
<a name="l00240"></a>00240             }
<a name="l00241"></a>00241 
<a name="l00243"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a05e4c93df272965efa3459295f70bc0f">00243</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a05e4c93df272965efa3459295f70bc0f" title="Copy a state to another.">copyState</a>(<a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *destination, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *source)<span class="keyword"> const</span>
<a name="l00244"></a>00244 <span class="keyword">            </span>{
<a name="l00245"></a>00245                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;copyState(destination, source);
<a name="l00246"></a>00246             }
<a name="l00247"></a>00247 
<a name="l00249"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6558a06162464c7f06a78601c5ad8230">00249</a>             <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a>* <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6558a06162464c7f06a78601c5ad8230" title="Clone a state.">cloneState</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *source)<span class="keyword"> const</span>
<a name="l00250"></a>00250 <span class="keyword">            </span>{
<a name="l00251"></a>00251                 <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *copy = <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;allocState();
<a name="l00252"></a>00252                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;copyState(copy, source);
<a name="l00253"></a>00253                 <span class="keywordflow">return</span> copy;
<a name="l00254"></a>00254             }
<a name="l00255"></a>00255 
<a name="l00263"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a65ba2c60529f5aa23098d43c6c2b6da4">00263</a>             <a class="code" href="classompl_1_1base_1_1StateSamplerPtr.html" title="A boost shared pointer wrapper for ompl::base::StateSampler.">StateSamplerPtr</a> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a65ba2c60529f5aa23098d43c6c2b6da4" title="Allocate a uniform state sampler for the state space.">allocStateSampler</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00264"></a>00264 <span class="keyword">            </span>{
<a name="l00265"></a>00265                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;allocStateSampler();
<a name="l00266"></a>00266             }
<a name="l00267"></a>00267 
<a name="l00271"></a>00271             <a class="code" href="classompl_1_1base_1_1ValidStateSamplerPtr.html" title="A boost shared pointer wrapper for ompl::base::ValidStateSampler.">ValidStateSamplerPtr</a> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#acb94231d22c1763e3f79e5d67e5e7428" title="Allocate an instance of a valid state sampler for this space. If setValidStateSamplerAllocator() was ...">allocValidStateSampler</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00272"></a>00272 
<a name="l00273"></a>00273 
<a name="l00276"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ae6391771fc74984a3266f986cfe07780">00276</a>             <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ae6391771fc74984a3266f986cfe07780" title="Set the allocator to use for a valid state sampler. This replaces the default uniform valid state sam...">setValidStateSamplerAllocator</a>(<span class="keyword">const</span> <a class="code" href="namespaceompl_1_1base.html#a58736601905ecc753990d7d053c3a0b4" title="Definition of a function that can allocate a state sampler.">ValidStateSamplerAllocator</a> &amp;vssa)
<a name="l00277"></a>00277             {
<a name="l00278"></a>00278                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ad20bb9ec674edd4d4dbb2d13b2d89abd" title="The optional valid state sampler allocator.">vssa_</a> = vssa;
<a name="l00279"></a>00279                 <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af5dd22573e611e150d15af2081dd26c8" title="Flag indicating whether setup() has been called on this instance.">setup_</a> = <span class="keyword">false</span>;
<a name="l00280"></a>00280             }
<a name="l00281"></a>00281 
<a name="l00290"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a1bc9d650c9e571dbc124e1c7761bce9e">00290</a>             <span class="keywordtype">double</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a1bc9d650c9e571dbc124e1c7761bce9e" title="Get the maximum extent of the space we are planning in. This is the maximum distance that could be re...">getMaximumExtent</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00291"></a>00291 <span class="keyword">            </span>{
<a name="l00292"></a>00292                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>-&gt;getMaximumExtent();
<a name="l00293"></a>00293             }
<a name="l00294"></a>00294 
<a name="l00302"></a>00302             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af936d24f2adf320e2158c855a0dad0af" title="Find a valid state near a given one. If the given state is valid, it will be returned itself...">searchValidNearby</a>(<a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *near, <span class="keywordtype">double</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ac8cadda9547f74d4193c3168a3b2d34f" title="Compute the distance between two states.">distance</a>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> attempts) <span class="keyword">const</span>;
<a name="l00303"></a>00303 
<a name="l00311"></a>00311             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af936d24f2adf320e2158c855a0dad0af" title="Find a valid state near a given one. If the given state is valid, it will be returned itself...">searchValidNearby</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1ValidStateSamplerPtr.html" title="A boost shared pointer wrapper for ompl::base::ValidStateSampler.">ValidStateSamplerPtr</a> &amp;sampler, <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *state, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *near, <span class="keywordtype">double</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ac8cadda9547f74d4193c3168a3b2d34f" title="Compute the distance between two states.">distance</a>) <span class="keyword">const</span>;
<a name="l00312"></a>00312 
<a name="l00319"></a>00319             <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a67f3734521dd86233648b0c9c3c80e74" title="Produce a valid motion starting at start by randomly bouncing off of invalid states. The start state start is not included in the computed motion (states). Returns the number of elements written to states (less or equal to steps).">randomBounceMotion</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1StateSamplerPtr.html" title="A boost shared pointer wrapper for ompl::base::StateSampler.">StateSamplerPtr</a> &amp;sss, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *start, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> steps, std::vector&lt;State*&gt; &amp;states, <span class="keywordtype">bool</span> alloc) <span class="keyword">const</span>;
<a name="l00320"></a>00320 
<a name="l00327"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6047b893546bab139139104a0a7b756e">00327</a>             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6047b893546bab139139104a0a7b756e" title="Incrementally check if the path between two motions is valid. Also compute the last state that was va...">checkMotion</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *s1, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *s2, std::pair&lt;State*, double&gt; &amp;lastValid)<span class="keyword"> const</span>
<a name="l00328"></a>00328 <span class="keyword">            </span>{
<a name="l00329"></a>00329                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ace9276cca898e91739b7e8b0b2daafb1" title="The instance of the motion validator to use when determining the validity of motions in the planning ...">motionValidator_</a>-&gt;checkMotion(s1, s2, lastValid);
<a name="l00330"></a>00330             }
<a name="l00331"></a>00331 
<a name="l00332"></a>00332 
<a name="l00334"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a434b795993022c3742eb22f6c1db605d">00334</a>             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6047b893546bab139139104a0a7b756e" title="Incrementally check if the path between two motions is valid. Also compute the last state that was va...">checkMotion</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *s1, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *s2)<span class="keyword"> const</span>
<a name="l00335"></a>00335 <span class="keyword">            </span>{
<a name="l00336"></a>00336                 <span class="keywordflow">return</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ace9276cca898e91739b7e8b0b2daafb1" title="The instance of the motion validator to use when determining the validity of motions in the planning ...">motionValidator_</a>-&gt;checkMotion(s1, s2);
<a name="l00337"></a>00337             }
<a name="l00338"></a>00338 
<a name="l00344"></a>00344             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6047b893546bab139139104a0a7b756e" title="Incrementally check if the path between two motions is valid. Also compute the last state that was va...">checkMotion</a>(<span class="keyword">const</span> std::vector&lt;State*&gt; &amp;states, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;firstInvalidStateIndex) <span class="keyword">const</span>;
<a name="l00345"></a>00345 
<a name="l00347"></a>00347             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a6047b893546bab139139104a0a7b756e" title="Incrementally check if the path between two motions is valid. Also compute the last state that was va...">checkMotion</a>(<span class="keyword">const</span> std::vector&lt;State*&gt; &amp;states, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count) <span class="keyword">const</span>;
<a name="l00348"></a>00348 
<a name="l00357"></a>00357             <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a3e5a6cdbe7c636d8e60ed7833c573668" title="Get count states that make up a motion between s1 and s2. Returns the number of states that were adde...">getMotionStates</a>(<span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *s1, <span class="keyword">const</span> <a class="code" href="classompl_1_1base_1_1State.html" title="Definition of an abstract state.">State</a> *s2, std::vector&lt;State*&gt; &amp;states, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">bool</span> endpoints, <span class="keywordtype">bool</span> alloc) <span class="keyword">const</span>;
<a name="l00358"></a>00358 
<a name="l00365"></a>00365             <span class="keywordtype">double</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a84daee3700b856630c676b37536c9787" title="Estimate probability of sampling a valid state. setup() is assumed to have been called.">probabilityOfValidState</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> attempts) <span class="keyword">const</span>;
<a name="l00366"></a>00366 
<a name="l00368"></a>00368             <span class="keywordtype">double</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ae83e285ab400971f1e5e6d171a83eb6c" title="Estimate the length of a valid motion. setup() is assumed to have been called.">averageValidMotionLength</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> attempts) <span class="keyword">const</span>;
<a name="l00369"></a>00369 
<a name="l00373"></a>00373             <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a9887f6b2810e5d3befa9a7b886b5b4dd" title="Print information about the current instance of the state space.">printSettings</a>(std::ostream &amp;out = std::cout) <span class="keyword">const</span>;
<a name="l00374"></a>00374 
<a name="l00376"></a>00376             <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#abaeaf7d8730ba3c1ae6b428be87a098c" title="Print properties of the current instance of the state space.">printProperties</a>(std::ostream &amp;out = std::cout) <span class="keyword">const</span>;
<a name="l00377"></a>00377 
<a name="l00382"></a>00382             <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ac39aa0c4b92e3ca5acfa75eeb56b080f" title="Perform additional setup tasks (run once, before use). If state validity checking resolution has not ...">setup</a>(<span class="keywordtype">void</span>);
<a name="l00383"></a>00383 
<a name="l00385"></a>00385             <span class="keywordtype">bool</span> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a9260fb70aa7d41e968c97d90f9f25867" title="Return true if setup was called.">isSetup</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00386"></a>00386 
<a name="l00387"></a>00387         <span class="keyword">protected</span>:
<a name="l00388"></a>00388 
<a name="l00390"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a">00390</a>             <a class="code" href="classompl_1_1base_1_1StateSpacePtr.html" title="A boost shared pointer wrapper for ompl::base::StateSpace.">StateSpacePtr</a>              <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ab7d8d572b76a5899b6c3816a544abe7a" title="The state space planning is to be performed in.">stateSpace_</a>;
<a name="l00391"></a>00391 
<a name="l00393"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a03cab04f748eb6637fb5a088f21cead9">00393</a>             <a class="code" href="classompl_1_1base_1_1StateValidityCheckerPtr.html" title="A boost shared pointer wrapper for ompl::base::StateValidityChecker.">StateValidityCheckerPtr</a>    <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a03cab04f748eb6637fb5a088f21cead9" title="The instance of the state validity checker used for determining the validity of states in the plannin...">stateValidityChecker_</a>;
<a name="l00394"></a>00394 
<a name="l00396"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ace9276cca898e91739b7e8b0b2daafb1">00396</a>             <a class="code" href="classompl_1_1base_1_1MotionValidatorPtr.html" title="A boost shared pointer wrapper for ompl::base::MotionValidator.">MotionValidatorPtr</a>         <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ace9276cca898e91739b7e8b0b2daafb1" title="The instance of the motion validator to use when determining the validity of motions in the planning ...">motionValidator_</a>;
<a name="l00397"></a>00397 
<a name="l00399"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af5dd22573e611e150d15af2081dd26c8">00399</a>             <span class="keywordtype">bool</span>                       <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#af5dd22573e611e150d15af2081dd26c8" title="Flag indicating whether setup() has been called on this instance.">setup_</a>;
<a name="l00400"></a>00400 
<a name="l00402"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ad20bb9ec674edd4d4dbb2d13b2d89abd">00402</a>             <a class="code" href="namespaceompl_1_1base.html#a58736601905ecc753990d7d053c3a0b4" title="Definition of a function that can allocate a state sampler.">ValidStateSamplerAllocator</a> <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#ad20bb9ec674edd4d4dbb2d13b2d89abd" title="The optional valid state sampler allocator.">vssa_</a>;
<a name="l00403"></a>00403 
<a name="l00405"></a><a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a75472118296827164214bb40c2f9b960">00405</a>             <a class="code" href="classompl_1_1msg_1_1Interface.html" title="The piece of code that desires interaction with an action or an output handler should use an instance...">msg::Interface</a>             <a class="code" href="classompl_1_1base_1_1SpaceInformation.html#a75472118296827164214bb40c2f9b960" title="The console interface.">msg_</a>;
<a name="l00406"></a>00406         };
<a name="l00407"></a>00407 
<a name="l00408"></a>00408     }
<a name="l00409"></a>00409 
<a name="l00410"></a>00410 }
<a name="l00411"></a>00411 
<a name="l00412"></a>00412 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div>

<div class="footer span-22 push-2 last">
  <a href="http://www.kavrakilab.org">Physical and Biological Computing Group</a> &bull;
  <a href="http://www.cs.rice.edu">Department of Computer Science</a> &bull;
  <a href="http://www.rice.edu">Rice University</a><br>
  <div class="gray">Generated on Sun Oct 9 2011 23:04:29 by&#160;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.7.4</div>
</div>
</div>
</body>
</html>