Sophie

Sophie

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

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: iMeshObject 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>iMeshObject Struct Reference<br>
<small>
[<a class="el" href="group__meshplugins.html">Mesh plugins</a>]</small>
</h1><!-- doxytag: class="iMeshObject" --><!-- doxytag: inherits="iBase" -->This is a general mesh object that the engine can interact with.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="imesh_2object_8h-source.html">imesh/object.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iMeshObject:</div>
<div class="dynsection">
<p><center><img src="structiMeshObject__inherit__graph.png" border="0" usemap="#iMeshObject__inherit__map" alt="Inheritance graph"></center>
<map name="iMeshObject__inherit__map">
<area shape="rect" href="classscfImplementationExt1.html" title="scfImplementationExt1\&lt; csMeshObject, csObjectModel, iMeshObject \&gt;" alt="" coords="317,5,797,32"><area shape="rect" href="classscfImplementationExt2.html" title="scfImplementationExt2\&lt; csParticleSystem, csObjectModel, iMeshObject, iParticleState \&gt;" alt="" coords="259,56,856,83"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="5,31,61,57"><area shape="rect" href="classcsMeshObject.html" title="This is an abstract implementation of iMeshObject." alt="" coords="916,5,1025,32"><area shape="rect" href="classcsParticleSystem.html" title="This class represents a particle system." alt="" coords="904,56,1037,83"><area shape="rect" href="classscfImplementationExt0.html" title="scfImplementationExt0\&lt; csNewtonianParticleSystem, csParticleSystem \&gt;" alt="" coords="1085,56,1589,83"><area shape="rect" href="classcsNewtonianParticleSystem.html" title="This class has a set of particles that behave with physics." alt="" coords="1637,56,1840,83"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiMeshObject-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="structiMeshObject.html#d25b87c6bd504ce2a48ab1766536b4e8">BuildDecal</a> (const <a class="el" href="classcsVector3.html">csVector3</a> *pos, float decalRadius, <a class="el" href="structiDecalBuilder.html">iDecalBuilder</a> *decalBuilder)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This mesh is being asked to build a decal for its own geometry.  <a href="#d25b87c6bd504ce2a48ab1766536b4e8"></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="structiMeshObject.html">iMeshObject</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshObject.html#f53886ae52e6a94a741e1481f6ebf281">Clone</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of this object and returns the clone.  <a href="#f53886ae52e6a94a741e1481f6ebf281"></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="structiMeshObject.html#0822835a232c9e3dee44c6403ed07e91">GetColor</a> (<a class="el" href="classcsColor.html">csColor</a> &amp;color) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the base color of the mesh.  <a href="#0822835a232c9e3dee44c6403ed07e91"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiMeshObjectFactory.html">iMeshObjectFactory</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshObject.html#4c5ac09b770173c1e31ca45b5a99d10f">GetFactory</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the reference to the factory that created this mesh object.  <a href="#4c5ac09b770173c1e31ca45b5a99d10f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsFlags.html">csFlags</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshObject.html#b252bb85e845a9c03522395d2377258d">GetFlags</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get flags for this object.  <a href="#b252bb85e845a9c03522395d2377258d"></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="structiMeshObject.html#566e1f5e7ced08916b2d107e6bfcf560">GetMaterialWrapper</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the material of the mesh.  <a href="#566e1f5e7ced08916b2d107e6bfcf560"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiMeshWrapper.html">iMeshWrapper</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshObject.html#f1962ca596487f6701fc78acefca04b3">GetMeshWrapper</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the logical parent for this mesh object.  <a href="#f1962ca596487f6701fc78acefca04b3"></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="structiMeshObject.html#e2be0da94727ab789cf1d1569f0e1e06">GetMixMode</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mix mode.  <a href="#e2be0da94727ab789cf1d1569f0e1e06"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiObjectModel.html">iObjectModel</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshObject.html#6d9cdc0093694cf3977740d72168b6cc">GetObjectModel</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the generic interface describing the geometry of this mesh.  <a href="#6d9cdc0093694cf3977740d72168b6cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structcsRenderMesh.html">csRenderMesh</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshObject.html#be10e3c39a941ffdb51ee14998e6a02c">GetRenderMeshes</a> (int &amp;num, <a class="el" href="structiRenderView.html">iRenderView</a> *rview, <a class="el" href="structiMovable.html">iMovable</a> *movable, <a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> frustum_mask)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the set of render meshes.  <a href="#be10e3c39a941ffdb51ee14998e6a02c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiMeshObjectDrawCallback.html">iMeshObjectDrawCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshObject.html#2d9e58895ab6b2b049d9511da906ec6e">GetVisibleCallback</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current visible callback.  <a href="#2d9e58895ab6b2b049d9511da906ec6e"></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="structiMeshObject.html#d86b9fa26b3338779deefa8ab2952dd3">HardTransform</a> (const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;t)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Do a hard transform of this object.  <a href="#d86b9fa26b3338779deefa8ab2952dd3"></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="structiMeshObject.html#11f23a1e8e26b8a48de7d3b991bab5a9">HitBeamObject</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;start, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;end, <a class="el" href="classcsVector3.html">csVector3</a> &amp;isect, float *pr, int *polygon_idx=0, <a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> **material=0)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if this mesh is hit by this object space vector.  <a href="#11f23a1e8e26b8a48de7d3b991bab5a9"></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="structiMeshObject.html#8c8e970d67c2cdc5acbe106a12cfcbf4">HitBeamOutline</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;start, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;end, <a class="el" href="classcsVector3.html">csVector3</a> &amp;isect, float *pr)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if this mesh is hit by this object space vector.  <a href="#8c8e970d67c2cdc5acbe106a12cfcbf4"></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="structiMeshObject.html#5e6a81d2a6667dc224529892ad94411e">InvalidateMaterialHandles</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Material changed.  <a href="#5e6a81d2a6667dc224529892ad94411e"></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="structiMeshObject.html#5c43a5f3c88f5d9d3cb40e7376ce8337">NextFrame</a> (<a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a> current_time, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;pos, <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> currentFrame)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Control animation of this object.  <a href="#5c43a5f3c88f5d9d3cb40e7376ce8337"></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="structiMeshObject.html#dbb570428356c6ec6afa144c549d859b">PositionChild</a> (<a class="el" href="structiMeshObject.html">iMeshObject</a> *child, <a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a> current_time)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The engine asks this mesh object to place one of his hierarchical children.  <a href="#dbb570428356c6ec6afa144c549d859b"></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="structiMeshObject.html#3e34007c6472db5e2363e8740650ab4e">SetColor</a> (const <a class="el" href="classcsColor.html">csColor</a> &amp;color)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the base color of the mesh.  <a href="#3e34007c6472db5e2363e8740650ab4e"></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="structiMeshObject.html#1ca174351028acb8ffb1c49284407566">SetMaterialWrapper</a> (<a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *material)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the material of the mesh.  <a href="#1ca174351028acb8ffb1c49284407566"></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="structiMeshObject.html#f288c9ecd53bbbee752c85e0a66901c9">SetMeshWrapper</a> (<a class="el" href="structiMeshWrapper.html">iMeshWrapper</a> *logparent)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a reference to the mesh wrapper holding the mesh objects.  <a href="#f288c9ecd53bbbee752c85e0a66901c9"></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="structiMeshObject.html#ac39de11a28f461024207dd86c61e245">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. Note that not all meshes may support this.  <a href="#ac39de11a28f461024207dd86c61e245"></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="structiMeshObject.html#86ced7e2cd64c8b543c3e709d67e8518">SetVisibleCallback</a> (<a class="el" href="structiMeshObjectDrawCallback.html">iMeshObjectDrawCallback</a> *cb)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register a callback to the mesh object which will be called from within Draw() if the mesh object thinks that the object is really visible.  <a href="#86ced7e2cd64c8b543c3e709d67e8518"></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="structiMeshObject.html#a472c50dbddf2eedbad7c37bb34e8089">SupportsHardTransform</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if HardTransform is supported for this mesh object type.  <a href="#a472c50dbddf2eedbad7c37bb34e8089"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This is a general mesh object that the engine can interact with. 
<p>
The mesh object only manages its shape, texture etc. but *not* its position, sector or similar information. For this reason, a mesh object can only be used in the engine if a hook object is created for it in the engine that does the required management. The hook object is called mesh wrapper.<p>
Main creators of instances implementing this interface:<ul>
<li>All mesh objects implement this.</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="structiMeshWrapper.html#941b6ca24a1560e9c7d54b317c743316" title="Get the iMeshObject.">iMeshWrapper::GetMeshObject()</a></li></ul>
<p>
Main users of this interface:<ul>
<li>The 3D engine plugin (crystalspace.engine.3d). </li></ul>

