Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 3912

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: iThingState Struct Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>iThingState Struct Reference<br>
<small>
[<a class="el" href="group__meshplugins.html">Mesh plugins</a>]</small>
</h1><!-- doxytag: class="iThingState" --><!-- doxytag: inherits="iBase" -->This is the state interface to access the internals of a thing mesh object.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="thing_8h-source.html">imesh/thing.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iThingState:</div>
<div class="dynsection">
<p><center><img src="structiThingState__inherit__graph.png" border="0" usemap="#iThingState__inherit__map" alt="Inheritance graph"></center>
<map name="iThingState__inherit__map">
<area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="24,7,80,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiThingState-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#e6be96b517f1fcac42eb8a4b70d6b6a1">ClearReplacedMaterials</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear all replaced materials (i.e.  <a href="#e6be96b517f1fcac42eb8a4b70d6b6a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsPtr.html">csPtr</a><br>
&lt; <a class="el" href="structiPolygonHandle.html">iPolygonHandle</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#45db8c0af1a30e76ce951fd4d3835ac6">CreatePolygonHandle</a> (int polygon_idx)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a polygon handle that can be used to refer to some polygon.  <a href="#45db8c0af1a30e76ce951fd4d3835ac6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#cec3362549cba31dc31dca81ae96c33e">GetMixMode</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mix mode.  <a href="#cec3362549cba31dc31dca81ae96c33e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#d496f45889815176c74fb47a2873a903">GetMovingOption</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the moving option.  <a href="#d496f45889815176c74fb47a2873a903"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#69f598e322c126c196b3537b966addb5">GetPolygonWorldPlane</a> (int polygon_idx)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get world space plane of the specified polygon.  <a href="#69f598e322c126c196b3537b966addb5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#9cc2b03bfd914f09cd0d729f2f21a9e7">GetReplacedMaterial</a> (<a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *oldMat)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the material <code>oldMat</code> was replaced with (or 0 if it wasn't).  <a href="#9cc2b03bfd914f09cd0d729f2f21a9e7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#1f6f5796cc92ef11335bbf8506f7f1c0">GetVertexW</a> (int idx) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the given vertex coordinates in world space.  <a href="#1f6f5796cc92ef11335bbf8506f7f1c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#8a0ecd537444489e57d416fba0e75c31">GetVerticesW</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the vertex coordinates in world space.  <a href="#8a0ecd537444489e57d416fba0e75c31"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#763857816204a22efdee7b9b4c69ad03">Prepare</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prepare the thing to be ready for use.  <a href="#763857816204a22efdee7b9b4c69ad03"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#66e43371fb866d81529590e53a570132">ReplaceMaterial</a> (<a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *oldmat, <a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *newmat)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scan all polygons and replace the given material with a new material.  <a href="#66e43371fb866d81529590e53a570132"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#c15eb7dfa4e3df139feb089535768779">SetMixMode</a> (<a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> mode)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set mix mode.  <a href="#c15eb7dfa4e3df139feb089535768779"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#d870063248501edee17e9052b70ca42c">SetMovingOption</a> (int opt)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Control how this thing will be moved.  <a href="#d870063248501edee17e9052b70ca42c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#4df18bd24a5294fd4156e255f5fd51d8">Unprepare</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the prepare flag so that this Thing can be re-prepared.  <a href="#4df18bd24a5294fd4156e255f5fd51d8"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Lightmap query</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsPtr.html">csPtr</a>&lt; <a class="el" href="structiImage.html">iImage</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#6797b37b30740d0dec4f2cee389720cd">GetPolygonLightmap</a> (int polygon_idx)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the lightmap for a specific polygon.  <a href="#6797b37b30740d0dec4f2cee389720cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiThingState.html#156927f077264e2b2f0060b998a3e2eb">GetPolygonPDLight</a> (int polygon_idx, size_t pdlight_index, <a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiImage.html">iImage</a> &gt; &amp;map, <a class="el" href="structiLight.html">iLight</a> *&amp;light)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query for pseudo-static lightmaps.  <a href="#156927f077264e2b2f0060b998a3e2eb"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This is the state interface to access the internals of a thing mesh object. 
<p>
Main creators of instances implementing this interface:<ul>
<li>Thing mesh object plugin (crystalspace.mesh.object.thing)</li><li><a class="el" href="structiMeshObjectFactory.html#82872458683c8e520026e59111f249ce" title="Create an instance of iMeshObject.">iMeshObjectFactory::NewInstance()</a></li></ul>
<p>
Main ways to get pointers to this interface:<ul>
<li><a class="el" href="group__scf.html#g2e8cf383ca5045f2b0c05374ff0107c3" title="Helper function around iBase::QueryInterface.">scfQueryInterface()</a> on <a class="el" href="structiMeshWrapper.html#941b6ca24a1560e9c7d54b317c743316" title="Get the iMeshObject.">iMeshWrapper::GetMeshObject()</a></li></ul>
<p>
Main users of this interface:<ul>
<li>Thing Loader plugin (crystalspace.mesh.loader.thing) </li></ul>

<p>Definition at line <a class="el" href="thing_8h-source.html#l00694">694</a> of file <a class="el" href="thing_8h-source.html">thing.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e6be96b517f1fcac42eb8a4b70d6b6a1"></a><!-- doxytag: member="iThingState::ClearReplacedMaterials" ref="e6be96b517f1fcac42eb8a4b70d6b6a1" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iThingState::ClearReplacedMaterials           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clear all replaced materials (i.e. 
<p>
reset to default materials from factory). 
</div>
</div><p>
<a class="anchor" name="45db8c0af1a30e76ce951fd4d3835ac6"></a><!-- doxytag: member="iThingState::CreatePolygonHandle" ref="45db8c0af1a30e76ce951fd4d3835ac6" args="(int polygon_idx)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsPtr.html">csPtr</a>&lt;<a class="el" href="structiPolygonHandle.html">iPolygonHandle</a>&gt; iThingState::CreatePolygonHandle           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>polygon_idx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a polygon handle that can be used to refer to some polygon. 
<p>
This can be useful in situations where an SCF handle is required to be able to reference a polygon. The thing will not keep a reference to this handle so you are fully responsible for it after calling this function. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>polygon_idx</em>&nbsp;</td><td>is a polygon index. <a class="el" href="group__meshplugins.html#g0b86ff5b7f9397c3a2308047822da46c" title="Last created polygon index (used where a single polygon index is required).">CS_POLYINDEX_LAST</a> is NOT supported here! </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="cec3362549cba31dc31dca81ae96c33e"></a><!-- doxytag: member="iThingState::GetMixMode" ref="cec3362549cba31dc31dca81ae96c33e" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> iThingState::GetMixMode           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get mix mode. 
<p>

