Sophie

Sophie

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

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

<html>
<head>
<title>Ogre::VertexDeclaration 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::VertexDeclaration  Class Reference</h1>This class declares the format of a set of vertex inputs, which can be issued to the rendering API through a <a class="el" href="classOgre_1_1RenderOperation.html">RenderOperation</a>. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>&gt;</code>
<p>
Inheritance diagram for Ogre::VertexDeclaration:<p><center><img src="classOgre_1_1VertexDeclaration__inherit__graph.png" border="0" usemap="#Ogre_1_1VertexDeclaration__inherit__map" alt="Inheritance graph"></center>
<map name="Ogre_1_1VertexDeclaration__inherit__map">
<area href="classOgre_1_1D3D9VertexDeclaration.html" shape="rect" coords="7,105,196,87" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classOgre_1_1VertexDeclaration-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_1VertexElement.html">VertexElement</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarations0">VertexElementList</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Defines the list of vertex elements that makes up this declaration.</em> <a href="#Ogre_1_1VertexDeclarations0"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa0">VertexDeclaration</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Standard constructor, not you should use <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera4">HardwareBufferManager::createVertexDeclaration</a>.</em> <a href="#Ogre_1_1VertexDeclarationa0"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa1">~VertexDeclaration</a> ()</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarations0">VertexElementList</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa2">getElements</a> (void) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets read-only access to the list of vertex elements.</em> <a href="#Ogre_1_1VertexDeclarationa2"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa3">addElement</a> (unsigned short source, size_t offset, <a class="el" href="namespaceOgre.html#a631">VertexElementType</a> theType, <a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a> semantic, unsigned short index=0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Adds a new <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> to this declaration.</em> <a href="#Ogre_1_1VertexDeclarationa3"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa4">removeElement</a> (unsigned short elem_index)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Remove the element at the given index from this declaration.</em> <a href="#Ogre_1_1VertexDeclarationa4"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa5">removeElement</a> (<a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a> semantic, unsigned short index=0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Remove the element with the given semantic and usage index.</em> <a href="#Ogre_1_1VertexDeclarationa5"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa6">modifyElement</a> (unsigned short elem_index, unsigned short source, size_t offset, <a class="el" href="namespaceOgre.html#a631">VertexElementType</a> theType, <a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a> semantic, unsigned short index=0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Modify an element in-place, params as addElement.</em> <a href="#Ogre_1_1VertexDeclarationa6"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa7">findElementBySemantic</a> (<a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a> sem, unsigned short index=0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Finds a <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> with the given semantic, and index if there is more than one element with the same semantic.</em> <a href="#Ogre_1_1VertexDeclarationa7"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarations0">VertexElementList</a>&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa8">findElementsBySource</a> (unsigned short source)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets a list of elements which use a given source.</em> <a href="#Ogre_1_1VertexDeclarationa8"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual size_t&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa9">getVertexSize</a> (unsigned short source)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the vertex size defined by this declaration for a given source.</em> <a href="#Ogre_1_1VertexDeclarationa9"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual VertexDeclaration *&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa10">clone</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Clones this declaration.</em> <a href="#Ogre_1_1VertexDeclarationa10"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa11">operator==</a> (const VertexDeclaration &amp;rhs) const</td></tr>
<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarations0">VertexElementList</a>&nbsp;</td><td valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationn0">mElementList</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class declares the format of a set of vertex inputs, which can be issued to the rendering API through a <a class="el" href="classOgre_1_1RenderOperation.html">RenderOperation</a>.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 You should be aware that the ordering and structure of the  <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> can be very important on DirectX with older cards,so if you want to maintain maximum compatibility with  all render systems and all cards you should be careful to follow these rules:<ol>
<li>VertexElements should be added in the following order, and the order of the elements within a shared buffer should be as follows:  position, blending weights, normals, diffuse colours, specular colours,  texture coordinates (in order, with no gaps) <li>You must not have unused gaps in your buffers which are not referenced by any <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> <li>You must not cause the buffer &amp; offset settings of 2 VertexElements to overlap </ol>
Whilst GL and more modern graphics cards in D3D will allow you to defy these rules,  sticking to them will ensure that your buffers have the maximum compatibility.  
<p>
 Like the other classes in this functional area, these declarations should be created and destroyed using the <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>. </dl>
