Sophie

Sophie

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

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: iMeshWrapper 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>iMeshWrapper Struct Reference<br>
<small>
[<a class="el" href="group__engine3d__meshes.html">Mesh support</a>]</small>
</h1><!-- doxytag: class="iMeshWrapper" --><!-- doxytag: inherits="iBase" -->A mesh wrapper is an engine-level object that wraps around an actual mesh object (<a class="el" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>).  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="mesh_8h-source.html">iengine/mesh.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iMeshWrapper:</div>
<div class="dynsection">
<p><center><img src="structiMeshWrapper__inherit__graph.png" border="0" usemap="#iMeshWrapper__inherit__map" alt="Inheritance graph"></center>
<map name="iMeshWrapper__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="33,7,89,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiMeshWrapper-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="structiMeshWrapper.html#06687df074e6388a776fcade11c5e715">AddExtraRenderMesh</a> (<a class="el" href="structcsRenderMesh.html">csRenderMesh</a> *renderMesh, long priority, <a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a> zBufMode)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a render mesh to the list of extra render meshes.  <a href="#06687df074e6388a776fcade11c5e715"></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="structiMeshWrapper.html#24c741c969503de6ef6a69554ab91b6d">AddMeshToStaticLOD</a> (int lod, <a class="el" href="structiMeshWrapper.html">iMeshWrapper</a> *mesh)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a given child mesh at a specific lod level.  <a href="#24c741c969503de6ef6a69554ab91b6d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiLODControl.html">iLODControl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#a8982f604cd3858a17aadcfa6dbf9804">CreateStaticLOD</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a LOD control for this mesh wrapper.  <a href="#a8982f604cd3858a17aadcfa6dbf9804"></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="structiMeshWrapper.html#5058b807f744b0f6d69e0a1f0e5a7ee6">DestroyStaticLOD</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy the LOD control for this mesh.  <a href="#5058b807f744b0f6d69e0a1f0e5a7ee6"></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="structiMeshWrapper.html#fdfdc758653dec7a0f7563e7a8295a3c">FindChildByName</a> (const char *name)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a child mesh by name.  <a href="#fdfdc758653dec7a0f7563e7a8295a3c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiMeshDrawCallback.html">iMeshDrawCallback</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#ba09c505c41dc5fa81b78b367a92db55">GetDrawCallback</a> (int idx) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the specified draw callback.  <a href="#ba09c505c41dc5fa81b78b367a92db55"></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="structiMeshWrapper.html#041594586dab81b736766a86c9bedffd">GetDrawCallbackCount</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of draw callbacks.  <a href="#041594586dab81b736766a86c9bedffd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#ef4916990026ee61c334255b7ea9ef85">GetExtraRenderMeshPriority</a> (size_t idx) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the priority of a specific extra rendermesh.  <a href="#ef4916990026ee61c334255b7ea9ef85"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#b92d2b2c04a791c200f0ace900dc12bd">GetExtraRenderMeshZBufMode</a> (size_t idx) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the z-buffer mode of a specific extra rendermesh.  <a href="#b92d2b2c04a791c200f0ace900dc12bd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiMeshFactoryWrapper.html">iMeshFactoryWrapper</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#dd1ff9119046dbff3683492232001ee9">GetFactory</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the parent factory.  <a href="#dd1ff9119046dbff3683492232001ee9"></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="structiMeshWrapper.html#71675a858d19e109944dcaa98355d310">GetFlags</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get flags for this meshwrapper.  <a href="#71675a858d19e109944dcaa98355d310"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiLightingInfo.html">iLightingInfo</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#cf689c6cb3d6964c83fb21dc788cbc4d">GetLightingInfo</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the optional lighting information that is implemented by this mesh object.  <a href="#cf689c6cb3d6964c83fb21dc788cbc4d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#267c36e1af97643deb934a23095a17ca">GetMaximumRenderDistance</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum distance at which this mesh will be rendered.  <a href="#267c36e1af97643deb934a23095a17ca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiSharedVariable.html">iSharedVariable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#7dd70379a77a82105de3275dddfdb2f4">GetMaximumRenderDistanceVar</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum distance at which this mesh will be rendered.  <a href="#7dd70379a77a82105de3275dddfdb2f4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiMeshObject.html">iMeshObject</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#941b6ca24a1560e9c7d54b317c743316">GetMeshObject</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>.  <a href="#941b6ca24a1560e9c7d54b317c743316"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#e01f0c53a675f62d730ffc384edadcf4">GetMinimumRenderDistance</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum distance at which this mesh will be rendered.  <a href="#e01f0c53a675f62d730ffc384edadcf4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiSharedVariable.html">iSharedVariable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#08774d43c29b4b9efd0be5d8859df192">GetMinimumRenderDistanceVar</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum distance at which this mesh will be rendered.  <a href="#08774d43c29b4b9efd0be5d8859df192"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiMovable.html">iMovable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#be24a82741ed41c16658b8542fd4ca64">GetMovable</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the movable instance for this object.  <a href="#be24a82741ed41c16658b8542fd4ca64"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiPortalContainer.html">iPortalContainer</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#14fbaa0112165da766d9942b91c52994">GetPortalContainer</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If this mesh is a portal container you can use <a class="el" href="structiMeshWrapper.html#14fbaa0112165da766d9942b91c52994" title="If this mesh is a portal container you can use GetPortalContainer() to get the portal...">GetPortalContainer()</a> to get the portal container interface.  <a href="#14fbaa0112165da766d9942b91c52994"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsSphere.html">csSphere</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#5d2687b29c5ac161ad0ea8380dba5218">GetRadius</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the radius of this mesh and all its children.  <a href="#5d2687b29c5ac161ad0ea8380dba5218"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#4bb76e465d11e84545fe36042e57a189">GetRenderPriority</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the render priority.  <a href="#4bb76e465d11e84545fe36042e57a189"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structcsScreenBoxResult.html">csScreenBoxResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#cd12949cddfc69b9f1abc6d03c6090f9">GetScreenBoundingBox</a> (<a class="el" href="structiCamera.html">iCamera</a> *camera)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a very inaccurate bounding box of the object in screen space.  <a href="#cd12949cddfc69b9f1abc6d03c6090f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiShadowCaster.html">iShadowCaster</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#5cde052eb06634a18e7306bc553e4f67">GetShadowCaster</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the optional shadow caster that is implemented by this mesh object.  <a href="#5cde052eb06634a18e7306bc553e4f67"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiShadowReceiver.html">iShadowReceiver</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#5c69bc0f9fcb5db03b540fbbbfbfba2f">GetShadowReceiver</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the optional shadow receiver that is implemented by this mesh object.  <a href="#5c69bc0f9fcb5db03b540fbbbfbfba2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiLODControl.html">iLODControl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#e8749e2f870320ba01ae800a6f013265">GetStaticLOD</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the LOD control for this mesh.  <a href="#e8749e2f870320ba01ae800a6f013265"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiShaderVariableContext.html">iShaderVariableContext</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#487f3fb7d15f242526dc6f22873a9a22">GetSVContext</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the shader variable context of the mesh object.  <a href="#487f3fb7d15f242526dc6f22873a9a22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsBox3.html">csBox3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#4002caecc14cbc91f192ff10ce76e1e1">GetTransformedBoundingBox</a> (const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;trans)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the bounding box of this object after applying a transformation to it.  <a href="#4002caecc14cbc91f192ff10ce76e1e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsBox3.html">csBox3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#c85dc49014ed35c8792c5cca25a5e028">GetWorldBoundingBox</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the bounding box of this object in world space.  <a href="#c85dc49014ed35c8792c5cca25a5e028"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#144522dd067e56b98a68a6a25194f5ac">GetZBufMode</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the Z-buf drawing mode.  <a href="#144522dd067e56b98a68a6a25194f5ac"></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="structiMeshWrapper.html#bf19f5a4bdbe7a6f3eb6ab7e87ef1f10">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="#bf19f5a4bdbe7a6f3eb6ab7e87ef1f10"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#64f423079b21ccd61e3b8b5ccda8e027">HitBeam</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;start, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;end, bool do_material=false)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if this object is hit by this world space vector.  <a href="#64f423079b21ccd61e3b8b5ccda8e027"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#8d6fd047d7de1a9e012506a28d8de201">HitBeamBBox</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;start, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;end)=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="#8d6fd047d7de1a9e012506a28d8de201"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#f228a9e920829e92bb3d0f4ef8bdfbb0">HitBeamObject</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;start, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;end, bool do_material=false)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if this object is hit by this object space vector.  <a href="#f228a9e920829e92bb3d0f4ef8bdfbb0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#d53f9a354edfaef38d9f96ea8f2959dc">HitBeamOutline</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;start, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;end)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if this object is hit by this object space vector.  <a href="#d53f9a354edfaef38d9f96ea8f2959dc"></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="structiMeshWrapper.html#3fe38af938d8e712f04dfdfab928080c">PlaceMesh</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This routine will find out in which sectors a mesh object is positioned.  <a href="#3fe38af938d8e712f04dfdfab928080c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiObject.html">iObject</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#3c03370a1a95e5f19326dfb7464cd5c1">QueryObject</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="structiObject.html" title="This interface is an SCF interface for encapsulating csObject.">iObject</a> for this mesh object.  <a href="#3c03370a1a95e5f19326dfb7464cd5c1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiSceneNode.html">iSceneNode</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiMeshWrapper.html#eb7e6250d1212132215b2bc22e88a63b">QuerySceneNode</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the scene node that this object represents.  <a href="#eb7e6250d1212132215b2bc22e88a63b"></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="structiMeshWrapper.html#a596276cba50ac076f57f61b8a8fc363">RemoveDrawCallback</a> (<a class="el" href="structiMeshDrawCallback.html">iMeshDrawCallback</a> *cb)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a draw callback.  <a href="#a596276cba50ac076f57f61b8a8fc363"></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="structiMeshWrapper.html#2ba24118160101cd4dd9d80a39d44d99">RemoveExtraRenderMesh</a> (<a class="el" href="structcsRenderMesh.html">csRenderMesh</a> *renderMesh)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes a specific extra rendermesh.  <a href="#2ba24118160101cd4dd9d80a39d44d99"></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="structiMeshWrapper.html#0d926e6e53fa32a14e08136166c5fd89">RemoveMeshFromStaticLOD</a> (<a class="el" href="structiMeshWrapper.html">iMeshWrapper</a> *mesh)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a child mesh from all lod levels.  <a href="#0d926e6e53fa32a14e08136166c5fd89"></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="structiMeshWrapper.html#58292c30944252bcc4a698cbff943e2c">ResetMinMaxRenderDistance</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset minimum/maximum render range to defaults (i.e.  <a href="#58292c30944252bcc4a698cbff943e2c"></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="structiMeshWrapper.html#0c2d95aae5b52b729691f450e1f9d065">SetDrawCallback</a> (<a class="el" href="structiMeshDrawCallback.html">iMeshDrawCallback</a> *cb)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a callback which is called just before the object is drawn.  <a href="#0c2d95aae5b52b729691f450e1f9d065"></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="structiMeshWrapper.html#c0e801dfedf106b29d42ecbdf0f9b1c1">SetFactory</a> (<a class="el" href="structiMeshFactoryWrapper.html">iMeshFactoryWrapper</a> *factory)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the parent factory (this only sets a pointer).  <a href="#c0e801dfedf106b29d42ecbdf0f9b1c1"></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="structiMeshWrapper.html#37be83c35cc3acde417f0e287903cda9">SetFlagsRecursive</a> (<a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> mask, <a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a> flags=~0)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set some flags with the given mask for this mesh and all children.  <a href="#37be83c35cc3acde417f0e287903cda9"></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="structiMeshWrapper.html#3d8d4f93c270056485e9d5ce9bbb736c">SetLightingUpdate</a> (int flags, int num_lights)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Control how lighting updates should take place.  <a href="#3d8d4f93c270056485e9d5ce9bbb736c"></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="structiMeshWrapper.html#1e67a8e8330726ea09d092411d60d959">SetMaximumRenderDistance</a> (float min)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the maximum distance at which this mesh will be rendered.  <a href="#1e67a8e8330726ea09d092411d60d959"></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="structiMeshWrapper.html#75768cf05f79e11790585665bb8b2306">SetMaximumRenderDistanceVar</a> (<a class="el" href="structiSharedVariable.html">iSharedVariable</a> *min)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the maximum distance at which this mesh will be rendered.  <a href="#75768cf05f79e11790585665bb8b2306"></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="structiMeshWrapper.html#8f5dc9e0e94ada4c5e3fb5759261c462">SetMeshObject</a> (<a class="el" href="structiMeshObject.html">iMeshObject</a> *)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>.  <a href="#8f5dc9e0e94ada4c5e3fb5759261c462"></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="structiMeshWrapper.html#1924be3e9b435665f2a67e12478d4639">SetMinimumRenderDistance</a> (float min)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the minimum distance at which this mesh will be rendered.  <a href="#1924be3e9b435665f2a67e12478d4639"></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="structiMeshWrapper.html#acc7943c73efa69875421160ba71debb">SetMinimumRenderDistanceVar</a> (<a class="el" href="structiSharedVariable.html">iSharedVariable</a> *min)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the minimum distance at which this mesh will be rendered.  <a href="#acc7943c73efa69875421160ba71debb"></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="structiMeshWrapper.html#49317bed70ed0ab118bde6e9cfd03988">SetRenderPriority</a> (long rp)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The renderer will render all objects in a sector based on this number.  <a href="#49317bed70ed0ab118bde6e9cfd03988"></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="structiMeshWrapper.html#5a1317766ed59fa8e6361b0713d46c45">SetRenderPriorityRecursive</a> (long rp)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Same as <a class="el" href="structiMeshWrapper.html#49317bed70ed0ab118bde6e9cfd03988" title="The renderer will render all objects in a sector based on this number.">SetRenderPriority()</a> but this version will recursively set render priority for the children too.  <a href="#5a1317766ed59fa8e6361b0713d46c45"></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="structiMeshWrapper.html#6e99c9eec4682b3e89a51fcb3b777a98">SetZBufMode</a> (<a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a> mode)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the Z-buf drawing mode to use for this object.  <a href="#6e99c9eec4682b3e89a51fcb3b777a98"></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="structiMeshWrapper.html#8fc03d28b092a33286c3261a50a7f75c">SetZBufModeRecursive</a> (<a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a> mode)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Same as <a class="el" href="structiMeshWrapper.html#6e99c9eec4682b3e89a51fcb3b777a98" title="Set the Z-buf drawing mode to use for this object.">SetZBufMode()</a> but this will also set the z-buf mode for the children too.  <a href="#8fc03d28b092a33286c3261a50a7f75c"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A mesh wrapper is an engine-level object that wraps around an actual mesh object (<a class="el" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>). 
<p>
Every mesh object in the engine is represented by a mesh wrapper, which keeps the pointer to the mesh object, its position, its name, etc.<p>
Think of the mesh wrapper as the hook that holds the mesh object in the engine. An effect of this is that the i???State interfaces (e.g. <a class="el" href="structiSprite3DState.html" title="This interface describes the API for the 3D sprite mesh object.">iSprite3DState</a>) must be queried from the mesh *objects*, not the wrappers!<p>
Note that a mesh object should never be contained in more than one wrapper.<p>
Main creators of instances implementing this interface:<ul>
<li><a class="el" href="structiEngine.html#00e06b4acee4e55e17dc4308fd7b8f6c" title="Convenience function to create the thing containing the convex outline of a sector...">iEngine::CreateSectorWallsMesh()</a></li><li><a class="el" href="structiEngine.html#eba165df1295ebd63bf7a75d447d82ef" title="Convenience function to create a thing mesh in a sector.">iEngine::CreateThingMesh()</a></li><li><a class="el" href="structiEngine.html#35360daf38638b5b0da662abaf41b644" title="Convenience function to create a mesh object for a given factory.">iEngine::CreateMeshWrapper()</a></li><li><a class="el" href="structiEngine.html#0699d5685b7e2b6d15bcb5b37920a915" title="Convenience function to load a mesh object from a given loader plugin.">iEngine::LoadMeshWrapper()</a></li><li><a class="el" href="structiEngine.html#504165d54bce4969ed47560efa729f55" title="Create an empty portal container in some sector.">iEngine::CreatePortalContainer()</a></li><li><a class="el" href="structiEngine.html#4d22a0d356014e1808b76c1545eb2a3a" title="Convenience function to create a portal from one sector to another and make this...">iEngine::CreatePortal()</a></li><li><a class="el" href="structiLoader.html#cc2812f64d70243101337ee3c0f18245" title="Load a mesh object from a file.">iLoader::LoadMeshObject()</a></li></ul>
<p>
Main ways to get pointers to this interface:<ul>
<li><a class="el" href="structiEngine.html#ab0639af64af258b0bbd8e2d117a9102" title="Find the given mesh object.">iEngine::FindMeshObject()</a></li><li><a class="el" href="structiMeshList.html#b735893f66659f6bf9390b65e5af0665" title="Return a mesh by index.">iMeshList::Get()</a></li><li><a class="el" href="structiMeshList.html#55e25abf342fbef8d2b4e294bda2adfe" title="Find a mesh by name.">iMeshList::FindByName()</a></li><li><a class="el" href="structiMeshWrapperIterator.html#8293198f972d8ae917de654d2873c074" title="Move forward.">iMeshWrapperIterator::Next()</a></li><li><a class="el" href="structiLoaderContext.html#714d2d5818e34e03e54b173712aeb9e3" title="Find a mesh object.">iLoaderContext::FindMeshObject()</a></li></ul>
<p>
Main users of this interface:<ul>
<li><a class="el" href="structiEngine.html" title="This interface is the main interface to the 3D engine.">iEngine</a> </li></ul>

