Sophie

Sophie

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

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: imesh/genmesh.h Source File (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="classes.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>imesh/genmesh.h</h1><a href="genmesh_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright (C) 2002 by Jorrit Tyberghein</span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">    This library is free software; you can redistribute it and/or</span>
<a name="l00005"></a>00005 <span class="comment">    modify it under the terms of the GNU Library General Public</span>
<a name="l00006"></a>00006 <span class="comment">    License as published by the Free Software Foundation; either</span>
<a name="l00007"></a>00007 <span class="comment">    version 2 of the License, or (at your option) any later version.</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">    This library is distributed in the hope that it will be useful,</span>
<a name="l00010"></a>00010 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00011"></a>00011 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00012"></a>00012 <span class="comment">    Library General Public License for more details.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">    You should have received a copy of the GNU Library General Public</span>
<a name="l00015"></a>00015 <span class="comment">    License along with this library; if not, write to the Free</span>
<a name="l00016"></a>00016 <span class="comment">    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef __CS_IMESH_GENMESH_H__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IMESH_GENMESH_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="scf__interface_8h.html" title="Crystal Space Shared Class Facility (SCF) - interface creation support.">csutil/scf_interface.h</a>"</span>
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="keyword">struct </span><a class="code" href="structiDocumentNode.html" title="Representation of a node in a document.">iDocumentNode</a>;
<a name="l00029"></a>00029 <span class="keyword">struct </span><a class="code" href="structiGenMeshAnimationControl.html" title="Implementing this class allows the creation of classes that control animation of...">iGenMeshAnimationControl</a>;
<a name="l00030"></a>00030 <span class="keyword">struct </span><a class="code" href="structiGenMeshAnimationControlFactory.html" title="This class is a factory for creating animation controls.">iGenMeshAnimationControlFactory</a>;
<a name="l00031"></a>00031 <span class="keyword">struct </span><a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>;
<a name="l00032"></a>00032 <span class="keyword">struct </span><a class="code" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>;
<a name="l00033"></a>00033 <span class="keyword">struct </span><a class="code" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>;
<a name="l00034"></a>00034 <span class="keyword">struct </span><a class="code" href="structiString.html" title="This is a SCF-compatible interface for csString.">iString</a>;
<a name="l00035"></a>00035 
<a name="l00039"></a>00039 <span class="keyword">class </span><a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a>;
<a name="l00040"></a>00040 <span class="keyword">class </span><a class="code" href="classcsColor.html" title="A class used to represent a color in RGB space.">csColor</a>;
<a name="l00041"></a>00041 <span class="keyword">class </span><a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>;
<a name="l00042"></a>00042 <span class="keyword">struct </span><a class="code" href="structcsTriangle.html" title="A triangle.">csTriangle</a>;
<a name="l00043"></a>00043 <span class="keyword">class </span><a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>;
<a name="l00044"></a>00044 <span class="keyword">class </span><a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>;
<a name="l00045"></a>00045 <span class="keyword">class </span><a class="code" href="classcsEllipsoid.html" title="This class represents an ellipsoid.">csEllipsoid</a>;
<a name="l00046"></a>00046 
<a name="l00047"></a><a class="code" href="structiGeneralMeshSubMesh.html">00047</a> <span class="keyword">struct </span><a class="code" href="structiGeneralMeshSubMesh.html">iGeneralMeshSubMesh</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00048"></a>00048 {
<a name="l00049"></a>00049   SCF_INTERFACE (<a class="code" href="structiGeneralMeshSubMesh.html">iGeneralMeshSubMesh</a>, 1, 0, 1);
<a name="l00050"></a>00050   
<a name="l00052"></a>00052   <span class="keyword">virtual</span> <a class="code" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>* <a class="code" href="structiGeneralMeshSubMesh.html#eaecbe88cc4614f6ddff88ea9bb267bf" title="Get the index render buffer.">GetIndices</a> () <span class="keyword">const</span> = 0;
<a name="l00053"></a>00053 
<a name="l00055"></a>00055   <span class="keyword">virtual</span> <a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>* <a class="code" href="structiGeneralMeshSubMesh.html#321b3feca8edd5ba44eab723bbb73181" title="Get the material.">GetMaterial</a> () <span class="keyword">const</span> = 0;
<a name="l00056"></a>00056   
<a name="l00058"></a>00058   <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structiGeneralMeshSubMesh.html#80110e2af2aee037a859da6635012ace" title="Get the name (or 0 if none was given).">GetName</a> () <span class="keyword">const</span> = 0;
<a name="l00059"></a>00059   
<a name="l00061"></a>00061   <span class="keyword">virtual</span> <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> <a class="code" href="structiGeneralMeshSubMesh.html#f8a04345657aee7bb2347d0b000f1aba" title="Get the mixmode (or (uint)~0 if none was specified).">GetMixmode</a> () <span class="keyword">const</span> = 0;
<a name="l00062"></a>00062 
<a name="l00064"></a>00064   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshSubMesh.html#ea4657687fb565386a7a5ea559dedb4f" title="Set the material, or 0 to use default.">SetMaterial</a> (<a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>* material) = 0;
<a name="l00065"></a>00065 };
<a name="l00066"></a>00066 
<a name="l00072"></a><a class="code" href="structiGeneralMeshCommonState.html">00072</a> <span class="keyword">struct </span><a class="code" href="structiGeneralMeshCommonState.html" title="The common interface between genmesh meshes and factories.">iGeneralMeshCommonState</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00073"></a>00073 {
<a name="l00074"></a>00074   SCF_INTERFACE (<a class="code" href="structiGeneralMeshCommonState.html" title="The common interface between genmesh meshes and factories.">iGeneralMeshCommonState</a>, 1, 2, 0);
<a name="l00075"></a>00075   
<a name="l00077"></a>00077   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshCommonState.html#21b42cbe14e7cca1928062b26c065e7b" title="Set lighting.">SetLighting</a> (<span class="keywordtype">bool</span> l) = 0;
<a name="l00079"></a>00079   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralMeshCommonState.html#4cab18d08025f80292eb985611391544" title="Is lighting enabled.">IsLighting</a> () <span class="keyword">const</span> = 0;
<a name="l00085"></a>00085   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshCommonState.html#e7076663fc0f1bcc77af5c8cbff790f3" title="Set manual colors.">SetManualColors</a> (<span class="keywordtype">bool</span> m) = 0;
<a name="l00087"></a>00087   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralMeshCommonState.html#84e742865099cd03c14f9ffbb28e8d61" title="Are manual colors enabled?">IsManualColors</a> () <span class="keyword">const</span> = 0;
<a name="l00092"></a>00092   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshCommonState.html#a762096c23d6ac921b7edac520be0fdd" title="Set shadowing.">SetShadowCasting</a> (<span class="keywordtype">bool</span> m) = 0;
<a name="l00094"></a>00094   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralMeshCommonState.html#9f06cd3a9a38a267c645dbdf686fd862" title="Is shadow casting enabled?">IsShadowCasting</a> () <span class="keyword">const</span> = 0;
<a name="l00103"></a>00103   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshCommonState.html#a0acdb2a7a5266016ced1cc6ec7036e0" title="Set shadow receiving on.">SetShadowReceiving</a> (<span class="keywordtype">bool</span> m) = 0;
<a name="l00105"></a>00105   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralMeshCommonState.html#b3c8ee2892626b2fbfb3eeed2a412050" title="Is shadow receiving enabled?">IsShadowReceiving</a> () <span class="keyword">const</span> = 0;
<a name="l00106"></a>00106 
<a name="l00112"></a>00112   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralMeshCommonState.html#d917dcfeb4b8da544f69f074d8298466" title="Adds an independently named render buffer.">AddRenderBuffer</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>* buffer) = 0;
<a name="l00113"></a>00113 
<a name="l00117"></a>00117   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralMeshCommonState.html#d7d92dba79df1297adc1fc6bfeb7a02f" title="Removes an independently named render buffer.">RemoveRenderBuffer</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *name) = 0;
<a name="l00118"></a>00118 
<a name="l00122"></a>00122   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiGeneralMeshCommonState.html#7e2790c2842f7d5d6a66253aa8544de6" title="Get number of independent render buffers.">GetRenderBufferCount</a> () <span class="keyword">const</span> = 0;
<a name="l00123"></a>00123 
<a name="l00127"></a>00127   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iRenderBuffer&gt;</a> <a class="code" href="structiGeneralMeshCommonState.html#70eba38b120888fb5dd73bac901966c5" title="Get independent render buffer by index.">GetRenderBuffer</a> (<span class="keywordtype">int</span> index) = 0;
<a name="l00128"></a>00128 
<a name="l00132"></a>00132   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iString&gt;</a> <a class="code" href="structiGeneralMeshCommonState.html#f29785248b8abfdc90e6280d4d06a539" title="Get the name of an independent render buffer by index.">GetRenderBufferName</a> (<span class="keywordtype">int</span> index) <span class="keyword">const</span> = 0;
<a name="l00134"></a>00134 };
<a name="l00135"></a>00135 
<a name="l00150"></a><a class="code" href="structiGeneralMeshState.html">00150</a> <span class="keyword">struct </span><a class="code" href="structiGeneralMeshState.html" title="This interface describes the API for the general mesh object.">iGeneralMeshState</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiGeneralMeshCommonState.html" title="The common interface between genmesh meshes and factories.">iGeneralMeshCommonState</a>
<a name="l00151"></a>00151 {
<a name="l00152"></a>00152   SCF_INTERFACE (<a class="code" href="structiGeneralMeshState.html" title="This interface describes the API for the general mesh object.">iGeneralMeshState</a>, 1, 1, 1);
<a name="l00153"></a>00153   
<a name="l00158"></a>00158   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshState.html#7f19f18d4223b460c70f0ced898fd86b" title="Set the animation control to use for this mesh object.">SetAnimationControl</a> (<a class="code" href="structiGenMeshAnimationControl.html" title="Implementing this class allows the creation of classes that control animation of...">iGenMeshAnimationControl</a>* anim_ctrl) = 0;
<a name="l00159"></a>00159 
<a name="l00163"></a>00163   <span class="keyword">virtual</span> <a class="code" href="structiGenMeshAnimationControl.html" title="Implementing this class allows the creation of classes that control animation of...">iGenMeshAnimationControl</a>* <a class="code" href="structiGeneralMeshState.html#9f457ff313594fb0c41c368f1fae0432" title="Get the current animation control for this object.">GetAnimationControl</a> () <span class="keyword">const</span> = 0;
<a name="l00164"></a>00164   
<a name="l00176"></a>00176   <span class="keyword">virtual</span> <a class="code" href="structiGeneralMeshSubMesh.html">iGeneralMeshSubMesh</a>* <a class="code" href="structiGeneralMeshState.html#ec04f25abbea1d1eac9048d5ecb99ab6" title="Find the index of a submesh.">FindSubMesh</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* name) <span class="keyword">const</span> = 0;
<a name="l00194"></a>00194   <a class="code" href="cssysdef_8h.html#69b27a22db26f4a2bb7a26a85d2ab06b" title="A variant of CS_DEPRECATED_METHOD that also emits the message msg on compilers that...">CS_DEPRECATED_METHOD_MSG</a>(<span class="stringliteral">"Use AddSubMesh from iGeneralFactoryState instead"</span>)
<a name="l00195"></a>00195   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshState.html#80e63fca9db3d46bf1a58376d1a94206" title="Add a submesh to this object.">AddSubMesh</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *triangles,
<a name="l00196"></a>00196     <span class="keywordtype">int</span> tricount,
<a name="l00197"></a>00197     <a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a> *material) = 0;
<a name="l00198"></a>00198 
<a name="l00213"></a>00213   <a class="code" href="cssysdef_8h.html#69b27a22db26f4a2bb7a26a85d2ab06b" title="A variant of CS_DEPRECATED_METHOD that also emits the message msg on compilers that...">CS_DEPRECATED_METHOD_MSG</a>(<span class="stringliteral">"Use AddSubMesh from iGeneralFactoryState instead"</span>)
<a name="l00214"></a>00214   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralMeshState.html#80e63fca9db3d46bf1a58376d1a94206" title="Add a submesh to this object.">AddSubMesh</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *triangles,
<a name="l00215"></a>00215     <span class="keywordtype">int</span> tricount,
<a name="l00216"></a>00216     <a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a> *material, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> mixmode) = 0;
<a name="l00218"></a>00218 };
<a name="l00219"></a>00219 
<a name="l00242"></a><a class="code" href="structiGeneralFactoryState.html">00242</a> <span class="keyword">struct </span><a class="code" href="structiGeneralFactoryState.html" title="This interface describes the API for the general mesh factory.">iGeneralFactoryState</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiGeneralMeshCommonState.html" title="The common interface between genmesh meshes and factories.">iGeneralMeshCommonState</a>
<a name="l00243"></a>00243 {
<a name="l00244"></a>00244   SCF_INTERFACE (<a class="code" href="structiGeneralFactoryState.html" title="This interface describes the API for the general mesh factory.">iGeneralFactoryState</a>, 1, 1, 1);
<a name="l00245"></a>00245   
<a name="l00247"></a>00247   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#17e33efd640c90474bbe9de44e5ccdfd" title="Set the color to use. Will be added to the lighting values.">SetColor</a> (<span class="keyword">const</span> <a class="code" href="classcsColor.html" title="A class used to represent a color in RGB space.">csColor</a>&amp; col) = 0;
<a name="l00249"></a>00249   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsColor.html" title="A class used to represent a color in RGB space.">csColor</a>&amp; <a class="code" href="structiGeneralFactoryState.html#4b6a8bb23abcda5d123ada0c0a7bf191" title="Get the color.">GetColor</a> () <span class="keyword">const</span> = 0;
<a name="l00250"></a>00250   
<a name="l00256"></a>00256   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#f1d59f2767a88df15fc7bb9d6a5a7d08" title="Add a vertex.">AddVertex</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; v,
<a name="l00257"></a>00257       <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>&amp; uv, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; normal,
<a name="l00258"></a>00258       <span class="keyword">const</span> <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>&amp; color) = 0;
<a name="l00259"></a>00259 
<a name="l00267"></a>00267   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#a31991485ffcd2e46cf8816b25aae85f" title="Set the number of vertices to use for this mesh.">SetVertexCount</a> (<span class="keywordtype">int</span> n) = 0;
<a name="l00269"></a>00269   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiGeneralFactoryState.html#a6a08e6418f362d8796a9f42b0fa7913" title="Get the number of vertices for this mesh.">GetVertexCount</a> () <span class="keyword">const</span> = 0;
<a name="l00275"></a>00275   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* <a class="code" href="structiGeneralFactoryState.html#0e52390be30c650f2703af4cc0ce69a0" title="Get the array of vertices.">GetVertices</a> () = 0;
<a name="l00281"></a>00281   <span class="keyword">virtual</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>* <a class="code" href="structiGeneralFactoryState.html#e44ce6f1c298bdbd62422072c156b470" title="Get the array of texels.">GetTexels</a> () = 0;
<a name="l00290"></a>00290   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* <a class="code" href="structiGeneralFactoryState.html#1cdb8cba2b1c1496d693f8920d02bbe2" title="Get the array of normals.">GetNormals</a> () = 0;
<a name="l00298"></a>00298   <span class="keyword">virtual</span> <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>* <a class="code" href="structiGeneralFactoryState.html#2ed8f47fb4be5389b90c91734c82ff98" title="Get the array of colors.">GetColors</a> () = 0;
<a name="l00299"></a>00299 
<a name="l00305"></a>00305   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#07ed6b51253e401e8aaf03054681f06c" title="Add a triangle.">AddTriangle</a> (<span class="keyword">const</span> <a class="code" href="structcsTriangle.html" title="A triangle.">csTriangle</a>&amp; tri) = 0;
<a name="l00306"></a>00306 
<a name="l00314"></a>00314   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#03437302cb0a19d7fc1537943856830a" title="Set the number of triangles to use for this mesh.">SetTriangleCount</a> (<span class="keywordtype">int</span> n) = 0;
<a name="l00316"></a>00316   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiGeneralFactoryState.html#d4c747cd06b799543a0118574b67516e" title="Get the number of triangles for this mesh.">GetTriangleCount</a> () <span class="keyword">const</span> = 0;
<a name="l00322"></a>00322   <span class="keyword">virtual</span> <a class="code" href="structcsTriangle.html" title="A triangle.">csTriangle</a>* <a class="code" href="structiGeneralFactoryState.html#7e67c7927eb951bc777a2d4c207176fb" title="Get the array of triangles.">GetTriangles</a> () = 0;
<a name="l00323"></a>00323 
<a name="l00330"></a>00330   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#c21f2170356904a246a36ca460266e27" title="After making a significant change to the vertices or triangles you probably want...">Invalidate</a> () = 0;
<a name="l00331"></a>00331 
<a name="l00337"></a>00337   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#24c22ca26abb0350fb8111b2dbeea72e" title="Automatically calculate normals based on the current mesh.">CalculateNormals</a> (<span class="keywordtype">bool</span> compress = <span class="keyword">true</span>) = 0;
<a name="l00338"></a>00338 
<a name="l00343"></a>00343   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#7c4c14cc841e96cb8121eb26332d2ad0" title="Compress the vertex table.">Compress</a> () = 0;
<a name="l00344"></a>00344 
<a name="l00350"></a>00350   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#dc7dabe077ed2b6f9ca5940cd297f564" title="Automatically generate a box.">GenerateBox</a> (<span class="keyword">const</span> <a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a>&amp; box) = 0;
<a name="l00351"></a>00351 
<a name="l00358"></a>00358   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#1b9d7fe1d563fbbdaf9d407189ba13f5" title="Automatically generate a capsule of given length and radius.">GenerateCapsule</a> (<span class="keywordtype">float</span> l, <span class="keywordtype">float</span> r, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> sides) = 0;
<a name="l00359"></a>00359 
<a name="l00371"></a>00371   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#c00aae05ef047142e9adc9fb3a76ed1a" title="Automatically generate a sphere.">GenerateSphere</a> (<span class="keyword">const</span> <a class="code" href="classcsEllipsoid.html" title="This class represents an ellipsoid.">csEllipsoid</a>&amp; ellips, <span class="keywordtype">int</span> rim_vertices,
<a name="l00372"></a>00372       <span class="keywordtype">bool</span> cyl_mapping = <span class="keyword">false</span>,
<a name="l00373"></a>00373       <span class="keywordtype">bool</span> toponly = <span class="keyword">false</span>,
<a name="l00374"></a>00374       <span class="keywordtype">bool</span> reversed = <span class="keyword">false</span>) = 0;
<a name="l00375"></a>00375 
<a name="l00376"></a>00376   <span class="comment">//virtual void GeneratePlane (const csPlane3&amp; plane) = 0;</span>
<a name="l00377"></a>00377 
<a name="l00383"></a>00383   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#b1c5e09307088b913ce97875c7b2f3a1" title="Enable back to front rendering for the triangles of this genmesh.">SetBack2Front</a> (<span class="keywordtype">bool</span> b2f) = 0;
<a name="l00384"></a>00384 
<a name="l00388"></a>00388   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralFactoryState.html#c1e4736a1b4702342a5852707052556b" title="Returns whether normals were autogenerated or manual.">IsAutoNormals</a> () <span class="keyword">const</span> = 0;
<a name="l00389"></a>00389 
<a name="l00393"></a>00393   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGeneralFactoryState.html#bbd32c0f17f29fe1bacd57ecc2df3d13" title="Get the value of the back2front flag.">IsBack2Front</a> () <span class="keyword">const</span> = 0;
<a name="l00394"></a>00394 
<a name="l00399"></a>00399   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#22bae36765dd9a702d2c11a5499a0bf5" title="Set the animation control factory to use for this factory.">SetAnimationControlFactory</a> (
<a name="l00400"></a>00400         <a class="code" href="structiGenMeshAnimationControlFactory.html" title="This class is a factory for creating animation controls.">iGenMeshAnimationControlFactory</a>* anim_ctrl) = 0;
<a name="l00401"></a>00401 
<a name="l00405"></a>00405   <span class="keyword">virtual</span> <a class="code" href="structiGenMeshAnimationControlFactory.html" title="This class is a factory for creating animation controls.">iGenMeshAnimationControlFactory</a>* <a class="code" href="structiGeneralFactoryState.html#6fee83501d8f80e1bf01367a0ff8afb1" title="Get the current animation control factory for this factory.">GetAnimationControlFactory</a> ()
<a name="l00406"></a>00406         <span class="keyword">const</span> = 0;
<a name="l00407"></a>00407   
<a name="l00413"></a>00413   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#7575c2a956d966820231ef65405782ef" title="Remove all submeshes added to this object.">ClearSubMeshes</a> () = 0;
<a name="l00431"></a>00431   <span class="keyword">virtual</span> <a class="code" href="structiGeneralMeshSubMesh.html">iGeneralMeshSubMesh</a>* <a class="code" href="structiGeneralFactoryState.html#5927c4d7683cb5a234c8910dbf79844a" title="Add a submesh to this object.">AddSubMesh</a> (<a class="code" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>* indices, 
<a name="l00432"></a>00432     <a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a> *material, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> mixmode = (<a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a>)~0) = 0;
<a name="l00433"></a>00433 
<a name="l00438"></a>00438   <span class="keyword">virtual</span> <a class="code" href="structiGeneralMeshSubMesh.html">iGeneralMeshSubMesh</a>* <a class="code" href="structiGeneralFactoryState.html#f502cb201d3b4b51c45e6f9000a858dd" title="Find the index of a submesh.">FindSubMesh</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* name) <span class="keyword">const</span> = 0;
<a name="l00439"></a>00439   
<a name="l00443"></a>00443   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#cc21ea749a7676d90f0daf3e9052d658" title="Delete a submesh.">DeleteSubMesh</a> (<a class="code" href="structiGeneralMeshSubMesh.html">iGeneralMeshSubMesh</a>* mesh) = 0;
<a name="l00444"></a>00444   
<a name="l00446"></a>00446   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiGeneralFactoryState.html#fcadce1416087105e17eb93395e2184c" title="Get the number of submeshes.">GetSubMeshCount</a> () <span class="keyword">const</span> = 0;
<a name="l00447"></a>00447 
<a name="l00449"></a>00449   <span class="keyword">virtual</span> <a class="code" href="structiGeneralMeshSubMesh.html">iGeneralMeshSubMesh</a>* <a class="code" href="structiGeneralFactoryState.html#e2d268e51db06e4aae67abc6310143a9" title="Get a specific submesh.">GetSubMesh</a> (<span class="keywordtype">size_t</span> index) <span class="keyword">const</span> = 0;
<a name="l00458"></a>00458   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGeneralFactoryState.html#b33a538a788f3cc4c6fa9e81222a735d" title="Disable auto-generated normals.">DisableAutoNormals</a> () = 0;
<a name="l00459"></a>00459 };
<a name="l00460"></a>00460 
<a name="l00479"></a><a class="code" href="structiGenMeshAnimationControl.html">00479</a> <span class="keyword">struct </span><a class="code" href="structiGenMeshAnimationControl.html" title="Implementing this class allows the creation of classes that control animation of...">iGenMeshAnimationControl</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00480"></a>00480 {
<a name="l00481"></a>00481   SCF_INTERFACE(<a class="code" href="structiGenMeshAnimationControl.html" title="Implementing this class allows the creation of classes that control animation of...">iGenMeshAnimationControl</a>, 2, 0, 0);
<a name="l00482"></a>00482 
<a name="l00484"></a>00484   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGenMeshAnimationControl.html#b7d6b9182e701eb90d589e695f7d4656" title="Returns true if this control animates vertices.">AnimatesVertices</a> () <span class="keyword">const</span> = 0;
<a name="l00486"></a>00486   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGenMeshAnimationControl.html#81f57fd67ca742edcfd60e4b6b5f20fd" title="Returns true if this control animates texels.">AnimatesTexels</a> () <span class="keyword">const</span> = 0;
<a name="l00488"></a>00488   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGenMeshAnimationControl.html#f6949dff00af60d5de29cf5c85d50d36" title="Returns true if this control animates normals.">AnimatesNormals</a> () <span class="keyword">const</span> = 0;
<a name="l00490"></a>00490   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiGenMeshAnimationControl.html#c17cf7ba6aab0afe221b200d8d3c4a97" title="Returns true if this control animates colors.">AnimatesColors</a> () <span class="keyword">const</span> = 0;
<a name="l00491"></a>00491 
<a name="l00495"></a>00495   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiGenMeshAnimationControl.html#ce8f78bfe657d83a549a6fba5b945b9c" title="General update method.">Update</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> current) = 0;
<a name="l00496"></a>00496 
<a name="l00506"></a>00506   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* <a class="code" href="structiGenMeshAnimationControl.html#fa7b562ab40aa3d756982fb8e1aaea72" title="Given the factory vertex data, return the animated data.">UpdateVertices</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> current,
<a name="l00507"></a>00507         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* verts, <span class="keywordtype">int</span> num_verts, <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> version_id) = 0;
<a name="l00508"></a>00508 
<a name="l00518"></a>00518   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>* <a class="code" href="structiGenMeshAnimationControl.html#88dade98f439749d078ec5c9c639ba07" title="Given the factory texel data, return the animated data.">UpdateTexels</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> current,
<a name="l00519"></a>00519         <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>* texels, <span class="keywordtype">int</span> num_texels, <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> version_id) = 0;
<a name="l00520"></a>00520 
<a name="l00530"></a>00530   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* <a class="code" href="structiGenMeshAnimationControl.html#d7902ec8aa14ea7e6e0db138f1306b25" title="Given the factory normal data, return the animated data.">UpdateNormals</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> current,
<a name="l00531"></a>00531         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* normals, <span class="keywordtype">int</span> num_normals, <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> version_id) = 0;
<a name="l00532"></a>00532 
<a name="l00544"></a>00544   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>* <a class="code" href="structiGenMeshAnimationControl.html#6def13a0129a701d7ae4faab3832bf3c" title="Given the factory color data, return the animated data.">UpdateColors</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> current,
<a name="l00545"></a>00545         <span class="keyword">const</span> <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>* colors, <span class="keywordtype">int</span> num_colors, <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> version_id) = 0;
<a name="l00546"></a>00546 };
<a name="l00547"></a>00547 
<a name="l00560"></a><a class="code" href="structiGenMeshAnimationControlFactory.html">00560</a> <span class="keyword">struct </span><a class="code" href="structiGenMeshAnimationControlFactory.html" title="This class is a factory for creating animation controls.">iGenMeshAnimationControlFactory</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00561"></a>00561 {
<a name="l00562"></a>00562   SCF_INTERFACE(<a class="code" href="structiGenMeshAnimationControlFactory.html" title="This class is a factory for creating animation controls.">iGenMeshAnimationControlFactory</a>, 2, 0, 0);
<a name="l00563"></a>00563 
<a name="l00567"></a>00567   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iGenMeshAnimationControl&gt;</a> <a class="code" href="structiGenMeshAnimationControlFactory.html#f8279254072b84dc3d6e2ee901472da8" title="Create a new animation control.">CreateAnimationControl</a> (
<a name="l00568"></a>00568         <a class="code" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a> *mesh) = 0;
<a name="l00569"></a>00569 
<a name="l00574"></a>00574   <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structiGenMeshAnimationControlFactory.html#7283da43e7ab3fb08a3eaf308a10f503" title="Setup this animation control from a document node.">Load</a> (<a class="code" href="structiDocumentNode.html" title="Representation of a node in a document.">iDocumentNode</a>* node) = 0;
<a name="l00575"></a>00575 
<a name="l00580"></a>00580   <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structiGenMeshAnimationControlFactory.html#608f6137c9a347a9e0063b120f59313f" title="Save this animation control to a document node.">Save</a> (<a class="code" href="structiDocumentNode.html" title="Representation of a node in a document.">iDocumentNode</a>* parent) = 0;
<a name="l00581"></a>00581 };
<a name="l00582"></a>00582 
<a name="l00597"></a><a class="code" href="structiGenMeshAnimationControlType.html">00597</a> <span class="keyword">struct </span><a class="code" href="structiGenMeshAnimationControlType.html" title="This class is the animation control type.">iGenMeshAnimationControlType</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00598"></a>00598 {
<a name="l00599"></a>00599   SCF_INTERFACE(<a class="code" href="structiGenMeshAnimationControlType.html" title="This class is the animation control type.">iGenMeshAnimationControlType</a>, 2, 0, 0);
<a name="l00600"></a>00600 
<a name="l00604"></a>00604   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iGenMeshAnimationControlFactory&gt;</a> <a class="code" href="structiGenMeshAnimationControlType.html#5d3dc8c6460c41f197fa3366cac0fb1e" title="Create a new animation control factory.">CreateAnimationControlFactory</a>
<a name="l00605"></a>00605         () = 0;
<a name="l00606"></a>00606 };
<a name="l00607"></a>00607 
<a name="l00610"></a>00610 <span class="preprocessor">#endif // __CS_IMESH_GENMESH_H__</span>
</pre></div><hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>