inital commit of the physics singleton
|
@ -0,0 +1,100 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: Class List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Class List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
|
||||||
|
<table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classirr_dynamics.html" target="_self">irrDynamics</a></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 676 B |
After Width: | Height: | Size: 147 B |
|
@ -0,0 +1,104 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: Class Index</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li class="current"><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Class Index</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_I">I</a></div>
|
||||||
|
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  i  </div></td></tr></table>
|
||||||
|
</td><td></td></tr>
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td valign="top"><a class="el" href="classirr_dynamics.html">irrDynamics</a>   </td><td></td></tr>
|
||||||
|
<tr><td></td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_I">I</a></div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,112 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">irrDynamics Member List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="classirr_dynamics.html">irrDynamics</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classirr_dynamics.html#ae57a380934ec217890202db55c29be60">addBoxObject</a>(irr::scene::ISceneNode *node, irr::f32 mass)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517">addFloor</a>(const irr::core::vector3df &normal=irr::core::vector3df(0.f, 1.f, 0.f), const irr::core::vector3df &offset=irr::core::vector3df(0.f, 0.f, 0.f))</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad">addSphericalObject</a>(irr::scene::ISceneNode *node, irr::f32 radius, irr::f32 mass)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0"><td class="entry"><b>addTerrain</b>(irr::scene::ITerrainSceneNode *terrain, irr::u32 lodLevel=2) (defined in <a class="el" href="classirr_dynamics.html">irrDynamics</a>)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551">applyCentralForce</a>(irr::scene::ISceneNode *node, const irr::core::vector3df &force)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb">createHingeConstraint</a>(irr::scene::ISceneNode *nodeA, irr::scene::ISceneNode *nodeB, const irr::core::vector3df &pivotInA, const irr::core::vector3df &pivotInB, const irr::core::vector3df &axisInA, const irr::core::vector3df &axisInB)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41">createPoint2PointConstraint</a>(irr::scene::ISceneNode *nodeA, irr::scene::ISceneNode *nodeB, const irr::core::vector3df &pivotInA, const irr::core::vector3df &pivotInB)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0"><td class="entry"><b>debugDraw</b>() (defined in <a class="el" href="classirr_dynamics.html">irrDynamics</a>)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getInstance</b>() (defined in <a class="el" href="classirr_dynamics.html">irrDynamics</a>)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459">removeObject</a>(irr::scene::ISceneNode *node)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setDamping</b>(irr::scene::ISceneNode *node, irr::f32 linearDamping, irr::f32 angularDamping) (defined in <a class="el" href="classirr_dynamics.html">irrDynamics</a>)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0"><td class="entry"><b>setPosition</b>(irr::scene::ISceneNode *node, const irr::core::vector3df &newPos) (defined in <a class="el" href="classirr_dynamics.html">irrDynamics</a>)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>shutdown</b>() (defined in <a class="el" href="classirr_dynamics.html">irrDynamics</a>)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0"><td class="entry"><b>simStep</b>(const irr::u32 &curTimeStamp) (defined in <a class="el" href="classirr_dynamics.html">irrDynamics</a>)</td><td class="entry"><a class="el" href="classirr_dynamics.html">irrDynamics</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,501 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: irrDynamics Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
||||||
|
<a href="classirr_dynamics-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">irrDynamics Class Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
||||||
|
Static Public Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a91c08601f94a477c54b06e9e1447cacc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91c08601f94a477c54b06e9e1447cacc"></a>
|
||||||
|
static <a class="el" href="classirr_dynamics.html">irrDynamics</a> * </td><td class="memItemRight" valign="bottom"><b>getInstance</b> ()</td></tr>
|
||||||
|
<tr class="separator:a91c08601f94a477c54b06e9e1447cacc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a1ef5052cb94a12e98579c7c296131ba7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ef5052cb94a12e98579c7c296131ba7"></a>
|
||||||
|
static void </td><td class="memItemRight" valign="bottom"><b>simStep</b> (const irr::u32 &curTimeStamp)</td></tr>
|
||||||
|
<tr class="separator:a1ef5052cb94a12e98579c7c296131ba7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a7195d45792d0d8b3f77d99c37c407fa3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7195d45792d0d8b3f77d99c37c407fa3"></a>
|
||||||
|
static void </td><td class="memItemRight" valign="bottom"><b>shutdown</b> ()</td></tr>
|
||||||
|
<tr class="separator:a7195d45792d0d8b3f77d99c37c407fa3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aa48e00d29759bcbb8300bbb5a1e47512"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa48e00d29759bcbb8300bbb5a1e47512"></a>
|
||||||
|
static void </td><td class="memItemRight" valign="bottom"><b>addTerrain</b> (irr::scene::ITerrainSceneNode *terrain, irr::u32 lodLevel=2)</td></tr>
|
||||||
|
<tr class="separator:aa48e00d29759bcbb8300bbb5a1e47512"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a7744a583c48c37deaf629da9b6769bad"><td class="memItemLeft" align="right" valign="top">static class btRigidBody * </td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad">addSphericalObject</a> (irr::scene::ISceneNode *node, irr::f32 radius, irr::f32 mass)</td></tr>
|
||||||
|
<tr class="memdesc:a7744a583c48c37deaf629da9b6769bad"><td class="mdescLeft"> </td><td class="mdescRight">Add a scene node that is represented as spherical behavior. <a href="#a7744a583c48c37deaf629da9b6769bad">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:a7744a583c48c37deaf629da9b6769bad"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ae57a380934ec217890202db55c29be60"><td class="memItemLeft" align="right" valign="top">static class btRigidBody * </td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_dynamics.html#ae57a380934ec217890202db55c29be60">addBoxObject</a> (irr::scene::ISceneNode *node, irr::f32 mass)</td></tr>
|
||||||
|
<tr class="memdesc:ae57a380934ec217890202db55c29be60"><td class="mdescLeft"> </td><td class="mdescRight">Add a scene node that is represented as a sturdy box. <a href="#ae57a380934ec217890202db55c29be60">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ae57a380934ec217890202db55c29be60"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a7e23a5d4515b38b473fbd538c8d30517"><td class="memItemLeft" align="right" valign="top">static class btRigidBody * </td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517">addFloor</a> (const irr::core::vector3df &normal=irr::core::vector3df(0.f, 1.f, 0.f), const irr::core::vector3df &offset=irr::core::vector3df(0.f, 0.f, 0.f))</td></tr>
|
||||||
|
<tr class="memdesc:a7e23a5d4515b38b473fbd538c8d30517"><td class="mdescLeft"> </td><td class="mdescRight">Add an infinite floor plane to the scene. <a href="#a7e23a5d4515b38b473fbd538c8d30517">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:a7e23a5d4515b38b473fbd538c8d30517"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ae130aee5eb7647617e59c888e5a1acbb"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb">createHingeConstraint</a> (irr::scene::ISceneNode *nodeA, irr::scene::ISceneNode *nodeB, const irr::core::vector3df &pivotInA, const irr::core::vector3df &pivotInB, const irr::core::vector3df &axisInA, const irr::core::vector3df &axisInB)</td></tr>
|
||||||
|
<tr class="memdesc:ae130aee5eb7647617e59c888e5a1acbb"><td class="mdescLeft"> </td><td class="mdescRight">Create a hinge relation between two objects. <a href="#ae130aee5eb7647617e59c888e5a1acbb">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ae130aee5eb7647617e59c888e5a1acbb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a1b0ce9bd5b1057857b5d99495e9cab41"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41">createPoint2PointConstraint</a> (irr::scene::ISceneNode *nodeA, irr::scene::ISceneNode *nodeB, const irr::core::vector3df &pivotInA, const irr::core::vector3df &pivotInB)</td></tr>
|
||||||
|
<tr class="memdesc:a1b0ce9bd5b1057857b5d99495e9cab41"><td class="mdescLeft"> </td><td class="mdescRight">Create a point-to-point relation between two objects. <a href="#a1b0ce9bd5b1057857b5d99495e9cab41">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:a1b0ce9bd5b1057857b5d99495e9cab41"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a9373fe3504096f6f6c17eca2be9bb459"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459">removeObject</a> (irr::scene::ISceneNode *node)</td></tr>
|
||||||
|
<tr class="memdesc:a9373fe3504096f6f6c17eca2be9bb459"><td class="mdescLeft"> </td><td class="mdescRight">Remove an object from the physics. <a href="#a9373fe3504096f6f6c17eca2be9bb459">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:a9373fe3504096f6f6c17eca2be9bb459"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a2b5f4c6732caadddeb3589e321fc9551"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551">applyCentralForce</a> (irr::scene::ISceneNode *node, const irr::core::vector3df &force)</td></tr>
|
||||||
|
<tr class="memdesc:a2b5f4c6732caadddeb3589e321fc9551"><td class="mdescLeft"> </td><td class="mdescRight">Applies a pushing force to the object. <a href="#a2b5f4c6732caadddeb3589e321fc9551">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:a2b5f4c6732caadddeb3589e321fc9551"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a065d0b0ac1ba5b475587b20d837a1ceb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a065d0b0ac1ba5b475587b20d837a1ceb"></a>
|
||||||
|
static void </td><td class="memItemRight" valign="bottom"><b>setDamping</b> (irr::scene::ISceneNode *node, irr::f32 linearDamping, irr::f32 angularDamping)</td></tr>
|
||||||
|
<tr class="separator:a065d0b0ac1ba5b475587b20d837a1ceb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a2b65dad3b5bd0541880011bf5c8ee940"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b65dad3b5bd0541880011bf5c8ee940"></a>
|
||||||
|
static void </td><td class="memItemRight" valign="bottom"><b>setPosition</b> (irr::scene::ISceneNode *node, const irr::core::vector3df &newPos)</td></tr>
|
||||||
|
<tr class="separator:a2b65dad3b5bd0541880011bf5c8ee940"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:abaea07b3d0edf22827bfd104808fa66d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abaea07b3d0edf22827bfd104808fa66d"></a>
|
||||||
|
static void </td><td class="memItemRight" valign="bottom"><b>debugDraw</b> ()</td></tr>
|
||||||
|
<tr class="separator:abaea07b3d0edf22827bfd104808fa66d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<h2 class="groupheader">Member Function Documentation</h2>
|
||||||
|
<a class="anchor" id="ae57a380934ec217890202db55c29be60"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static class btRigidBody* irrDynamics::addBoxObject </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>node</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">irr::f32 </td>
|
||||||
|
<td class="paramname"><em>mass</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Add a scene node that is represented as a sturdy box. </p>
|
||||||
|
<p>This method adds an object with block-like behavior to the physics, such as a CubeSceneNode. Its dimensions are calculated using the current axis-aligned bounding box. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">node</td><td>The scene node to be animated by Bullet. </td></tr>
|
||||||
|
<tr><td class="paramname">mass</td><td>The mass in units assigned to the object. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>The corresponding btRigidBody, if addidional parameters are desired to be set. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a7e23a5d4515b38b473fbd538c8d30517"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static class btRigidBody* irrDynamics::addFloor </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>normal</em> = <code>irr::core::vector3df(0.f, 1.f, 0.f)</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>offset</em> = <code>irr::core::vector3df(0.f, 0.f, 0.f)</code> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Add an infinite floor plane to the scene. </p>
|
||||||
|
<p>Whenever an infinite floor catching all your objects is needed, use this method </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">normal</td><td>The normal vector of the floor plane. Default lays the plane along x- and z-axis (y up). </td></tr>
|
||||||
|
<tr><td class="paramname">offset</td><td>The offset from the origin. If normal is default, only the y-value matters here (vert offset). </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>The corresponding btRigidBody, if addidional parameters are desired to be set. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a7744a583c48c37deaf629da9b6769bad"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static class btRigidBody* irrDynamics::addSphericalObject </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>node</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">irr::f32 </td>
|
||||||
|
<td class="paramname"><em>radius</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">irr::f32 </td>
|
||||||
|
<td class="paramname"><em>mass</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Add a scene node that is represented as spherical behavior. </p>
|
||||||
|
<p>This method adds an object with ball-like behavior to the physics, such as a SphereSceneNode. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">node</td><td>The scene node to be animated by Bullet. </td></tr>
|
||||||
|
<tr><td class="paramname">radius</td><td>The radius of the sphere in irrlicht units. </td></tr>
|
||||||
|
<tr><td class="paramname">mass</td><td>The mass in units assigned to the object. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>The corresponding btRigidBody, if addidional parameters are desired to be set. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a2b5f4c6732caadddeb3589e321fc9551"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static void irrDynamics::applyCentralForce </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>node</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>force</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Applies a pushing force to the object. </p>
|
||||||
|
<p>To move an object in a physics engine you do not set its position but you push it towards that place. Use this method to apply such a push represented as a 3D vector. As expected, the 'longer' the vector, the more powerful the push will be. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">node</td><td>The scene node the force should be applied to. </td></tr>
|
||||||
|
<tr><td class="paramname">force</td><td>The force to apply, the vector represents its direction, the vector length its power. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ae130aee5eb7647617e59c888e5a1acbb"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static bool irrDynamics::createHingeConstraint </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>nodeA</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>nodeB</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>pivotInA</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>pivotInB</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>axisInA</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>axisInB</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Create a hinge relation between two objects. </p>
|
||||||
|
<p>This method physically attaches one scene node to the other in a hinge-like (swinging) relation. </p>
|
||||||
|
<dl class="section note"><dt>Note</dt><dd>Both scene nodes have to be already added to the sim. </dd></dl>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">nodeA</td><td>The "parent" node the swinging one is attached to. </td></tr>
|
||||||
|
<tr><td class="paramname">nodeB</td><td>The child element that will be animated by that relation. </td></tr>
|
||||||
|
<tr><td class="paramname">pivotInA</td><td>A position relative to nodeA where the hinge relation will be placed. </td></tr>
|
||||||
|
<tr><td class="paramname">pivotInB</td><td>A position relative to nodeB where the hinge relation will be placed. </td></tr>
|
||||||
|
<tr><td class="paramname">axisInA</td><td>The axis in nodeA the hinge rotates around. </td></tr>
|
||||||
|
<tr><td class="paramname">axisInB</td><td>The axis in nodeB the hinge rotates around. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>True, when both nodes were found in the physics representation and the relation was created. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a1b0ce9bd5b1057857b5d99495e9cab41"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static bool irrDynamics::createPoint2PointConstraint </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>nodeA</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>nodeB</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>pivotInA</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const irr::core::vector3df & </td>
|
||||||
|
<td class="paramname"><em>pivotInB</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Create a point-to-point relation between two objects. </p>
|
||||||
|
<p>More general than a hinge relation, the p2p can freely swing around all axis. </p>
|
||||||
|
<dl class="section note"><dt>Note</dt><dd>Both scene nodes have to be already added to the sim. </dd></dl>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">nodeA</td><td>The "parent" node the swinging one is attached to. </td></tr>
|
||||||
|
<tr><td class="paramname">nodeB</td><td>The child element that will be animated by that relation. </td></tr>
|
||||||
|
<tr><td class="paramname">pivotInA</td><td>A position relative to nodeA where the hinge relation will be placed. </td></tr>
|
||||||
|
<tr><td class="paramname">pivotInB</td><td>A position relative to nodeB where the hinge relation will be placed. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>True, when both nodes were found in the physics representation and the relation was created. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a9373fe3504096f6f6c17eca2be9bb459"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static void irrDynamics::removeObject </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">irr::scene::ISceneNode * </td>
|
||||||
|
<td class="paramname"><em>node</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Remove an object from the physics. </p>
|
||||||
|
<p>Call this whenever you either remove the corresponding scene node from the ISceneManager or you don't want to have it animated by the physics anymore. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">node</td><td>The scene node to be removed from the physics. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
|
<li>/home/ottona/Projekte/irrdynamics/include/<a class="el" href="irr_dynamics_8h_source.html">irrDynamics.h</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 132 B |
|
@ -0,0 +1,98 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: /home/ottona/Projekte/irrdynamics/include Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">include Directory Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
|
||||||
|
Files</h2></td></tr>
|
||||||
|
<tr class="memitem:irr_dynamics_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>irrDynamics.h</b> <a href="irr_dynamics_8h_source.html">[code]</a></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -0,0 +1,97 @@
|
||||||
|
function toggleVisibility(linkObj)
|
||||||
|
{
|
||||||
|
var base = $(linkObj).attr('id');
|
||||||
|
var summary = $('#'+base+'-summary');
|
||||||
|
var content = $('#'+base+'-content');
|
||||||
|
var trigger = $('#'+base+'-trigger');
|
||||||
|
var src=$(trigger).attr('src');
|
||||||
|
if (content.is(':visible')===true) {
|
||||||
|
content.hide();
|
||||||
|
summary.show();
|
||||||
|
$(linkObj).addClass('closed').removeClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
content.show();
|
||||||
|
summary.hide();
|
||||||
|
$(linkObj).removeClass('closed').addClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateStripes()
|
||||||
|
{
|
||||||
|
$('table.directory tr').
|
||||||
|
removeClass('even').filter(':visible:even').addClass('even');
|
||||||
|
}
|
||||||
|
function toggleLevel(level)
|
||||||
|
{
|
||||||
|
$('table.directory tr').each(function(){
|
||||||
|
var l = this.id.split('_').length-1;
|
||||||
|
var i = $('#img'+this.id.substring(3));
|
||||||
|
var a = $('#arr'+this.id.substring(3));
|
||||||
|
if (l<level+1) {
|
||||||
|
i.attr('src','ftv2folderopen.png');
|
||||||
|
a.attr('src','ftv2mnode.png');
|
||||||
|
$(this).show();
|
||||||
|
} else if (l==level+1) {
|
||||||
|
i.attr('src','ftv2folderclosed.png');
|
||||||
|
a.attr('src','ftv2pnode.png');
|
||||||
|
$(this).show();
|
||||||
|
} else {
|
||||||
|
$(this).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleFolder(id)
|
||||||
|
{
|
||||||
|
//The clicked row
|
||||||
|
var currentRow = $('#row_'+id);
|
||||||
|
var currentRowImages = currentRow.find("img");
|
||||||
|
|
||||||
|
//All rows after the clicked row
|
||||||
|
var rows = currentRow.nextAll("tr");
|
||||||
|
|
||||||
|
//Only match elements AFTER this one (can't hide elements before)
|
||||||
|
var childRows = rows.filter(function() {
|
||||||
|
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||||
|
return this.id.match(re);
|
||||||
|
});
|
||||||
|
|
||||||
|
//First row is visible we are HIDING
|
||||||
|
if (childRows.filter(':first').is(':visible')===true) {
|
||||||
|
currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
|
||||||
|
currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
|
||||||
|
rows.filter("[id^=row_"+id+"]").hide();
|
||||||
|
} else { //We are SHOWING
|
||||||
|
//All sub images
|
||||||
|
var childImages = childRows.find("img");
|
||||||
|
var childImg = childImages.filter("[id^=img]");
|
||||||
|
var childArr = childImages.filter("[id^=arr]");
|
||||||
|
|
||||||
|
currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
|
||||||
|
currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
|
||||||
|
childImg.attr('src','ftv2folderclosed.png'); //children closed
|
||||||
|
childArr.attr('src','ftv2pnode.png'); //children closed
|
||||||
|
childRows.show(); //show all children
|
||||||
|
}
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function toggleInherit(id)
|
||||||
|
{
|
||||||
|
var rows = $('tr.inherit.'+id);
|
||||||
|
var img = $('tr.inherit_header.'+id+' img');
|
||||||
|
var src = $(img).attr('src');
|
||||||
|
if (rows.filter(':first').is(':visible')===true) {
|
||||||
|
rows.css('display','none');
|
||||||
|
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||||
|
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: File List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="files.html"><span>File List</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">File List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
|
||||||
|
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_')"/><img id="img_0_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_')"/><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html" target="_self">include</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_0_0_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="irr_dynamics_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>irrDynamics.h</b></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 453 B |
After Width: | Height: | Size: 746 B |
After Width: | Height: | Size: 616 B |
After Width: | Height: | Size: 597 B |
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 746 B |
After Width: | Height: | Size: 246 B |
After Width: | Height: | Size: 246 B |
After Width: | Height: | Size: 403 B |
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 388 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 314 B |
After Width: | Height: | Size: 86 B |
|
@ -0,0 +1,120 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 class="contents">
|
||||||
|
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div><ul>
|
||||||
|
<li>addBoxObject()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#ae57a380934ec217890202db55c29be60">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>addFloor()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>addSphericalObject()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>applyCentralForce()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>createHingeConstraint()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>createPoint2PointConstraint()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>removeObject()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,120 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: Class Members - Functions</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>addBoxObject()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#ae57a380934ec217890202db55c29be60">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>addFloor()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>addSphericalObject()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>applyCentralForce()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>createHingeConstraint()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>createPoint2PointConstraint()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
<li>removeObject()
|
||||||
|
: <a class="el" href="classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459">irrDynamics</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,88 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: Main Page</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
</div><!-- top -->
|
||||||
|
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">irrDynamics Documentation</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,155 @@
|
||||||
|
<!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"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6"/>
|
||||||
|
<title>irrDynamics: /home/ottona/Projekte/irrdynamics/include/irrDynamics.h Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">irrDynamics
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.6 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<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" 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>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</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 id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">irrDynamics.h</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#include <map></span></div>
|
||||||
|
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#include <irrlicht.h></span></div>
|
||||||
|
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||||
|
<div class="line"><a name="l00004"></a><span class="lineno"><a class="line" href="classirr_dynamics.html"> 4</a></span> <span class="keyword">class </span><a class="code" href="classirr_dynamics.html">irrDynamics</a></div>
|
||||||
|
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> {</div>
|
||||||
|
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  <span class="keyword">public</span>:</div>
|
||||||
|
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  <span class="keyword">static</span> <a class="code" href="classirr_dynamics.html">irrDynamics</a>* getInstance();</div>
|
||||||
|
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> simStep(<span class="keyword">const</span> irr::u32& curTimeStamp);</div>
|
||||||
|
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> shutdown();</div>
|
||||||
|
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> addTerrain(irr::scene::ITerrainSceneNode* terrain, irr::u32 lodLevel = 2);</div>
|
||||||
|
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||||
|
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  <span class="keyword">static</span> <span class="keyword">class </span>btRigidBody* <a class="code" href="classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad">addSphericalObject</a>(irr::scene::ISceneNode* node, irr::f32 radius, irr::f32 mass);</div>
|
||||||
|
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
|
||||||
|
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">static</span> <span class="keyword">class </span>btRigidBody* <a class="code" href="classirr_dynamics.html#ae57a380934ec217890202db55c29be60">addBoxObject</a>(irr::scene::ISceneNode* node, irr::f32 mass);</div>
|
||||||
|
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||||
|
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">static</span> <span class="keyword">class </span>btRigidBody* <a class="code" href="classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517">addFloor</a>(<span class="keyword">const</span> irr::core::vector3df& normal = irr::core::vector3df(0.f, 1.f, 0.f), <span class="keyword">const</span> irr::core::vector3df& offset = irr::core::vector3df(0.f, 0.f, 0.f));</div>
|
||||||
|
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
|
||||||
|
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb">createHingeConstraint</a>(irr::scene::ISceneNode* nodeA, irr::scene::ISceneNode* nodeB, <span class="keyword">const</span> irr::core::vector3df& pivotInA, <span class="keyword">const</span> irr::core::vector3df& pivotInB, <span class="keyword">const</span> irr::core::vector3df& axisInA, <span class="keyword">const</span> irr::core::vector3df& axisInB);</div>
|
||||||
|
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||||
|
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41">createPoint2PointConstraint</a>(irr::scene::ISceneNode* nodeA, irr::scene::ISceneNode* nodeB, <span class="keyword">const</span> irr::core::vector3df& pivotInA, <span class="keyword">const</span> irr::core::vector3df& pivotInB);</div>
|
||||||
|
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
|
||||||
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459">removeObject</a>(irr::scene::ISceneNode* node);</div>
|
||||||
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||||
|
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551">applyCentralForce</a>(irr::scene::ISceneNode* node, <span class="keyword">const</span> irr::core::vector3df& force);</div>
|
||||||
|
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> setDamping(irr::scene::ISceneNode* node, irr::f32 linearDamping, irr::f32 angularDamping);</div>
|
||||||
|
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> setPosition(irr::scene::ISceneNode* node, <span class="keyword">const</span> irr::core::vector3df& newPos);</div>
|
||||||
|
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// static IRigidBody* createRigidBodyByBB(scene::ISceneNode* node, f32 mass);</span></div>
|
||||||
|
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> debugDraw();</div>
|
||||||
|
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
|
||||||
|
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||||
|
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">private</span>:</div>
|
||||||
|
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classirr_dynamics.html">irrDynamics</a>();</div>
|
||||||
|
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classirr_dynamics.html">irrDynamics</a>(<span class="keyword">const</span> <a class="code" href="classirr_dynamics.html">irrDynamics</a>& other);</div>
|
||||||
|
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::map<irr::scene::ISceneNode*, class btRigidBody*> objects;</div>
|
||||||
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">void</span> updateObjects();</div>
|
||||||
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  ~<a class="code" href="classirr_dynamics.html">irrDynamics</a>();</div>
|
||||||
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">static</span> <a class="code" href="classirr_dynamics.html">irrDynamics</a>* instance;</div>
|
||||||
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordtype">void</span> clearObjects();</div>
|
||||||
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
|
||||||
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">//bt-related stuff</span></div>
|
||||||
|
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">class </span>btDefaultCollisionConfiguration *collisionConfiguration;</div>
|
||||||
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">class </span>btBroadphaseInterface *broadPhase;</div>
|
||||||
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">class </span>btCollisionDispatcher *dispatcher;</div>
|
||||||
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">class </span>btSequentialImpulseConstraintSolver *solver;</div>
|
||||||
|
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">class </span>btDiscreteDynamicsWorld* world;</div>
|
||||||
|
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||||
|
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// irrBulletWorld* bWorld;</span></div>
|
||||||
|
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  irr::u32 lastStep;</div>
|
||||||
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> };</div>
|
||||||
|
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html_a7e23a5d4515b38b473fbd538c8d30517"><div class="ttname"><a href="classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517">irrDynamics::addFloor</a></div><div class="ttdeci">static class btRigidBody * addFloor(const irr::core::vector3df &normal=irr::core::vector3df(0.f, 1.f, 0.f), const irr::core::vector3df &offset=irr::core::vector3df(0.f, 0.f, 0.f))</div><div class="ttdoc">Add an infinite floor plane to the scene. </div></div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html"><div class="ttname"><a href="classirr_dynamics.html">irrDynamics</a></div><div class="ttdef"><b>Definition:</b> irrDynamics.h:4</div></div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html_a7744a583c48c37deaf629da9b6769bad"><div class="ttname"><a href="classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad">irrDynamics::addSphericalObject</a></div><div class="ttdeci">static class btRigidBody * addSphericalObject(irr::scene::ISceneNode *node, irr::f32 radius, irr::f32 mass)</div><div class="ttdoc">Add a scene node that is represented as spherical behavior. </div></div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html_a9373fe3504096f6f6c17eca2be9bb459"><div class="ttname"><a href="classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459">irrDynamics::removeObject</a></div><div class="ttdeci">static void removeObject(irr::scene::ISceneNode *node)</div><div class="ttdoc">Remove an object from the physics. </div></div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html_a1b0ce9bd5b1057857b5d99495e9cab41"><div class="ttname"><a href="classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41">irrDynamics::createPoint2PointConstraint</a></div><div class="ttdeci">static bool createPoint2PointConstraint(irr::scene::ISceneNode *nodeA, irr::scene::ISceneNode *nodeB, const irr::core::vector3df &pivotInA, const irr::core::vector3df &pivotInB)</div><div class="ttdoc">Create a point-to-point relation between two objects. </div></div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html_ae130aee5eb7647617e59c888e5a1acbb"><div class="ttname"><a href="classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb">irrDynamics::createHingeConstraint</a></div><div class="ttdeci">static bool createHingeConstraint(irr::scene::ISceneNode *nodeA, irr::scene::ISceneNode *nodeB, const irr::core::vector3df &pivotInA, const irr::core::vector3df &pivotInB, const irr::core::vector3df &axisInA, const irr::core::vector3df &axisInB)</div><div class="ttdoc">Create a hinge relation between two objects. </div></div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html_ae57a380934ec217890202db55c29be60"><div class="ttname"><a href="classirr_dynamics.html#ae57a380934ec217890202db55c29be60">irrDynamics::addBoxObject</a></div><div class="ttdeci">static class btRigidBody * addBoxObject(irr::scene::ISceneNode *node, irr::f32 mass)</div><div class="ttdoc">Add a scene node that is represented as a sturdy box. </div></div>
|
||||||
|
<div class="ttc" id="classirr_dynamics_html_a2b5f4c6732caadddeb3589e321fc9551"><div class="ttname"><a href="classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551">irrDynamics::applyCentralForce</a></div><div class="ttdeci">static void applyCentralForce(irr::scene::ISceneNode *node, const irr::core::vector3df &force)</div><div class="ttdoc">Applies a pushing force to the object. </div></div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Wed Mar 12 2014 13:48:35 for irrDynamics by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.6
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 153 B |
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 98 B |
After Width: | Height: | Size: 123 B |
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_0.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,7 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['addboxobject',['addBoxObject',['../classirr_dynamics.html#ae57a380934ec217890202db55c29be60',1,'irrDynamics']]],
|
||||||
|
['addfloor',['addFloor',['../classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517',1,'irrDynamics']]],
|
||||||
|
['addsphericalobject',['addSphericalObject',['../classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad',1,'irrDynamics']]],
|
||||||
|
['applycentralforce',['applyCentralForce',['../classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551',1,'irrDynamics']]]
|
||||||
|
];
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_1.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['createhingeconstraint',['createHingeConstraint',['../classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb',1,'irrDynamics']]],
|
||||||
|
['createpoint2pointconstraint',['createPoint2PointConstraint',['../classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41',1,'irrDynamics']]]
|
||||||
|
];
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_2.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['irrdynamics',['irrDynamics',['../classirr_dynamics.html',1,'']]]
|
||||||
|
];
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_3.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['removeobject',['removeObject',['../classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459',1,'irrDynamics']]]
|
||||||
|
];
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="classes_0.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['irrdynamics',['irrDynamics',['../classirr_dynamics.html',1,'']]]
|
||||||
|
];
|
After Width: | Height: | Size: 273 B |
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_0.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,7 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['addboxobject',['addBoxObject',['../classirr_dynamics.html#ae57a380934ec217890202db55c29be60',1,'irrDynamics']]],
|
||||||
|
['addfloor',['addFloor',['../classirr_dynamics.html#a7e23a5d4515b38b473fbd538c8d30517',1,'irrDynamics']]],
|
||||||
|
['addsphericalobject',['addSphericalObject',['../classirr_dynamics.html#a7744a583c48c37deaf629da9b6769bad',1,'irrDynamics']]],
|
||||||
|
['applycentralforce',['applyCentralForce',['../classirr_dynamics.html#a2b5f4c6732caadddeb3589e321fc9551',1,'irrDynamics']]]
|
||||||
|
];
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_1.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['createhingeconstraint',['createHingeConstraint',['../classirr_dynamics.html#ae130aee5eb7647617e59c888e5a1acbb',1,'irrDynamics']]],
|
||||||
|
['createpoint2pointconstraint',['createPoint2PointConstraint',['../classirr_dynamics.html#a1b0ce9bd5b1057857b5d99495e9cab41',1,'irrDynamics']]]
|
||||||
|
];
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.6">
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_2.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
createResults();
|
||||||
|
--></script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['removeobject',['removeObject',['../classirr_dynamics.html#a9373fe3504096f6f6c17eca2be9bb459',1,'irrDynamics']]]
|
||||||
|
];
|
After Width: | Height: | Size: 563 B |
|
@ -0,0 +1,12 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,271 @@
|
||||||
|
/*---------------- Search Box */
|
||||||
|
|
||||||
|
#FSearchBox {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchBox {
|
||||||
|
white-space : nowrap;
|
||||||
|
position: absolute;
|
||||||
|
float: none;
|
||||||
|
display: inline;
|
||||||
|
margin-top: 8px;
|
||||||
|
right: 0px;
|
||||||
|
width: 170px;
|
||||||
|
z-index: 102;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchBox .left
|
||||||
|
{
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
left:10px;
|
||||||
|
width:20px;
|
||||||
|
height:19px;
|
||||||
|
background:url('search_l.png') no-repeat;
|
||||||
|
background-position:right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchSelect {
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
width:20px;
|
||||||
|
height:19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left #MSearchSelect {
|
||||||
|
left:4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right #MSearchSelect {
|
||||||
|
right:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchField {
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
height:19px;
|
||||||
|
background:url('search_m.png') repeat-x;
|
||||||
|
border:none;
|
||||||
|
width:111px;
|
||||||
|
margin-left:20px;
|
||||||
|
padding-left:4px;
|
||||||
|
color: #909090;
|
||||||
|
outline: none;
|
||||||
|
font: 9pt Arial, Verdana, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#FSearchBox #MSearchField {
|
||||||
|
margin-left:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchBox .right {
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
right:10px;
|
||||||
|
top:0px;
|
||||||
|
width:20px;
|
||||||
|
height:19px;
|
||||||
|
background:url('search_r.png') no-repeat;
|
||||||
|
background-position:left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchClose {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 4px;
|
||||||
|
background : none;
|
||||||
|
border: none;
|
||||||
|
margin: 0px 4px 0px 0px;
|
||||||
|
padding: 0px 0px;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left #MSearchClose {
|
||||||
|
left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right #MSearchClose {
|
||||||
|
right: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MSearchBoxActive #MSearchField {
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------- Search filter selection */
|
||||||
|
|
||||||
|
#MSearchSelectWindow {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 0; top: 0;
|
||||||
|
border: 1px solid #90A5CE;
|
||||||
|
background-color: #F9FAFC;
|
||||||
|
z-index: 1;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
-webkit-border-top-left-radius: 4px;
|
||||||
|
-webkit-border-top-right-radius: 4px;
|
||||||
|
-webkit-border-bottom-left-radius: 4px;
|
||||||
|
-webkit-border-bottom-right-radius: 4px;
|
||||||
|
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.SelectItem {
|
||||||
|
font: 8pt Arial, Verdana, sans-serif;
|
||||||
|
padding-left: 2px;
|
||||||
|
padding-right: 12px;
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.SelectionMark {
|
||||||
|
margin-right: 4px;
|
||||||
|
font-family: monospace;
|
||||||
|
outline-style: none;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SelectItem {
|
||||||
|
display: block;
|
||||||
|
outline-style: none;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
padding-left: 6px;
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SelectItem:focus,
|
||||||
|
a.SelectItem:active {
|
||||||
|
color: #000000;
|
||||||
|
outline-style: none;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SelectItem:hover {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #3D578C;
|
||||||
|
outline-style: none;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------- Search results window */
|
||||||
|
|
||||||
|
iframe#MSearchResults {
|
||||||
|
width: 60ex;
|
||||||
|
height: 15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchResultsWindow {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 0; top: 0;
|
||||||
|
border: 1px solid #000;
|
||||||
|
background-color: #EEF1F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
#SRIndex {
|
||||||
|
clear:both;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SREntry {
|
||||||
|
font-size: 10pt;
|
||||||
|
padding-left: 1ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRPage .SREntry {
|
||||||
|
font-size: 8pt;
|
||||||
|
padding: 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.SRPage {
|
||||||
|
margin: 5px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRChildren {
|
||||||
|
padding-left: 3ex; padding-bottom: .5em
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRPage .SRChildren {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRSymbol {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #425E97;
|
||||||
|
font-family: Arial, Verdana, sans-serif;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SRScope {
|
||||||
|
display: block;
|
||||||
|
color: #425E97;
|
||||||
|
font-family: Arial, Verdana, sans-serif;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SRSymbol:focus, a.SRSymbol:active,
|
||||||
|
a.SRScope:focus, a.SRScope:active {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.SRScope {
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRPage .SRStatus {
|
||||||
|
padding: 2px 5px;
|
||||||
|
font-size: 8pt;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRResult {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.searchresults {
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------- External search page results */
|
||||||
|
|
||||||
|
.searchresult {
|
||||||
|
background-color: #F0F3F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pages b {
|
||||||
|
color: white;
|
||||||
|
padding: 5px 5px 3px 5px;
|
||||||
|
background-image: url("../tab_a.png");
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
text-shadow: 0 1px 1px #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pages {
|
||||||
|
line-height: 17px;
|
||||||
|
margin-left: 4px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hl {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#searchresults {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchpages {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,797 @@
|
||||||
|
// Search script generated by doxygen
|
||||||
|
// Copyright (C) 2009 by Dimitri van Heesch.
|
||||||
|
|
||||||
|
// The code in this file is loosly based on main.js, part of Natural Docs,
|
||||||
|
// which is Copyright (C) 2003-2008 Greg Valure
|
||||||
|
// Natural Docs is licensed under the GPL.
|
||||||
|
|
||||||
|
var indexSectionsWithContent =
|
||||||
|
{
|
||||||
|
0: "acir",
|
||||||
|
1: "i",
|
||||||
|
2: "acr"
|
||||||
|
};
|
||||||
|
|
||||||
|
var indexSectionNames =
|
||||||
|
{
|
||||||
|
0: "all",
|
||||||
|
1: "classes",
|
||||||
|
2: "functions"
|
||||||
|
};
|
||||||
|
|
||||||
|
function convertToId(search)
|
||||||
|
{
|
||||||
|
var result = '';
|
||||||
|
for (i=0;i<search.length;i++)
|
||||||
|
{
|
||||||
|
var c = search.charAt(i);
|
||||||
|
var cn = c.charCodeAt(0);
|
||||||
|
if (c.match(/[a-z0-9\u0080-\uFFFF]/))
|
||||||
|
{
|
||||||
|
result+=c;
|
||||||
|
}
|
||||||
|
else if (cn<16)
|
||||||
|
{
|
||||||
|
result+="_0"+cn.toString(16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result+="_"+cn.toString(16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getXPos(item)
|
||||||
|
{
|
||||||
|
var x = 0;
|
||||||
|
if (item.offsetWidth)
|
||||||
|
{
|
||||||
|
while (item && item!=document.body)
|
||||||
|
{
|
||||||
|
x += item.offsetLeft;
|
||||||
|
item = item.offsetParent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getYPos(item)
|
||||||
|
{
|
||||||
|
var y = 0;
|
||||||
|
if (item.offsetWidth)
|
||||||
|
{
|
||||||
|
while (item && item!=document.body)
|
||||||
|
{
|
||||||
|
y += item.offsetTop;
|
||||||
|
item = item.offsetParent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* A class handling everything associated with the search panel.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
name - The name of the global variable that will be
|
||||||
|
storing this instance. Is needed to be able to set timeouts.
|
||||||
|
resultPath - path to use for external files
|
||||||
|
*/
|
||||||
|
function SearchBox(name, resultsPath, inFrame, label)
|
||||||
|
{
|
||||||
|
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
|
||||||
|
|
||||||
|
// ---------- Instance variables
|
||||||
|
this.name = name;
|
||||||
|
this.resultsPath = resultsPath;
|
||||||
|
this.keyTimeout = 0;
|
||||||
|
this.keyTimeoutLength = 500;
|
||||||
|
this.closeSelectionTimeout = 300;
|
||||||
|
this.lastSearchValue = "";
|
||||||
|
this.lastResultsPage = "";
|
||||||
|
this.hideTimeout = 0;
|
||||||
|
this.searchIndex = 0;
|
||||||
|
this.searchActive = false;
|
||||||
|
this.insideFrame = inFrame;
|
||||||
|
this.searchLabel = label;
|
||||||
|
|
||||||
|
// ----------- DOM Elements
|
||||||
|
|
||||||
|
this.DOMSearchField = function()
|
||||||
|
{ return document.getElementById("MSearchField"); }
|
||||||
|
|
||||||
|
this.DOMSearchSelect = function()
|
||||||
|
{ return document.getElementById("MSearchSelect"); }
|
||||||
|
|
||||||
|
this.DOMSearchSelectWindow = function()
|
||||||
|
{ return document.getElementById("MSearchSelectWindow"); }
|
||||||
|
|
||||||
|
this.DOMPopupSearchResults = function()
|
||||||
|
{ return document.getElementById("MSearchResults"); }
|
||||||
|
|
||||||
|
this.DOMPopupSearchResultsWindow = function()
|
||||||
|
{ return document.getElementById("MSearchResultsWindow"); }
|
||||||
|
|
||||||
|
this.DOMSearchClose = function()
|
||||||
|
{ return document.getElementById("MSearchClose"); }
|
||||||
|
|
||||||
|
this.DOMSearchBox = function()
|
||||||
|
{ return document.getElementById("MSearchBox"); }
|
||||||
|
|
||||||
|
// ------------ Event Handlers
|
||||||
|
|
||||||
|
// Called when focus is added or removed from the search field.
|
||||||
|
this.OnSearchFieldFocus = function(isActive)
|
||||||
|
{
|
||||||
|
this.Activate(isActive);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.OnSearchSelectShow = function()
|
||||||
|
{
|
||||||
|
var searchSelectWindow = this.DOMSearchSelectWindow();
|
||||||
|
var searchField = this.DOMSearchSelect();
|
||||||
|
|
||||||
|
if (this.insideFrame)
|
||||||
|
{
|
||||||
|
var left = getXPos(searchField);
|
||||||
|
var top = getYPos(searchField);
|
||||||
|
left += searchField.offsetWidth + 6;
|
||||||
|
top += searchField.offsetHeight;
|
||||||
|
|
||||||
|
// show search selection popup
|
||||||
|
searchSelectWindow.style.display='block';
|
||||||
|
left -= searchSelectWindow.offsetWidth;
|
||||||
|
searchSelectWindow.style.left = left + 'px';
|
||||||
|
searchSelectWindow.style.top = top + 'px';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var left = getXPos(searchField);
|
||||||
|
var top = getYPos(searchField);
|
||||||
|
top += searchField.offsetHeight;
|
||||||
|
|
||||||
|
// show search selection popup
|
||||||
|
searchSelectWindow.style.display='block';
|
||||||
|
searchSelectWindow.style.left = left + 'px';
|
||||||
|
searchSelectWindow.style.top = top + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
// stop selection hide timer
|
||||||
|
if (this.hideTimeout)
|
||||||
|
{
|
||||||
|
clearTimeout(this.hideTimeout);
|
||||||
|
this.hideTimeout=0;
|
||||||
|
}
|
||||||
|
return false; // to avoid "image drag" default event
|
||||||
|
}
|
||||||
|
|
||||||
|
this.OnSearchSelectHide = function()
|
||||||
|
{
|
||||||
|
this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
|
||||||
|
this.closeSelectionTimeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when the content of the search field is changed.
|
||||||
|
this.OnSearchFieldChange = function(evt)
|
||||||
|
{
|
||||||
|
if (this.keyTimeout) // kill running timer
|
||||||
|
{
|
||||||
|
clearTimeout(this.keyTimeout);
|
||||||
|
this.keyTimeout = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==40 || e.keyCode==13)
|
||||||
|
{
|
||||||
|
if (e.shiftKey==1)
|
||||||
|
{
|
||||||
|
this.OnSearchSelectShow();
|
||||||
|
var win=this.DOMSearchSelectWindow();
|
||||||
|
for (i=0;i<win.childNodes.length;i++)
|
||||||
|
{
|
||||||
|
var child = win.childNodes[i]; // get span within a
|
||||||
|
if (child.className=='SelectItem')
|
||||||
|
{
|
||||||
|
child.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (window.frames.MSearchResults.searchResults)
|
||||||
|
{
|
||||||
|
var elem = window.frames.MSearchResults.searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (e.keyCode==27) // Escape out of the search field
|
||||||
|
{
|
||||||
|
this.DOMSearchField().blur();
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||||
|
this.DOMSearchClose().style.display = 'none';
|
||||||
|
this.lastSearchValue = '';
|
||||||
|
this.Activate(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// strip whitespaces
|
||||||
|
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||||
|
|
||||||
|
if (searchValue != this.lastSearchValue) // search value has changed
|
||||||
|
{
|
||||||
|
if (searchValue != "") // non-empty search
|
||||||
|
{
|
||||||
|
// set timer for search update
|
||||||
|
this.keyTimeout = setTimeout(this.name + '.Search()',
|
||||||
|
this.keyTimeoutLength);
|
||||||
|
}
|
||||||
|
else // empty search field
|
||||||
|
{
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||||
|
this.DOMSearchClose().style.display = 'none';
|
||||||
|
this.lastSearchValue = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.SelectItemCount = function(id)
|
||||||
|
{
|
||||||
|
var count=0;
|
||||||
|
var win=this.DOMSearchSelectWindow();
|
||||||
|
for (i=0;i<win.childNodes.length;i++)
|
||||||
|
{
|
||||||
|
var child = win.childNodes[i]; // get span within a
|
||||||
|
if (child.className=='SelectItem')
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.SelectItemSet = function(id)
|
||||||
|
{
|
||||||
|
var i,j=0;
|
||||||
|
var win=this.DOMSearchSelectWindow();
|
||||||
|
for (i=0;i<win.childNodes.length;i++)
|
||||||
|
{
|
||||||
|
var child = win.childNodes[i]; // get span within a
|
||||||
|
if (child.className=='SelectItem')
|
||||||
|
{
|
||||||
|
var node = child.firstChild;
|
||||||
|
if (j==id)
|
||||||
|
{
|
||||||
|
node.innerHTML='•';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
node.innerHTML=' ';
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when an search filter selection is made.
|
||||||
|
// set item with index id as the active item
|
||||||
|
this.OnSelectItem = function(id)
|
||||||
|
{
|
||||||
|
this.searchIndex = id;
|
||||||
|
this.SelectItemSet(id);
|
||||||
|
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||||
|
if (searchValue!="" && this.searchActive) // something was found -> do a search
|
||||||
|
{
|
||||||
|
this.Search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.OnSearchSelectKey = function(evt)
|
||||||
|
{
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
|
||||||
|
{
|
||||||
|
this.searchIndex++;
|
||||||
|
this.OnSelectItem(this.searchIndex);
|
||||||
|
}
|
||||||
|
else if (e.keyCode==38 && this.searchIndex>0) // Up
|
||||||
|
{
|
||||||
|
this.searchIndex--;
|
||||||
|
this.OnSelectItem(this.searchIndex);
|
||||||
|
}
|
||||||
|
else if (e.keyCode==13 || e.keyCode==27)
|
||||||
|
{
|
||||||
|
this.OnSelectItem(this.searchIndex);
|
||||||
|
this.CloseSelectionWindow();
|
||||||
|
this.DOMSearchField().focus();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------- Actions
|
||||||
|
|
||||||
|
// Closes the results window.
|
||||||
|
this.CloseResultsWindow = function()
|
||||||
|
{
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||||
|
this.DOMSearchClose().style.display = 'none';
|
||||||
|
this.Activate(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.CloseSelectionWindow = function()
|
||||||
|
{
|
||||||
|
this.DOMSearchSelectWindow().style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Performs a search.
|
||||||
|
this.Search = function()
|
||||||
|
{
|
||||||
|
this.keyTimeout = 0;
|
||||||
|
|
||||||
|
// strip leading whitespace
|
||||||
|
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
||||||
|
|
||||||
|
var code = searchValue.toLowerCase().charCodeAt(0);
|
||||||
|
var idxChar = searchValue.substr(0, 1).toLowerCase();
|
||||||
|
if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
|
||||||
|
{
|
||||||
|
idxChar = searchValue.substr(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
var resultsPage;
|
||||||
|
var resultsPageWithSearch;
|
||||||
|
var hasResultsPage;
|
||||||
|
|
||||||
|
var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
|
||||||
|
if (idx!=-1)
|
||||||
|
{
|
||||||
|
var hexCode=idx.toString(16);
|
||||||
|
resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
|
||||||
|
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
|
||||||
|
hasResultsPage = true;
|
||||||
|
}
|
||||||
|
else // nothing available for this search term
|
||||||
|
{
|
||||||
|
resultsPage = this.resultsPath + '/nomatches.html';
|
||||||
|
resultsPageWithSearch = resultsPage;
|
||||||
|
hasResultsPage = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.frames.MSearchResults.location = resultsPageWithSearch;
|
||||||
|
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
||||||
|
|
||||||
|
if (domPopupSearchResultsWindow.style.display!='block')
|
||||||
|
{
|
||||||
|
var domSearchBox = this.DOMSearchBox();
|
||||||
|
this.DOMSearchClose().style.display = 'inline';
|
||||||
|
if (this.insideFrame)
|
||||||
|
{
|
||||||
|
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||||
|
domPopupSearchResultsWindow.style.position = 'relative';
|
||||||
|
domPopupSearchResultsWindow.style.display = 'block';
|
||||||
|
var width = document.body.clientWidth - 8; // the -8 is for IE :-(
|
||||||
|
domPopupSearchResultsWindow.style.width = width + 'px';
|
||||||
|
domPopupSearchResults.style.width = width + 'px';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||||
|
var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
|
||||||
|
var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
|
||||||
|
domPopupSearchResultsWindow.style.display = 'block';
|
||||||
|
left -= domPopupSearchResults.offsetWidth;
|
||||||
|
domPopupSearchResultsWindow.style.top = top + 'px';
|
||||||
|
domPopupSearchResultsWindow.style.left = left + 'px';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.lastSearchValue = searchValue;
|
||||||
|
this.lastResultsPage = resultsPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Activation Functions
|
||||||
|
|
||||||
|
// Activates or deactivates the search panel, resetting things to
|
||||||
|
// their default values if necessary.
|
||||||
|
this.Activate = function(isActive)
|
||||||
|
{
|
||||||
|
if (isActive || // open it
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display == 'block'
|
||||||
|
)
|
||||||
|
{
|
||||||
|
this.DOMSearchBox().className = 'MSearchBoxActive';
|
||||||
|
|
||||||
|
var searchField = this.DOMSearchField();
|
||||||
|
|
||||||
|
if (searchField.value == this.searchLabel) // clear "Search" term upon entry
|
||||||
|
{
|
||||||
|
searchField.value = '';
|
||||||
|
this.searchActive = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!isActive) // directly remove the panel
|
||||||
|
{
|
||||||
|
this.DOMSearchBox().className = 'MSearchBoxInactive';
|
||||||
|
this.DOMSearchField().value = this.searchLabel;
|
||||||
|
this.searchActive = false;
|
||||||
|
this.lastSearchValue = ''
|
||||||
|
this.lastResultsPage = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
// The class that handles everything on the search results page.
|
||||||
|
function SearchResults(name)
|
||||||
|
{
|
||||||
|
// The number of matches from the last run of <Search()>.
|
||||||
|
this.lastMatchCount = 0;
|
||||||
|
this.lastKey = 0;
|
||||||
|
this.repeatOn = false;
|
||||||
|
|
||||||
|
// Toggles the visibility of the passed element ID.
|
||||||
|
this.FindChildElement = function(id)
|
||||||
|
{
|
||||||
|
var parentElement = document.getElementById(id);
|
||||||
|
var element = parentElement.firstChild;
|
||||||
|
|
||||||
|
while (element && element!=parentElement)
|
||||||
|
{
|
||||||
|
if (element.nodeName == 'DIV' && element.className == 'SRChildren')
|
||||||
|
{
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.nodeName == 'DIV' && element.hasChildNodes())
|
||||||
|
{
|
||||||
|
element = element.firstChild;
|
||||||
|
}
|
||||||
|
else if (element.nextSibling)
|
||||||
|
{
|
||||||
|
element = element.nextSibling;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
element = element.parentNode;
|
||||||
|
}
|
||||||
|
while (element && element!=parentElement && !element.nextSibling);
|
||||||
|
|
||||||
|
if (element && element!=parentElement)
|
||||||
|
{
|
||||||
|
element = element.nextSibling;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Toggle = function(id)
|
||||||
|
{
|
||||||
|
var element = this.FindChildElement(id);
|
||||||
|
if (element)
|
||||||
|
{
|
||||||
|
if (element.style.display == 'block')
|
||||||
|
{
|
||||||
|
element.style.display = 'none';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
element.style.display = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Searches for the passed string. If there is no parameter,
|
||||||
|
// it takes it from the URL query.
|
||||||
|
//
|
||||||
|
// Always returns true, since other documents may try to call it
|
||||||
|
// and that may or may not be possible.
|
||||||
|
this.Search = function(search)
|
||||||
|
{
|
||||||
|
if (!search) // get search word from URL
|
||||||
|
{
|
||||||
|
search = window.location.search;
|
||||||
|
search = search.substring(1); // Remove the leading '?'
|
||||||
|
search = unescape(search);
|
||||||
|
}
|
||||||
|
|
||||||
|
search = search.replace(/^ +/, ""); // strip leading spaces
|
||||||
|
search = search.replace(/ +$/, ""); // strip trailing spaces
|
||||||
|
search = search.toLowerCase();
|
||||||
|
search = convertToId(search);
|
||||||
|
|
||||||
|
var resultRows = document.getElementsByTagName("div");
|
||||||
|
var matches = 0;
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
while (i < resultRows.length)
|
||||||
|
{
|
||||||
|
var row = resultRows.item(i);
|
||||||
|
if (row.className == "SRResult")
|
||||||
|
{
|
||||||
|
var rowMatchName = row.id.toLowerCase();
|
||||||
|
rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
|
||||||
|
|
||||||
|
if (search.length<=rowMatchName.length &&
|
||||||
|
rowMatchName.substr(0, search.length)==search)
|
||||||
|
{
|
||||||
|
row.style.display = 'block';
|
||||||
|
matches++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
row.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
document.getElementById("Searching").style.display='none';
|
||||||
|
if (matches == 0) // no results
|
||||||
|
{
|
||||||
|
document.getElementById("NoMatches").style.display='block';
|
||||||
|
}
|
||||||
|
else // at least one result
|
||||||
|
{
|
||||||
|
document.getElementById("NoMatches").style.display='none';
|
||||||
|
}
|
||||||
|
this.lastMatchCount = matches;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// return the first item with index index or higher that is visible
|
||||||
|
this.NavNext = function(index)
|
||||||
|
{
|
||||||
|
var focusItem;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
var focusName = 'Item'+index;
|
||||||
|
focusItem = document.getElementById(focusName);
|
||||||
|
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!focusItem) // last element
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
focusItem=null;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
return focusItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.NavPrev = function(index)
|
||||||
|
{
|
||||||
|
var focusItem;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
var focusName = 'Item'+index;
|
||||||
|
focusItem = document.getElementById(focusName);
|
||||||
|
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!focusItem) // last element
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
focusItem=null;
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
return focusItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.ProcessKeys = function(e)
|
||||||
|
{
|
||||||
|
if (e.type == "keydown")
|
||||||
|
{
|
||||||
|
this.repeatOn = false;
|
||||||
|
this.lastKey = e.keyCode;
|
||||||
|
}
|
||||||
|
else if (e.type == "keypress")
|
||||||
|
{
|
||||||
|
if (!this.repeatOn)
|
||||||
|
{
|
||||||
|
if (this.lastKey) this.repeatOn = true;
|
||||||
|
return false; // ignore first keypress after keydown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (e.type == "keyup")
|
||||||
|
{
|
||||||
|
this.lastKey = 0;
|
||||||
|
this.repeatOn = false;
|
||||||
|
}
|
||||||
|
return this.lastKey!=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Nav = function(evt,itemIndex)
|
||||||
|
{
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==13) return true;
|
||||||
|
if (!this.ProcessKeys(e)) return false;
|
||||||
|
|
||||||
|
if (this.lastKey==38) // Up
|
||||||
|
{
|
||||||
|
var newIndex = itemIndex-1;
|
||||||
|
var focusItem = this.NavPrev(newIndex);
|
||||||
|
if (focusItem)
|
||||||
|
{
|
||||||
|
var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
|
||||||
|
if (child && child.style.display == 'block') // children visible
|
||||||
|
{
|
||||||
|
var n=0;
|
||||||
|
var tmpElem;
|
||||||
|
while (1) // search for last child
|
||||||
|
{
|
||||||
|
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
|
||||||
|
if (tmpElem)
|
||||||
|
{
|
||||||
|
focusItem = tmpElem;
|
||||||
|
}
|
||||||
|
else // found it!
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (focusItem)
|
||||||
|
{
|
||||||
|
focusItem.focus();
|
||||||
|
}
|
||||||
|
else // return focus to search field
|
||||||
|
{
|
||||||
|
parent.document.getElementById("MSearchField").focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.lastKey==40) // Down
|
||||||
|
{
|
||||||
|
var newIndex = itemIndex+1;
|
||||||
|
var focusItem;
|
||||||
|
var item = document.getElementById('Item'+itemIndex);
|
||||||
|
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||||
|
if (elem && elem.style.display == 'block') // children visible
|
||||||
|
{
|
||||||
|
focusItem = document.getElementById('Item'+itemIndex+'_c0');
|
||||||
|
}
|
||||||
|
if (!focusItem) focusItem = this.NavNext(newIndex);
|
||||||
|
if (focusItem) focusItem.focus();
|
||||||
|
}
|
||||||
|
else if (this.lastKey==39) // Right
|
||||||
|
{
|
||||||
|
var item = document.getElementById('Item'+itemIndex);
|
||||||
|
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||||
|
if (elem) elem.style.display = 'block';
|
||||||
|
}
|
||||||
|
else if (this.lastKey==37) // Left
|
||||||
|
{
|
||||||
|
var item = document.getElementById('Item'+itemIndex);
|
||||||
|
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||||
|
if (elem) elem.style.display = 'none';
|
||||||
|
}
|
||||||
|
else if (this.lastKey==27) // Escape
|
||||||
|
{
|
||||||
|
parent.searchBox.CloseResultsWindow();
|
||||||
|
parent.document.getElementById("MSearchField").focus();
|
||||||
|
}
|
||||||
|
else if (this.lastKey==13) // Enter
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.NavChild = function(evt,itemIndex,childIndex)
|
||||||
|
{
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==13) return true;
|
||||||
|
if (!this.ProcessKeys(e)) return false;
|
||||||
|
|
||||||
|
if (this.lastKey==38) // Up
|
||||||
|
{
|
||||||
|
if (childIndex>0)
|
||||||
|
{
|
||||||
|
var newIndex = childIndex-1;
|
||||||
|
document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
|
||||||
|
}
|
||||||
|
else // already at first child, jump to parent
|
||||||
|
{
|
||||||
|
document.getElementById('Item'+itemIndex).focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.lastKey==40) // Down
|
||||||
|
{
|
||||||
|
var newIndex = childIndex+1;
|
||||||
|
var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
|
||||||
|
if (!elem) // last child, jump to parent next parent
|
||||||
|
{
|
||||||
|
elem = this.NavNext(itemIndex+1);
|
||||||
|
}
|
||||||
|
if (elem)
|
||||||
|
{
|
||||||
|
elem.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.lastKey==27) // Escape
|
||||||
|
{
|
||||||
|
parent.searchBox.CloseResultsWindow();
|
||||||
|
parent.document.getElementById("MSearchField").focus();
|
||||||
|
}
|
||||||
|
else if (this.lastKey==13) // Enter
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setKeyActions(elem,action)
|
||||||
|
{
|
||||||
|
elem.setAttribute('onkeydown',action);
|
||||||
|
elem.setAttribute('onkeypress',action);
|
||||||
|
elem.setAttribute('onkeyup',action);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setClassAttr(elem,attr)
|
||||||
|
{
|
||||||
|
elem.setAttribute('class',attr);
|
||||||
|
elem.setAttribute('className',attr);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createResults()
|
||||||
|
{
|
||||||
|
var results = document.getElementById("SRResults");
|
||||||
|
for (var e=0; e<searchData.length; e++)
|
||||||
|
{
|
||||||
|
var id = searchData[e][0];
|
||||||
|
var srResult = document.createElement('div');
|
||||||
|
srResult.setAttribute('id','SR_'+id);
|
||||||
|
setClassAttr(srResult,'SRResult');
|
||||||
|
var srEntry = document.createElement('div');
|
||||||
|
setClassAttr(srEntry,'SREntry');
|
||||||
|
var srLink = document.createElement('a');
|
||||||
|
srLink.setAttribute('id','Item'+e);
|
||||||
|
setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
|
||||||
|
setClassAttr(srLink,'SRSymbol');
|
||||||
|
srLink.innerHTML = searchData[e][1][0];
|
||||||
|
srEntry.appendChild(srLink);
|
||||||
|
if (searchData[e][1].length==2) // single result
|
||||||
|
{
|
||||||
|
srLink.setAttribute('href',searchData[e][1][1][0]);
|
||||||
|
if (searchData[e][1][1][1])
|
||||||
|
{
|
||||||
|
srLink.setAttribute('target','_parent');
|
||||||
|
}
|
||||||
|
var srScope = document.createElement('span');
|
||||||
|
setClassAttr(srScope,'SRScope');
|
||||||
|
srScope.innerHTML = searchData[e][1][1][2];
|
||||||
|
srEntry.appendChild(srScope);
|
||||||
|
}
|
||||||
|
else // multiple results
|
||||||
|
{
|
||||||
|
srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
|
||||||
|
var srChildren = document.createElement('div');
|
||||||
|
setClassAttr(srChildren,'SRChildren');
|
||||||
|
for (var c=0; c<searchData[e][1].length-1; c++)
|
||||||
|
{
|
||||||
|
var srChild = document.createElement('a');
|
||||||
|
srChild.setAttribute('id','Item'+e+'_c'+c);
|
||||||
|
setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
|
||||||
|
setClassAttr(srChild,'SRScope');
|
||||||
|
srChild.setAttribute('href',searchData[e][1][c+1][0]);
|
||||||
|
if (searchData[e][1][c+1][1])
|
||||||
|
{
|
||||||
|
srChild.setAttribute('target','_parent');
|
||||||
|
}
|
||||||
|
srChild.innerHTML = searchData[e][1][c+1][2];
|
||||||
|
srChildren.appendChild(srChild);
|
||||||
|
}
|
||||||
|
srEntry.appendChild(srChildren);
|
||||||
|
}
|
||||||
|
srResult.appendChild(srEntry);
|
||||||
|
results.appendChild(srResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
After Width: | Height: | Size: 604 B |
After Width: | Height: | Size: 158 B |
After Width: | Height: | Size: 612 B |
After Width: | Height: | Size: 853 B |
After Width: | Height: | Size: 845 B |
After Width: | Height: | Size: 142 B |
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 177 B |
After Width: | Height: | Size: 184 B |
|
@ -0,0 +1,60 @@
|
||||||
|
.tabs, .tabs2, .tabs3 {
|
||||||
|
background-image: url('tab_b.png');
|
||||||
|
width: 100%;
|
||||||
|
z-index: 101;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs2 {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
.tabs3 {
|
||||||
|
font-size: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist li {
|
||||||
|
float: left;
|
||||||
|
display: table-cell;
|
||||||
|
background-image: url('tab_b.png');
|
||||||
|
line-height: 36px;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist a {
|
||||||
|
display: block;
|
||||||
|
padding: 0 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-image:url('tab_s.png');
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:right;
|
||||||
|
color: #283A5D;
|
||||||
|
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs3 .tablist a {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist a:hover {
|
||||||
|
background-image: url('tab_h.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist li.current a {
|
||||||
|
background-image: url('tab_a.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
irrDynamics - Light-weight Bullet Physics wrapper for the irrlicht graphics engine
|
||||||
|
Copyright (C) 2014 Otto Naderer - otto.naderer@aec.at
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
#include <irrlicht.h>
|
||||||
|
|
||||||
|
class irrDynamics
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static irrDynamics* getInstance();
|
||||||
|
static void simStep(const irr::u32& curTimeStamp);
|
||||||
|
static void shutdown();
|
||||||
|
static void addTerrain(irr::scene::ITerrainSceneNode* terrain, irr::u32 lodLevel = 2);
|
||||||
|
//! Add a scene node that is represented as spherical behavior
|
||||||
|
/** This method adds an object with ball-like behavior to the physics, such as a SphereSceneNode.
|
||||||
|
* \param node The scene node to be animated by Bullet.
|
||||||
|
* \param radius The radius of the sphere in irrlicht units.
|
||||||
|
* \param mass The mass in units assigned to the object.
|
||||||
|
* \return The corresponding btRigidBody, if addidional parameters are desired to be set. */
|
||||||
|
static class btRigidBody* addSphericalObject(irr::scene::ISceneNode* node, irr::f32 radius, irr::f32 mass);
|
||||||
|
//! Add a scene node that is represented as a sturdy box
|
||||||
|
/** This method adds an object with block-like behavior to the physics, such as a CubeSceneNode.
|
||||||
|
* Its dimensions are calculated using the current axis-aligned bounding box.
|
||||||
|
* \param node The scene node to be animated by Bullet.
|
||||||
|
* \param mass The mass in units assigned to the object.
|
||||||
|
* \return The corresponding btRigidBody, if addidional parameters are desired to be set. */
|
||||||
|
static class btRigidBody* addBoxObject(irr::scene::ISceneNode* node, irr::f32 mass);
|
||||||
|
//! Add an infinite floor plane to the scene
|
||||||
|
/** Whenever an infinite floor catching all your objects is needed, use this method
|
||||||
|
* \param normal The normal vector of the floor plane. Default lays the plane along x- and z-axis (y up).
|
||||||
|
* \param offset The offset from the origin. If normal is default, only the y-value matters here (vert offset).
|
||||||
|
* \return The corresponding btRigidBody, if addidional parameters are desired to be set. */
|
||||||
|
static class btRigidBody* addFloor(const irr::core::vector3df& normal = irr::core::vector3df(0.f, 1.f, 0.f), const irr::core::vector3df& offset = irr::core::vector3df(0.f, 0.f, 0.f));
|
||||||
|
//! Create a hinge relation between two objects
|
||||||
|
/** This method physically attaches one scene node to the other in a hinge-like (swinging) relation.
|
||||||
|
* \note Both scene nodes have to be already added to the sim.
|
||||||
|
* \param nodeA The "parent" node the swinging one is attached to.
|
||||||
|
* \param nodeB The child element that will be animated by that relation.
|
||||||
|
* \param pivotInA A position relative to nodeA where the hinge relation will be placed.
|
||||||
|
* \param pivotInB A position relative to nodeB where the hinge relation will be placed.
|
||||||
|
* \param axisInA The axis in nodeA the hinge rotates around.
|
||||||
|
* \param axisInB The axis in nodeB the hinge rotates around.
|
||||||
|
* \return True, when both nodes were found in the physics representation and the relation was created.*/
|
||||||
|
static bool createHingeConstraint(irr::scene::ISceneNode* nodeA, irr::scene::ISceneNode* nodeB, const irr::core::vector3df& pivotInA, const irr::core::vector3df& pivotInB, const irr::core::vector3df& axisInA, const irr::core::vector3df& axisInB);
|
||||||
|
//! Create a point-to-point relation between two objects
|
||||||
|
/** More general than a hinge relation, the p2p can freely swing around all axis.
|
||||||
|
* \note Both scene nodes have to be already added to the sim.
|
||||||
|
* \param nodeA The "parent" node the swinging one is attached to.
|
||||||
|
* \param nodeB The child element that will be animated by that relation.
|
||||||
|
* \param pivotInA A position relative to nodeA where the hinge relation will be placed.
|
||||||
|
* \param pivotInB A position relative to nodeB where the hinge relation will be placed.
|
||||||
|
* \return True, when both nodes were found in the physics representation and the relation was created.*/
|
||||||
|
static bool createPoint2PointConstraint(irr::scene::ISceneNode* nodeA, irr::scene::ISceneNode* nodeB, const irr::core::vector3df& pivotInA, const irr::core::vector3df& pivotInB);
|
||||||
|
//! Remove an object from the physics
|
||||||
|
/** Call this whenever you either remove the corresponding scene node from the ISceneManager or you don't want
|
||||||
|
* to have it animated by the physics anymore.
|
||||||
|
* \param node The scene node to be removed from the physics.*/
|
||||||
|
static void removeObject(irr::scene::ISceneNode* node);
|
||||||
|
//! Applies a pushing force to the object
|
||||||
|
/** To move an object in a physics engine you do not set its position but you push it towards that place.
|
||||||
|
* Use this method to apply such a push represented as a 3D vector. As expected, the 'longer' the vector,
|
||||||
|
* the more powerful the push will be.
|
||||||
|
* \param node The scene node the force should be applied to.
|
||||||
|
* \param force The force to apply, the vector represents its direction, the vector length its power.*/
|
||||||
|
static void applyCentralForce(irr::scene::ISceneNode* node, const irr::core::vector3df& force);
|
||||||
|
static void setDamping(irr::scene::ISceneNode* node, irr::f32 linearDamping, irr::f32 angularDamping);
|
||||||
|
static void setPosition(irr::scene::ISceneNode* node, const irr::core::vector3df& newPos);
|
||||||
|
// static IRigidBody* createRigidBodyByBB(scene::ISceneNode* node, f32 mass);
|
||||||
|
static void debugDraw();
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
irrDynamics();
|
||||||
|
irrDynamics(const irrDynamics& other);
|
||||||
|
std::map<irr::scene::ISceneNode*, class btRigidBody*> objects;
|
||||||
|
void updateObjects();
|
||||||
|
~irrDynamics();
|
||||||
|
static irrDynamics* instance;
|
||||||
|
void clearObjects();
|
||||||
|
|
||||||
|
//bt-related stuff
|
||||||
|
class btDefaultCollisionConfiguration *collisionConfiguration;
|
||||||
|
class btBroadphaseInterface *broadPhase;
|
||||||
|
class btCollisionDispatcher *dispatcher;
|
||||||
|
class btSequentialImpulseConstraintSolver *solver;
|
||||||
|
class btDiscreteDynamicsWorld* world;
|
||||||
|
|
||||||
|
// irrBulletWorld* bWorld;
|
||||||
|
irr::u32 lastStep;
|
||||||
|
};
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||||
|
<CodeBlocks_project_file>
|
||||||
|
<FileVersion major="1" minor="6" />
|
||||||
|
<Project>
|
||||||
|
<Option title="irrDynamics" />
|
||||||
|
<Option pch_mode="2" />
|
||||||
|
<Option compiler="gcc" />
|
||||||
|
<Build>
|
||||||
|
<Target title="Debug">
|
||||||
|
<Option output="../bin/irrDynamics" prefix_auto="1" extension_auto="1" />
|
||||||
|
<Option working_dir="" />
|
||||||
|
<Option object_output="../obj/Debug/" />
|
||||||
|
<Option type="2" />
|
||||||
|
<Option compiler="gcc" />
|
||||||
|
<Option createDefFile="1" />
|
||||||
|
<Compiler>
|
||||||
|
<Add option="-Wall" />
|
||||||
|
<Add option="-g" />
|
||||||
|
</Compiler>
|
||||||
|
</Target>
|
||||||
|
<Target title="Release">
|
||||||
|
<Option output="../bin/irrDynamics" prefix_auto="1" extension_auto="1" />
|
||||||
|
<Option working_dir="" />
|
||||||
|
<Option object_output="../obj/Release/" />
|
||||||
|
<Option type="2" />
|
||||||
|
<Option compiler="gcc" />
|
||||||
|
<Option createDefFile="1" />
|
||||||
|
<Compiler>
|
||||||
|
<Add option="-Wall" />
|
||||||
|
<Add option="-O2" />
|
||||||
|
</Compiler>
|
||||||
|
<Linker>
|
||||||
|
<Add option="-s" />
|
||||||
|
</Linker>
|
||||||
|
</Target>
|
||||||
|
</Build>
|
||||||
|
<Compiler>
|
||||||
|
<Add directory="/usr/include/bullet" />
|
||||||
|
<Add directory="/usr/include/irrlicht" />
|
||||||
|
<Add directory="../include" />
|
||||||
|
</Compiler>
|
||||||
|
<Unit filename="../include/irrDynamics.h" />
|
||||||
|
<Unit filename="../src/irrDynamics.cpp" />
|
||||||
|
<Extensions>
|
||||||
|
<code_completion />
|
||||||
|
<envvars />
|
||||||
|
<lib_finder disable_auto="1" />
|
||||||
|
<debugger />
|
||||||
|
</Extensions>
|
||||||
|
</Project>
|
||||||
|
</CodeBlocks_project_file>
|
|
@ -0,0 +1,361 @@
|
||||||
|
/*
|
||||||
|
irrDynamics - Light-weight Bullet Physics wrapper for the irrlicht graphics engine
|
||||||
|
Copyright (C) 2014 Otto Naderer - otto.naderer@aec.at
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <btBulletCollisionCommon.h>
|
||||||
|
#include <btBulletDynamicsCommon.h>
|
||||||
|
#include "irrDynamics.h"
|
||||||
|
|
||||||
|
using namespace irr;
|
||||||
|
|
||||||
|
irrDynamics* irrDynamics::instance = NULL;
|
||||||
|
|
||||||
|
irrDynamics::irrDynamics() : lastStep(0)
|
||||||
|
{
|
||||||
|
// Initialize bullet
|
||||||
|
collisionConfiguration = new btDefaultCollisionConfiguration();
|
||||||
|
broadPhase = new btAxisSweep3(btVector3(-1000, -1000, -1000), btVector3(1000, 1000, 1000));
|
||||||
|
dispatcher = new btCollisionDispatcher(collisionConfiguration);
|
||||||
|
solver = new btSequentialImpulseConstraintSolver();
|
||||||
|
world = new btDiscreteDynamicsWorld(dispatcher, broadPhase, solver, collisionConfiguration);
|
||||||
|
}
|
||||||
|
|
||||||
|
irrDynamics* irrDynamics::getInstance()
|
||||||
|
{
|
||||||
|
if (!instance)
|
||||||
|
{
|
||||||
|
instance = new irrDynamics();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::simStep(const u32& curTimeStamp)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
if (inst->lastStep == 0)
|
||||||
|
inst->lastStep = curTimeStamp;
|
||||||
|
|
||||||
|
inst->world->stepSimulation((curTimeStamp - inst->lastStep) * 0.001f, 5);
|
||||||
|
inst->updateObjects();
|
||||||
|
inst->lastStep = curTimeStamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::shutdown()
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
inst->clearObjects();
|
||||||
|
delete inst->world;
|
||||||
|
delete inst->solver;
|
||||||
|
delete inst->dispatcher;
|
||||||
|
delete inst->broadPhase;
|
||||||
|
delete inst->collisionConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::addTerrain(scene::ITerrainSceneNode* terrain, u32 lodLevel)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
terrain->updateAbsolutePosition();
|
||||||
|
core::vector3df irrPos = terrain->getPosition();
|
||||||
|
btVector3 btPos(irrPos.X, irrPos.Y, irrPos.Z);
|
||||||
|
btTransform Transform;
|
||||||
|
Transform.setIdentity();
|
||||||
|
Transform.setOrigin(btPos);
|
||||||
|
|
||||||
|
btDefaultMotionState *MotionState = new btDefaultMotionState(Transform);
|
||||||
|
|
||||||
|
btTriangleMesh * mTriMesh = new btTriangleMesh();
|
||||||
|
scene::CDynamicMeshBuffer* buffer = 0;
|
||||||
|
btVector3 vertices[3];
|
||||||
|
s32 j, k;
|
||||||
|
buffer = new scene::CDynamicMeshBuffer(irr::video::EVT_2TCOORDS, irr::video::EIT_32BIT);
|
||||||
|
(terrain)->getMeshBufferForLOD(*buffer, lodLevel);
|
||||||
|
|
||||||
|
core::vector3df terrScale = terrain->getScale();
|
||||||
|
//Build the triangleMesh
|
||||||
|
const u32 indexCount = buffer->getIndexCount();
|
||||||
|
printf("indeces: %u\n", indexCount);
|
||||||
|
video::S3DVertex2TCoords* mb_vertices = (irr::video::S3DVertex2TCoords*) buffer->getVertexBuffer().getData();
|
||||||
|
u32* mb_indices = (u32*) buffer->getIndices();
|
||||||
|
for (j = 0; (u32) j < indexCount; j += 3)
|
||||||
|
{
|
||||||
|
for (k = 0; k < 3; k++)
|
||||||
|
{
|
||||||
|
s32 index = mb_indices[j + k];
|
||||||
|
vertices[k] = btVector3(mb_vertices[index].Pos.X * terrScale.X, mb_vertices[index].Pos.Y * terrScale.Y, mb_vertices[index].Pos.Z * terrScale.Z);
|
||||||
|
}
|
||||||
|
mTriMesh->addTriangle(vertices[0], vertices[1], vertices[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer->drop();
|
||||||
|
//Add the terrain collision shape to the world
|
||||||
|
btBvhTriangleMeshShape* mShape = new btBvhTriangleMeshShape(mTriMesh, true);
|
||||||
|
btRigidBody* rbody = new btRigidBody(0.f, MotionState, mShape);
|
||||||
|
inst->world->addRigidBody(rbody);
|
||||||
|
inst->objects.insert(std::pair<scene::ISceneNode*, btRigidBody*>(terrain, rbody));
|
||||||
|
|
||||||
|
terrain->grab();
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::debugDraw()
|
||||||
|
{
|
||||||
|
// getInstance()->bWorld->debugDrawWorld(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::updateObjects()
|
||||||
|
{
|
||||||
|
for (std::map<scene::ISceneNode*, btRigidBody*>::iterator iter = objects.begin(); iter != objects.end(); iter++)
|
||||||
|
{
|
||||||
|
btVector3 Point = iter->second->getCenterOfMassPosition();
|
||||||
|
iter->first->setPosition(core::vector3df((f32)Point[0], (f32)Point[1], (f32)Point[2]));
|
||||||
|
|
||||||
|
// Set rotation
|
||||||
|
core::vector3df euler;
|
||||||
|
const btQuaternion& quat = iter->second->getOrientation();
|
||||||
|
core::quaternion q(quat.getX(), quat.getY(), quat.getZ(), quat.getW());
|
||||||
|
q.toEuler(euler);
|
||||||
|
euler *= core::RADTODEG;
|
||||||
|
iter->first->setRotation(euler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::removeObject(scene::ISceneNode* node)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
std::map<scene::ISceneNode*, btRigidBody*>::iterator iter = inst->objects.find(node);
|
||||||
|
if (iter == inst->objects.end())
|
||||||
|
{
|
||||||
|
inst->world->removeRigidBody(iter->second);
|
||||||
|
|
||||||
|
// Free memory
|
||||||
|
delete iter->second->getMotionState();
|
||||||
|
delete iter->second->getCollisionShape();
|
||||||
|
delete iter->second;
|
||||||
|
iter->first->drop();
|
||||||
|
inst->objects.erase(iter);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("irrdynamics: object not found in map!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::clearObjects()
|
||||||
|
{
|
||||||
|
for (std::map<scene::ISceneNode*, btRigidBody*>::iterator iter = objects.begin(); iter != objects.end(); iter++)
|
||||||
|
{
|
||||||
|
world->removeRigidBody(iter->second);
|
||||||
|
|
||||||
|
// Free memory
|
||||||
|
delete iter->second->getMotionState();
|
||||||
|
delete iter->second->getCollisionShape();
|
||||||
|
delete iter->second;
|
||||||
|
iter->first->drop();
|
||||||
|
}
|
||||||
|
objects.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
btRigidBody* irrDynamics::addSphericalObject(scene::ISceneNode* node, f32 radius, f32 mass)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
core::vector3df irrPos = node->getAbsolutePosition();
|
||||||
|
btVector3 tPosition(irrPos.X, irrPos.Y, irrPos.Z);
|
||||||
|
btTransform transform;
|
||||||
|
transform.setIdentity();
|
||||||
|
transform.setOrigin(tPosition);
|
||||||
|
|
||||||
|
btDefaultMotionState *motionState = new btDefaultMotionState(transform);
|
||||||
|
|
||||||
|
// Create the shape
|
||||||
|
btCollisionShape *shape = new btSphereShape(radius);
|
||||||
|
|
||||||
|
// Add mass
|
||||||
|
btVector3 localInertia;
|
||||||
|
shape->calculateLocalInertia(mass, localInertia);
|
||||||
|
|
||||||
|
// Create the rigid body object
|
||||||
|
btRigidBody *rigidBody = new btRigidBody(mass, motionState, shape, localInertia);
|
||||||
|
|
||||||
|
// Add it to the world
|
||||||
|
inst->world->addRigidBody(rigidBody);
|
||||||
|
inst->objects.insert(std::pair<scene::ISceneNode*, btRigidBody*>(node, rigidBody));
|
||||||
|
node->grab();
|
||||||
|
return rigidBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
btRigidBody* irrDynamics::addBoxObject(scene::ISceneNode* node, f32 mass)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
node->updateAbsolutePosition();
|
||||||
|
core::vector3df irrPos = node->getAbsolutePosition();
|
||||||
|
btVector3 tPosition(irrPos.X, irrPos.Y, irrPos.Z);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const core::aabbox3df aabox = node->getTransformedBoundingBox();
|
||||||
|
core::vector3df fullExtent = aabox.getExtent();
|
||||||
|
btVector3 halfExtent(fullExtent.X * .5f, fullExtent.Y * .5f, fullExtent.Z * .5f);
|
||||||
|
|
||||||
|
//get rotation to quaternion
|
||||||
|
core::vector3df rotationRadians = node->getRotation();
|
||||||
|
rotationRadians *= core::DEGTORAD;
|
||||||
|
core::quaternion quat(rotationRadians);
|
||||||
|
|
||||||
|
btTransform transform;
|
||||||
|
transform.setIdentity();
|
||||||
|
transform.setOrigin(tPosition);
|
||||||
|
transform.setRotation(btQuaternion(quat.X, quat.Y, quat.Z, quat.W));
|
||||||
|
|
||||||
|
btDefaultMotionState *motionState = new btDefaultMotionState(transform);
|
||||||
|
|
||||||
|
// Create the shape
|
||||||
|
btCollisionShape *shape = new btBoxShape(halfExtent);
|
||||||
|
|
||||||
|
// Add mass
|
||||||
|
btVector3 localInertia;
|
||||||
|
shape->calculateLocalInertia(mass, localInertia);
|
||||||
|
|
||||||
|
// Create the rigid body object
|
||||||
|
btRigidBody *rigidBody = new btRigidBody(mass, motionState, shape, localInertia);
|
||||||
|
|
||||||
|
// Add it to the world
|
||||||
|
inst->world->addRigidBody(rigidBody);
|
||||||
|
inst->objects.insert(std::pair<scene::ISceneNode*, btRigidBody*>(node, rigidBody));
|
||||||
|
node->grab();
|
||||||
|
return rigidBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool irrDynamics::createHingeConstraint(scene::ISceneNode* nodeA, scene::ISceneNode* nodeB, const core::vector3df& pivotInA, const core::vector3df& pivotInB, const core::vector3df& axisInA, const irr::core::vector3df& axisInB)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
//find the corresponding rigid bodies:
|
||||||
|
std::map<scene::ISceneNode*, btRigidBody*>::iterator iterA, iterB;
|
||||||
|
iterA = inst->objects.find(nodeA);
|
||||||
|
iterB = inst->objects.find(nodeB);
|
||||||
|
|
||||||
|
if (iterA == inst->objects.end())
|
||||||
|
{
|
||||||
|
printf("irrdynamics: Unable to find first node for constraint!\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (iterB == inst->objects.end())
|
||||||
|
{
|
||||||
|
printf("irrdynamics: Unable to find second node for constraint!\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
btHingeConstraint* constraint = new btHingeConstraint(*(iterA->second), *(iterB->second), btVector3(pivotInA.X, pivotInA.Y, pivotInA.Z), btVector3(pivotInB.X, pivotInB.Y, pivotInB.Z), btVector3(axisInA.X, axisInA.Y, axisInA.Z), btVector3(axisInB.X, axisInB.Y, axisInB.Z));
|
||||||
|
inst->world->addConstraint(constraint);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool irrDynamics::createPoint2PointConstraint(scene::ISceneNode* nodeA, scene::ISceneNode* nodeB, const core::vector3df& pivotInA, const core::vector3df& pivotInB)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
//find the corresponding rigid bodies:
|
||||||
|
std::map<scene::ISceneNode*, btRigidBody*>::iterator iterA, iterB;
|
||||||
|
iterA = inst->objects.find(nodeA);
|
||||||
|
iterB = inst->objects.find(nodeB);
|
||||||
|
|
||||||
|
if (iterA == inst->objects.end())
|
||||||
|
{
|
||||||
|
printf("irrdynamics: Unable to find first node for constraint!\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (iterB == inst->objects.end())
|
||||||
|
{
|
||||||
|
printf("irrdynamics: Unable to find second node for constraint!\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
btPoint2PointConstraint* constraint = new btPoint2PointConstraint(*(iterA->second), *(iterB->second), btVector3(pivotInA.X, pivotInA.Y, pivotInA.Z), btVector3(pivotInB.X, pivotInB.Y, pivotInB.Z));
|
||||||
|
inst->world->addConstraint(constraint);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::applyCentralForce(scene::ISceneNode* node, const core::vector3df& force)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
//find the corresponding rigid body:
|
||||||
|
std::map<scene::ISceneNode*, btRigidBody*>::iterator iter;
|
||||||
|
iter = inst->objects.find(node);
|
||||||
|
if (iter == inst->objects.end())
|
||||||
|
{
|
||||||
|
printf("irrdynamics: Unable to find node in list. Force application aborted.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
iter->second->applyCentralForce(btVector3(force.X, force.Y, force.Z));
|
||||||
|
}
|
||||||
|
|
||||||
|
btRigidBody* irrDynamics::addFloor(const core::vector3df& normal, const core::vector3df& offset)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
btVector3 tPosition(offset.X, offset.Y, offset.Z);
|
||||||
|
btTransform transform;
|
||||||
|
transform.setIdentity();
|
||||||
|
transform.setOrigin(tPosition);
|
||||||
|
|
||||||
|
btDefaultMotionState *motionState = new btDefaultMotionState(transform);
|
||||||
|
|
||||||
|
// Create the shape
|
||||||
|
btCollisionShape *shape = new btStaticPlaneShape(btVector3(normal.X, normal.Y, normal.Z), 0);
|
||||||
|
|
||||||
|
// Add mass
|
||||||
|
btVector3 localInertia;
|
||||||
|
shape->calculateLocalInertia(0.f, localInertia);
|
||||||
|
|
||||||
|
// Create the rigid body object
|
||||||
|
btRigidBody *rigidBody = new btRigidBody(0.f, motionState, shape, localInertia);
|
||||||
|
|
||||||
|
// Add it to the world
|
||||||
|
inst->world->addRigidBody(rigidBody);
|
||||||
|
return rigidBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::setDamping(scene::ISceneNode* node, f32 linearDamping, f32 angularDamping)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
//find the corresponding rigid body:
|
||||||
|
std::map<scene::ISceneNode*, btRigidBody*>::iterator iter;
|
||||||
|
iter = inst->objects.find(node);
|
||||||
|
if (iter == inst->objects.end())
|
||||||
|
{
|
||||||
|
printf("irrdynamics: Unable to find node in list. Damping application aborted.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
iter->second->setDamping(linearDamping, angularDamping);
|
||||||
|
}
|
||||||
|
|
||||||
|
void irrDynamics::setPosition(scene::ISceneNode* node, const core::vector3df& newPos)
|
||||||
|
{
|
||||||
|
irrDynamics* inst = getInstance();
|
||||||
|
//find the corresponding rigid body:
|
||||||
|
std::map<scene::ISceneNode*, btRigidBody*>::iterator iter;
|
||||||
|
iter = inst->objects.find(node);
|
||||||
|
if (iter == inst->objects.end())
|
||||||
|
{
|
||||||
|
printf("irrdynamics: Unable to find node in list. Position update aborted.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
btTransform transform = iter->second->getCenterOfMassTransform();
|
||||||
|
transform.setOrigin(btVector3(newPos.X, newPos.Y, newPos.Z));
|
||||||
|
iter->second->setCenterOfMassTransform(transform);
|
||||||
|
}
|