Sophie

Sophie

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

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: iTerrainCell 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>iTerrainCell Struct Reference</h1><!-- doxytag: class="iTerrainCell" --><!-- doxytag: inherits="iBase" -->Terrain cell class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="terrain2_8h-source.html">imesh/terrain2.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iTerrainCell:</div>
<div class="dynsection">
<p><center><img src="structiTerrainCell__inherit__graph.png" border="0" usemap="#iTerrainCell__inherit__map" alt="Inheritance graph"></center>
<map name="iTerrainCell__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="21,7,77,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiTerrainCell-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 Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67">LoadState</a> { <a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67a30bae93ed61949074b2cf7a76861d12">NotLoaded</a>, 
<a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67b8bd6e0aff76e71fde78351d9f4a3071">PreLoaded</a>, 
<a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67a0b20260bfed90433c6804f912f46ee6">Loaded</a>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enumeration that specifies current cell state.  <a href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#aafcf4ab1c96660c873ab5b389ad43ce">Collide</a> (<a class="el" href="structiCollider.html">iCollider</a> *collider, float radius, const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;trans, bool oneHit, <a class="el" href="structiTerrainCollisionPairArray.html">iTerrainCollisionPairArray</a> *pairs)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Collide collider with cell (using the collider).  <a href="#aafcf4ab1c96660c873ab5b389ad43ce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#ef7f142fed27abbf8d1ff287bb36eaa7">CollideSegment</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;start, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;end, bool oneHit, <a class="el" href="structiTerrainVector3Array.html">iTerrainVector3Array</a> *points)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Collide segment with cell (using the collider).  <a href="#ef7f142fed27abbf8d1ff287bb36eaa7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#8d96400a9cbdef8f8a41d19f9d4a7b3e">CollideTriangles</a> (const <a class="el" href="classcsVector3.html">csVector3</a> *vertices, size_t tri_count, const unsigned int *indices, float radius, const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;trans, bool oneHit, <a class="el" href="structiTerrainCollisionPairArray.html">iTerrainCollisionPairArray</a> *pairs)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Collide set of triangles with cell (using the collider).  <a href="#8d96400a9cbdef8f8a41d19f9d4a7b3e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#7c3429378a4d15538aba42ddf1e069ec">GetBaseMaterial</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get base material for the cell.  <a href="#7c3429378a4d15538aba42ddf1e069ec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#0deb38aac000b1341598a8427a624e77">GetBinormal</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &amp;pos) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get binormal with bilinear interpolation.  <a href="#0deb38aac000b1341598a8427a624e77"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#c18acf3583bf6ce49eadd2c7aef49d7e">GetBinormal</a> (int x, int y) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get binormal value.  <a href="#c18acf3583bf6ce49eadd2c7aef49d7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsRefCount.html">csRefCount</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#6de5e26a0af561071a6c48fc6760af4c">GetCollisionData</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get collider-specific data. Only to be used by collision plugin.  <a href="#6de5e26a0af561071a6c48fc6760af4c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiTerrainCellCollisionProperties.html">iTerrainCellCollisionProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#ffc10db05f08b80bb5c965f066edb6ec">GetCollisionProperties</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get cell collision properties.  <a href="#ffc10db05f08b80bb5c965f066edb6ec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsRefCount.html">csRefCount</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#52845c2210d28b73df20ee5537324b14">GetFeederData</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get feeder-specific data. Only to be used by feeder plugin.  <a href="#52845c2210d28b73df20ee5537324b14"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiTerrainCellFeederProperties.html">iTerrainCellFeederProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#4c5e199fda7ae3d72cb7e3bbe235815f">GetFeederProperties</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get cell feeder properties.  <a href="#4c5e199fda7ae3d72cb7e3bbe235815f"></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="structiTerrainCell.html#90a142d05fba48e80936c6392ac333f1">GetGridHeight</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get grid height.  <a href="#90a142d05fba48e80936c6392ac333f1"></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="structiTerrainCell.html#69c7358e6aa91cafae60aa5d4ba4f9e1">GetGridWidth</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get grid width.  <a href="#69c7358e6aa91cafae60aa5d4ba4f9e1"></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="structiTerrainCell.html#7c7179577723c6931da46e672b73da48">GetHeight</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &amp;pos) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query height doing bilinear interpolation.  <a href="#7c7179577723c6931da46e672b73da48"></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="structiTerrainCell.html#3891674fcf9858d8ddefa30bea7943e1">GetHeight</a> (int x, int y) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query height, that is, do a lookup on height table.  <a href="#3891674fcf9858d8ddefa30bea7943e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structcsLockedHeightData.html">csLockedHeightData</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#a6f67de392f2cd996e16066706ec0ff1">GetHeightData</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get height data (for reading purposes: do not modify it!) This can be used to perform very fast height lookups.  <a href="#a6f67de392f2cd996e16066706ec0ff1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67">LoadState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#e00365c6518c28b11d301d06590276a7">GetLoadState</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get cell's current loading state.  <a href="#e00365c6518c28b11d301d06590276a7"></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="structiTerrainCell.html#ac9d93dc4fc17698fbf48427ce0dbbd4">GetMaterialMapHeight</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get material map height (essentially a height of both material array and material masks, if any).  <a href="#ac9d93dc4fc17698fbf48427ce0dbbd4"></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="structiTerrainCell.html#fec7279f5c3fd98fd9b45c89d6b64a08">GetMaterialMapWidth</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get material map width (essentially a width of both material array and material masks, if any).  <a href="#fec7279f5c3fd98fd9b45c89d6b64a08"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#685908c39c4c51995ec0e976a580543f">GetMaterialPersistent</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get material persistent flag.  <a href="#685908c39c4c51995ec0e976a580543f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#0cda987a32b03462c4f2f62cf3e0c323">GetName</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get cell name.  <a href="#0cda987a32b03462c4f2f62cf3e0c323"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#c1d245c2dfc0a504e6ad80841c85b4aa">GetNormal</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &amp;pos) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get normal with bilinear interpolation.  <a href="#c1d245c2dfc0a504e6ad80841c85b4aa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#9e0e5e8a7dc9676e4604fdfa3b21bc99">GetNormal</a> (int x, int y) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get normal value.  <a href="#9e0e5e8a7dc9676e4604fdfa3b21bc99"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsVector2.html">csVector2</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#87eeb700a073d61dd62404a3c33a6169">GetPosition</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get cell position (in object space).  <a href="#87eeb700a073d61dd62404a3c33a6169"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsRefCount.html">csRefCount</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#a9c3da72e5105b2fa34909683d98efcd">GetRenderData</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get render-specific data. Only to be used by renderer plugin.  <a href="#a9c3da72e5105b2fa34909683d98efcd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structiTerrainCellRenderProperties.html">iTerrainCellRenderProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#b3e6fc12686a760448b3e15d39fc4137">GetRenderProperties</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get cell rendering properties.  <a href="#b3e6fc12686a760448b3e15d39fc4137"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#10b08669531352165f45f6c70b288353">GetSize</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get cell size (in object space).  <a href="#10b08669531352165f45f6c70b288353"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#466e0dd7b2727f7c634f04ead591898f">GetTangent</a> (const <a class="el" href="classcsVector2.html">csVector2</a> &amp;pos) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get tangent with bilinear interpolation.  <a href="#466e0dd7b2727f7c634f04ead591898f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#89b68fd320df14e81f906aed8a51cf66">GetTangent</a> (int x, int y) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get tangent value.  <a href="#89b68fd320df14e81f906aed8a51cf66"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiTerrainSystem.html">iTerrainSystem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#8b5ae56bfe7f4b00b9dab80530d7ef95">GetTerrain</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the terrain to which the cell belongs.  <a href="#8b5ae56bfe7f4b00b9dab80530d7ef95"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structcsLockedHeightData.html">csLockedHeightData</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#2ae2525022a2997c7bbca8f30a882245">LockHeightData</a> (const <a class="el" href="classcsRect.html">csRect</a> &amp;rectangle)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock an area of height data (for reading/writing purposes) This can be used for terrain deforming.  <a href="#2ae2525022a2997c7bbca8f30a882245"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <br>
<a class="el" href="structcsLockedMaterialMap.html">csLockedMaterialMap</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiTerrainCell.html#540a1f4680778ab24bf37360909a2651">LockMaterialMap</a> (const <a class="el" href="classcsRect.html">csRect</a> &amp;rectangle)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock an area of material map (practically write-only, reading the values will not produce sensible values if you did not just write them that is, the returned block memory is a read-write one, but it is a temporary block of memory filled with garbage).  <a href="#540a1f4680778ab24bf37360909a2651"></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="structiTerrainCell.html#8ecf5c99ab6f88a6baa7440eb2bea975">SetBaseMaterial</a> (<a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a> *material)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set base material for the cell.  <a href="#8ecf5c99ab6f88a6baa7440eb2bea975"></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="structiTerrainCell.html#7f2f45568883eaed485211692c7964d8">SetCollisionData</a> (<a class="el" href="classcsRefCount.html">csRefCount</a> *data)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set collider-specific data. Only to be used by collision plugin.  <a href="#7f2f45568883eaed485211692c7964d8"></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="structiTerrainCell.html#a3e858d58d1b7c6463a7e2e102d83dd1">SetFeederData</a> (<a class="el" href="classcsRefCount.html">csRefCount</a> *data)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set feeder-specific data. Only to be used by feeder plugin.  <a href="#a3e858d58d1b7c6463a7e2e102d83dd1"></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="structiTerrainCell.html#869d1b81c64e48b96e8e390b4a2a2d5b">SetLoadState</a> (<a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67">LoadState</a> state)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set cell's current loading state.  <a href="#869d1b81c64e48b96e8e390b4a2a2d5b"></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="structiTerrainCell.html#47cba9775eb3e42b27af3ca20c42b1ad">SetMaterialMask</a> (unsigned int material, const unsigned char *data, unsigned int width, unsigned int height)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set new material mask for the specified material.  <a href="#47cba9775eb3e42b27af3ca20c42b1ad"></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="structiTerrainCell.html#630ba64133473be5e646b4a23911827b">SetMaterialMask</a> (unsigned int material, <a class="el" href="structiImage.html">iImage</a> *image)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set new material mask for the specified material.  <a href="#630ba64133473be5e646b4a23911827b"></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="structiTerrainCell.html#00db839d25f9580cdedeb3db4b192dd7">SetRenderData</a> (<a class="el" href="classcsRefCount.html">csRefCount</a> *data)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set render-specific data. Only to be used by renderer plugin.  <a href="#00db839d25f9580cdedeb3db4b192dd7"></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="structiTerrainCell.html#6b35fc9829e9706fd81e9c02d2c753ec">UnlockHeightData</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Commit changes to height data.  <a href="#6b35fc9829e9706fd81e9c02d2c753ec"></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="structiTerrainCell.html#fcf27017cb7b9c91d7117f8ca9ee39a1">UnlockMaterialMap</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Commit changes to material data.  <a href="#fcf27017cb7b9c91d7117f8ca9ee39a1"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Terrain cell class. 
<p>
Terrain consists of cells, each cell has its own coordinate system (2-axis position and 3-axis scaling). All operations (loading, preloading, destroying, construction of inner structures for rendering, etc.) are done at cell level.<p>
A cell can be created via <a class="el" href="structiTerrainFactory.html" title="Provides an interface for creating terrain system.">iTerrainFactory</a> interface. 
<p>Definition at line <a class="el" href="terrain2_8h-source.html#l00750">750</a> of file <a class="el" href="terrain2_8h-source.html">terrain2.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="3a073e8b4c741980e3e0158077b38f67"></a><!-- doxytag: member="iTerrainCell::LoadState" ref="3a073e8b4c741980e3e0158077b38f67" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67">iTerrainCell::LoadState</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enumeration that specifies current cell state. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="3a073e8b4c741980e3e0158077b38f67a30bae93ed61949074b2cf7a76861d12"></a><!-- doxytag: member="NotLoaded" ref="3a073e8b4c741980e3e0158077b38f67a30bae93ed61949074b2cf7a76861d12" args="" -->NotLoaded</em>&nbsp;</td><td>
cell is not loaded in memory, do not do any operations with it directly </td></tr>
<tr><td valign="top"><em><a class="anchor" name="3a073e8b4c741980e3e0158077b38f67b8bd6e0aff76e71fde78351d9f4a3071"></a><!-- doxytag: member="PreLoaded" ref="3a073e8b4c741980e3e0158077b38f67b8bd6e0aff76e71fde78351d9f4a3071" args="" -->PreLoaded</em>&nbsp;</td><td>
cell is in preload state, do not do any operations with it directly </td></tr>
<tr><td valign="top"><em><a class="anchor" name="3a073e8b4c741980e3e0158077b38f67a0b20260bfed90433c6804f912f46ee6"></a><!-- doxytag: member="Loaded" ref="3a073e8b4c741980e3e0158077b38f67a0b20260bfed90433c6804f912f46ee6" args="" -->Loaded</em>&nbsp;</td><td>
cell is loaded, you can use it as you like </td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="terrain2_8h-source.html#l00755">755</a> of file <a class="el" href="terrain2_8h-source.html">terrain2.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="aafcf4ab1c96660c873ab5b389ad43ce"></a><!-- doxytag: member="iTerrainCell::Collide" ref="aafcf4ab1c96660c873ab5b389ad43ce" args="(iCollider *collider, float radius, const csReversibleTransform &amp;trans, bool oneHit, iTerrainCollisionPairArray *pairs)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iTerrainCell::Collide           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiCollider.html">iCollider</a> *&nbsp;</td>
          <td class="paramname"> <em>collider</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>oneHit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiTerrainCollisionPairArray.html">iTerrainCollisionPairArray</a> *&nbsp;</td>
          <td class="paramname"> <em>pairs</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>
