Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 06719cf03808e17ae6f0852ca1052dc2 > files > 2765

libogre1-devel-0.13.0-1mdk.i586.rpm

<html>
<head>
<title>Ogre::ProgressiveMesh class Reference - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<link type="text/css" rel="stylesheet" href="style.css">
</head>

<body>
<!-- Generated by Doxygen 1.2.16 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>Ogre::ProgressiveMesh  Class Reference</h1>This class reduces the complexity of the geometry it is given. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>&gt;</code>
<p>
Collaboration diagram for Ogre::ProgressiveMesh:<p><center><img src="classOgre_1_1ProgressiveMesh__coll__graph.png" border="0" usemap="#Ogre_1_1ProgressiveMesh__coll__map" alt="Collaboration graph"></center>
<map name="Ogre_1_1ProgressiveMesh__coll__map">
<area href="classOgre_1_1IndexData.html" shape="rect" coords="21,35,128,16" alt="">
<area href="classOgre_1_1VertexData.html" shape="rect" coords="17,103,132,84" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classOgre_1_1ProgressiveMesh-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classOgre_1_1IndexData.html">IndexData</a> * &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs0">LODFaceList</a></td></tr>
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs3">VertexReductionQuota</a> { <a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs3Ogre_1_1ProgressiveMeshs1">VRQ_CONSTANT</a>, 
<a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs3Ogre_1_1ProgressiveMeshs2">VRQ_PROPORTIONAL</a>
 }</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The way to derive the quota of vertices which are reduced at each LOD.</em> <a href="#Ogre_1_1ProgressiveMeshs3">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesha0">ProgressiveMesh</a> (const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a> *vertexData, const <a class="el" href="classOgre_1_1IndexData.html">IndexData</a> *indexData)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Constructor, takes the geometry data and index buffer.</em> <a href="#Ogre_1_1ProgressiveMesha0"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesha1">~ProgressiveMesh</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesha2">addExtraVertexPositionBuffer</a> (const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a> *vertexData)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Adds an extra vertex position buffer.</em> <a href="#Ogre_1_1ProgressiveMesha2"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesha3">build</a> (<a class="el" href="namespaceOgre.html#a351">ushort</a> numLevels, <a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs0">LODFaceList</a> *outList, <a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs3">VertexReductionQuota</a> quota=VRQ_PROPORTIONAL, <a class="el" href="namespaceOgre.html#a349">Real</a> reductionValue=0.5f)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Builds the progressive mesh with the specified number of levels.</em> <a href="#Ogre_1_1ProgressiveMesha3"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Protected Types</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMTriangle.html">PMTriangle</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht0">TriangleList</a></td></tr>