<p>Definition at line <a class="el" href="mesh_8h-source.html#l00258">258</a> of file <a class="el" href="mesh_8h-source.html">mesh.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="06687df074e6388a776fcade11c5e715"></a><!-- doxytag: member="iMeshWrapper::AddExtraRenderMesh" ref="06687df074e6388a776fcade11c5e715" args="(csRenderMesh *renderMesh, long priority, csZBufMode zBufMode)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::AddExtraRenderMesh           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcsRenderMesh.html">csRenderMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>renderMesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>priority</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a>&nbsp;</td>
          <td class="paramname"> <em>zBufMode</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>
Adds a render mesh to the list of extra render meshes. 
<p>
This list is used for special cases (like decals) where additional things need to be renderered for the mesh in an abstract way. 
</div>
</div><p>
<a class="anchor" name="24c741c969503de6ef6a69554ab91b6d"></a><!-- doxytag: member="iMeshWrapper::AddMeshToStaticLOD" ref="24c741c969503de6ef6a69554ab91b6d" args="(int lod, iMeshWrapper *mesh)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::AddMeshToStaticLOD           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>lod</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiMeshWrapper.html">iMeshWrapper</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</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>
Set a given child mesh at a specific lod level. 
<p>
Note that a mesh can be at several lod levels at once. 
</div>
</div><p>
<a class="anchor" name="a8982f604cd3858a17aadcfa6dbf9804"></a><!-- doxytag: member="iMeshWrapper::CreateStaticLOD" ref="a8982f604cd3858a17aadcfa6dbf9804" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiLODControl.html">iLODControl</a>* iMeshWrapper::CreateStaticLOD           </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>
Create a LOD control for this mesh wrapper. 
<p>
This is relevant only if the mesh is a hierarchical mesh. The LOD control will be used to select which children are visible and which are not. Use this to create static lod. 
</div>
</div><p>
<a class="anchor" name="5058b807f744b0f6d69e0a1f0e5a7ee6"></a><!-- doxytag: member="iMeshWrapper::DestroyStaticLOD" ref="5058b807f744b0f6d69e0a1f0e5a7ee6" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::DestroyStaticLOD           </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>
Destroy the LOD control for this mesh. 
<p>
After this call the hierarchical mesh will act as usual. 
</div>
</div><p>
<a class="anchor" name="fdfdc758653dec7a0f7563e7a8295a3c"></a><!-- doxytag: member="iMeshWrapper::FindChildByName" ref="fdfdc758653dec7a0f7563e7a8295a3c" args="(const char *name)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMeshWrapper.html">iMeshWrapper</a>* iMeshWrapper::FindChildByName           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find a child mesh by name. 
<p>
If there is a colon in the name then this function is able to search for children too. i.e. like mesh:childmesh:childmesh. 
</div>
</div><p>
<a class="anchor" name="ba09c505c41dc5fa81b78b367a92db55"></a><!-- doxytag: member="iMeshWrapper::GetDrawCallback" ref="ba09c505c41dc5fa81b78b367a92db55" args="(int idx) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMeshDrawCallback.html">iMeshDrawCallback</a>* iMeshWrapper::GetDrawCallback           </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 specified draw callback. 
<p>