<p>Definition at line <a class="el" href="imesh_2object_8h-source.html#l00109">109</a> of file <a class="el" href="imesh_2object_8h-source.html">object.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="d25b87c6bd504ce2a48ab1766536b4e8"></a><!-- doxytag: member="iMeshObject::BuildDecal" ref="d25b87c6bd504ce2a48ab1766536b4e8" args="(const csVector3 *pos, float decalRadius, iDecalBuilder *decalBuilder)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::BuildDecal           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>decalRadius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiDecalBuilder.html">iDecalBuilder</a> *&nbsp;</td>
          <td class="paramname"> <em>decalBuilder</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>
This mesh is being asked to build a decal for its own geometry. 
<p>
The mesh is given a position and radius of the decal and must create geometry through the provided <a class="el" href="structiDecalBuilder.html" title="Interface for mesh objects to use to build decals for their mesh object.">iDecalBuilder</a>. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#75ecb31d5fa2a9011facd80d4eca9714">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#e52a469459d5a4010da4ceedc192617d">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="f53886ae52e6a94a741e1481f6ebf281"></a><!-- doxytag: member="iMeshObject::Clone" ref="f53886ae52e6a94a741e1481f6ebf281" args="()=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="structiMeshObject.html">iMeshObject</a>&gt; iMeshObject::Clone           </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>
Creates a copy of this object and returns the clone. 
<p>