Collide collider with cell (using the collider). 
<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>collider</em>&nbsp;</td><td>collider </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>radius</em>&nbsp;</td><td>radius of the bounding sphere surrounding the given set of triangles (used for fast rejection) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans</em>&nbsp;</td><td>triangle set transformation (vertices' coordinates are specified in the space defined by this transformation) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>oneHit</em>&nbsp;</td><td>if this is true, than stop on finding the first collision pair; otherwise, detect all collisions </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>points</em>&nbsp;</td><td>destination collision pair array</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if there were any collisions, false if there were none </dd></dl>

</div>
</div><p>
<a class="anchor" name="ef7f142fed27abbf8d1ff287bb36eaa7"></a><!-- doxytag: member="iTerrainCell::CollideSegment" ref="ef7f142fed27abbf8d1ff287bb36eaa7" args="(const csVector3 &amp;start, const csVector3 &amp;end, bool oneHit, iTerrainVector3Array *points)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iTerrainCell::CollideSegment           </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>oneHit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiTerrainVector3Array.html">iTerrainVector3Array</a> *&nbsp;</td>
          <td class="paramname"> <em>points</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>
Collide segment with cell (using the collider). 
<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>start</em>&nbsp;</td><td>segment start (specified in object space) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>segment end (specified in object space) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>oneHit</em>&nbsp;</td><td>if this is true, than stop on finding the first intersection point (the closest to the segment start); otherwise, detect all intersections </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>points</em>&nbsp;</td><td>destination point array</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if there were any intersections, false if there were none </dd></dl>

</div>
</div><p>
<a class="anchor" name="8d96400a9cbdef8f8a41d19f9d4a7b3e"></a><!-- doxytag: member="iTerrainCell::CollideTriangles" ref="8d96400a9cbdef8f8a41d19f9d4a7b3e" args="(const csVector3 *vertices, size_t tri_count, const unsigned int *indices, float radius, const csReversibleTransform &amp;trans, bool oneHit, iTerrainCollisionPairArray *pairs)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iTerrainCell::CollideTriangles           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> *&nbsp;</td>
          <td class="paramname"> <em>vertices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>tri_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int *&nbsp;</td>
          <td class="paramname"> <em>indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>oneHit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiTerrainCollisionPairArray.html">iTerrainCollisionPairArray</a> *&nbsp;</td>
          <td class="paramname"> <em>pairs</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>
Collide set of triangles with cell (using the collider). 
<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>vertices</em>&nbsp;</td><td>vertex array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tri_count</em>&nbsp;</td><td>triangle count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>indices</em>&nbsp;</td><td>vertex indices, 3 indices for each triangle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>radius</em>&nbsp;</td><td>radius of the bounding sphere surrounding the given set of triangles (used for fast rejection) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans</em>&nbsp;</td><td>triangle set transformation (vertices' coordinates are specified in the space defined by this transformation) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>oneHit</em>&nbsp;</td><td>if this is true, than stop on finding the first collision pair; otherwise, detect all collisions </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>points</em>&nbsp;</td><td>destination collision pair array</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if there were any collisions, false if there were none </dd></dl>

</div>
</div><p>
<a class="anchor" name="7c3429378a4d15538aba42ddf1e069ec"></a><!-- doxytag: member="iTerrainCell::GetBaseMaterial" ref="7c3429378a4d15538aba42ddf1e069ec" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiMaterialWrapper.html">iMaterialWrapper</a>* iTerrainCell::GetBaseMaterial           </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 base material for the cell. 
<p>

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

<p>
Get binormal with bilinear interpolation. 
<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>pos</em>&nbsp;</td><td>object-space position.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>binormal value </dd></dl>

</div>
</div><p>
<a class="anchor" name="c18acf3583bf6ce49eadd2c7aef49d7e"></a><!-- doxytag: member="iTerrainCell::GetBinormal" ref="c18acf3583bf6ce49eadd2c7aef49d7e" args="(int x, int y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsVector3.html">csVector3</a> iTerrainCell::GetBinormal           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get binormal value. 
<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>x</em>&nbsp;</td><td>x coordinate (from 0 to grid width - 1 all inclusive) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>y coordinate (from 0 to grid height - 1 all inclusive)</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>binormal value </dd></dl>

</div>
</div><p>
<a class="anchor" name="6de5e26a0af561071a6c48fc6760af4c"></a><!-- doxytag: member="iTerrainCell::GetCollisionData" ref="6de5e26a0af561071a6c48fc6760af4c" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsRefCount.html">csRefCount</a>* iTerrainCell::GetCollisionData           </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 collider-specific data. Only to be used by collision plugin. 
<p>

</div>
</div><p>
<a class="anchor" name="ffc10db05f08b80bb5c965f066edb6ec"></a><!-- doxytag: member="iTerrainCell::GetCollisionProperties" ref="ffc10db05f08b80bb5c965f066edb6ec" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiTerrainCellCollisionProperties.html">iTerrainCellCollisionProperties</a>* iTerrainCell::GetCollisionProperties           </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 cell collision properties. 
<p>
Returns pointer to a collider-specific class, though it is possible to check/change some general properties.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell collision properties </dd></dl>

</div>
</div><p>
<a class="anchor" name="52845c2210d28b73df20ee5537324b14"></a><!-- doxytag: member="iTerrainCell::GetFeederData" ref="52845c2210d28b73df20ee5537324b14" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsRefCount.html">csRefCount</a>* iTerrainCell::GetFeederData           </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 feeder-specific data. Only to be used by feeder plugin. 
<p>

</div>
</div><p>
<a class="anchor" name="4c5e199fda7ae3d72cb7e3bbe235815f"></a><!-- doxytag: member="iTerrainCell::GetFeederProperties" ref="4c5e199fda7ae3d72cb7e3bbe235815f" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiTerrainCellFeederProperties.html">iTerrainCellFeederProperties</a>* iTerrainCell::GetFeederProperties           </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 cell feeder properties. 
<p>
Returns pointer to a feeder-specific class though it is possible to check/change some general properties.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell feeder properties </dd></dl>

</div>
</div><p>
<a class="anchor" name="90a142d05fba48e80936c6392ac333f1"></a><!-- doxytag: member="iTerrainCell::GetGridHeight" ref="90a142d05fba48e80936c6392ac333f1" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iTerrainCell::GetGridHeight           </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 grid height. 
<p>
It is the height of an array of height data. You can expect it to be 2^n + 1 (note: it is equal to grid width)<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>grid height </dd></dl>

</div>
</div><p>
<a class="anchor" name="69c7358e6aa91cafae60aa5d4ba4f9e1"></a><!-- doxytag: member="iTerrainCell::GetGridWidth" ref="69c7358e6aa91cafae60aa5d4ba4f9e1" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iTerrainCell::GetGridWidth           </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 grid width. 
<p>
It is the width of an array of height data. You can expect it to be 2^n + 1.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>grid width </dd></dl>

</div>
</div><p>
<a class="anchor" name="7c7179577723c6931da46e672b73da48"></a><!-- doxytag: member="iTerrainCell::GetHeight" ref="7c7179577723c6931da46e672b73da48" args="(const csVector2 &amp;pos) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual float iTerrainCell::GetHeight           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query height doing bilinear interpolation. 
<p>
This is equivalent to doing an intersection with vertical ray, except that it is faster.<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>pos</em>&nbsp;</td><td>object-space position.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>height value </dd></dl>

</div>
</div><p>
<a class="anchor" name="3891674fcf9858d8ddefa30bea7943e1"></a><!-- doxytag: member="iTerrainCell::GetHeight" ref="3891674fcf9858d8ddefa30bea7943e1" args="(int x, int y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual float iTerrainCell::GetHeight           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query height, that is, do a lookup on height table. 
<p>
For a set of lookups, use GetHeightData for efficiency reasons.<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>x</em>&nbsp;</td><td>x coordinate (from 0 to grid width - 1 all inclusive) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>y coordinate (from 0 to grid height - 1 all inclusive)</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>height value </dd></dl>

</div>
</div><p>
<a class="anchor" name="a6f67de392f2cd996e16066706ec0ff1"></a><!-- doxytag: member="iTerrainCell::GetHeightData" ref="a6f67de392f2cd996e16066706ec0ff1" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsLockedHeightData.html">csLockedHeightData</a> iTerrainCell::GetHeightData           </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 height data (for reading purposes: do not modify it!) This can be used to perform very fast height lookups. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell height data </dd></dl>

</div>
</div><p>
<a class="anchor" name="e00365c6518c28b11d301d06590276a7"></a><!-- doxytag: member="iTerrainCell::GetLoadState" ref="e00365c6518c28b11d301d06590276a7" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67">LoadState</a> iTerrainCell::GetLoadState           </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 cell's current loading state. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell's current loading state </dd></dl>

</div>
</div><p>
<a class="anchor" name="ac9d93dc4fc17698fbf48427ce0dbbd4"></a><!-- doxytag: member="iTerrainCell::GetMaterialMapHeight" ref="ac9d93dc4fc17698fbf48427ce0dbbd4" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iTerrainCell::GetMaterialMapHeight           </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 material map height (essentially a height of both material array and material masks, if any). 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>material map height </dd></dl>

</div>
</div><p>
<a class="anchor" name="fec7279f5c3fd98fd9b45c89d6b64a08"></a><!-- doxytag: member="iTerrainCell::GetMaterialMapWidth" ref="fec7279f5c3fd98fd9b45c89d6b64a08" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iTerrainCell::GetMaterialMapWidth           </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 material map width (essentially a width of both material array and material masks, if any). 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>material map width </dd></dl>

</div>
</div><p>
<a class="anchor" name="685908c39c4c51995ec0e976a580543f"></a><!-- doxytag: member="iTerrainCell::GetMaterialPersistent" ref="685908c39c4c51995ec0e976a580543f" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iTerrainCell::GetMaterialPersistent           </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 material persistent flag. 
<p>
If it is true, material data is stored in the cell (that makes updating material data faster and makes material data lock read/write, but it means larger memory overhead) 
</div>
</div><p>
<a class="anchor" name="0cda987a32b03462c4f2f62cf3e0c323"></a><!-- doxytag: member="iTerrainCell::GetName" ref="0cda987a32b03462c4f2f62cf3e0c323" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* iTerrainCell::GetName           </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 cell name. 
<p>
It is specified at creation time and may be 0. The name is used only for cell identification purposes (i.e. to get the needed cell from a terrain, see <a class="el" href="structiTerrainSystem.html#cd7391e8ebda2c30413106c21d941c0c" title="Query a cell by name.">iTerrainSystem::GetCell</a>)<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell name </dd></dl>

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

<p>
Get normal with bilinear interpolation. 
<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>pos</em>&nbsp;</td><td>object-space position.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>normal value </dd></dl>

</div>
</div><p>
<a class="anchor" name="9e0e5e8a7dc9676e4604fdfa3b21bc99"></a><!-- doxytag: member="iTerrainCell::GetNormal" ref="9e0e5e8a7dc9676e4604fdfa3b21bc99" args="(int x, int y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsVector3.html">csVector3</a> iTerrainCell::GetNormal           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get normal value. 
<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>x</em>&nbsp;</td><td>x coordinate (from 0 to grid width - 1 all inclusive) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>y coordinate (from 0 to grid height - 1 all inclusive)</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>normal value </dd></dl>

</div>
</div><p>
<a class="anchor" name="87eeb700a073d61dd62404a3c33a6169"></a><!-- doxytag: member="iTerrainCell::GetPosition" ref="87eeb700a073d61dd62404a3c33a6169" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsVector2.html">csVector2</a>&amp; iTerrainCell::GetPosition           </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 cell position (in object space). 
<p>
X and Y components specify the offsets along X and Z axes, respectively.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell position </dd></dl>

</div>
</div><p>
<a class="anchor" name="a9c3da72e5105b2fa34909683d98efcd"></a><!-- doxytag: member="iTerrainCell::GetRenderData" ref="a9c3da72e5105b2fa34909683d98efcd" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsRefCount.html">csRefCount</a>* iTerrainCell::GetRenderData           </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 render-specific data. Only to be used by renderer plugin. 
<p>

</div>
</div><p>
<a class="anchor" name="b3e6fc12686a760448b3e15d39fc4137"></a><!-- doxytag: member="iTerrainCell::GetRenderProperties" ref="b3e6fc12686a760448b3e15d39fc4137" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiTerrainCellRenderProperties.html">iTerrainCellRenderProperties</a>* iTerrainCell::GetRenderProperties           </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 cell rendering properties. 
<p>
Returns pointer to a renderer-specific class, though it is possible to check/change some general properties.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell rendering properties </dd></dl>

</div>
</div><p>
<a class="anchor" name="10b08669531352165f45f6c70b288353"></a><!-- doxytag: member="iTerrainCell::GetSize" ref="10b08669531352165f45f6c70b288353" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classcsVector3.html">csVector3</a>&amp; iTerrainCell::GetSize           </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 cell size (in object space). 
<p>
X and Y components specify the sizes along X and Z axes, respectively. Z component specifies height scale (warning: it is used only at loading stage, after that all scales are in object space).<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell size </dd></dl>

</div>
</div><p>
<a class="anchor" name="466e0dd7b2727f7c634f04ead591898f"></a><!-- doxytag: member="iTerrainCell::GetTangent" ref="466e0dd7b2727f7c634f04ead591898f" args="(const csVector2 &amp;pos) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsVector3.html">csVector3</a> iTerrainCell::GetTangent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector2.html">csVector2</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get tangent with bilinear interpolation. 
<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>pos</em>&nbsp;</td><td>object-space position.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>tangent value </dd></dl>

</div>
</div><p>
<a class="anchor" name="89b68fd320df14e81f906aed8a51cf66"></a><!-- doxytag: member="iTerrainCell::GetTangent" ref="89b68fd320df14e81f906aed8a51cf66" args="(int x, int y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsVector3.html">csVector3</a> iTerrainCell::GetTangent           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get tangent value. 
<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>x</em>&nbsp;</td><td>x coordinate (from 0 to grid width - 1 all inclusive) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>y coordinate (from 0 to grid height - 1 all inclusive)</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>tangent value </dd></dl>

</div>
</div><p>
<a class="anchor" name="8b5ae56bfe7f4b00b9dab80530d7ef95"></a><!-- doxytag: member="iTerrainCell::GetTerrain" ref="8b5ae56bfe7f4b00b9dab80530d7ef95" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiTerrainSystem.html">iTerrainSystem</a>* iTerrainCell::GetTerrain           </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 terrain to which the cell belongs. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>terrain object </dd></dl>

</div>
</div><p>
<a class="anchor" name="2ae2525022a2997c7bbca8f30a882245"></a><!-- doxytag: member="iTerrainCell::LockHeightData" ref="2ae2525022a2997c7bbca8f30a882245" args="(const csRect &amp;rectangle)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsLockedHeightData.html">csLockedHeightData</a> iTerrainCell::LockHeightData           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsRect.html">csRect</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rectangle</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock an area of height data (for reading/writing purposes) This can be used for terrain deforming. 
<p>
If you want to lock the whole cell, use the rectangle csRect(0, 0, grid width, grid height).<p>
Only one area may be locked at a time, locking more than once results in undefined behaviour.<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>rectangle</em>&nbsp;</td><td>the rectangle which you want to lock.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell height data </dd></dl>

</div>
</div><p>
<a class="anchor" name="540a1f4680778ab24bf37360909a2651"></a><!-- doxytag: member="iTerrainCell::LockMaterialMap" ref="540a1f4680778ab24bf37360909a2651" args="(const csRect &amp;rectangle)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structcsLockedMaterialMap.html">csLockedMaterialMap</a> iTerrainCell::LockMaterialMap           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsRect.html">csRect</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rectangle</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock an area of material map (practically write-only, reading the values will not produce sensible values if you did not just write them that is, the returned block memory is a read-write one, but it is a temporary block of memory filled with garbage). 
<p>
Note, that if you created cell with 'material_persistent' flag, the lock is read/write.<p>
If you want to lock the whole cell, use the rectangle csRect(0, 0, material map width, material map height).<p>
Only one area may be locked at a time, locking more than once results in undefined behaviour.<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>rectangle</em>&nbsp;</td><td>the rectangle which you want to lock.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>cell material data </dd></dl>

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

<p>
Set base material for the cell. 
<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>material</em>&nbsp;</td><td>material handle of base material </td></tr>
  </table>
</dl>

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

<p>
Set collider-specific data. Only to be used by collision plugin. 
<p>

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

<p>
Set feeder-specific data. Only to be used by feeder plugin. 
<p>

</div>
</div><p>
<a class="anchor" name="869d1b81c64e48b96e8e390b4a2a2d5b"></a><!-- doxytag: member="iTerrainCell::SetLoadState" ref="869d1b81c64e48b96e8e390b4a2a2d5b" args="(LoadState state)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iTerrainCell::SetLoadState           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiTerrainCell.html#3a073e8b4c741980e3e0158077b38f67">LoadState</a>&nbsp;</td>
          <td class="paramname"> <em>state</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set cell's current loading state. 
<p>
If the cell's current state is equal to the passed state, nothing happens. If the cell was not loaded (NotLoaded state), then it is put into the passed state (either preloading or loading is started) If the cell was loaded, then it is unloaded in case of NotLoaded state. Passing PreLoaded state has no effect. If the cell was being preloaded, then it is loaded in case of Loaded state. Passing NotLoaded state has no effect (note, that if you want to stop preloading, you'll have to finish it (SetLoadState (Loaded)) and then unload the cell (SetLoadState (NotLoaded)).)<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>state</em>&nbsp;</td><td>cell's new loading state </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="47cba9775eb3e42b27af3ca20c42b1ad"></a><!-- doxytag: member="iTerrainCell::SetMaterialMask" ref="47cba9775eb3e42b27af3ca20c42b1ad" args="(unsigned int material, const unsigned char *data, unsigned int width, unsigned int height)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iTerrainCell::SetMaterialMask           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>material</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>height</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 new material mask for the specified material. 
<p>
This function will do image rescaling if needed (i.e. if material map dimensions and image dimensions do not match).<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>material</em>&nbsp;</td><td>material index </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>linearized array with material indices </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>image width </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>height</em>&nbsp;</td><td>image height </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="630ba64133473be5e646b4a23911827b"></a><!-- doxytag: member="iTerrainCell::SetMaterialMask" ref="630ba64133473be5e646b4a23911827b" args="(unsigned int material, iImage *image)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iTerrainCell::SetMaterialMask           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>material</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiImage.html">iImage</a> *&nbsp;</td>
          <td class="paramname"> <em>image</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 new material mask for the specified material. 
<p>
This function will do image rescaling if needed (i.e. if material map dimensions and image dimensions do not match).<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>material</em>&nbsp;</td><td>material index </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>image</em>&nbsp;</td><td>an image of format CS_IMGFMT_PALETTED8 </td></tr>
  </table>
</dl>

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

<p>
Set render-specific data. Only to be used by renderer plugin. 
<p>

</div>
</div><p>
<a class="anchor" name="6b35fc9829e9706fd81e9c02d2c753ec"></a><!-- doxytag: member="iTerrainCell::UnlockHeightData" ref="6b35fc9829e9706fd81e9c02d2c753ec" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iTerrainCell::UnlockHeightData           </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>
Commit changes to height data. 
<p>
Use it after changing the desired height values.<p>
Unlocking the cell that was not locked results in undefined behaviour 
</div>
</div><p>
<a class="anchor" name="fcf27017cb7b9c91d7117f8ca9ee39a1"></a><!-- doxytag: member="iTerrainCell::UnlockMaterialMap" ref="fcf27017cb7b9c91d7117f8ca9ee39a1" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iTerrainCell::UnlockMaterialMap           </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>
Commit changes to material data. 
<p>
Use it after setting the desired material map values.<p>
Unlocking the cell that was not locked results in undefined behaviour<p>
This updates the material masks with appropriate values. 
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>imesh/<a class="el" href="terrain2_8h-source.html">terrain2.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>