<p>

<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00232">232</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.<hr><h2>Member Typedef Documentation</h2>
<a name="Ogre_1_1VertexDeclarations0" doxytag="Ogre::VertexDeclaration::VertexElementList"></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_1VertexElement.html">VertexElement</a>&gt; Ogre::VertexDeclaration::VertexElementList
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Defines the list of vertex elements that makes up this declaration.
<p>

<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00236">236</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.
<p>
Referenced by <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00243">findElementsBySource</a>().    </td>
  </tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="Ogre_1_1VertexDeclarationa0" doxytag="Ogre::VertexDeclaration::VertexDeclaration"></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::VertexDeclaration::VertexDeclaration </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></td>
        </tr>

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

<p>
Standard constructor, not you should use <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera4">HardwareBufferManager::createVertexDeclaration</a>.
<p>

<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00170">170</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa1" doxytag="Ogre::VertexDeclaration::~VertexDeclaration"></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::VertexDeclaration::~VertexDeclaration </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="OgreHardwareVertexBuffer_8cpp-source.html#l00174">174</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="Ogre_1_1VertexDeclarationa3" doxytag="Ogre::VertexDeclaration::addElement"></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_1VertexElement.html">VertexElement</a> &amp; Ogre::VertexDeclaration::addElement </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>offset</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a631">VertexElementType</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>theType</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>semantic</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned short&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>index</em> = 0</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>
Adds a new <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> to this declaration.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 This method adds a single element (positions, normals etc) to the vertex declaration. <b>Please read the information in <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> about the importance of ordering and structure for compatibility with older D3D drivers</b>. </dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
The binding index of <a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> which will provide the source for this element. See VertexBufferBindingState for full information. </td></tr>
<tr><td valign=top><em>offset</em>&nbsp;</td><td>
The offset in bytes where this element is located in the buffer </td></tr>
<tr><td valign=top><em>theType</em>&nbsp;</td><td>
The data format of the element (3 floats, a colour etc) </td></tr>
<tr><td valign=top><em>semantic</em>&nbsp;</td><td>
The meaning of the data (position, normal, diffuse colour etc) </td></tr>
<tr><td valign=top><em>index</em>&nbsp;</td><td>
Optional index for multi-input elements like texture coordinates </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
A reference to the <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> added. </dl>
<p>
Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa2">Ogre::D3D9VertexDeclaration</a>.
<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00183">183</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>, <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00070">Ogre::VertexElementSemantic</a>, and <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00093">Ogre::VertexElementType</a>.
<p>
Referenced by <a class="el" href="OgreVertexIndexData_8cpp-source.html#l00061">Ogre::VertexData::clone</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00278">clone</a>(), <a class="el" href="OgreMesh_8cpp-source.html#l00575">Ogre::Mesh::compileBoneAssignmentsHardware</a>(), <a class="el" href="OgreMeshManager_8cpp-source.html#l00408">Ogre::MeshManager::createCurvedIllusionPlane</a>(), <a class="el" href="OgreMeshManager_8cpp-source.html#l00250">Ogre::MeshManager::createCurvedPlane</a>(), <a class="el" href="OgreMeshManager_8cpp-source.html#l00097">Ogre::MeshManager::createPlane</a>(), <a class="el" href="OgreMeshManager_8cpp-source.html#l00683">Ogre::MeshManager::createPrefabPlane</a>(), <a class="el" href="OgreFrustum_8cpp-source.html#l00044">Ogre::Frustum::Frustum</a>(), <a class="el" href="OgreMesh_8cpp-source.html#l00868">Ogre::Mesh::getTangentsBuffer</a>(), <a class="el" href="OgreTerrainRenderable_8cpp-source.html#l00079">Ogre::TerrainRenderable::init</a>(), <a class="el" href="OgreTTYGuiElement_8cpp-source.html#l00088">Ogre::TTYGuiElement::initialise</a>(), <a class="el" href="OgreTextAreaGuiElement_8cpp-source.html#l00074">Ogre::TextAreaGuiElement::initialise</a>(), <a class="el" href="OgrePanelGuiElement_8cpp-source.html#l00071">Ogre::PanelGuiElement::initialise</a>(), <a class="el" href="OgreBorderPanelGuiElement_8cpp-source.html#l00081">Ogre::BorderPanelGuiElement::initialise</a>(), <a class="el" href="OgreBspLevel_8cpp-source.html#l00113">Ogre::BspLevel::loadQuake3Level</a>(), <a class="el" href="OgreOctreeCamera_8cpp-source.html#l00038">Ogre::OctreeCamera::OctreeCamera</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l01419">Ogre::MeshSerializerImpl_v1::readGeometry</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00726">Ogre::MeshSerializerImpl::readGeometryColours</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00693">Ogre::MeshSerializerImpl::readGeometryNormals</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00661">Ogre::MeshSerializerImpl::readGeometryPositions</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l01222">Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00745">Ogre::MeshSerializerImpl::readGeometryTexCoords</a>(), <a class="el" href="OgreBillboardSet_8cpp-source.html#l00579">Ogre::BillboardSet::setPoolSize</a>(), <a class="el" href="OgrePanelGuiElement_8cpp-source.html#l00214">Ogre::PanelGuiElement::updateTextureGeometry</a>(), and <a class="el" href="OgreWireBoundingBox_8cpp-source.html#l00035">Ogre::WireBoundingBox::WireBoundingBox</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa10" doxytag="Ogre::VertexDeclaration::clone"></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"> VertexDeclaration * Ogre::VertexDeclaration::clone </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> [virtual]</code></td>
        </tr>

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