<p>Implemented in <a class="el" href="classcsParticleSystem.html#2411cec8a23d2d65dfd477d8fed276c0">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#f9e658c5c46042d036fe2fbcf8bb71c6">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="0822835a232c9e3dee44c6403ed07e91"></a><!-- doxytag: member="iMeshObject::GetColor" ref="0822835a232c9e3dee44c6403ed07e91" args="(csColor &amp;color) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iMeshObject::GetColor           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsColor.html">csColor</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>color</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the base color of the mesh. 
<p>
Will return false if not supported. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#8dcd7e94418cd0cfb95e0c724858119c">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#850ba51b52fcf8f586e097f5fef3d20d">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="4c5ac09b770173c1e31ca45b5a99d10f"></a><!-- doxytag: member="iMeshObject::GetFactory" ref="4c5ac09b770173c1e31ca45b5a99d10f" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMeshObjectFactory.html">iMeshObjectFactory</a>* iMeshObject::GetFactory           </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 reference to the factory that created this mesh object. 
<p>

<p>Implemented in <a class="el" href="classcsParticleSystem.html#b26354018a3050976262c3b0720b255f">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#62171d50176bd3c6eca041121ebc8107">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="b252bb85e845a9c03522395d2377258d"></a><!-- doxytag: member="iMeshObject::GetFlags" ref="b252bb85e845a9c03522395d2377258d" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsFlags.html">csFlags</a>&amp; iMeshObject::GetFlags           </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>
Get flags for this object. 
<p>
The following flags are at least supported: <ul>
<li><a class="el" href="group__meshplugins.html#g64baa869dbf664c57df0a7f18438e3d1" title="If CS_MESH_STATICPOS is set then this mesh will never move.">CS_MESH_STATICPOS</a>: mesh will never move. </li>
<li><a class="el" href="group__meshplugins.html#gd6efdeef1cb8c44b5e92fb638cc2983d" title="If CS_MESH_STATICSHAPE is set then this mesh will never animate.">CS_MESH_STATICSHAPE</a>: mesh will never animate.</li>
</ul>
Mesh objects may implement additional flags. These mesh object specific flags must be equal to at least 0x00010000. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#ac810ef4d77a176d43ff2617c0da8261">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#90bfc7a55d27707d7d6d2ff2a0e22783">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="566e1f5e7ced08916b2d107e6bfcf560"></a><!-- doxytag: member="iMeshObject::GetMaterialWrapper" ref="566e1f5e7ced08916b2d107e6bfcf560" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a>* iMeshObject::GetMaterialWrapper           </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 material of the mesh. 
<p>
If not supported this will return 0. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#2b338104d8a482aaa34f4077f81f6460">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#b3dc7436b849f54a092e92475c95207a">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="f1962ca596487f6701fc78acefca04b3"></a><!-- doxytag: member="iMeshObject::GetMeshWrapper" ref="f1962ca596487f6701fc78acefca04b3" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMeshWrapper.html">iMeshWrapper</a>* iMeshObject::GetMeshWrapper           </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 logical parent for this mesh object. 
<p>
See <a class="el" href="structiMeshObject.html#f288c9ecd53bbbee752c85e0a66901c9" title="Set a reference to the mesh wrapper holding the mesh objects.">SetMeshWrapper()</a> for more information. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#684ddd7edfbba6e18b4a2901666ead80">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#11e1a6fcf6f23c9da607cfcb4b9b31c4">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="e2be0da94727ab789cf1d1569f0e1e06"></a><!-- doxytag: member="iMeshObject::GetMixMode" ref="e2be0da94727ab789cf1d1569f0e1e06" 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> iMeshObject::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>

