Sophie

Sophie

distrib > Mandriva > 2011.0 > i586 > by-pkgid > a16d689bc65aac5d987d5129109e6de5 > files > 593

irrlicht-doc-1.7.2-1.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>Irrlicht Engine: irr::scene::IMeshManipulator Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table class="irrlicht" >
  <tr valign="middle"> 
    <td><font size="2"><a class="qindex" href="index.html"><font color="#FFFFFF">Home</font></a> 
      | <a class="qindex" href="namespaces.html"><font color="#FFFFFF">Namespaces</font></a> 
      | <a class="qindex" href="hierarchy.html"><font color="#FFFFFF">Hierarchy</font></a> 
      | <a class="qindex" href="classes.html"><font color="#FFFFFF">Alphabetical 
      List</font></a> | <a class="qindex" href="annotated.html"><font color="#FFFFFF"> 
      Class list</font></a> | <a class="qindex" href="files.html"><font color="#FFFFFF">Files</font></a> 
      | <a class="qindex" href="namespacemembers.html"><font color="#FFFFFF"> 
      Namespace&nbsp;Members</font></a> | <a class="qindex" href="functions.html"><font color="#FFFFFF">Class 
      members</font></a> | <a class="qindex" href="globals.html"><font color="#FFFFFF">File 
      members</font></a> | <a class="qindex" href="pages.html"><font color="#FFFFFF">Tutorials</font></a></font> </td>
  </tr>
</table>
<!-- Generated by Doxygen 1.6.2 -->
  <div class="navpath"><a class="el" href="namespaceirr.html">irr</a>::<a class="el" href="namespaceirr_1_1scene.html">scene</a>::<a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html">IMeshManipulator</a>
  </div>
<div class="contents">
<h1>irr::scene::IMeshManipulator Class Reference</h1><!-- doxytag: class="irr::scene::IMeshManipulator" --><!-- doxytag: inherits="irr::IReferenceCounted" -->
<p>An interface for easy manipulation of meshes.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for irr::scene::IMeshManipulator:</div>
<div class="dynsection">
 <div class="center">
  <img src="classirr_1_1scene_1_1_i_mesh_manipulator.png" usemap="#irr::scene::IMeshManipulator_map" alt=""/>
  <map id="irr::scene::IMeshManipulator_map" name="irr::scene::IMeshManipulator_map">
<area href="classirr_1_1_i_reference_counted.html" alt="irr::IReferenceCounted" shape="rect" coords="0,0,172,24"/>
</map>
 </div>
</div>