<p>
Clones this declaration.
<p>

<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00278">278</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00183">addElement</a>(), and <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>.
<p>
Referenced by <a class="el" href="OgrePatchMesh_8cpp-source.html#l00033">Ogre::PatchMesh::PatchMesh</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa7" doxytag="Ogre::VertexDeclaration::findElementBySemantic"></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_1VertexElement.html">VertexElement</a> * Ogre::VertexDeclaration::findElementBySemantic </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>sem</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned short&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>index</em> = 0</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>
Finds a <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> with the given semantic, and index if there is more than one element with the same semantic.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 If the element is not found, this method returns null. </dl>
<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00225">225</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>, and <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00070">Ogre::VertexElementSemantic</a>.
<p>
Referenced by <a class="el" href="OgreProgressiveMesh_8cpp-source.html#l00172">Ogre::ProgressiveMesh::addWorkingData</a>(), <a class="el" href="OgreMesh_8cpp-source.html#l00907">Ogre::Mesh::buildTangentVectors</a>(), <a class="el" href="OgreMesh_8cpp-source.html#l00575">Ogre::Mesh::compileBoneAssignmentsHardware</a>(), <a class="el" href="OgrePatchSurface_8cpp-source.html#l00053">Ogre::PatchSurface::defineSurface</a>(), <a class="el" href="OgrePatchSurface_8cpp-source.html#l00381">Ogre::PatchSurface::distributeControlPoints</a>(), <a class="el" href="OgreMesh_8cpp-source.html#l00868">Ogre::Mesh::getTangentsBuffer</a>(), <a class="el" href="OgrePatchSurface_8cpp-source.html#l00629">Ogre::PatchSurface::interpolateVertexData</a>(), <a class="el" href="OgreRenderSystem_8cpp-source.html#l00321">Ogre::RenderSystem::softwareVertexBlend</a>(), and <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00268">Ogre::MeshSerializerImpl::writeGeometry</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa8" doxytag="Ogre::VertexDeclaration::findElementsBySource"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarations0">VertexDeclaration::VertexElementList</a> Ogre::VertexDeclaration::findElementsBySource </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>source</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>
Gets a list of elements which use a given source.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 Note that the list of elements is returned by value therefore is separate from the declaration as soon as this method returns. </dl>
<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00243">243</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>, and <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00236">VertexElementList</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa2" doxytag="Ogre::VertexDeclaration::getElements"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarations0">VertexDeclaration::VertexElementList</a> &amp; Ogre::VertexDeclaration::getElements </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> const</td>
        </tr>

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