</div>
</div><p>
<a class="anchor" name="d496f45889815176c74fb47a2873a903"></a><!-- doxytag: member="iThingState::GetMovingOption" ref="d496f45889815176c74fb47a2873a903" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iThingState::GetMovingOption           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the moving option. 
<p>

</div>
</div><p>
<a class="anchor" name="6797b37b30740d0dec4f2cee389720cd"></a><!-- doxytag: member="iThingState::GetPolygonLightmap" ref="6797b37b30740d0dec4f2cee389720cd" args="(int polygon_idx)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsPtr.html">csPtr</a>&lt;<a class="el" href="structiImage.html">iImage</a>&gt; iThingState::GetPolygonLightmap           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>polygon_idx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the lightmap for a specific polygon. 
<p>

</div>
</div><p>
<a class="anchor" name="156927f077264e2b2f0060b998a3e2eb"></a><!-- doxytag: member="iThingState::GetPolygonPDLight" ref="156927f077264e2b2f0060b998a3e2eb" args="(int polygon_idx, size_t pdlight_index, csRef&lt; iImage &gt; &amp;map, iLight *&amp;light)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iThingState::GetPolygonPDLight           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>polygon_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>pdlight_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiImage.html">iImage</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiLight.html">iLight</a> *&amp;&nbsp;</td>
          <td class="paramname"> <em>light</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query for pseudo-static lightmaps. 
<p>

