<!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 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 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<iRenderBuffer></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<iString></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>& 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>& <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>& v, <a name="l00257"></a>00257 <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>& uv, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& 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>& 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>& 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>& 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>& 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& 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<iGenMeshAnimationControl></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<iGenMeshAnimationControlFactory></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>