</div>
</div><p>
<a class="anchor" name="041594586dab81b736766a86c9bedffd"></a><!-- doxytag: member="iMeshWrapper::GetDrawCallbackCount" ref="041594586dab81b736766a86c9bedffd" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iMeshWrapper::GetDrawCallbackCount           </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 number of draw callbacks. 
<p>

</div>
</div><p>
<a class="anchor" name="ef4916990026ee61c334255b7ea9ef85"></a><!-- doxytag: member="iMeshWrapper::GetExtraRenderMeshPriority" ref="ef4916990026ee61c334255b7ea9ef85" args="(size_t idx) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual long iMeshWrapper::GetExtraRenderMeshPriority           </td>
          <td>(</td>
          <td class="paramtype">size_t&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>
Gets the priority of a specific extra rendermesh. 
<p>

</div>
</div><p>
<a class="anchor" name="b92d2b2c04a791c200f0ace900dc12bd"></a><!-- doxytag: member="iMeshWrapper::GetExtraRenderMeshZBufMode" ref="b92d2b2c04a791c200f0ace900dc12bd" args="(size_t idx) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a> iMeshWrapper::GetExtraRenderMeshZBufMode           </td>
          <td>(</td>
          <td class="paramtype">size_t&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>
Gets the z-buffer mode of a specific extra rendermesh. 
<p>

</div>
</div><p>
<a class="anchor" name="dd1ff9119046dbff3683492232001ee9"></a><!-- doxytag: member="iMeshWrapper::GetFactory" ref="dd1ff9119046dbff3683492232001ee9" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMeshFactoryWrapper.html">iMeshFactoryWrapper</a>* iMeshWrapper::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 parent factory. 
<p>

</div>
</div><p>
<a class="anchor" name="71675a858d19e109944dcaa98355d310"></a><!-- doxytag: member="iMeshWrapper::GetFlags" ref="71675a858d19e109944dcaa98355d310" 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; iMeshWrapper::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 meshwrapper. 
<p>
The following flags are supported:<ul>
<li><a class="el" href="group__engine3d__meshes.html#gb1920b5b57dec88cadcf530ce789a848" title="If CS_ENTITY_DETAIL is set then this entity is a detail object.">CS_ENTITY_DETAIL</a>: this is a detail object. Again this is a hint for the engine to render this object differently. Currently not used.</li><li><a class="el" href="group__engine3d__meshes.html#g707edf89325bf63f948e740ff3ae841c" title="If CS_ENTITY_CAMERA is set then this entity will be always be centerer around the...">CS_ENTITY_CAMERA</a>: entity will always be centered around the camera.</li><li><a class="el" href="group__engine3d__meshes.html#g640f3681a716875d98661b8a8dd1394d" title="If CS_ENTITY_INVISIBLEMESH is set then this thing will not be rendered.">CS_ENTITY_INVISIBLEMESH</a>: entity is not rendered.</li><li><a class="el" href="group__engine3d__meshes.html#ge4dafd5346026834b4c9a229cc1dc8d7" title="If CS_ENTITY_NOHITBEAM is set then this thing will not react to HitBeam calls.">CS_ENTITY_NOHITBEAM</a>: this entity will not be considered by <a class="el" href="structiMeshWrapper.html#64f423079b21ccd61e3b8b5ccda8e027" title="Check if this object is hit by this world space vector.">HitBeam()</a> calls.</li><li><a class="el" href="group__engine3d__meshes.html#g269b4b29e2953b196ff15c97fe1ea37b" title="If CS_ENTITY_INVISIBLE is set then this thing will not be rendered.">CS_ENTITY_INVISIBLE</a>: means that either CS_ENTITY_INVISIBLEMESH and CS_ENTITY_NOHITBEAM are set.</li><li><a class="el" href="group__engine3d__meshes.html#g827afa4789cbc9ddfebf824510ad710c" title="If CS_ENTITY_NOSHADOWS is set then this thing will not cast shadows.">CS_ENTITY_NOSHADOWS</a>: cast no shadows.</li><li><a class="el" href="group__engine3d__meshes.html#g4dc1fb513d52e66b5c9b4833c8771ccd" title="If CS_ENTITY_NOLIGHTING is set then this thing will not be lit.">CS_ENTITY_NOLIGHTING</a>: do not light this object.</li><li><a class="el" href="group__engine3d__meshes.html#g71b0c1c932e7b49e5465da3479224395" title="If CS_ENTITY_NOCLIP is set then this entity will be drawn fully (unclipped to portal...">CS_ENTITY_NOCLIP</a>: do not clip this object.</li></ul>
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Despite the name, this method does not only provide read access to the mesh flags, as the returned reference to a <a class="el" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a> object also provides write access. </dd></dl>

</div>
</div><p>
<a class="anchor" name="cf689c6cb3d6964c83fb21dc788cbc4d"></a><!-- doxytag: member="iMeshWrapper::GetLightingInfo" ref="cf689c6cb3d6964c83fb21dc788cbc4d" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiLightingInfo.html">iLightingInfo</a>* iMeshWrapper::GetLightingInfo           </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 optional lighting information that is implemented by this mesh object. 
<p>
If the mesh object doesn't implement it then this will return 0. This is similar (but more efficient) to calling SCF_QUERY_INTERFACE on the mesh object for <a class="el" href="structiLightingInfo.html" title="This interface is implemented by mesh objects that have some kind of lighting system...">iLightingInfo</a>. 
</div>
</div><p>
<a class="anchor" name="267c36e1af97643deb934a23095a17ca"></a><!-- doxytag: member="iMeshWrapper::GetMaximumRenderDistance" ref="267c36e1af97643deb934a23095a17ca" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual float iMeshWrapper::GetMaximumRenderDistance           </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 maximum distance at which this mesh will be rendered. 
<p>

</div>
</div><p>
<a class="anchor" name="7dd70379a77a82105de3275dddfdb2f4"></a><!-- doxytag: member="iMeshWrapper::GetMaximumRenderDistanceVar" ref="7dd70379a77a82105de3275dddfdb2f4" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiSharedVariable.html">iSharedVariable</a>* iMeshWrapper::GetMaximumRenderDistanceVar           </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 maximum distance at which this mesh will be rendered. 
<p>
If lod was not set using variables then it will return 0. 
</div>
</div><p>
<a class="anchor" name="941b6ca24a1560e9c7d54b317c743316"></a><!-- doxytag: member="iMeshWrapper::GetMeshObject" ref="941b6ca24a1560e9c7d54b317c743316" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMeshObject.html">iMeshObject</a>* iMeshWrapper::GetMeshObject           </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 <a class="el" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>. 
<p>

</div>
</div><p>
<a class="anchor" name="e01f0c53a675f62d730ffc384edadcf4"></a><!-- doxytag: member="iMeshWrapper::GetMinimumRenderDistance" ref="e01f0c53a675f62d730ffc384edadcf4" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual float iMeshWrapper::GetMinimumRenderDistance           </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 minimum distance at which this mesh will be rendered. 
<p>

</div>
</div><p>
<a class="anchor" name="08774d43c29b4b9efd0be5d8859df192"></a><!-- doxytag: member="iMeshWrapper::GetMinimumRenderDistanceVar" ref="08774d43c29b4b9efd0be5d8859df192" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiSharedVariable.html">iSharedVariable</a>* iMeshWrapper::GetMinimumRenderDistanceVar           </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 minimum distance at which this mesh will be rendered. 
<p>
If lod was not set using variables then it will return 0. 
</div>
</div><p>
<a class="anchor" name="be24a82741ed41c16658b8542fd4ca64"></a><!-- doxytag: member="iMeshWrapper::GetMovable" ref="be24a82741ed41c16658b8542fd4ca64" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMovable.html">iMovable</a>* iMeshWrapper::GetMovable           </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 movable instance for this object. 
<p>
It is very important to call <a class="el" href="structiMeshWrapper.html#be24a82741ed41c16658b8542fd4ca64" title="Get the movable instance for this object.">GetMovable()</a>-&gt;UpdateMove() after doing any kind of modification to this movable to make sure that internal data structures are correctly updated. 
</div>
</div><p>
<a class="anchor" name="14fbaa0112165da766d9942b91c52994"></a><!-- doxytag: member="iMeshWrapper::GetPortalContainer" ref="14fbaa0112165da766d9942b91c52994" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiPortalContainer.html">iPortalContainer</a>* iMeshWrapper::GetPortalContainer           </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>
If this mesh is a portal container you can use <a class="el" href="structiMeshWrapper.html#14fbaa0112165da766d9942b91c52994" title="If this mesh is a portal container you can use GetPortalContainer() to get the portal...">GetPortalContainer()</a> to get the portal container interface. 
<p>

</div>
</div><p>
<a class="anchor" name="5d2687b29c5ac161ad0ea8380dba5218"></a><!-- doxytag: member="iMeshWrapper::GetRadius" ref="5d2687b29c5ac161ad0ea8380dba5218" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsSphere.html">csSphere</a> iMeshWrapper::GetRadius           </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 radius of this mesh and all its children. 
<p>

</div>
</div><p>
<a class="anchor" name="4bb76e465d11e84545fe36042e57a189"></a><!-- doxytag: member="iMeshWrapper::GetRenderPriority" ref="4bb76e465d11e84545fe36042e57a189" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual long iMeshWrapper::GetRenderPriority           </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 render priority. 
<p>

</div>
</div><p>
<a class="anchor" name="cd12949cddfc69b9f1abc6d03c6090f9"></a><!-- doxytag: member="iMeshWrapper::GetScreenBoundingBox" ref="cd12949cddfc69b9f1abc6d03c6090f9" args="(iCamera *camera)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsScreenBoxResult.html">csScreenBoxResult</a> iMeshWrapper::GetScreenBoundingBox           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiCamera.html">iCamera</a> *&nbsp;</td>
          <td class="paramname"> <em>camera</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a very inaccurate bounding box of the object in screen space. 
<p>
Returns -1 if object behind the camera or else the distance between the camera and the furthest point of the 3D box. 
</div>
</div><p>
<a class="anchor" name="5cde052eb06634a18e7306bc553e4f67"></a><!-- doxytag: member="iMeshWrapper::GetShadowCaster" ref="5cde052eb06634a18e7306bc553e4f67" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiShadowCaster.html">iShadowCaster</a>* iMeshWrapper::GetShadowCaster           </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 optional shadow caster that is implemented by this mesh object. 
<p>
If the mesh object doesn't implement it then this will return 0. This is similar (but more efficient) to calling SCF_QUERY_INTERFACE on the mesh object for <a class="el" href="structiShadowCaster.html" title="An object that can cast shadows.">iShadowCaster</a>. <p>
Note! If the mesh is a static lod mesh (i.e. a parent of a mesh hierarchy that is used for static lod) then this will return a shadow caster that gets shadows from the highest detail objects. 
</div>
</div><p>
<a class="anchor" name="5c69bc0f9fcb5db03b540fbbbfbfba2f"></a><!-- doxytag: member="iMeshWrapper::GetShadowReceiver" ref="5c69bc0f9fcb5db03b540fbbbfbfba2f" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiShadowReceiver.html">iShadowReceiver</a>* iMeshWrapper::GetShadowReceiver           </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 optional shadow receiver that is implemented by this mesh object. 
<p>
If the mesh object doesn't implement it then this will return 0. This is similar (but more efficient) to calling SCF_QUERY_INTERFACE on the mesh object for <a class="el" href="structiShadowReceiver.html" title="An object that is interested in getting shadow information.">iShadowReceiver</a>. <p>
Note! If the mesh is a static lod mesh (i.e. a parent of a mesh hierarchy that is used for static lod) then this will return a shadow receiver that automatically multiplexes the receiving shadows to all child meshes. 
</div>
</div><p>
<a class="anchor" name="e8749e2f870320ba01ae800a6f013265"></a><!-- doxytag: member="iMeshWrapper::GetStaticLOD" ref="e8749e2f870320ba01ae800a6f013265" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiLODControl.html">iLODControl</a>* iMeshWrapper::GetStaticLOD           </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 LOD control for this mesh. 
<p>
This will return 0 if this is a normal (hierarchical) mesh. Otherwise it will return an object with which you can control the static LOD of this object. 
</div>
</div><p>
<a class="anchor" name="487f3fb7d15f242526dc6f22873a9a22"></a><!-- doxytag: member="iMeshWrapper::GetSVContext" ref="487f3fb7d15f242526dc6f22873a9a22" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiShaderVariableContext.html">iShaderVariableContext</a>* iMeshWrapper::GetSVContext           </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 shader variable context of the mesh object. 
<p>

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

<p>
Get the bounding box of this object after applying a transformation to it. 
<p>
This is really a very inaccurate function as it will take the bounding box of the object in object space and then transform this bounding box. 
</div>
</div><p>
<a class="anchor" name="c85dc49014ed35c8792c5cca25a5e028"></a><!-- doxytag: member="iMeshWrapper::GetWorldBoundingBox" ref="c85dc49014ed35c8792c5cca25a5e028" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsBox3.html">csBox3</a>&amp; iMeshWrapper::GetWorldBoundingBox           </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 bounding box of this object in world space. 
<p>
This routine will cache the bounding box and only recalculate it if the movable changes. 
</div>
</div><p>
<a class="anchor" name="144522dd067e56b98a68a6a25194f5ac"></a><!-- doxytag: member="iMeshWrapper::GetZBufMode" ref="144522dd067e56b98a68a6a25194f5ac" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</a> iMeshWrapper::GetZBufMode           </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 Z-buf drawing mode. 
<p>

</div>
</div><p>
<a class="anchor" name="bf19f5a4bdbe7a6f3eb6ab7e87ef1f10"></a><!-- doxytag: member="iMeshWrapper::HardTransform" ref="bf19f5a4bdbe7a6f3eb6ab7e87ef1f10" args="(const csReversibleTransform &amp;t)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::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>
Note also that some mesh objects don't support HardTransform. You can find out by calling iMeshObject-&gt;SupportsHardTransform(). In that case you can sometimes still call <a class="el" href="structiMeshWrapper.html#bf19f5a4bdbe7a6f3eb6ab7e87ef1f10" title="Do a hard transform of this object.">HardTransform()</a> on the factory. 
</div>
</div><p>
<a class="anchor" name="64f423079b21ccd61e3b8b5ccda8e027"></a><!-- doxytag: member="iMeshWrapper::HitBeam" ref="64f423079b21ccd61e3b8b5ccda8e027" args="(const csVector3 &amp;start, const csVector3 &amp;end, bool do_material=false)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a> iMeshWrapper::HitBeam           </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">bool&nbsp;</td>
          <td class="paramname"> <em>do_material</em> = <code>false</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 object is hit by this world space vector. 
<p>
Return the collision point in world space coordinates. This version can also return the material that was hit (this will only happen if 'do_material' is true). This is not supported by all meshes so this can return 0 even if there was a hit. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&gt;HitBeam() routines.">csHitBeamResult</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="8d6fd047d7de1a9e012506a28d8de201"></a><!-- doxytag: member="iMeshWrapper::HitBeamBBox" ref="8d6fd047d7de1a9e012506a28d8de201" args="(const csVector3 &amp;start, const csVector3 &amp;end)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a> iMeshWrapper::HitBeamBBox           </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><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 rough but fast test based on bounding box only. So this means that it might return a hit even though the object isn't really hit at all. Depends on how much the bounding box overestimates the object. This also returns the face number as defined in <a class="el" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a> on which face the hit occured. Useful for grid structures. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&gt;HitBeam() routines.">csHitBeamResult</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="f228a9e920829e92bb3d0f4ef8bdfbb0"></a><!-- doxytag: member="iMeshWrapper::HitBeamObject" ref="f228a9e920829e92bb3d0f4ef8bdfbb0" args="(const csVector3 &amp;start, const csVector3 &amp;end, bool do_material=false)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a> iMeshWrapper::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">bool&nbsp;</td>
          <td class="paramname"> <em>do_material</em> = <code>false</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 object is hit by this object space vector. 
<p>
Return the collision point in object space coordinates. This version is more accurate than HitBeamOutline. This version can also return the material that was hit (this will only happen if 'do_material' is true). This is not supported by all meshes so this can return 0 even if there was a hit. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&gt;HitBeam() routines.">csHitBeamResult</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="d53f9a354edfaef38d9f96ea8f2959dc"></a><!-- doxytag: member="iMeshWrapper::HitBeamOutline" ref="d53f9a354edfaef38d9f96ea8f2959dc" args="(const csVector3 &amp;start, const csVector3 &amp;end)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsHitBeamResult.html">csHitBeamResult</a> iMeshWrapper::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><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 object is hit by this object space vector. 
<p>
Outline check. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&gt;HitBeam() routines.">csHitBeamResult</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="3fe38af938d8e712f04dfdfab928080c"></a><!-- doxytag: member="iMeshWrapper::PlaceMesh" ref="3fe38af938d8e712f04dfdfab928080c" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::PlaceMesh           </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>
This routine will find out in which sectors a mesh object is positioned. 
<p>
To use it the mesh has to be placed in one starting sector. This routine will then start from that sector, find all portals that touch the sprite and add all additional sectors from those portals. Note that this routine using a bounding sphere for this test so it is possible that the mesh will be added to sectors where it really isn't located (but the sphere is). <p>
If the mesh is already in several sectors those additional sectors will be ignored and only the first one will be used for this routine. <p>
Placing a mesh in different sectors is important when the mesh crosses a portal boundary. If you don't do this then it is possible that the mesh will be clipped wrong. For small mesh objects you can get away by not doing this in most cases. 
</div>
</div><p>
<a class="anchor" name="3c03370a1a95e5f19326dfb7464cd5c1"></a><!-- doxytag: member="iMeshWrapper::QueryObject" ref="3c03370a1a95e5f19326dfb7464cd5c1" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiObject.html">iObject</a>* iMeshWrapper::QueryObject           </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 <a class="el" href="structiObject.html" title="This interface is an SCF interface for encapsulating csObject.">iObject</a> for this mesh object. 
<p>
This can be used to get the name of the mesh wrapper and also to attach other user objects to this mesh (like for collision detection or game data). 
</div>
</div><p>
<a class="anchor" name="eb7e6250d1212132215b2bc22e88a63b"></a><!-- doxytag: member="iMeshWrapper::QuerySceneNode" ref="eb7e6250d1212132215b2bc22e88a63b" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiSceneNode.html">iSceneNode</a>* iMeshWrapper::QuerySceneNode           </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 scene node that this object represents. 
<p>

</div>
</div><p>
<a class="anchor" name="a596276cba50ac076f57f61b8a8fc363"></a><!-- doxytag: member="iMeshWrapper::RemoveDrawCallback" ref="a596276cba50ac076f57f61b8a8fc363" args="(iMeshDrawCallback *cb)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::RemoveDrawCallback           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMeshDrawCallback.html">iMeshDrawCallback</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>
Remove a draw callback. 
<p>

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

<p>
Deletes a specific extra rendermesh. 
<p>

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

<p>
Remove a child mesh from all lod levels. 
<p>
The mesh is not removed from the list of child meshes however. 
</div>
</div><p>
<a class="anchor" name="58292c30944252bcc4a698cbff943e2c"></a><!-- doxytag: member="iMeshWrapper::ResetMinMaxRenderDistance" ref="58292c30944252bcc4a698cbff943e2c" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::ResetMinMaxRenderDistance           </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 minimum/maximum render range to defaults (i.e. 
<p>
unlimited). 
</div>
</div><p>
<a class="anchor" name="0c2d95aae5b52b729691f450e1f9d065"></a><!-- doxytag: member="iMeshWrapper::SetDrawCallback" ref="0c2d95aae5b52b729691f450e1f9d065" args="(iMeshDrawCallback *cb)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetDrawCallback           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMeshDrawCallback.html">iMeshDrawCallback</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>
Set a callback which is called just before the object is drawn. 
<p>
This is useful to do some expensive computations which only need to be done on a visible object. Note that this function will be called even if the object is not visible. In general it is called if there is a likely probability that the object is visible (i.e. it is in the same sector as the camera for example). 
</div>
</div><p>
<a class="anchor" name="c0e801dfedf106b29d42ecbdf0f9b1c1"></a><!-- doxytag: member="iMeshWrapper::SetFactory" ref="c0e801dfedf106b29d42ecbdf0f9b1c1" args="(iMeshFactoryWrapper *factory)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetFactory           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMeshFactoryWrapper.html">iMeshFactoryWrapper</a> *&nbsp;</td>
          <td class="paramname"> <em>factory</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the parent factory (this only sets a pointer). 
<p>

</div>
</div><p>
<a class="anchor" name="37be83c35cc3acde417f0e287903cda9"></a><!-- doxytag: member="iMeshWrapper::SetFlagsRecursive" ref="37be83c35cc3acde417f0e287903cda9" args="(uint32 mask, uint32 flags=~0)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetFlagsRecursive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e">uint32</a>&nbsp;</td>
          <td class="paramname"> <em>mask</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>flags</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>
Set some flags with the given mask for this mesh and all children. 
<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>mask</em>&nbsp;</td><td>The bits to modify; only those bits are affected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The values the bits specified in <em>mask</em> are set to. </td></tr>
  </table>
</dl>
Enabling flags: <div class="fragment"><pre class="fragment"> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iMeshWrapper&gt;</a> someWrapper = ...;
 someWrapper-&gt;SetFlagsRecursive (<a class="code" href="group__engine3d__meshes.html#g269b4b29e2953b196ff15c97fe1ea37b" title="If CS_ENTITY_INVISIBLE is set then this thing will not be rendered.">CS_ENTITY_INVISIBLE</a> | <a class="code" href="group__engine3d__meshes.html#g71b0c1c932e7b49e5465da3479224395" title="If CS_ENTITY_NOCLIP is set then this entity will be drawn fully (unclipped to portal...">CS_ENTITY_NOCLIP</a>);
</pre></div> <p>
Disabling flags: <div class="fragment"><pre class="fragment"> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iMeshWrapper&gt;</a> someWrapper = ...;
 someWrapper-&gt;SetFlagsRecursive (<a class="code" href="group__engine3d__meshes.html#g269b4b29e2953b196ff15c97fe1ea37b" title="If CS_ENTITY_INVISIBLE is set then this thing will not be rendered.">CS_ENTITY_INVISIBLE</a> | <a class="code" href="group__engine3d__meshes.html#g71b0c1c932e7b49e5465da3479224395" title="If CS_ENTITY_NOCLIP is set then this entity will be drawn fully (unclipped to portal...">CS_ENTITY_NOCLIP</a>, 0);
</pre></div> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>To set flags non-recursive, use <a class="el" href="structiMeshWrapper.html#71675a858d19e109944dcaa98355d310" title="Get flags for this meshwrapper.">GetFlags()</a>.Set(). </dd></dl>

</div>
</div><p>
<a class="anchor" name="3d8d4f93c270056485e9d5ce9bbb736c"></a><!-- doxytag: member="iMeshWrapper::SetLightingUpdate" ref="3d8d4f93c270056485e9d5ce9bbb736c" args="(int flags, int num_lights)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetLightingUpdate           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>num_lights</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 how lighting updates should take place. 
<p>
'num_lights' is the number of lights that will be given to the mesh object at maximum (default is 8). 'flags' can be a combination of one of the following:<ul>
<li><a class="el" href="group__engine3d__meshes.html#gb215af68fa119427a3ab2c109c55cf58" title="This is a flag for iMeshWrapper-&gt;SetLightingUpdate().">CS_LIGHTINGUPDATE_SORTRELEVANCE</a> (default on).</li><li><a class="el" href="group__engine3d__meshes.html#gff41cd726d268a3521cbfcc5a26710e9" title="If this flag for iMeshWrapper-&gt;SetLightingUpdate() is set then the set of relevant...">CS_LIGHTINGUPDATE_ALWAYSUPDATE</a> (default off).</li></ul>
<p>
Note that this function has no effect on thing mesh objects as they use another lighting system (lightmaps). Also some genmesh objects can optionally also use the other lighting system in which nothing will happen either. 
</div>
</div><p>
<a class="anchor" name="1e67a8e8330726ea09d092411d60d959"></a><!-- doxytag: member="iMeshWrapper::SetMaximumRenderDistance" ref="1e67a8e8330726ea09d092411d60d959" args="(float min)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetMaximumRenderDistance           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>min</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the maximum distance at which this mesh will be rendered. 
<p>
By default this is 0. 
</div>
</div><p>
<a class="anchor" name="75768cf05f79e11790585665bb8b2306"></a><!-- doxytag: member="iMeshWrapper::SetMaximumRenderDistanceVar" ref="75768cf05f79e11790585665bb8b2306" args="(iSharedVariable *min)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetMaximumRenderDistanceVar           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiSharedVariable.html">iSharedVariable</a> *&nbsp;</td>
          <td class="paramname"> <em>min</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the maximum distance at which this mesh will be rendered. 
<p>
This version uses a variable. By default this is 1000000000.0. 
</div>
</div><p>
<a class="anchor" name="8f5dc9e0e94ada4c5e3fb5759261c462"></a><!-- doxytag: member="iMeshWrapper::SetMeshObject" ref="8f5dc9e0e94ada4c5e3fb5759261c462" args="(iMeshObject *)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetMeshObject           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiMeshObject.html">iMeshObject</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the <a class="el" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>. 
<p>

</div>
</div><p>
<a class="anchor" name="1924be3e9b435665f2a67e12478d4639"></a><!-- doxytag: member="iMeshWrapper::SetMinimumRenderDistance" ref="1924be3e9b435665f2a67e12478d4639" args="(float min)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetMinimumRenderDistance           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>min</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the minimum distance at which this mesh will be rendered. 
<p>
By default this is 0. 
</div>
</div><p>
<a class="anchor" name="acc7943c73efa69875421160ba71debb"></a><!-- doxytag: member="iMeshWrapper::SetMinimumRenderDistanceVar" ref="acc7943c73efa69875421160ba71debb" args="(iSharedVariable *min)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetMinimumRenderDistanceVar           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiSharedVariable.html">iSharedVariable</a> *&nbsp;</td>
          <td class="paramname"> <em>min</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the minimum distance at which this mesh will be rendered. 
<p>
This version uses a variable. By default this is -1000000000.0. 
</div>
</div><p>
<a class="anchor" name="49317bed70ed0ab118bde6e9cfd03988"></a><!-- doxytag: member="iMeshWrapper::SetRenderPriority" ref="49317bed70ed0ab118bde6e9cfd03988" args="(long rp)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetRenderPriority           </td>
          <td>(</td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>rp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The renderer will render all objects in a sector based on this number. 
<p>
Low numbers get rendered first. High numbers get rendered later. There are a few often used slots:<ul>
<li>1. Sky objects are rendered before everything else. Usually they are rendered using ZFILL (or ZNONE).</li><li>2. Walls are rendered after that. They usually use ZFILL.</li><li>3. After that normal objects are rendered using the Z-buffer (ZUSE).</li><li>4. Alpha transparent objects or objects using some other transparency system are rendered after that. They are usually rendered using ZTEST. </li></ul>

</div>
</div><p>
<a class="anchor" name="5a1317766ed59fa8e6361b0713d46c45"></a><!-- doxytag: member="iMeshWrapper::SetRenderPriorityRecursive" ref="5a1317766ed59fa8e6361b0713d46c45" args="(long rp)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetRenderPriorityRecursive           </td>
          <td>(</td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>rp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Same as <a class="el" href="structiMeshWrapper.html#49317bed70ed0ab118bde6e9cfd03988" title="The renderer will render all objects in a sector based on this number.">SetRenderPriority()</a> but this version will recursively set render priority for the children too. 
<p>

</div>
</div><p>
<a class="anchor" name="6e99c9eec4682b3e89a51fcb3b777a98"></a><!-- doxytag: member="iMeshWrapper::SetZBufMode" ref="6e99c9eec4682b3e89a51fcb3b777a98" args="(csZBufMode mode)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetZBufMode           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</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 the Z-buf drawing mode to use for this object. 
<p>
Possible values are:<ul>
<li><a class="el" href="group__gfx3d.html#gg79fdaed7abd7a72af33d0f0c5dc9905567cd6d13a1e237117f19f7ec2b39d18f" title="Don&#39;t test or write.">CS_ZBUF_NONE</a>: do not read nor write the Z-buffer.</li><li><a class="el" href="group__gfx3d.html#gg79fdaed7abd7a72af33d0f0c5dc9905563a97a0f7626f1d6bc1a957671cc5db5" title="Write unconditionally.">CS_ZBUF_FILL</a>: only write the Z-buffer but do not read.</li><li><a class="el" href="group__gfx3d.html#gg79fdaed7abd7a72af33d0f0c5dc99055a3ec275ebf4843e1254ebd30019b2802" title="Test, write if successful.">CS_ZBUF_USE</a>: write and read the Z-buffer.</li><li><a class="el" href="group__gfx3d.html#gg79fdaed7abd7a72af33d0f0c5dc99055c148abe1ca758f0f4371f4b03206477a" title="Test only.">CS_ZBUF_TEST</a>: only read the Z-buffer but do not write. </li></ul>

</div>
</div><p>
<a class="anchor" name="8fc03d28b092a33286c3261a50a7f75c"></a><!-- doxytag: member="iMeshWrapper::SetZBufModeRecursive" ref="8fc03d28b092a33286c3261a50a7f75c" args="(csZBufMode mode)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iMeshWrapper::SetZBufModeRecursive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055">csZBufMode</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>
Same as <a class="el" href="structiMeshWrapper.html#6e99c9eec4682b3e89a51fcb3b777a98" title="Set the Z-buf drawing mode to use for this object.">SetZBufMode()</a> but this will also set the z-buf mode for the children too. 
<p>

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