<p><a href="classirr_1_1scene_1_1_i_mesh_manipulator-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Functor &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a59a9c7f08281ecf2516a619106657042">apply</a> (const Functor &amp;func, <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, bool boundingBoxUpdate=false) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a manipulator on the Mesh.  <a href="#a59a9c7f08281ecf2516a619106657042"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Functor &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a26db02e50019d4ee5bd6cb24089e553b">apply</a> (const Functor &amp;func, <a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *buffer, bool boundingBoxUpdate=false) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a manipulator on the Meshbuffer.  <a href="#a26db02e50019d4ee5bd6cb24089e553b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classirr_1_1scene_1_1_i_animated_mesh.html">IAnimatedMesh</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a08c2483575a88f68d099690932c11562">createAnimatedMesh</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, <a class="el" href="namespaceirr_1_1scene.html#a2fc85a64604521ca063f1881b5dd1c61">scene::E_ANIMATED_MESH_TYPE</a> type=scene::EAMT_UNKNOWN) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new AnimatedMesh and adds the mesh to it.  <a href="#a08c2483575a88f68d099690932c11562"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structirr_1_1scene_1_1_s_mesh.html">SMesh</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a3d2e7401f1d43919834a1bfe0b65e77f">createMeshCopy</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clones a static <a class="el" href="classirr_1_1scene_1_1_i_mesh.html" title="Class which holds the geometry of an object.">IMesh</a> into a modifiable <a class="el" href="structirr_1_1scene_1_1_s_mesh.html" title="Simple implementation of the IMesh interface.">SMesh</a>.  <a href="#a3d2e7401f1d43919834a1bfe0b65e77f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a73051bc082f128a2e0592fb1a3da2b7d">createMeshUniquePrimitives</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of a mesh with all vertices unwelded.  <a href="#a73051bc082f128a2e0592fb1a3da2b7d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#ac19065037302c0500cb6ebecefcc6c6d">createMeshWelded</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, <a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a> tolerance=<a class="el" href="namespaceirr_1_1core.html#a9514dd34463a30102ef8836915cf9c4c">core::ROUNDING_ERROR_f32</a>) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of a mesh with vertices welded.  <a href="#ac19065037302c0500cb6ebecefcc6c6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#af7feb558fbaad9671667d1332c83bb5d">createMeshWith1TCoords</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of the mesh, which will only consist of S3DVertex vertices.  <a href="#af7feb558fbaad9671667d1332c83bb5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#abf123f6fece99816be402e1edf70dc13">createMeshWith2TCoords</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of the mesh, which will only consist of S3DVertex2TCoord vertices.  <a href="#abf123f6fece99816be402e1edf70dc13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#ab849bd2c83b206de1e5da19ce3481e35">createMeshWithTangents</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, bool recalculateNormals=false, bool smooth=false, bool angleWeighted=false, bool recalculateTangents=true) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of the mesh, which will only consist of S3DVertexTangents vertices.  <a href="#ab849bd2c83b206de1e5da19ce3481e35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a7194e8a44bfe3a6444826f346c4104ff">flipSurfaces</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flips the direction of surfaces.  <a href="#a7194e8a44bfe3a6444826f346c4104ff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6">s32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#af20519dbaa2c2c346e8ddf7c94babc38">getPolyCount</a> (<a class="el" href="classirr_1_1scene_1_1_i_animated_mesh.html">IAnimatedMesh</a> *mesh) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get amount of polygons in mesh.  <a href="#af20519dbaa2c2c346e8ddf7c94babc38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6">s32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a914c8cbfbde1428dea91b34fe99e716d">getPolyCount</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get amount of polygons in mesh.  <a href="#a914c8cbfbde1428dea91b34fe99e716d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a28c9aaddc04baa710138a065457f9df1">makePlanarTextureMapping</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">scene::IMeshBuffer</a> *buffer, <a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a> resolutionS, <a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a> resolutionT, <a class="el" href="namespaceirr.html#a646874f69af8ff87fc10201b0254a761">u8</a> axis, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;offset) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a planar texture mapping on the meshbuffer.  <a href="#a28c9aaddc04baa710138a065457f9df1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a757511833420a24ed8cbf4dfd6607143">makePlanarTextureMapping</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">scene::IMeshBuffer</a> *meshbuffer, <a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a> resolution=0.001f) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a planar texture mapping on the meshbuffer.  <a href="#a757511833420a24ed8cbf4dfd6607143"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a82a3092d53e84e751bb13dac8dfa2ab4">makePlanarTextureMapping</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, <a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a> resolution=0.001f) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a planar texture mapping on the mesh.  <a href="#a82a3092d53e84e751bb13dac8dfa2ab4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a94d8390182763e608ca43978b8866d11">recalculateNormals</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *buffer, bool smooth=false, bool angleWeighted=false) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Recalculates all normals of the mesh buffer.  <a href="#a94d8390182763e608ca43978b8866d11"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a8dba16b7eedeac07761c9c1247944429">recalculateNormals</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, bool smooth=false, bool angleWeighted=false) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Recalculates all normals of the mesh.  <a href="#a8dba16b7eedeac07761c9c1247944429"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a0ea43e8c4e8489551228b3005d325cd6">recalculateTangents</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, bool recalculateNormals=false, bool smooth=false, bool angleWeighted=false) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Recalculates tangents, requires a tangent mesh.  <a href="#a0ea43e8c4e8489551228b3005d325cd6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#ac39f47631c59d75f1e4cfa7a2617ca99">scale</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *buffer, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;factor) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scales the actual meshbuffer, not a scene node.  <a href="#ac39f47631c59d75f1e4cfa7a2617ca99"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#ab32481d2ae93369e223930531186b7e4">scale</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;factor) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scales the actual mesh, not a scene node.  <a href="#ab32481d2ae93369e223930531186b7e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#ae7b9a0796adc9d57a0537a0127a092de">scaleMesh</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;factor) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scales the actual mesh, not a scene node.  <a href="#ae7b9a0796adc9d57a0537a0127a092de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a9cc3b7555417636c356d22ed0be1d711">scaleTCoords</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">scene::IMeshBuffer</a> *buffer, const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;factor, <a class="el" href="namespaceirr.html#a0416a53257075833e7002efd0a18e804">u32</a> level=1) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scale the texture coords of a meshbuffer.  <a href="#a9cc3b7555417636c356d22ed0be1d711"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#afc1ae4a04d810389e0507d2ce3735e5d">scaleTCoords</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">scene::IMesh</a> *mesh, const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;factor, <a class="el" href="namespaceirr.html#a0416a53257075833e7002efd0a18e804">u32</a> level=1) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scale the texture coords of a mesh.  <a href="#afc1ae4a04d810389e0507d2ce3735e5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#ad6492bed9f7cf798b717b30c99803bef">setVertexColorAlpha</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, <a class="el" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6">s32</a> alpha) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the alpha vertex color value of the whole mesh to a new value.  <a href="#ad6492bed9f7cf798b717b30c99803bef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a2c17558cfa1b87000744dce7bf973d21">setVertexColors</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, <a class="el" href="classirr_1_1video_1_1_s_color.html">video::SColor</a> color) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the colors of all vertices to one color.  <a href="#a2c17558cfa1b87000744dce7bf973d21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#aa3fd618c6c854a87392a1d902517507f">transform</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *buffer, const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::matrix4</a> &amp;m) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies a transformation to a meshbuffer.  <a href="#aa3fd618c6c854a87392a1d902517507f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a367ce8914a0453051d82ffd57b343575">transform</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::matrix4</a> &amp;m) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies a transformation to a mesh.  <a href="#a367ce8914a0453051d82ffd57b343575"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a94e51ee7f96bcae0dc87846d559e5418">transformMesh</a> (<a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *mesh, const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::matrix4</a> &amp;m) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies a transformation to a mesh.  <a href="#a94e51ee7f96bcae0dc87846d559e5418"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Functor &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a06683525900f7e8bc98b390bbef35a9c">apply_</a> (const Functor &amp;func, <a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *buffer, bool boundingBoxUpdate, const <a class="el" href="structirr_1_1scene_1_1_i_vertex_manipulator.html">IVertexManipulator</a> &amp;typeTest) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a manipulator based on the type of the functor.  <a href="#a06683525900f7e8bc98b390bbef35a9c"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>An interface for easy manipulation of meshes. </p>
<p>Scale, set alpha value, flip surfaces, and so on. This exists for fixing problems with wrong imported or exported meshes quickly after loading. It is not intended for doing mesh modifications and/or animations during runtime. </p>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00025">25</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a59a9c7f08281ecf2516a619106657042"></a><!-- doxytag: member="irr::scene::IMeshManipulator::apply" ref="a59a9c7f08281ecf2516a619106657042" args="(const Functor &amp;func, IMesh *mesh, bool boundingBoxUpdate=false) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Functor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool irr::scene::IMeshManipulator::apply </td>
          <td>(</td>
          <td class="paramtype">const Functor &amp;&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>boundingBoxUpdate</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Apply a manipulator on the Mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>A functor defining the mesh manipulation. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>The Mesh to apply the manipulator to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>boundingBoxUpdate</em>&nbsp;</td><td>Specifies if the bounding box should be updated during manipulation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the functor was successfully applied, else false. </dd></dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00257">257</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a26db02e50019d4ee5bd6cb24089e553b"></a><!-- doxytag: member="irr::scene::IMeshManipulator::apply" ref="a26db02e50019d4ee5bd6cb24089e553b" args="(const Functor &amp;func, IMeshBuffer *buffer, bool boundingBoxUpdate=false) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Functor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool irr::scene::IMeshManipulator::apply </td>
          <td>(</td>
          <td class="paramtype">const Functor &amp;&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>boundingBoxUpdate</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Apply a manipulator on the Meshbuffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>A functor defining the mesh manipulation. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>The Meshbuffer to apply the manipulator to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>boundingBoxUpdate</em>&nbsp;</td><td>Specifies if the bounding box should be updated during manipulation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the functor was successfully applied, else false. </dd></dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00245">245</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

<p>Referenced by <a class="el" href="_i_mesh_manipulator_8h_source.html#l00076">scale()</a>, <a class="el" href="_i_mesh_manipulator_8h_source.html#l00038">setVertexColorAlpha()</a>, <a class="el" href="_i_mesh_manipulator_8h_source.html#l00046">setVertexColors()</a>, and <a class="el" href="_i_mesh_manipulator_8h_source.html#l00116">transform()</a>.</p>

</div>
</div>
<a class="anchor" id="a06683525900f7e8bc98b390bbef35a9c"></a><!-- doxytag: member="irr::scene::IMeshManipulator::apply_" ref="a06683525900f7e8bc98b390bbef35a9c" args="(const Functor &amp;func, IMeshBuffer *buffer, bool boundingBoxUpdate, const IVertexManipulator &amp;typeTest) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Functor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool irr::scene::IMeshManipulator::apply_ </td>
          <td>(</td>
          <td class="paramtype">const Functor &amp;&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>boundingBoxUpdate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structirr_1_1scene_1_1_i_vertex_manipulator.html">IVertexManipulator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>typeTest</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Apply a manipulator based on the type of the functor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>A functor defining the mesh manipulation. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>The Meshbuffer to apply the manipulator to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>boundingBoxUpdate</em>&nbsp;</td><td>Specifies if the bounding box should be updated during manipulation. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>typeTest</em>&nbsp;</td><td>Unused parameter, which handles the proper call selection based on the type of the Functor which is passed in two times. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the functor was successfully applied, else false. </dd></dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00287">287</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a08c2483575a88f68d099690932c11562"></a><!-- doxytag: member="irr::scene::IMeshManipulator::createAnimatedMesh" ref="a08c2483575a88f68d099690932c11562" args="(IMesh *mesh, scene::E_ANIMATED_MESH_TYPE type=scene::EAMT_UNKNOWN) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classirr_1_1scene_1_1_i_animated_mesh.html">IAnimatedMesh</a>* irr::scene::IMeshManipulator::createAnimatedMesh </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr_1_1scene.html#a2fc85a64604521ca063f1881b5dd1c61">scene::E_ANIMATED_MESH_TYPE</a>&nbsp;</td>
          <td class="paramname"> <em>type</em> = <code>scene::EAMT_UNKNOWN</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new AnimatedMesh and adds the mesh to it. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>The type of the animated mesh to create. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Newly created animated mesh with mesh as its only content. When you don't need the animated mesh anymore, you should call <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IAnimatedMesh::drop()</a>. See <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IReferenceCounted::drop()</a> for more information. </dd></dl>

</div>
</div>
<a class="anchor" id="a3d2e7401f1d43919834a1bfe0b65e77f"></a><!-- doxytag: member="irr::scene::IMeshManipulator::createMeshCopy" ref="a3d2e7401f1d43919834a1bfe0b65e77f" args="(IMesh *mesh) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structirr_1_1scene_1_1_s_mesh.html">SMesh</a>* irr::scene::IMeshManipulator::createMeshCopy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clones a static <a class="el" href="classirr_1_1scene_1_1_i_mesh.html" title="Class which holds the geometry of an object.">IMesh</a> into a modifiable <a class="el" href="structirr_1_1scene_1_1_s_mesh.html" title="Simple implementation of the IMesh interface.">SMesh</a>. </p>
<p>All meshbuffers in the returned <a class="el" href="structirr_1_1scene_1_1_s_mesh.html" title="Simple implementation of the IMesh interface.">SMesh</a> are of type SMeshBuffer or SMeshBufferLightMap. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh to copy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Cloned mesh. If you no longer need the cloned mesh, you should call <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">SMesh::drop()</a>. See <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IReferenceCounted::drop()</a> for more information. </dd></dl>

</div>
</div>
<a class="anchor" id="a73051bc082f128a2e0592fb1a3da2b7d"></a><!-- doxytag: member="irr::scene::IMeshManipulator::createMeshUniquePrimitives" ref="a73051bc082f128a2e0592fb1a3da2b7d" args="(IMesh *mesh) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a>* irr::scene::IMeshManipulator::createMeshUniquePrimitives </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a copy of a mesh with all vertices unwelded. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Mesh consisting only of unique faces. All vertices which were previously shared are now duplicated. If you no longer need the cloned mesh, you should call <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IMesh::drop()</a>. See <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IReferenceCounted::drop()</a> for more information. </dd></dl>

</div>
</div>
<a class="anchor" id="ac19065037302c0500cb6ebecefcc6c6d"></a><!-- doxytag: member="irr::scene::IMeshManipulator::createMeshWelded" ref="ac19065037302c0500cb6ebecefcc6c6d" args="(IMesh *mesh, f32 tolerance=core::ROUNDING_ERROR_f32) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a>* irr::scene::IMeshManipulator::createMeshWelded </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>tolerance</em> = <code><a class="el" href="namespaceirr_1_1core.html#a9514dd34463a30102ef8836915cf9c4c">core::ROUNDING_ERROR_f32</a></code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a copy of a mesh with vertices welded. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tolerance</em>&nbsp;</td><td>The threshold for vertex comparisons. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Mesh without redundant vertices. If you no longer need the cloned mesh, you should call <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IMesh::drop()</a>. See <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IReferenceCounted::drop()</a> for more information. </dd></dl>

</div>
</div>
<a class="anchor" id="af7feb558fbaad9671667d1332c83bb5d"></a><!-- doxytag: member="irr::scene::IMeshManipulator::createMeshWith1TCoords" ref="af7feb558fbaad9671667d1332c83bb5d" args="(IMesh *mesh) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a>* irr::scene::IMeshManipulator::createMeshWith1TCoords </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a copy of the mesh, which will only consist of S3DVertex vertices. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Mesh consisting only of S3DVertex vertices. If you no longer need the cloned mesh, you should call <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IMesh::drop()</a>. See <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IReferenceCounted::drop()</a> for more information. </dd></dl>

</div>
</div>
<a class="anchor" id="abf123f6fece99816be402e1edf70dc13"></a><!-- doxytag: member="irr::scene::IMeshManipulator::createMeshWith2TCoords" ref="abf123f6fece99816be402e1edf70dc13" args="(IMesh *mesh) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a>* irr::scene::IMeshManipulator::createMeshWith2TCoords </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a copy of the mesh, which will only consist of S3DVertex2TCoord vertices. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Mesh consisting only of S3DVertex2TCoord vertices. If you no longer need the cloned mesh, you should call <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IMesh::drop()</a>. See <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IReferenceCounted::drop()</a> for more information. </dd></dl>

</div>
</div>
<a class="anchor" id="ab849bd2c83b206de1e5da19ce3481e35"></a><!-- doxytag: member="irr::scene::IMeshManipulator::createMeshWithTangents" ref="ab849bd2c83b206de1e5da19ce3481e35" args="(IMesh *mesh, bool recalculateNormals=false, bool smooth=false, bool angleWeighted=false, bool recalculateTangents=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a>* irr::scene::IMeshManipulator::createMeshWithTangents </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>recalculateNormals</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>smooth</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>angleWeighted</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>recalculateTangents</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a copy of the mesh, which will only consist of S3DVertexTangents vertices. </p>
<p>This is useful if you want to draw tangent space normal mapped geometry because it calculates the tangent and binormal data which is needed there. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>recalculateNormals</em>&nbsp;</td><td>The normals are recalculated if set, otherwise the original ones are kept. Note that keeping the normals may introduce inaccurate tangents if the normals are very different to those calculated from the faces. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>smooth</em>&nbsp;</td><td>The normals/tangents are smoothed across the meshbuffer's faces if this flag is set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>angleWeighted</em>&nbsp;</td><td>Improved smoothing calculation used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>recalculateTangents</em>&nbsp;</td><td>Whether are actually calculated, or just the mesh with proper type is created. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Mesh consisting only of S3DVertexTangents vertices. If you no longer need the cloned mesh, you should call <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IMesh::drop()</a>. See <a class="el" href="classirr_1_1_i_reference_counted.html#afb169a857e0d2cdb96b8821cb9bff17a" title="Drops the object. Decrements the reference counter by one.">IReferenceCounted::drop()</a> for more information. </dd></dl>

</div>
</div>
<a class="anchor" id="a7194e8a44bfe3a6444826f346c4104ff"></a><!-- doxytag: member="irr::scene::IMeshManipulator::flipSurfaces" ref="a7194e8a44bfe3a6444826f346c4104ff" args="(IMesh *mesh) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::flipSurfaces </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Flips the direction of surfaces. </p>
<p>Changes backfacing triangles to frontfacing triangles and vice versa. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af20519dbaa2c2c346e8ddf7c94babc38"></a><!-- doxytag: member="irr::scene::IMeshManipulator::getPolyCount" ref="af20519dbaa2c2c346e8ddf7c94babc38" args="(IAnimatedMesh *mesh) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6">s32</a> irr::scene::IMeshManipulator::getPolyCount </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_animated_mesh.html">IAnimatedMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get amount of polygons in mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of polygons in mesh. </dd></dl>

</div>
</div>
<a class="anchor" id="a914c8cbfbde1428dea91b34fe99e716d"></a><!-- doxytag: member="irr::scene::IMeshManipulator::getPolyCount" ref="a914c8cbfbde1428dea91b34fe99e716d" args="(IMesh *mesh) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6">s32</a> irr::scene::IMeshManipulator::getPolyCount </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get amount of polygons in mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Input mesh </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of polygons in mesh. </dd></dl>

</div>
</div>
<a class="anchor" id="a28c9aaddc04baa710138a065457f9df1"></a><!-- doxytag: member="irr::scene::IMeshManipulator::makePlanarTextureMapping" ref="a28c9aaddc04baa710138a065457f9df1" args="(scene::IMeshBuffer *buffer, f32 resolutionS, f32 resolutionT, u8 axis, const core::vector3df &amp;offset) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::makePlanarTextureMapping </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">scene::IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>resolutionS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>resolutionT</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a646874f69af8ff87fc10201b0254a761">u8</a>&nbsp;</td>
          <td class="paramname"> <em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>offset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a planar texture mapping on the meshbuffer. </p>
<p>This method is currently implemented towards the LWO planar mapping. A more general biasing might be required. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>Buffer on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resolutionS</em>&nbsp;</td><td>Resolution of the planar mapping in horizontal direction. This is the ratio between object space and texture space. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resolutionT</em>&nbsp;</td><td>Resolution of the planar mapping in vertical direction. This is the ratio between object space and texture space. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>axis</em>&nbsp;</td><td>The axis along which the texture is projected. The allowed values are 0 (X), 1(Y), and 2(Z). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>Vector added to the vertex positions (in object coordinates). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a757511833420a24ed8cbf4dfd6607143"></a><!-- doxytag: member="irr::scene::IMeshManipulator::makePlanarTextureMapping" ref="a757511833420a24ed8cbf4dfd6607143" args="(scene::IMeshBuffer *meshbuffer, f32 resolution=0.001f) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::makePlanarTextureMapping </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">scene::IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>meshbuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>resolution</em> = <code>0.001f</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a planar texture mapping on the meshbuffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>meshbuffer,:</em>&nbsp;</td><td>Buffer on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resolution,:</em>&nbsp;</td><td>resolution of the planar mapping. This is the value specifying which is the relation between world space and texture coordinate space. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a82a3092d53e84e751bb13dac8dfa2ab4"></a><!-- doxytag: member="irr::scene::IMeshManipulator::makePlanarTextureMapping" ref="a82a3092d53e84e751bb13dac8dfa2ab4" args="(IMesh *mesh, f32 resolution=0.001f) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::makePlanarTextureMapping </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>resolution</em> = <code>0.001f</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a planar texture mapping on the mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh,:</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resolution,:</em>&nbsp;</td><td>resolution of the planar mapping. This is the value specifying which is the relation between world space and texture coordinate space. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a94d8390182763e608ca43978b8866d11"></a><!-- doxytag: member="irr::scene::IMeshManipulator::recalculateNormals" ref="a94d8390182763e608ca43978b8866d11" args="(IMeshBuffer *buffer, bool smooth=false, bool angleWeighted=false) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::recalculateNormals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>smooth</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>angleWeighted</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Recalculates all normals of the mesh buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer,:</em>&nbsp;</td><td>Mesh buffer on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>smooth,:</em>&nbsp;</td><td>If the normals shall be smoothed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>angleWeighted,:</em>&nbsp;</td><td>If the normals shall be smoothed in relation to their angles. More expensive, but also higher precision. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8dba16b7eedeac07761c9c1247944429"></a><!-- doxytag: member="irr::scene::IMeshManipulator::recalculateNormals" ref="a8dba16b7eedeac07761c9c1247944429" args="(IMesh *mesh, bool smooth=false, bool angleWeighted=false) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::recalculateNormals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>smooth</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>angleWeighted</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Recalculates all normals of the mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh,:</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>smooth,:</em>&nbsp;</td><td>If the normals shall be smoothed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>angleWeighted,:</em>&nbsp;</td><td>If the normals shall be smoothed in relation to their angles. More expensive, but also higher precision. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0ea43e8c4e8489551228b3005d325cd6"></a><!-- doxytag: member="irr::scene::IMeshManipulator::recalculateTangents" ref="a0ea43e8c4e8489551228b3005d325cd6" args="(IMesh *mesh, bool recalculateNormals=false, bool smooth=false, bool angleWeighted=false) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::recalculateTangents </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>recalculateNormals</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>smooth</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>angleWeighted</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Recalculates tangents, requires a tangent mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>recalculateNormals</em>&nbsp;</td><td>If the normals shall be recalculated, otherwise original normals of the mesh are used unchanged. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>smooth</em>&nbsp;</td><td>If the normals shall be smoothed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>angleWeighted</em>&nbsp;</td><td>If the normals shall be smoothed in relation to their angles. More expensive, but also higher precision. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac39f47631c59d75f1e4cfa7a2617ca99"></a><!-- doxytag: member="irr::scene::IMeshManipulator::scale" ref="ac39f47631c59d75f1e4cfa7a2617ca99" args="(IMeshBuffer *buffer, const core::vector3df &amp;factor) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::scale </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>factor</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales the actual meshbuffer, not a scene node. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>Meshbuffer on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>factor</em>&nbsp;</td><td>Scale factor for each axis. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00084">84</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

<p>References <a class="el" href="_i_mesh_manipulator_8h_source.html#l00245">apply()</a>.</p>

</div>
</div>
<a class="anchor" id="ab32481d2ae93369e223930531186b7e4"></a><!-- doxytag: member="irr::scene::IMeshManipulator::scale" ref="ab32481d2ae93369e223930531186b7e4" args="(IMesh *mesh, const core::vector3df &amp;factor) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::scale </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>factor</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales the actual mesh, not a scene node. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>factor</em>&nbsp;</td><td>Scale factor for each axis. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00076">76</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

<p>References <a class="el" href="_i_mesh_manipulator_8h_source.html#l00245">apply()</a>.</p>

</div>
</div>
<a class="anchor" id="ae7b9a0796adc9d57a0537a0127a092de"></a><!-- doxytag: member="irr::scene::IMeshManipulator::scaleMesh" ref="ae7b9a0796adc9d57a0537a0127a092de" args="(IMesh *mesh, const core::vector3df &amp;factor) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::scaleMesh </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>factor</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales the actual mesh, not a scene node. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000012">Deprecated:</a></b></dt><dd>Use <a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#ab32481d2ae93369e223930531186b7e4" title="Scales the actual mesh, not a scene node.">scale()</a> instead </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>factor</em>&nbsp;</td><td>Scale factor for each axis. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00093">93</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9cc3b7555417636c356d22ed0be1d711"></a><!-- doxytag: member="irr::scene::IMeshManipulator::scaleTCoords" ref="a9cc3b7555417636c356d22ed0be1d711" args="(scene::IMeshBuffer *buffer, const core::vector2df &amp;factor, u32 level=1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::scaleTCoords </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">scene::IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>factor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a0416a53257075833e7002efd0a18e804">u32</a>&nbsp;</td>
          <td class="paramname"> <em>level</em> = <code>1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scale the texture coords of a meshbuffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>Meshbuffer on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>factor</em>&nbsp;</td><td>Vector which defines the scale for each axis. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>level</em>&nbsp;</td><td>Number of texture coord, starting from 1. Support for level 2 exists for LightMap buffers. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00108">108</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="afc1ae4a04d810389e0507d2ce3735e5d"></a><!-- doxytag: member="irr::scene::IMeshManipulator::scaleTCoords" ref="afc1ae4a04d810389e0507d2ce3735e5d" args="(scene::IMesh *mesh, const core::vector2df &amp;factor, u32 level=1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::scaleTCoords </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">scene::IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>factor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#a0416a53257075833e7002efd0a18e804">u32</a>&nbsp;</td>
          <td class="paramname"> <em>level</em> = <code>1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scale the texture coords of a mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>factor</em>&nbsp;</td><td>Vector which defines the scale for each axis. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>level</em>&nbsp;</td><td>Number of texture coord, starting from 1. Support for level 2 exists for LightMap buffers. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00099">99</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad6492bed9f7cf798b717b30c99803bef"></a><!-- doxytag: member="irr::scene::IMeshManipulator::setVertexColorAlpha" ref="ad6492bed9f7cf798b717b30c99803bef" args="(IMesh *mesh, s32 alpha) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::setVertexColorAlpha </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#ac66849b7a6ed16e30ebede579f9b47c6">s32</a>&nbsp;</td>
          <td class="paramname"> <em>alpha</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the alpha vertex color value of the whole mesh to a new value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>alpha</em>&nbsp;</td><td>New alpha value. Must be a value between 0 and 255. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00038">38</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

<p>References <a class="el" href="_i_mesh_manipulator_8h_source.html#l00245">apply()</a>.</p>

</div>
</div>
<a class="anchor" id="a2c17558cfa1b87000744dce7bf973d21"></a><!-- doxytag: member="irr::scene::IMeshManipulator::setVertexColors" ref="a2c17558cfa1b87000744dce7bf973d21" args="(IMesh *mesh, video::SColor color) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::setVertexColors </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classirr_1_1video_1_1_s_color.html">video::SColor</a>&nbsp;</td>
          <td class="paramname"> <em>color</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the colors of all vertices to one color. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>color</em>&nbsp;</td><td>New color. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00046">46</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

<p>References <a class="el" href="_i_mesh_manipulator_8h_source.html#l00245">apply()</a>.</p>

</div>
</div>
<a class="anchor" id="aa3fd618c6c854a87392a1d902517507f"></a><!-- doxytag: member="irr::scene::IMeshManipulator::transform" ref="aa3fd618c6c854a87392a1d902517507f" args="(IMeshBuffer *buffer, const core::matrix4 &amp;m) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::transform </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh_buffer.html">IMeshBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::matrix4</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Applies a transformation to a meshbuffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>Meshbuffer on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>transformation matrix. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00124">124</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

<p>References <a class="el" href="_i_mesh_manipulator_8h_source.html#l00245">apply()</a>.</p>

</div>
</div>
<a class="anchor" id="a367ce8914a0453051d82ffd57b343575"></a><!-- doxytag: member="irr::scene::IMeshManipulator::transform" ref="a367ce8914a0453051d82ffd57b343575" args="(IMesh *mesh, const core::matrix4 &amp;m) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void irr::scene::IMeshManipulator::transform </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::matrix4</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Applies a transformation to a mesh. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>transformation matrix. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00116">116</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

<p>References <a class="el" href="_i_mesh_manipulator_8h_source.html#l00245">apply()</a>.</p>

</div>
</div>
<a class="anchor" id="a94e51ee7f96bcae0dc87846d559e5418"></a><!-- doxytag: member="irr::scene::IMeshManipulator::transformMesh" ref="a94e51ee7f96bcae0dc87846d559e5418" args="(IMesh *mesh, const core::matrix4 &amp;m) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void irr::scene::IMeshManipulator::transformMesh </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1scene_1_1_i_mesh.html">IMesh</a> *&nbsp;</td>
          <td class="paramname"> <em>mesh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::matrix4</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Applies a transformation to a mesh. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000013">Deprecated:</a></b></dt><dd>Use <a class="el" href="classirr_1_1scene_1_1_i_mesh_manipulator.html#a367ce8914a0453051d82ffd57b343575" title="Applies a transformation to a mesh.">transform()</a> instead </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>Mesh on which the operation is performed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>transformation matrix. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_mesh_manipulator_8h_source.html#l00133">133</a> of file <a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_i_mesh_manipulator_8h_source.html">IMeshManipulator.h</a></li>
</ul>
</div>
<hr size="1">
<address style="align: right;">
<small> </small>
</address>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
  <tr> 
    <td width="0"> <div align="left"><small><a href="http://irrlicht.sourceforge.net" target="_blank"><img src="irrlicht.png" alt="The Irrlicht Engine" align="middle" border=0 width=88 height=31></a></small></div></td>
    <td> <div align="left"><small><em><font size="2">The <a href="http://irrlicht.sourceforge.net" target="_blank">Irrlicht 
        Engine</a> Documentation &copy; 2003-2010 by Nikolaus Gebhardt. Generated 
        on Sun Oct 24 12:42:07 2010 by <a href="http://www.doxygen.org" target="_blank">Doxygen</a> 
        (1.6.2)</font></em></small></div></td>
  </tr>
</table>
<address style="align: right;">
</address>
</body>
</html>