</div>
</div><p>
<a class="anchor" name="69f598e322c126c196b3537b966addb5"></a><!-- doxytag: member="iThingState::GetPolygonWorldPlane" ref="69f598e322c126c196b3537b966addb5" args="(int polygon_idx)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsPlane3.html">csPlane3</a>&amp; iThingState::GetPolygonWorldPlane           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>polygon_idx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get world space plane of the specified polygon. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>polygon_idx</em>&nbsp;</td><td>is a polygon index. <a class="el" href="group__meshplugins.html#g0b86ff5b7f9397c3a2308047822da46c" title="Last created polygon index (used where a single polygon index is required).">CS_POLYINDEX_LAST</a> is NOT supported here! </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="9cc2b03bfd914f09cd0d729f2f21a9e7"></a><!-- doxytag: member="iThingState::GetReplacedMaterial" ref="9cc2b03bfd914f09cd0d729f2f21a9e7" args="(iMaterialWrapper *oldMat)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a>* iThingState::GetReplacedMaterial           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *&nbsp;</td>
          <td class="paramname"> <em>oldMat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the material <code>oldMat</code> was replaced with (or 0 if it wasn't). 
<p>

</div>
</div><p>
<a class="anchor" name="1f6f5796cc92ef11335bbf8506f7f1c0"></a><!-- doxytag: member="iThingState::GetVertexW" ref="1f6f5796cc92ef11335bbf8506f7f1c0" args="(int idx) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsVector3.html">csVector3</a>&amp; iThingState::GetVertexW           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>idx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the given vertex coordinates in world space. 
<p>

</div>
</div><p>
<a class="anchor" name="8a0ecd537444489e57d416fba0e75c31"></a><!-- doxytag: member="iThingState::GetVerticesW" ref="8a0ecd537444489e57d416fba0e75c31" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsVector3.html">csVector3</a>* iThingState::GetVerticesW           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the vertex coordinates in world space. 
<p>

</div>
</div><p>
<a class="anchor" name="763857816204a22efdee7b9b4c69ad03"></a><!-- doxytag: member="iThingState::Prepare" ref="763857816204a22efdee7b9b4c69ad03" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iThingState::Prepare           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Prepare the thing to be ready for use. 
<p>
Normally this doesn't have to be called as the engine will call this function automatically as soon as the object is rendered. However, to avoid the (sometimes long) setup time for an object while walking around an application can choose to call this function manually in order to increase load time but decrease the time need to setup things later. 
</div>
</div><p>
<a class="anchor" name="66e43371fb866d81529590e53a570132"></a><!-- doxytag: member="iThingState::ReplaceMaterial" ref="66e43371fb866d81529590e53a570132" args="(iMaterialWrapper *oldmat, iMaterialWrapper *newmat)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iThingState::ReplaceMaterial           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *&nbsp;</td>
          <td class="paramname"> <em>oldmat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *&nbsp;</td>
          <td class="paramname"> <em>newmat</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Scan all polygons and replace the given material with a new material. 
<p>
Note that the new material MUST have the same size as the old material! If 'newmat' == 0 then the default from the factory will be used again. Note that 'oldmat' will always be compared from the factory and not from the current material the polygon has! 
</div>
</div><p>
<a class="anchor" name="c15eb7dfa4e3df139feb089535768779"></a><!-- doxytag: member="iThingState::SetMixMode" ref="c15eb7dfa4e3df139feb089535768779" args="(uint mode)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iThingState::SetMixMode           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
          <td class="paramname"> <em>mode</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set mix mode. 
<p>

</div>
</div><p>
<a class="anchor" name="d870063248501edee17e9052b70ca42c"></a><!-- doxytag: member="iThingState::SetMovingOption" ref="d870063248501edee17e9052b70ca42c" args="(int opt)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iThingState::SetMovingOption           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>opt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Control how this thing will be moved. 
<p>
There are currently two options.<ul>
<li>CS_THING_MOVE_NEVER: this option is set for a thing that cannot move at all. In this case the movable will be ignored and only hard transforms can be used to move a thing with this flag. This setting is both efficient for memory (object space coordinates are equal to world space coordinates so only one array is kept) and render speed (only the camera transform is needed). This option is very useful for static geometry like walls. This option is default.</li><li>CS_THING_MOVE_OCCASIONAL: this option is set for a thing that is movable but doesn't move all the time usually. Setting this option means that the world space vertices will be cached (taking up more memory that way) but the coordinates will be recalculated only at rendertime (and cached at that time). This option has the same speed efficiency as MOVE_NEVER when the object doesn't move but more memory is used as all the vertices are duplicated. Use this option for geometry that is not too big (in number of vertices) and only moves occasionally like doors of elevators.</li></ul>
<p>
Note: it is no longer needed to manually set this option. By default things will use CS_THING_MOVE_NEVER and they will automatically switch to the slightly less efficient CS_THING_MOVE_OCCASIONAL if needed. 
</div>
</div><p>
<a class="anchor" name="4df18bd24a5294fd4156e255f5fd51d8"></a><!-- doxytag: member="iThingState::Unprepare" ref="4df18bd24a5294fd4156e255f5fd51d8" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iThingState::Unprepare           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reset the prepare flag so that this Thing can be re-prepared. 
<p>
Among other things this will allow cached lightmaps to be recalculated. 
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>imesh/<a class="el" href="thing_8h-source.html">thing.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>