<p>
Gets read-only access to the list of vertex elements.
<p>

<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00178">178</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>.
<p>
Referenced by <a class="el" href="OgreGLRenderSystem_8cpp-source.html#l01736">Ogre::GLRenderSystem::_render</a>(), <a class="el" href="OgreD3D7RenderSystem_8cpp-source.html#l01352">Ogre::D3DRenderSystem::_render</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00389">Ogre::MeshSerializerImpl::calcGeometrySize</a>(), and <a class="el" href="OgreVertexIndexData_8cpp-source.html#l00061">Ogre::VertexData::clone</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa9" doxytag="Ogre::VertexDeclaration::getVertexSize"></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::VertexDeclaration::getVertexSize </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>source</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>
Gets the vertex size defined by this declaration for a given source.
<p>

<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00261">261</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>.
<p>
Referenced by <a class="el" href="OgreD3D7RenderSystem_8cpp-source.html#l01352">Ogre::D3DRenderSystem::_render</a>(), <a class="el" href="OgrePatchSurface_8cpp-source.html#l00162">Ogre::PatchSurface::build</a>(), <a class="el" href="OgreTTYGuiElement_8cpp-source.html#l00219">Ogre::TTYGuiElement::checkMemoryAllocation</a>(), <a class="el" href="OgreTextAreaGuiElement_8cpp-source.html#l00100">Ogre::TextAreaGuiElement::checkMemoryAllocation</a>(), <a class="el" href="OgreMesh_8cpp-source.html#l00575">Ogre::Mesh::compileBoneAssignmentsHardware</a>(), <a class="el" href="OgreMeshManager_8cpp-source.html#l00408">Ogre::MeshManager::createCurvedIllusionPlane</a>(), <a class="el" href="OgreMeshManager_8cpp-source.html#l00097">Ogre::MeshManager::createPlane</a>(), <a class="el" href="OgrePatchSurface_8cpp-source.html#l00053">Ogre::PatchSurface::defineSurface</a>(), <a class="el" href="OgrePatchSurface_8cpp-source.html#l00381">Ogre::PatchSurface::distributeControlPoints</a>(), <a class="el" href="OgreTerrainRenderable_8cpp-source.html#l00079">Ogre::TerrainRenderable::init</a>(), <a class="el" href="OgrePanelGuiElement_8cpp-source.html#l00071">Ogre::PanelGuiElement::initialise</a>(), <a class="el" href="OgreBorderPanelGuiElement_8cpp-source.html#l00081">Ogre::BorderPanelGuiElement::initialise</a>(), <a class="el" href="OgrePatchSurface_8cpp-source.html#l00629">Ogre::PatchSurface::interpolateVertexData</a>(), <a class="el" href="OgrePatchMesh_8cpp-source.html#l00064">Ogre::PatchMesh::load</a>(), <a class="el" href="OgreOctreeCamera_8cpp-source.html#l00038">Ogre::OctreeCamera::OctreeCamera</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l01419">Ogre::MeshSerializerImpl_v1::readGeometry</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00726">Ogre::MeshSerializerImpl::readGeometryColours</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00693">Ogre::MeshSerializerImpl::readGeometryNormals</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00661">Ogre::MeshSerializerImpl::readGeometryPositions</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l01222">Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords</a>(), <a class="el" href="OgreMeshSerializerImpl_8cpp-source.html#l00745">Ogre::MeshSerializerImpl::readGeometryTexCoords</a>(), <a class="el" href="OgreBillboardSet_8cpp-source.html#l00579">Ogre::BillboardSet::setPoolSize</a>(), <a class="el" href="OgrePanelGuiElement_8cpp-source.html#l00214">Ogre::PanelGuiElement::updateTextureGeometry</a>(), and <a class="el" href="OgreWireBoundingBox_8cpp-source.html#l00035">Ogre::WireBoundingBox::WireBoundingBox</a>().    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa6" doxytag="Ogre::VertexDeclaration::modifyElement"></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::VertexDeclaration::modifyElement </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>elem_index</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned short&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>offset</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a631">VertexElementType</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>theType</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>semantic</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned short&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>index</em> = 0</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>
Modify an element in-place, params as addElement.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 <b>Please read the information in <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> about the importance of ordering and structure for compatibility with older D3D drivers</b>. </dl>
<p>
Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa4">Ogre::D3D9VertexDeclaration</a>.
<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00215">215</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>, <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00070">Ogre::VertexElementSemantic</a>, and <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00093">Ogre::VertexElementType</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa11" doxytag="Ogre::VertexDeclaration::operator=="></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"> bool Ogre::VertexDeclaration::operator== </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const VertexDeclaration &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>rhs</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap> const</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="OgreHardwareVertexBuffer_8h-source.html#l00305">305</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa5" doxytag="Ogre::VertexDeclaration::removeElement"></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::VertexDeclaration::removeElement </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="namespaceOgre.html#a630">VertexElementSemantic</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>semantic</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned short&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>index</em> = 0</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>
Remove the element with the given semantic and usage index.
<p>
<dl compact><dt><b>
Remarks: </b><dd>
 In this case 'index' means the usage index for repeating elements such as texture coordinates. For other elements this will always be 0 and does not refer to the index in the vector. </dl>