<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMFaceVertex.html">PMFaceVertex</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht1">FaceVertexList</a></td></tr>
<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht2">CommonVertexList</a></td></tr>
<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="namespaceOgre.html#a349">Real</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht3">WorstCostList</a></td></tr>
<tr><td nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="structOgre_1_1ProgressiveMesh_1_1PMWorkingData.html">PMWorkingData</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht4">WorkingDataList</a></td></tr>
<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb0">addWorkingData</a> (const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a> *vertexData, const <a class="el" href="classOgre_1_1IndexData.html">IndexData</a> *indexData)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method for building <a class="el" href="structOgre_1_1ProgressiveMesh_1_1PMWorkingData.html">PMWorkingData</a> from geometry data.</em> <a href="#Ogre_1_1ProgressiveMeshb0"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb1">initialiseEdgeCollapseCosts</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method for initialising the edge collapse costs.</em> <a href="#Ogre_1_1ProgressiveMeshb1"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="namespaceOgre.html#a349">Real</a>&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb2">computeEdgeCollapseCost</a> (<a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a> *src, <a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a> *dest)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal calculation method for deriving a collapse cost from u to v.</em> <a href="#Ogre_1_1ProgressiveMeshb2"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="namespaceOgre.html#a349">Real</a>&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb3">computeEdgeCostAtVertexForBuffer</a> (WorkingDataList::iterator idata, size_t vertIndex)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method evaluates all collapse costs from this vertex and picks the lowest for a single buffer.</em> <a href="#Ogre_1_1ProgressiveMeshb3"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb4">computeEdgeCostAtVertex</a> (size_t vertIndex)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method evaluates all collapse costs from this vertex for every buffer and returns the worst.</em> <a href="#Ogre_1_1ProgressiveMeshb4"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb5">computeAllCosts</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method to compute edge collapse costs for all buffers /.</em> <a href="#Ogre_1_1ProgressiveMeshb5"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb6">getNextCollapser</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method for getting the index of next best vertex to collapse.</em> <a href="#Ogre_1_1ProgressiveMeshb6"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb7">bakeNewLOD</a> (<a class="el" href="classOgre_1_1IndexData.html">IndexData</a> *pData)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method builds an new LOD based on the current state.</em> <a href="#Ogre_1_1ProgressiveMeshb7"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb8">collapse</a> (<a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a> *collapser)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal method, collapses vertex onto it's saved collapse target.</em> <a href="#Ogre_1_1ProgressiveMeshb8"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshb9">dumpContents</a> (const <a class="el" href="classOgre_1_1String.html">String</a> &amp;log)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internal debugging method.</em> <a href="#Ogre_1_1ProgressiveMeshb9"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshn0">mpVertexData</a></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classOgre_1_1IndexData.html">IndexData</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshn1">mpIndexData</a></td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshn2">mCurrNumIndexes</a></td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshn3">mNumCommonVertices</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht4">WorkingDataList</a>&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshn4">mWorkingData</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Multiple copies, 1 per vertex buffer.</em> <a href="#Ogre_1_1ProgressiveMeshn4"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht3">WorstCostList</a>&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshn5">mWorstCosts</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The worst collapse cost from all vertex buffers for each vertex.</em> <a href="#Ogre_1_1ProgressiveMeshn5"></a><em></em></font><br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class reduces the complexity of the geometry it is given.
<p>
This class is dedicated to reducing the number of triangles in a given mesh taking into account seams in both geometry and texture co-ordinates and meshes  which have multiple frames. 
<p>
 The primary use for this is generating LOD versions of <a class="el" href="classOgre_1_1Mesh.html">Mesh</a> objects, but it can be used by any geometry provider. The only limitation at the moment is that the  provider uses a common vertex buffer for all LODs and one index buffer per LOD. Therefore at the moment this class can only handle indexed geometry. 
<p>
 NB the interface of this class will certainly change when compiled vertex buffers are supported. 
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00055">55</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.<hr><h2>Member Typedef Documentation</h2>
<a name="Ogre_1_1ProgressiveMesht2" doxytag="Ogre::ProgressiveMesh::CommonVertexList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a>&gt; Ogre::ProgressiveMesh::CommonVertexList<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00183">183</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMesht1" doxytag="Ogre::ProgressiveMesh::FaceVertexList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMFaceVertex.html">PMFaceVertex</a>&gt; Ogre::ProgressiveMesh::FaceVertexList<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00182">182</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshs0" doxytag="Ogre::ProgressiveMesh::LODFaceList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="classOgre_1_1IndexData.html">IndexData</a>*&gt; Ogre::ProgressiveMesh::LODFaceList
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00068">68</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMesht0" doxytag="Ogre::ProgressiveMesh::TriangleList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMTriangle.html">PMTriangle</a>&gt; Ogre::ProgressiveMesh::TriangleList<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00181">181</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMesht4" doxytag="Ogre::ProgressiveMesh::WorkingDataList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="structOgre_1_1ProgressiveMesh_1_1PMWorkingData.html">PMWorkingData</a>&gt; Ogre::ProgressiveMesh::WorkingDataList<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00194">194</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMesht3" doxytag="Ogre::ProgressiveMesh::WorstCostList"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="namespaceOgre.html#a349">Real</a>&gt; Ogre::ProgressiveMesh::WorstCostList<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00184">184</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.    </td>
  </tr>