<p>Implemented in <a class="el" href="classcsParticleSystem.html#f258236fe17d9af5e14a2b9d848bdbb4">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#f2daaae57d328595a9cbc58d9ad6ce82">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="6d9cdc0093694cf3977740d72168b6cc"></a><!-- doxytag: member="iMeshObject::GetObjectModel" ref="6d9cdc0093694cf3977740d72168b6cc" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiObjectModel.html">iObjectModel</a>* iMeshObject::GetObjectModel           </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>
Get the generic interface describing the geometry of this mesh. 
<p>
If the factory supports this you should preferably use the object model from the factory instead. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#9665cdd29f34a23d4d468ac3edf07991">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#7ba41244fa8a8707447472c040684a55">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="be10e3c39a941ffdb51ee14998e6a02c"></a><!-- doxytag: member="iMeshObject::GetRenderMeshes" ref="be10e3c39a941ffdb51ee14998e6a02c" args="(int &amp;num, iRenderView *rview, iMovable *movable, uint32 frustum_mask)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsRenderMesh.html">csRenderMesh</a>** iMeshObject::GetRenderMeshes           </td>
          <td>(</td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiRenderView.html">iRenderView</a> *&nbsp;</td>
          <td class="paramname"> <em>rview</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiMovable.html">iMovable</a> *&nbsp;</td>
          <td class="paramname"> <em>movable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a>&nbsp;</td>
          <td class="paramname"> <em>frustum_mask</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>
Returns the set of render meshes. 
<p>
The frustum_mask is given by the culler and contains a mask with all relevant planes for the given object. These planes correspond with the clip planes kept by <a class="el" href="structiRenderView.html" title="This interface represents all information needed to render some object in a current...">iRenderView</a>. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#2218c7a198dcc063d1426ba4a649c410">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#c3f9e1e93019e69fa375ab3b55c8e631">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="2d9e58895ab6b2b049d9511da906ec6e"></a><!-- doxytag: member="iMeshObject::GetVisibleCallback" ref="2d9e58895ab6b2b049d9511da906ec6e" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMeshObjectDrawCallback.html">iMeshObjectDrawCallback</a>* iMeshObject::GetVisibleCallback           </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 current visible callback. 
<p>

<p>Implemented in <a class="el" href="classcsParticleSystem.html#4bb742b3d55571973a10e5f563d88b62">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#40a02d7286d6ef1428a6e50fcb4499ea">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="d86b9fa26b3338779deefa8ab2952dd3"></a><!-- doxytag: member="iMeshObject::HardTransform" ref="d86b9fa26b3338779deefa8ab2952dd3" args="(const csReversibleTransform &amp;t)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::HardTransform           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Do a hard transform of this object. 
<p>
This transformation and the original coordinates are not remembered but the object space coordinates are directly computed (world space coordinates are set to the object space coordinates by this routine). Note that some implementations of mesh objects will not change the orientation of the object but only the position. 
<p>Implemented in <a class="el" href="classcsMeshObject.html#8ad069f5d874c7f71bdff041ef199600">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="11f23a1e8e26b8a48de7d3b991bab5a9"></a><!-- doxytag: member="iMeshObject::HitBeamObject" ref="11f23a1e8e26b8a48de7d3b991bab5a9" args="(const csVector3 &amp;start, const csVector3 &amp;end, csVector3 &amp;isect, float *pr, int *polygon_idx=0, iMaterialWrapper **material=0)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iMeshObject::HitBeamObject           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>isect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>pr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>polygon_idx</em> = <code>0</code>, </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>material</em> = <code>0</code></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>
Check if this mesh is hit by this object space vector. 
<p>
Return the collision point in object space coordinates. This is the most detailed version (and also the slowest). The returned hit will be guaranteed to be the point closest to the 'start' of the beam. If the object supports this then an index of the hit polygon will be returned (or -1 if not supported or no hit). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>Start of the beam to trace. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>End of the beam to trace. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>isect</em>&nbsp;</td><td>Returns the point of the hit. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pr</em>&nbsp;</td><td>Returns the position of the hit as a value between 0 and 1, where 0 means <em>start</em> and 1 means <em>end</em>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>polygon_idx</em>&nbsp;</td><td>Index of the polygon hit on the mesh (or -1 if not supported). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>material</em>&nbsp;</td><td>If not 0 then the hit material will be put here. Or 0 in case this mesh object doesn't support material selection. </td></tr>
  </table>
</dl>

<p>Implemented in <a class="el" href="classcsParticleSystem.html#5cb2d56ee22014cdd3f69dbf43528a4d">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#da02b9acb07f3a103ceae80ab28fcbd4">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="8c8e970d67c2cdc5acbe106a12cfcbf4"></a><!-- doxytag: member="iMeshObject::HitBeamOutline" ref="8c8e970d67c2cdc5acbe106a12cfcbf4" args="(const csVector3 &amp;start, const csVector3 &amp;end, csVector3 &amp;isect, float *pr)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iMeshObject::HitBeamOutline           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>isect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>pr</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>
Check if this mesh is hit by this object space vector. 
<p>
This will do a test based on the outline of the object. This means that it is more accurate than HitBeamBBox(). Note that this routine will typically be faster than <a class="el" href="structiMeshObject.html#11f23a1e8e26b8a48de7d3b991bab5a9" title="Check if this mesh is hit by this object space vector.">HitBeamObject()</a>. The hit may be on the front or the back of the object, but will indicate that it iterrupts the beam. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#82cff32f37801a01a92c1dbaa2d0b583">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#cbb48b6900d940849ab4d9faa1c08eb3">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="5e6a81d2a6667dc224529892ad94411e"></a><!-- doxytag: member="iMeshObject::InvalidateMaterialHandles" ref="5e6a81d2a6667dc224529892ad94411e" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::InvalidateMaterialHandles           </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>
Material changed. 
<p>
This is an 'event' that the engine (or another party managing materials) will send out as soon as the material handles are changed in some way which requires the mesh object to fetch it again (i.e. to call materialwrapper-&gt;GetMaterialHandle()) again. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#144928e3054bc79d68a7926322a700e6">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#1ee99e73092eb2afbd1ce0681de75739">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="5c43a5f3c88f5d9d3cb40e7376ce8337"></a><!-- doxytag: member="iMeshObject::NextFrame" ref="5c43a5f3c88f5d9d3cb40e7376ce8337" args="(csTicks current_time, const csVector3 &amp;pos, uint currentFrame)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::NextFrame           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a>&nbsp;</td>
          <td class="paramname"> <em>current_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
          <td class="paramname"> <em>currentFrame</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>
Control animation of this object. 
<p>

<p>Implemented in <a class="el" href="classcsParticleSystem.html#eea04e78918de081feee87b4be9dc4e4">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#e1c70fb365fb22abdf6815a84094cff3">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="dbb570428356c6ec6afa144c549d859b"></a><!-- doxytag: member="iMeshObject::PositionChild" ref="dbb570428356c6ec6afa144c549d859b" args="(iMeshObject *child, csTicks current_time)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::PositionChild           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMeshObject.html">iMeshObject</a> *&nbsp;</td>
          <td class="paramname"> <em>child</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793">csTicks</a>&nbsp;</td>
          <td class="paramname"> <em>current_time</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>
The engine asks this mesh object to place one of his hierarchical children. 
<p>
It must be placed where it should be at the given time. This object might or might not have been drawn, so you can't use it's current state. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#35dd8229a1af65102243722d4d48de8d">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#74acd09d8ffb5b1519cd5daef2ad0749">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="3e34007c6472db5e2363e8740650ab4e"></a><!-- doxytag: member="iMeshObject::SetColor" ref="3e34007c6472db5e2363e8740650ab4e" args="(const csColor &amp;color)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iMeshObject::SetColor           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsColor.html">csColor</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>color</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the base color of the mesh. 
<p>
This color will be added to whatever color is set for lighting. Not all meshes need to support this. This function will return true if it worked. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#84c7bbbec4256044e4d51085eaf1ec06">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#b2f028f361a4d50948780657f958e45d">csMeshObject</a>.</p>

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

<p>
Set the material of the mesh. 
<p>
This only works for single-material meshes. If not supported this function will return false. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#da0fffc08fa20be0ada73d32b3a41bf6">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#252f3c5d2054f096603b18cc051a0cd7">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="f288c9ecd53bbbee752c85e0a66901c9"></a><!-- doxytag: member="iMeshObject::SetMeshWrapper" ref="f288c9ecd53bbbee752c85e0a66901c9" args="(iMeshWrapper *logparent)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::SetMeshWrapper           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMeshWrapper.html">iMeshWrapper</a> *&nbsp;</td>
          <td class="paramname"> <em>logparent</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a reference to the mesh wrapper holding the mesh objects. 
<p>
Note that this function should NOT increase the ref-count of the given logical parent because this would cause a circular reference (since the logical parent already holds a reference to this mesh object). 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#d21a79d74f7ce257289f7ad8bb501250">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#643a4e35393a96d06e14accf046b7acf">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="ac39de11a28f461024207dd86c61e245"></a><!-- doxytag: member="iMeshObject::SetMixMode" ref="ac39de11a28f461024207dd86c61e245" args="(uint mode)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::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. Note that not all meshes may support this. 
<p>

<p>Implemented in <a class="el" href="classcsParticleSystem.html#ca1e9b3e7c4eb998ce9bb7ec1cadc14e">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#9fa4d60637214ee639f9d10b23e4dcd7">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="86ced7e2cd64c8b543c3e709d67e8518"></a><!-- doxytag: member="iMeshObject::SetVisibleCallback" ref="86ced7e2cd64c8b543c3e709d67e8518" args="(iMeshObjectDrawCallback *cb)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshObject::SetVisibleCallback           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMeshObjectDrawCallback.html">iMeshObjectDrawCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>cb</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Register a callback to the mesh object which will be called from within Draw() if the mesh object thinks that the object is really visible. 
<p>
Depending on the type of mesh object this can be very accurate or not accurate at all. But in all cases it will certainly be called if the object is visible. 
<p>Implemented in <a class="el" href="classcsParticleSystem.html#dc73b77b32991864dc11725e96f1c60b">csParticleSystem</a>, and <a class="el" href="classcsMeshObject.html#552d5f5ccc5208b31eabdec43598f48a">csMeshObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="a472c50dbddf2eedbad7c37bb34e8089"></a><!-- doxytag: member="iMeshObject::SupportsHardTransform" ref="a472c50dbddf2eedbad7c37bb34e8089" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iMeshObject::SupportsHardTransform           </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>
Return true if HardTransform is supported for this mesh object type. 
<p>

<p>Implemented in <a class="el" href="classcsMeshObject.html#c8f9ce689f18ec8f50c6694d497b9168">csMeshObject</a>.</p>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>imesh/<a class="el" href="imesh_2object_8h-source.html">object.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>