<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00201">201</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>, and <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00070">Ogre::VertexElementSemantic</a>.    </td>
  </tr>
</table>
<a name="Ogre_1_1VertexDeclarationa4" doxytag="Ogre::VertexDeclaration::removeElement"></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::VertexDeclaration::removeElement </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>elem_index</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>
Remove the element at the given index from this declaration.
<p>

<p>
Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa3">Ogre::D3D9VertexDeclaration</a>.
<p>
Definition at line <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00193">193</a> of file <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a>.
<p>
References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00238">mElementList</a>.
<p>
Referenced by <a class="el" href="OgreMesh_8cpp-source.html#l00575">Ogre::Mesh::compileBoneAssignmentsHardware</a>(), <a class="el" href="OgreMesh_8cpp-source.html#l00868">Ogre::Mesh::getTangentsBuffer</a>(), and <a class="el" href="OgrePanelGuiElement_8cpp-source.html#l00214">Ogre::PanelGuiElement::updateTextureGeometry</a>().    </td>
  </tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a name="Ogre_1_1VertexDeclarationn0" doxytag="Ogre::VertexDeclaration::mElementList"></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_1VertexDeclaration.html#Ogre_1_1VertexDeclarations0">VertexElementList</a> Ogre::VertexDeclaration::mElementList<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="OgreHardwareVertexBuffer_8h-source.html#l00238">238</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.
<p>
Referenced by <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00183">addElement</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00278">clone</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00225">findElementBySemantic</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00243">findElementsBySource</a>(), <a class="el" href="OgreD3D9VertexDeclaration_8cpp-source.html#l00063">Ogre::D3D9VertexDeclaration::getD3DVertexDeclaration</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00178">getElements</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00261">getVertexSize</a>(), <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00215">modifyElement</a>(), <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00305">operator==</a>(), and <a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html#l00193">removeElement</a>().    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a><li><a class="el" href="OgreHardwareVertexBuffer_8cpp-source.html">OgreHardwareVertexBuffer.cpp</a></ul>
<p>
Copyright &copy; 2002-2003 by The OGRE Team<br />
Last modified Wed Jan 21 00:21:14 2004
</p>
</body>
</html>