</table>
<hr><h2>Member Enumeration Documentation</h2>
<a name="Ogre_1_1ProgressiveMeshs3" doxytag="Ogre::ProgressiveMesh::VertexReductionQuota"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> enum Ogre::ProgressiveMesh::VertexReductionQuota
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The way to derive the quota of vertices which are reduced at each LOD.
<p>
<dl compact><dt><b>
Enumeration values:</b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em><a name="Ogre_1_1ProgressiveMeshs3Ogre_1_1ProgressiveMeshs1" doxytag="VRQ_CONSTANT"></a><em>VRQ_CONSTANT</em></em>&nbsp;</td><td>
A set number of vertices are removed at each reduction.</td></tr>
<tr><td valign=top><em><a name="Ogre_1_1ProgressiveMeshs3Ogre_1_1ProgressiveMeshs2" doxytag="VRQ_PROPORTIONAL"></a><em>VRQ_PROPORTIONAL</em></em>&nbsp;</td><td>
A proportion of the remaining number of vertices are removed at each reduction.</td></tr>
</table>
</dl>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00060">60</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.    </td>
  </tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="Ogre_1_1ProgressiveMesha0" doxytag="Ogre::ProgressiveMesh::ProgressiveMesh"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> Ogre::ProgressiveMesh::ProgressiveMesh </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>vertexData</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classOgre_1_1IndexData.html">IndexData</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>indexData</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Constructor, takes the geometry data and index buffer.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 DO NOT pass write-only, unshadowed buffers to this method! They will not work. <a class="el" href="classOgre_1_1Pass.html">Pass</a> only shadowed buffers, or better yet perform mesh reduction as an offline process using <a class="el" href="classOgre_1_1DefaultHardwareBufferManager.html">DefaultHardwareBufferManager</a> to manage vertex buffers in system memory. </dl>
<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00062">62</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00172">addWorkingData</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00110">mpIndexData</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00109">mpVertexData</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00199">mWorstCosts</a>, and <a class="el" href="OgreVertexIndexData_8h-source.html#l00052">Ogre::VertexData::vertexCount</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMesha1" doxytag="Ogre::ProgressiveMesh::~ProgressiveMesh"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> Ogre::ProgressiveMesh::~ProgressiveMesh </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00074">74</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="Ogre_1_1ProgressiveMesha2" doxytag="Ogre::ProgressiveMesh::addExtraVertexPositionBuffer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::addExtraVertexPositionBuffer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>vertexData</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Adds an extra vertex position buffer.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 As well as the main vertex buffer, the client of this class may add extra versions of the vertex buffer which will also be taken into account when the cost of  simplifying the mesh is taken into account. This is because the cost of simplifying an animated mesh cannot be calculated from just the reference position, multiple positions needs to be assessed in order to find the best simplification option. 
<p>
 DO NOT pass write-only, unshadowed buffers to this method! They will not work. <a class="el" href="classOgre_1_1Pass.html">Pass</a> only shadowed buffers, or better yet perform mesh reduction as an offline process using <a class="el" href="classOgre_1_1DefaultHardwareBufferManager.html">DefaultHardwareBufferManager</a> to manage vertex buffers in system memory. </dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
Pointer to x/y/z buffer with vertex positions. The number of vertices must be the same as in the original GeometryData passed to the constructor. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00078">78</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00172">addWorkingData</a>(), and <a class="el" href="OgreProgressiveMesh_8h-source.html#l00110">mpIndexData</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb0" doxytag="Ogre::ProgressiveMesh::addWorkingData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::addWorkingData </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>vertexData</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classOgre_1_1IndexData.html">IndexData</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>indexData</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method for building <a class="el" href="structOgre_1_1ProgressiveMesh_1_1PMWorkingData.html">PMWorkingData</a> from geometry data.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00172">172</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00172">Ogre::VertexElement::baseVertexPointerToElement</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00225">Ogre::VertexDeclaration::findElementBySemantic</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00331">Ogre::VertexBufferBinding::getBuffer</a>(), <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00133">Ogre::VertexElement::getSource</a>(), <a class="el" href="OgreVertexIndexData_8h-source.html#l00119">Ogre::IndexData::indexBuffer</a>, <a class="el" href="OgreVertexIndexData_8h-source.html#l00125">Ogre::IndexData::indexCount</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00190">Ogre::ProgressiveMesh::PMWorkingData::mFaceVertList</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00113">mNumCommonVertices</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00189">Ogre::ProgressiveMesh::PMWorkingData::mTriList</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00191">Ogre::ProgressiveMesh::PMWorkingData::mVertList</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00196">mWorkingData</a>, <a class="el" href="OgrePrerequisites_8h-source.html#l00086">Ogre::Real</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00174">Ogre::ProgressiveMesh::PMVertex::removed</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00177">Ogre::ProgressiveMesh::PMVertex::seam</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00837">Ogre::ProgressiveMesh::PMVertex::setDetails</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00175">Ogre::ProgressiveMesh::PMVertex::toBeRemoved</a>, <a class="el" href="OgreVertexIndexData_8h-source.html#l00048">Ogre::VertexData::vertexBufferBinding</a>, <a class="el" href="OgreVertexIndexData_8h-source.html#l00052">Ogre::VertexData::vertexCount</a>, <a class="el" href="OgreVertexIndexData_8h-source.html#l00044">Ogre::VertexData::vertexDeclaration</a>, <a class="el" href="namespaceOgre.html#a630a143">Ogre::VES_POSITION</a>, <a class="el" href="OgreVector3_8h-source.html#l00047">Ogre::Vector3::x</a>, <a class="el" href="OgreVector3_8h-source.html#l00047">Ogre::Vector3::y</a>, and <a class="el" href="OgreVector3_8h-source.html#l00047">Ogre::Vector3::z</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00078">addExtraVertexPositionBuffer</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00062">ProgressiveMesh</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb7" doxytag="Ogre::ProgressiveMesh::bakeNewLOD"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::bakeNewLOD </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1IndexData.html">IndexData</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>pData</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method builds an new LOD based on the current state.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00656">656</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreVertexIndexData_8h-source.html#l00119">Ogre::IndexData::indexBuffer</a>, <a class="el" href="OgreVertexIndexData_8h-source.html#l00125">Ogre::IndexData::indexCount</a>, <a class="el" href="OgreVertexIndexData_8h-source.html#l00122">Ogre::IndexData::indexStart</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00112">mCurrNumIndexes</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00110">mpIndexData</a>, and <a class="el" href="OgreProgressiveMesh_8h-source.html#l00196">mWorkingData</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMesha3" doxytag="Ogre::ProgressiveMesh::build"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::build </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="namespaceOgre.html#a351">ushort</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>numLevels</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs0">LODFaceList</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>outList</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs3">VertexReductionQuota</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>quota</em> = VRQ_PROPORTIONAL, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a349">Real</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>reductionValue</em> = 0.5f</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Builds the progressive mesh with the specified number of levels.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>numLevels</em>&nbsp;</td><td>
The number of levels to include in the output excluding the full detail version. </td></tr>
<tr><td valign=top><em>outList</em>&nbsp;</td><td>
Pointer to a list of LOD geometry data which will be completed by the application. Each entry is a reduced form of the mesh, in decreasing order of detail. </td></tr>
<tr><td valign=top><em>quota</em>&nbsp;</td><td>
The way to derive the number of vertices removed at each LOD </td></tr>
<tr><td valign=top><em>reductionValue</em>&nbsp;</td><td>
Either the proportion of vertices to remove at each level, or a fixed number of vertices to remove at each level, depending on the value of quota </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">83</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00656">bakeNewLOD</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00507">collapse</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00173">Ogre::ProgressiveMesh::PMVertex::collapseTo</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00497">computeAllCosts</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00932">dumpContents</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00638">getNextCollapser</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00165">Ogre::ProgressiveMesh::PMVertex::index</a>, <a class="el" href="OgreVertexIndexData_8h-source.html#l00125">Ogre::IndexData::indexCount</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00857">Ogre::ProgressiveMesh::PMVertex::isBorder</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00112">mCurrNumIndexes</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00113">mNumCommonVertices</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00110">mpIndexData</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00196">mWorkingData</a>, <a class="el" href="OgrePrerequisites_8h-source.html#l00086">Ogre::Real</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00174">Ogre::ProgressiveMesh::PMVertex::removed</a>, <a class="el" href="OgrePrerequisites_8h-source.html#l00115">Ogre::ushort</a>, and <a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMeshs3Ogre_1_1ProgressiveMeshs2">VRQ_PROPORTIONAL</a>.
<p>
Referenced by <a class="el" href="OgreMesh_8cpp-source.html#l00670">Ogre::Mesh::generateLodLevels</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb8" doxytag="Ogre::ProgressiveMesh::collapse"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::collapse </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>collapser</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method, collapses vertex onto it's saved collapse target.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 This updates the working triangle list to drop a triangle and recalculates the edge collapse costs around the collapse target.  This also updates all the working vertex lists for the relevant buffer. </dl>
<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00507">507</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8h-source.html#l00172">Ogre::ProgressiveMesh::PMVertex::collapseCost</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00173">Ogre::ProgressiveMesh::PMVertex::collapseTo</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00623">computeEdgeCostAtVertex</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00170">Ogre::ProgressiveMesh::PMVertex::face</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00165">Ogre::ProgressiveMesh::PMVertex::index</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00112">mCurrNumIndexes</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00199">mWorstCosts</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00168">Ogre::ProgressiveMesh::PMVertex::neighbor</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00045">NEVER_COLLAPSE_COST</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00843">Ogre::ProgressiveMesh::PMVertex::notifyRemoved</a>(), and <a class="el" href="OgreProgressiveMesh_8h-source.html#l00175">Ogre::ProgressiveMesh::PMVertex::toBeRemoved</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb5" doxytag="Ogre::ProgressiveMesh::computeAllCosts"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::computeAllCosts </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method to compute edge collapse costs for all buffers /.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00497">497</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00623">computeEdgeCostAtVertex</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00440">initialiseEdgeCollapseCosts</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00109">mpVertexData</a>, and <a class="el" href="OgreVertexIndexData_8h-source.html#l00052">Ogre::VertexData::vertexCount</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb2" doxytag="Ogre::ProgressiveMesh::computeEdgeCollapseCost"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="namespaceOgre.html#a349">Real</a> Ogre::ProgressiveMesh::computeEdgeCollapseCost </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>src</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="classOgre_1_1ProgressiveMesh_1_1PMVertex.html">PMVertex</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal calculation method for deriving a collapse cost from u to v.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00282">282</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreVector3_8h-source.html#l00285">Ogre::Vector3::dotProduct</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00170">Ogre::ProgressiveMesh::PMVertex::face</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00857">Ogre::ProgressiveMesh::PMVertex::isBorder</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00887">Ogre::ProgressiveMesh::PMVertex::isManifoldEdgeWith</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00168">Ogre::ProgressiveMesh::PMVertex::neighbor</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00045">NEVER_COLLAPSE_COST</a>, <a class="el" href="OgreVector3_8h-source.html#l00299">Ogre::Vector3::normalise</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00164">Ogre::ProgressiveMesh::PMVertex::position</a>, <a class="el" href="OgrePrerequisites_8h-source.html#l00086">Ogre::Real</a>, and <a class="el" href="OgreProgressiveMesh_8h-source.html#l00177">Ogre::ProgressiveMesh::PMVertex::seam</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00458">computeEdgeCostAtVertexForBuffer</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb4" doxytag="Ogre::ProgressiveMesh::computeEdgeCostAtVertex"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::computeEdgeCostAtVertex </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">size_t&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>vertIndex</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method evaluates all collapse costs from this vertex for every buffer and returns the worst.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00623">623</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00458">computeEdgeCostAtVertexForBuffer</a>(), <a class="el" href="OgreProgressiveMesh_8h-source.html#l00196">mWorkingData</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00199">mWorstCosts</a>, and <a class="el" href="OgrePrerequisites_8h-source.html#l00086">Ogre::Real</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00507">collapse</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00497">computeAllCosts</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb3" doxytag="Ogre::ProgressiveMesh::computeEdgeCostAtVertexForBuffer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="namespaceOgre.html#a349">Real</a> Ogre::ProgressiveMesh::computeEdgeCostAtVertexForBuffer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">WorkingDataList::iterator&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>idata</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>vertIndex</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method evaluates all collapse costs from this vertex and picks the lowest for a single buffer.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00458">458</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00282">computeEdgeCollapseCost</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00045">NEVER_COLLAPSE_COST</a>, and <a class="el" href="OgrePrerequisites_8h-source.html#l00086">Ogre::Real</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00623">computeEdgeCostAtVertex</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb9" doxytag="Ogre::ProgressiveMesh::dumpContents"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::dumpContents </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1String.html">String</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>log</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal debugging method.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00932">932</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8h-source.html#l00113">mNumCommonVertices</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00196">mWorkingData</a>, and <a class="el" href="OgreProgressiveMesh_8h-source.html#l00199">mWorstCosts</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb6" doxytag="Ogre::ProgressiveMesh::getNextCollapser"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> size_t Ogre::ProgressiveMesh::getNextCollapser </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method for getting the index of next best vertex to collapse.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00638">638</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8h-source.html#l00113">mNumCommonVertices</a>, <a class="el" href="OgreProgressiveMesh_8h-source.html#l00199">mWorstCosts</a>, <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00045">NEVER_COLLAPSE_COST</a>, and <a class="el" href="OgrePrerequisites_8h-source.html#l00086">Ogre::Real</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshb1" doxytag="Ogre::ProgressiveMesh::initialiseEdgeCollapseCosts"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void Ogre::ProgressiveMesh::initialiseEdgeCollapseCosts </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Internal method for initialising the edge collapse costs.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00440">440</a> of file <a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a>.
<p>
References <a class="el" href="OgreProgressiveMesh_8h-source.html#l00196">mWorkingData</a>, and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00045">NEVER_COLLAPSE_COST</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00497">computeAllCosts</a>().    </td>
  </tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a name="Ogre_1_1ProgressiveMeshn2" doxytag="Ogre::ProgressiveMesh::mCurrNumIndexes"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> size_t Ogre::ProgressiveMesh::mCurrNumIndexes<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00112">112</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00656">bakeNewLOD</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00507">collapse</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshn3" doxytag="Ogre::ProgressiveMesh::mNumCommonVertices"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> size_t Ogre::ProgressiveMesh::mNumCommonVertices<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00113">113</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00172">addWorkingData</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00932">dumpContents</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00638">getNextCollapser</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshn1" doxytag="Ogre::ProgressiveMesh::mpIndexData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="classOgre_1_1IndexData.html">IndexData</a>* Ogre::ProgressiveMesh::mpIndexData<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00110">110</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00078">addExtraVertexPositionBuffer</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00656">bakeNewLOD</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00062">ProgressiveMesh</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshn0" doxytag="Ogre::ProgressiveMesh::mpVertexData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="classOgre_1_1VertexData.html">VertexData</a>* Ogre::ProgressiveMesh::mpVertexData<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00109">109</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00497">computeAllCosts</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00062">ProgressiveMesh</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshn4" doxytag="Ogre::ProgressiveMesh::mWorkingData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht4">WorkingDataList</a> Ogre::ProgressiveMesh::mWorkingData<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Multiple copies, 1 per vertex buffer.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00196">196</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00172">addWorkingData</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00656">bakeNewLOD</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00083">build</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00623">computeEdgeCostAtVertex</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00932">dumpContents</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00440">initialiseEdgeCollapseCosts</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1ProgressiveMeshn5" doxytag="Ogre::ProgressiveMesh::mWorstCosts"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1ProgressiveMesh.html#Ogre_1_1ProgressiveMesht3">WorstCostList</a> Ogre::ProgressiveMesh::mWorstCosts<code> [protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The worst collapse cost from all vertex buffers for each vertex.
<p>

<p>
Definition at line <a class="el" href="OgreProgressiveMesh_8h-source.html#l00199">199</a> of file <a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00507">collapse</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00623">computeEdgeCostAtVertex</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00932">dumpContents</a>(), <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00638">getNextCollapser</a>(), and <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00062">ProgressiveMesh</a>().    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="OgreProgressiveMesh_8h-source.html">OgreProgressiveMesh.h</a><li><a class="el" href="OgreProgressiveMesh_8cpp-source.html">OgreProgressiveMesh.cpp</a></ul>
<p>
Copyright &copy; 2002-2003 by The OGRE Team<br />
Last modified Wed Jan 21 00:19:18 2004
</p>
</body>
</html>