Sophie

Sophie

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

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: iengine/mesh.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>iengine/mesh.h</h1><a href="mesh_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) 2000-2001 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_IENGINE_MESH_H__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IENGINE_MESH_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="scf_8h.html" title="Crystal Space Shared Class Facility (SCF).">csutil/scf.h</a>"</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="box_8h.html" title="Bounding boxes for 2D and 3D space.">csgeom/box.h</a>"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="vector3_8h.html" title="3D vector.">csgeom/vector3.h</a>"</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="graph3d_8h.html" title="3D graphics interface">ivideo/graph3d.h</a>"</span>
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="keyword">struct </span><a class="code" href="structiCamera.html" title="Camera class.">iCamera</a>;
<a name="l00037"></a>00037 <span class="keyword">struct </span><a class="code" href="structiLightingInfo.html" title="This interface is implemented by mesh objects that have some kind of lighting system...">iLightingInfo</a>;
<a name="l00038"></a>00038 <span class="keyword">struct </span><a class="code" href="structiLODControl.html" title="The iLODControl interface represents an object that has controllable LOD features...">iLODControl</a>;
<a name="l00039"></a>00039 <span class="keyword">struct </span><a class="code" href="structiMeshFactoryList.html" title="A list of mesh factories.">iMeshFactoryList</a>;
<a name="l00040"></a>00040 <span class="keyword">struct </span><a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a>;
<a name="l00041"></a>00041 <span class="keyword">struct </span><a class="code" href="structiMeshList.html" title="A list of meshes.">iMeshList</a>;
<a name="l00042"></a>00042 <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="l00043"></a>00043 <span class="keyword">struct </span><a class="code" href="structiMeshObjectFactory.html" title="This object is a factory which can generate mesh objects of a certain type.">iMeshObjectFactory</a>;
<a name="l00044"></a>00044 <span class="keyword">struct </span><a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>;
<a name="l00045"></a>00045 <span class="keyword">struct </span><a class="code" href="structiMovable.html" title="This interface represents the position and orientation of an object relative to its...">iMovable</a>;
<a name="l00046"></a>00046 <span class="keyword">struct </span><a class="code" href="structiObject.html" title="This interface is an SCF interface for encapsulating csObject.">iObject</a>;
<a name="l00047"></a>00047 <span class="keyword">struct </span><a class="code" href="structiPortalContainer.html" title="A container for portals.">iPortalContainer</a>;
<a name="l00048"></a>00048 <span class="keyword">struct </span><a class="code" href="structiRenderView.html" title="This interface represents all information needed to render some object in a current...">iRenderView</a>;
<a name="l00049"></a>00049 <span class="keyword">struct </span><a class="code" href="structiShaderVariableContext.html" title="This is a baseclass for all interfaces which provides shadervariables both dynamically...">iShaderVariableContext</a>;
<a name="l00050"></a>00050 <span class="keyword">struct </span><a class="code" href="structiShadowCaster.html" title="An object that can cast shadows.">iShadowCaster</a>;
<a name="l00051"></a>00051 <span class="keyword">struct </span><a class="code" href="structiShadowReceiver.html" title="An object that is interested in getting shadow information.">iShadowReceiver</a>;
<a name="l00052"></a>00052 <span class="keyword">struct </span><a class="code" href="structiSharedVariable.html" title="iSharedVariable implements a refcounted value which can be shared across many objects...">iSharedVariable</a>;
<a name="l00053"></a>00053 <span class="keyword">struct </span><a class="code" href="structiSceneNode.html" title="This interface represents a node in the scene graph.">iSceneNode</a>;
<a name="l00054"></a>00054 <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="l00055"></a>00055 
<a name="l00056"></a>00056 <span class="keyword">struct </span><a class="code" href="structcsRenderMesh.html" title="Mesh data as returned by mesh plugins.">csRenderMesh</a>;
<a name="l00057"></a>00057 
<a name="l00058"></a>00058 <span class="keyword">class </span><a class="code" href="classcsEllipsoid.html" title="This class represents an ellipsoid.">csEllipsoid</a>;
<a name="l00059"></a>00059 <span class="keyword">class </span><a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a>;
<a name="l00060"></a>00060 <span class="keyword">class </span><a class="code" href="classcsReversibleTransform.html" title="A class which defines a reversible transformation from one coordinate system to another...">csReversibleTransform</a>;
<a name="l00061"></a>00061 
<a name="l00072"></a><a class="code" href="group__engine3d__meshes.html#gb1920b5b57dec88cadcf530ce789a848">00072</a> <span class="preprocessor">#define CS_ENTITY_DETAIL 2</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span>
<a name="l00082"></a><a class="code" href="group__engine3d__meshes.html#g707edf89325bf63f948e740ff3ae841c">00082</a> <span class="preprocessor">#define CS_ENTITY_CAMERA 4</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span>
<a name="l00091"></a><a class="code" href="group__engine3d__meshes.html#g640f3681a716875d98661b8a8dd1394d">00091</a> <span class="preprocessor">#define CS_ENTITY_INVISIBLEMESH 8</span>
<a name="l00092"></a>00092 <span class="preprocessor"></span>
<a name="l00099"></a><a class="code" href="group__engine3d__meshes.html#g269b4b29e2953b196ff15c97fe1ea37b">00099</a> <span class="preprocessor">#define CS_ENTITY_INVISIBLE (CS_ENTITY_INVISIBLEMESH+CS_ENTITY_NOHITBEAM)</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span>
<a name="l00106"></a><a class="code" href="group__engine3d__meshes.html#g827afa4789cbc9ddfebf824510ad710c">00106</a> <span class="preprocessor">#define CS_ENTITY_NOSHADOWS 16</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span>
<a name="l00113"></a><a class="code" href="group__engine3d__meshes.html#g4dc1fb513d52e66b5c9b4833c8771ccd">00113</a> <span class="preprocessor">#define CS_ENTITY_NOLIGHTING 32</span>
<a name="l00114"></a>00114 <span class="preprocessor"></span>
<a name="l00119"></a><a class="code" href="group__engine3d__meshes.html#ge4dafd5346026834b4c9a229cc1dc8d7">00119</a> <span class="preprocessor">#define CS_ENTITY_NOHITBEAM 64</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span>
<a name="l00130"></a><a class="code" href="group__engine3d__meshes.html#g71b0c1c932e7b49e5465da3479224395">00130</a> <span class="preprocessor">#define CS_ENTITY_NOCLIP 128</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span>
<a name="l00135"></a><a class="code" href="group__engine3d__meshes.html#g54e0c62b04d956e6221ebda445402336">00135</a> <span class="preprocessor">#define CS_ENTITY_NODECAL 256</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span>
<a name="l00147"></a><a class="code" href="group__engine3d__meshes.html#gb215af68fa119427a3ab2c109c55cf58">00147</a> <span class="preprocessor">#define CS_LIGHTINGUPDATE_SORTRELEVANCE 1</span>
<a name="l00148"></a>00148 <span class="preprocessor"></span>
<a name="l00155"></a><a class="code" href="group__engine3d__meshes.html#gff41cd726d268a3521cbfcc5a26710e9">00155</a> <span class="preprocessor">#define CS_LIGHTINGUPDATE_ALWAYSUPDATE 2</span>
<a name="l00156"></a>00156 <span class="preprocessor"></span>
<a name="l00170"></a><a class="code" href="structiMeshDrawCallback.html">00170</a> <span class="keyword">struct </span><a class="code" href="structiMeshDrawCallback.html" title="Set a callback which is called just before the object is drawn.">iMeshDrawCallback</a> : <span class="keyword">public</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="l00171"></a>00171 {
<a name="l00172"></a>00172   SCF_INTERFACE (<a class="code" href="structiMeshDrawCallback.html" title="Set a callback which is called just before the object is drawn.">iMeshDrawCallback</a>, 0, 0, 1);
<a name="l00173"></a>00173 
<a name="l00178"></a>00178   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiMeshDrawCallback.html#187e340575fe7100fb340b40c5786021" title="Before drawing.">BeforeDrawing</a> (<a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>* spr, <a class="code" href="structiRenderView.html" title="This interface represents all information needed to render some object in a current...">iRenderView</a>* rview) = 0;
<a name="l00179"></a>00179 };
<a name="l00180"></a>00180 
<a name="l00184"></a><a class="code" href="structcsHitBeamResult.html">00184</a> <span class="keyword">struct </span><a class="code" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&amp;gt;HitBeam() routines.">csHitBeamResult</a>
<a name="l00185"></a>00185 {
<a name="l00187"></a><a class="code" href="structcsHitBeamResult.html#08fecfc060ce8bd85a8460543fc520ea">00187</a>   <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structcsHitBeamResult.html#08fecfc060ce8bd85a8460543fc520ea" title="Intersection point in object space.">isect</a>;
<a name="l00192"></a><a class="code" href="structcsHitBeamResult.html#ee3b9a6e18a75c078e87f533d127b739">00192</a>   <span class="keywordtype">float</span> <a class="code" href="structcsHitBeamResult.html#ee3b9a6e18a75c078e87f533d127b739" title="Value between 0 and 1 indicating where on the segment the intersection occured.">r</a>;
<a name="l00194"></a><a class="code" href="structcsHitBeamResult.html#8e98abb2b27f2edf4e861be8bcca3b0a">00194</a>   <span class="keywordtype">int</span> <a class="code" href="structcsHitBeamResult.html#8e98abb2b27f2edf4e861be8bcca3b0a" title="Only for HitBeamObject: the polygon/triangle index that was hit.">polygon_idx</a>;
<a name="l00199"></a><a class="code" href="structcsHitBeamResult.html#6c21e89b7987ca77ec18cfe60096bcae">00199</a>   <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="structcsHitBeamResult.html#6c21e89b7987ca77ec18cfe60096bcae" title="Only for HitBeamObject and HitBeam: the material that was hit.">material</a>;
<a name="l00204"></a><a class="code" href="structcsHitBeamResult.html#5788e3ed7e5e19f5b9fb9aaa94f7503c">00204</a>   <span class="keywordtype">int</span> <a class="code" href="structcsHitBeamResult.html#5788e3ed7e5e19f5b9fb9aaa94f7503c" title="Only for HitBeamBBox: Face number that was hit.">facehit</a>;
<a name="l00208"></a><a class="code" href="structcsHitBeamResult.html#330c6d9463688941e787ed02532a4227">00208</a>   <span class="keywordtype">bool</span> <a class="code" href="structcsHitBeamResult.html#330c6d9463688941e787ed02532a4227" title="For all except HitBeamBBox: true if hit, false otherwise.">hit</a>;
<a name="l00209"></a>00209 };
<a name="l00210"></a>00210 
<a name="l00214"></a><a class="code" href="structcsScreenBoxResult.html">00214</a> <span class="keyword">struct </span><a class="code" href="structcsScreenBoxResult.html" title="Return structure for iMeshWrapper-&amp;gt;GetScreenBoundingBox().">csScreenBoxResult</a>
<a name="l00215"></a>00215 {
<a name="l00217"></a><a class="code" href="structcsScreenBoxResult.html#0f93223749d87a5f56fd155a8231ebcb">00217</a>   <a class="code" href="classcsBox2.html" title="A bounding box in 2D space.">csBox2</a> <a class="code" href="structcsScreenBoxResult.html#0f93223749d87a5f56fd155a8231ebcb" title="2D box in screen space.">sbox</a>;
<a name="l00219"></a><a class="code" href="structcsScreenBoxResult.html#d5cc16b6754c056144c543a6db821367">00219</a>   <a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a> <a class="code" href="structcsScreenBoxResult.html#d5cc16b6754c056144c543a6db821367" title="3D box in camera space.">cbox</a>;
<a name="l00224"></a><a class="code" href="structcsScreenBoxResult.html#8ae795d3ecf4c230d20f40340a9e047d">00224</a>   <span class="keywordtype">float</span> <a class="code" href="structcsScreenBoxResult.html#8ae795d3ecf4c230d20f40340a9e047d" title="-1 if object behind the camera or else the distance between the camera and the furthest...">distance</a>;
<a name="l00225"></a>00225 };
<a name="l00226"></a>00226 
<a name="l00258"></a><a class="code" href="structiMeshWrapper.html">00258</a> <span class="keyword">struct </span><a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</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="l00259"></a>00259 {
<a name="l00260"></a>00260   SCF_INTERFACE(<a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>, 2, 2, 0);
<a name="l00261"></a>00261 
<a name="l00267"></a>00267   <span class="keyword">virtual</span> <a class="code" href="structiObject.html" title="This interface is an SCF interface for encapsulating csObject.">iObject</a> *<a class="code" href="structiMeshWrapper.html#3c03370a1a95e5f19326dfb7464cd5c1" title="Get the iObject for this mesh object.">QueryObject</a> () = 0;
<a name="l00268"></a>00268 
<a name="l00270"></a>00270   <span class="keyword">virtual</span> <a class="code" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>* <a class="code" href="structiMeshWrapper.html#941b6ca24a1560e9c7d54b317c743316" title="Get the iMeshObject.">GetMeshObject</a> () <span class="keyword">const</span> = 0;
<a name="l00272"></a>00272   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#8f5dc9e0e94ada4c5e3fb5759261c462" title="Set the iMeshObject.">SetMeshObject</a> (<a class="code" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>*) = 0;
<a name="l00277"></a>00277   <span class="keyword">virtual</span> <a class="code" href="structiPortalContainer.html" title="A container for portals.">iPortalContainer</a>* <a class="code" href="structiMeshWrapper.html#14fbaa0112165da766d9942b91c52994" title="If this mesh is a portal container you can use GetPortalContainer() to get the portal...">GetPortalContainer</a> () <span class="keyword">const</span> = 0;
<a name="l00278"></a>00278 
<a name="l00285"></a>00285   <span class="keyword">virtual</span> <a class="code" href="structiLightingInfo.html" title="This interface is implemented by mesh objects that have some kind of lighting system...">iLightingInfo</a>* <a class="code" href="structiMeshWrapper.html#cf689c6cb3d6964c83fb21dc788cbc4d" title="Get the optional lighting information that is implemented by this mesh object.">GetLightingInfo</a> () <span class="keyword">const</span> = 0;
<a name="l00286"></a>00286 
<a name="l00298"></a>00298   <span class="keyword">virtual</span> <a class="code" href="structiShadowReceiver.html" title="An object that is interested in getting shadow information.">iShadowReceiver</a>* <a class="code" href="structiMeshWrapper.html#5c69bc0f9fcb5db03b540fbbbfbfba2f" title="Get the optional shadow receiver that is implemented by this mesh object.">GetShadowReceiver</a> () = 0;
<a name="l00299"></a>00299 
<a name="l00310"></a>00310   <span class="keyword">virtual</span> <a class="code" href="structiShadowCaster.html" title="An object that can cast shadows.">iShadowCaster</a>* <a class="code" href="structiMeshWrapper.html#5cde052eb06634a18e7306bc553e4f67" title="Get the optional shadow caster that is implemented by this mesh object.">GetShadowCaster</a> () = 0;
<a name="l00311"></a>00311 
<a name="l00313"></a>00313   <span class="keyword">virtual</span> <a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a> *<a class="code" href="structiMeshWrapper.html#dd1ff9119046dbff3683492232001ee9" title="Get the parent factory.">GetFactory</a> () <span class="keyword">const</span> = 0;
<a name="l00315"></a>00315   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#c0e801dfedf106b29d42ecbdf0f9b1c1" title="Set the parent factory (this only sets a pointer).">SetFactory</a> (<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a>* factory) = 0;
<a name="l00316"></a>00316 
<a name="l00330"></a>00330   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#3d8d4f93c270056485e9d5ce9bbb736c" title="Control how lighting updates should take place.">SetLightingUpdate</a> (<span class="keywordtype">int</span> flags, <span class="keywordtype">int</span> num_lights) = 0;
<a name="l00331"></a>00331 
<a name="l00339"></a>00339   <span class="keyword">virtual</span> <a class="code" href="structiMovable.html" title="This interface represents the position and orientation of an object relative to its...">iMovable</a>* <a class="code" href="structiMeshWrapper.html#be24a82741ed41c16658b8542fd4ca64" title="Get the movable instance for this object.">GetMovable</a> () <span class="keyword">const</span> = 0;
<a name="l00340"></a>00340 
<a name="l00344"></a>00344   <span class="keyword">virtual</span> <a class="code" href="structiSceneNode.html" title="This interface represents a node in the scene graph.">iSceneNode</a>* <a class="code" href="structiMeshWrapper.html#eb7e6250d1212132215b2bc22e88a63b" title="Get the scene node that this object represents.">QuerySceneNode</a> () = 0;
<a name="l00345"></a>00345 
<a name="l00351"></a>00351   <span class="keyword">virtual</span> <a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>* <a class="code" href="structiMeshWrapper.html#fdfdc758653dec7a0f7563e7a8295a3c" title="Find a child mesh by name.">FindChildByName</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* name) = 0;
<a name="l00352"></a>00352 
<a name="l00370"></a>00370   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#3fe38af938d8e712f04dfdfab928080c" title="This routine will find out in which sectors a mesh object is positioned.">PlaceMesh</a> () = 0;
<a name="l00371"></a>00371 
<a name="l00382"></a>00382   <span class="keyword">virtual</span> <a class="code" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&amp;gt;HitBeam() routines.">csHitBeamResult</a> <a class="code" href="structiMeshWrapper.html#8d6fd047d7de1a9e012506a28d8de201" title="Check if this mesh is hit by this object space vector.">HitBeamBBox</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start,
<a name="l00383"></a>00383         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end) = 0;
<a name="l00384"></a>00384 
<a name="l00390"></a>00390   <span class="keyword">virtual</span> <a class="code" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&amp;gt;HitBeam() routines.">csHitBeamResult</a> <a class="code" href="structiMeshWrapper.html#d53f9a354edfaef38d9f96ea8f2959dc" title="Check if this object is hit by this object space vector.">HitBeamOutline</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start,
<a name="l00391"></a>00391         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end) = 0;
<a name="l00392"></a>00392 
<a name="l00402"></a>00402   <span class="keyword">virtual</span> <a class="code" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&amp;gt;HitBeam() routines.">csHitBeamResult</a> <a class="code" href="structiMeshWrapper.html#f228a9e920829e92bb3d0f4ef8bdfbb0" title="Check if this object is hit by this object space vector.">HitBeamObject</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start,
<a name="l00403"></a>00403         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end, <span class="keywordtype">bool</span> do_material = <span class="keyword">false</span>) = 0;
<a name="l00404"></a>00404 
<a name="l00413"></a>00413   <span class="keyword">virtual</span> <a class="code" href="structcsHitBeamResult.html" title="Return structure for the iMeshWrapper-&amp;gt;HitBeam() routines.">csHitBeamResult</a> <a class="code" href="structiMeshWrapper.html#64f423079b21ccd61e3b8b5ccda8e027" title="Check if this object is hit by this world space vector.">HitBeam</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start,
<a name="l00414"></a>00414         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end, <span class="keywordtype">bool</span> do_material = <span class="keyword">false</span>) = 0;
<a name="l00415"></a>00415 
<a name="l00424"></a>00424   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#0c2d95aae5b52b729691f450e1f9d065" title="Set a callback which is called just before the object is drawn.">SetDrawCallback</a> (<a class="code" href="structiMeshDrawCallback.html" title="Set a callback which is called just before the object is drawn.">iMeshDrawCallback</a>* cb) = 0;
<a name="l00425"></a>00425 
<a name="l00429"></a>00429   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#a596276cba50ac076f57f61b8a8fc363" title="Remove a draw callback.">RemoveDrawCallback</a> (<a class="code" href="structiMeshDrawCallback.html" title="Set a callback which is called just before the object is drawn.">iMeshDrawCallback</a>* cb) = 0;
<a name="l00430"></a>00430 
<a name="l00432"></a>00432   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshWrapper.html#041594586dab81b736766a86c9bedffd" title="Get the number of draw callbacks.">GetDrawCallbackCount</a> () <span class="keyword">const</span> = 0;
<a name="l00433"></a>00433 
<a name="l00435"></a>00435   <span class="keyword">virtual</span> <a class="code" href="structiMeshDrawCallback.html" title="Set a callback which is called just before the object is drawn.">iMeshDrawCallback</a>* <a class="code" href="structiMeshWrapper.html#ba09c505c41dc5fa81b78b367a92db55" title="Get the specified draw callback.">GetDrawCallback</a> (<span class="keywordtype">int</span> idx) <span class="keyword">const</span> = 0;
<a name="l00436"></a>00436 
<a name="l00451"></a>00451   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#49317bed70ed0ab118bde6e9cfd03988" title="The renderer will render all objects in a sector based on this number.">SetRenderPriority</a> (<span class="keywordtype">long</span> rp) = 0;
<a name="l00455"></a>00455   <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="structiMeshWrapper.html#4bb76e465d11e84545fe36042e57a189" title="Get the render priority.">GetRenderPriority</a> () <span class="keyword">const</span> = 0;
<a name="l00456"></a>00456 
<a name="l00461"></a>00461   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#5a1317766ed59fa8e6361b0713d46c45" title="Same as SetRenderPriority() but this version will recursively set render priority...">SetRenderPriorityRecursive</a> (<span class="keywordtype">long</span> rp) = 0;
<a name="l00462"></a>00462 
<a name="l00481"></a>00481   <span class="keyword">virtual</span> <a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a>&amp; <a class="code" href="structiMeshWrapper.html#71675a858d19e109944dcaa98355d310" title="Get flags for this meshwrapper.">GetFlags</a> () = 0;
<a name="l00482"></a>00482 
<a name="l00501"></a>00501   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#37be83c35cc3acde417f0e287903cda9" title="Set some flags with the given mask for this mesh and all children.">SetFlagsRecursive</a> (<a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> mask, <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> flags = ~0) = 0;
<a name="l00502"></a>00502 
<a name="l00511"></a>00511   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#6e99c9eec4682b3e89a51fcb3b777a98" title="Set the Z-buf drawing mode to use for this object.">SetZBufMode</a> (<a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> mode) = 0;
<a name="l00515"></a>00515   <span class="keyword">virtual</span> <a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> <a class="code" href="structiMeshWrapper.html#144522dd067e56b98a68a6a25194f5ac" title="Get the Z-buf drawing mode.">GetZBufMode</a> () <span class="keyword">const</span> = 0;
<a name="l00520"></a>00520   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#8fc03d28b092a33286c3261a50a7f75c" title="Same as SetZBufMode() but this will also set the z-buf mode for the children too...">SetZBufModeRecursive</a> (<a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> mode) = 0;
<a name="l00521"></a>00521 
<a name="l00536"></a>00536   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#bf19f5a4bdbe7a6f3eb6ab7e87ef1f10" title="Do a hard transform of this object.">HardTransform</a> (<span class="keyword">const</span> <a class="code" href="classcsReversibleTransform.html" title="A class which defines a reversible transformation from one coordinate system to another...">csReversibleTransform</a>&amp; t) = 0;
<a name="l00537"></a>00537 
<a name="l00543"></a>00543   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a>&amp; <a class="code" href="structiMeshWrapper.html#c85dc49014ed35c8792c5cca25a5e028" title="Get the bounding box of this object in world space.">GetWorldBoundingBox</a> () = 0;
<a name="l00544"></a>00544 
<a name="l00550"></a>00550   <span class="keyword">virtual</span> <a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a> <a class="code" href="structiMeshWrapper.html#4002caecc14cbc91f192ff10ce76e1e1" title="Get the bounding box of this object after applying a transformation to it.">GetTransformedBoundingBox</a> (
<a name="l00551"></a>00551         <span class="keyword">const</span> <a class="code" href="classcsReversibleTransform.html" title="A class which defines a reversible transformation from one coordinate system to another...">csReversibleTransform</a>&amp; trans) = 0;
<a name="l00552"></a>00552 
<a name="l00558"></a>00558   <span class="keyword">virtual</span> <a class="code" href="structcsScreenBoxResult.html" title="Return structure for iMeshWrapper-&amp;gt;GetScreenBoundingBox().">csScreenBoxResult</a> <a class="code" href="structiMeshWrapper.html#cd12949cddfc69b9f1abc6d03c6090f9" title="Get a very inaccurate bounding box of the object in screen space.">GetScreenBoundingBox</a> (<a class="code" href="structiCamera.html" title="Camera class.">iCamera</a>* camera) = 0;
<a name="l00559"></a>00559 
<a name="l00561"></a>00561   <span class="keyword">virtual</span> <a class="code" href="classcsSphere.html" title="This class represents a sphere.">csSphere</a> <a class="code" href="structiMeshWrapper.html#5d2687b29c5ac161ad0ea8380dba5218" title="Get the radius of this mesh and all its children.">GetRadius</a> () <span class="keyword">const</span> = 0;
<a name="l00562"></a>00562 
<a name="l00566"></a>00566   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#58292c30944252bcc4a698cbff943e2c" title="Reset minimum/maximum render range to defaults (i.e.">ResetMinMaxRenderDistance</a> () = 0;
<a name="l00567"></a>00567 
<a name="l00572"></a>00572   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#1924be3e9b435665f2a67e12478d4639" title="Set the minimum distance at which this mesh will be rendered.">SetMinimumRenderDistance</a> (<span class="keywordtype">float</span> min) = 0;
<a name="l00573"></a>00573 
<a name="l00577"></a>00577   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiMeshWrapper.html#e01f0c53a675f62d730ffc384edadcf4" title="Get the minimum distance at which this mesh will be rendered.">GetMinimumRenderDistance</a> () <span class="keyword">const</span> = 0;
<a name="l00578"></a>00578 
<a name="l00583"></a>00583   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#1e67a8e8330726ea09d092411d60d959" title="Set the maximum distance at which this mesh will be rendered.">SetMaximumRenderDistance</a> (<span class="keywordtype">float</span> min) = 0;
<a name="l00584"></a>00584 
<a name="l00588"></a>00588   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiMeshWrapper.html#267c36e1af97643deb934a23095a17ca" title="Get the maximum distance at which this mesh will be rendered.">GetMaximumRenderDistance</a> () <span class="keyword">const</span> = 0;
<a name="l00589"></a>00589 
<a name="l00595"></a>00595   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#acc7943c73efa69875421160ba71debb" title="Set the minimum distance at which this mesh will be rendered.">SetMinimumRenderDistanceVar</a> (<a class="code" href="structiSharedVariable.html" title="iSharedVariable implements a refcounted value which can be shared across many objects...">iSharedVariable</a>* min) = 0;
<a name="l00596"></a>00596 
<a name="l00601"></a>00601   <span class="keyword">virtual</span> <a class="code" href="structiSharedVariable.html" title="iSharedVariable implements a refcounted value which can be shared across many objects...">iSharedVariable</a>* <a class="code" href="structiMeshWrapper.html#08774d43c29b4b9efd0be5d8859df192" title="Get the minimum distance at which this mesh will be rendered.">GetMinimumRenderDistanceVar</a> () <span class="keyword">const</span> = 0;
<a name="l00602"></a>00602 
<a name="l00608"></a>00608   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#75768cf05f79e11790585665bb8b2306" title="Set the maximum distance at which this mesh will be rendered.">SetMaximumRenderDistanceVar</a> (<a class="code" href="structiSharedVariable.html" title="iSharedVariable implements a refcounted value which can be shared across many objects...">iSharedVariable</a>* min) = 0;
<a name="l00609"></a>00609 
<a name="l00614"></a>00614   <span class="keyword">virtual</span> <a class="code" href="structiSharedVariable.html" title="iSharedVariable implements a refcounted value which can be shared across many objects...">iSharedVariable</a>* <a class="code" href="structiMeshWrapper.html#7dd70379a77a82105de3275dddfdb2f4" title="Get the maximum distance at which this mesh will be rendered.">GetMaximumRenderDistanceVar</a> () <span class="keyword">const</span> = 0;
<a name="l00615"></a>00615 
<a name="l00622"></a>00622   <span class="keyword">virtual</span> <a class="code" href="structiLODControl.html" title="The iLODControl interface represents an object that has controllable LOD features...">iLODControl</a>* <a class="code" href="structiMeshWrapper.html#a8982f604cd3858a17aadcfa6dbf9804" title="Create a LOD control for this mesh wrapper.">CreateStaticLOD</a> () = 0;
<a name="l00623"></a>00623 
<a name="l00628"></a>00628   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#5058b807f744b0f6d69e0a1f0e5a7ee6" title="Destroy the LOD control for this mesh.">DestroyStaticLOD</a> () = 0;
<a name="l00629"></a>00629 
<a name="l00635"></a>00635   <span class="keyword">virtual</span> <a class="code" href="structiLODControl.html" title="The iLODControl interface represents an object that has controllable LOD features...">iLODControl</a>* <a class="code" href="structiMeshWrapper.html#e8749e2f870320ba01ae800a6f013265" title="Get the LOD control for this mesh.">GetStaticLOD</a> () = 0;
<a name="l00636"></a>00636 
<a name="l00641"></a>00641   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#24c741c969503de6ef6a69554ab91b6d" title="Set a given child mesh at a specific lod level.">AddMeshToStaticLOD</a> (<span class="keywordtype">int</span> lod, <a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>* mesh) = 0;
<a name="l00642"></a>00642 
<a name="l00647"></a>00647   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#0d926e6e53fa32a14e08136166c5fd89" title="Remove a child mesh from all lod levels.">RemoveMeshFromStaticLOD</a> (<a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>* mesh) = 0;
<a name="l00648"></a>00648 
<a name="l00652"></a>00652   <span class="keyword">virtual</span> <a class="code" href="structiShaderVariableContext.html" title="This is a baseclass for all interfaces which provides shadervariables both dynamically...">iShaderVariableContext</a>* <a class="code" href="structiMeshWrapper.html#487f3fb7d15f242526dc6f22873a9a22" title="Get the shader variable context of the mesh object.">GetSVContext</a>() = 0;
<a name="l00653"></a>00653 
<a name="l00659"></a>00659   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#06687df074e6388a776fcade11c5e715" title="Adds a render mesh to the list of extra render meshes.">AddExtraRenderMesh</a>(<a class="code" href="structcsRenderMesh.html" title="Mesh data as returned by mesh plugins.">csRenderMesh</a>* renderMesh, <span class="keywordtype">long</span> priority, 
<a name="l00660"></a>00660           <a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> zBufMode) = 0;
<a name="l00661"></a>00661 
<a name="l00665"></a>00665   <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="structiMeshWrapper.html#ef4916990026ee61c334255b7ea9ef85" title="Gets the priority of a specific extra rendermesh.">GetExtraRenderMeshPriority</a>(<span class="keywordtype">size_t</span> idx) <span class="keyword">const</span> = 0;
<a name="l00666"></a>00666 
<a name="l00670"></a>00670   <span class="keyword">virtual</span> <a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> <a class="code" href="structiMeshWrapper.html#b92d2b2c04a791c200f0ace900dc12bd" title="Gets the z-buffer mode of a specific extra rendermesh.">GetExtraRenderMeshZBufMode</a>(<span class="keywordtype">size_t</span> idx) <span class="keyword">const</span> = 0;
<a name="l00671"></a>00671 
<a name="l00675"></a>00675   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapper.html#2ba24118160101cd4dd9d80a39d44d99" title="Deletes a specific extra rendermesh.">RemoveExtraRenderMesh</a>(<a class="code" href="structcsRenderMesh.html" title="Mesh data as returned by mesh plugins.">csRenderMesh</a>* renderMesh) = 0;
<a name="l00676"></a>00676 };
<a name="l00677"></a>00677 
<a name="l00703"></a><a class="code" href="structiMeshFactoryWrapper.html">00703</a> <span class="keyword">struct </span><a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</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="l00704"></a>00704 {
<a name="l00705"></a>00705   SCF_INTERFACE(<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a>, 2,0,0);
<a name="l00707"></a>00707   <span class="keyword">virtual</span> <a class="code" href="structiObject.html" title="This interface is an SCF interface for encapsulating csObject.">iObject</a> *<a class="code" href="structiMeshFactoryWrapper.html#84cdcc607db3cb245c3ff39837732a8e" title="Get the iObject for this mesh factory.">QueryObject</a> () = 0;
<a name="l00709"></a>00709   <span class="keyword">virtual</span> <a class="code" href="structiMeshObjectFactory.html" title="This object is a factory which can generate mesh objects of a certain type.">iMeshObjectFactory</a>* <a class="code" href="structiMeshFactoryWrapper.html#f21ca8291b566e9cf3722ea3067b5c5e" title="Get the iMeshObjectFactory.">GetMeshObjectFactory</a> () <span class="keyword">const</span> = 0;
<a name="l00711"></a>00711   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#444b56d1933912598dffd3385c0740a7" title="Set the mesh object factory.">SetMeshObjectFactory</a> (<a class="code" href="structiMeshObjectFactory.html" title="This object is a factory which can generate mesh objects of a certain type.">iMeshObjectFactory</a>* fact) = 0;
<a name="l00721"></a>00721   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#6b691310177b4cab148a947ab4bea531" title="Do a hard transform of this factory.">HardTransform</a> (<span class="keyword">const</span> <a class="code" href="classcsReversibleTransform.html" title="A class which defines a reversible transformation from one coordinate system to another...">csReversibleTransform</a>&amp; t) = 0;
<a name="l00726"></a>00726   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iMeshWrapper&gt;</a> <a class="code" href="structiMeshFactoryWrapper.html#dd53955c8e686c1e39081bf84064c0a9" title="Create mesh objects from this factory.">CreateMeshWrapper</a> () = 0;
<a name="l00727"></a>00727 
<a name="l00747"></a>00747   <span class="keyword">virtual</span> <a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a>&amp; <a class="code" href="structiMeshFactoryWrapper.html#14a223ad4e8427aa57d54c740e4ffaf9" title="Get default flags for all meshes created from this factory.">GetFlags</a> () = 0;
<a name="l00748"></a>00748 
<a name="l00753"></a>00753   <span class="keyword">virtual</span> <a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a>* <a class="code" href="structiMeshFactoryWrapper.html#6341b20ac54a2ee82bb558c44da93a28" title="Get the parent of this factory.">GetParentContainer</a> () <span class="keyword">const</span> = 0;
<a name="l00758"></a>00758   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#7b1cee4bc266ead166aa467c505a3d50" title="Set the parent of this factory.">SetParentContainer</a> (<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a> *p) = 0;
<a name="l00759"></a>00759 
<a name="l00763"></a>00763   <span class="keyword">virtual</span> <a class="code" href="structiMeshFactoryList.html" title="A list of mesh factories.">iMeshFactoryList</a>* <a class="code" href="structiMeshFactoryWrapper.html#54ffa9f5b41db46eb336a3647e5e7659" title="Get all the children of this mesh factory.">GetChildren</a> () = 0;
<a name="l00764"></a>00764 
<a name="l00768"></a>00768   <span class="keyword">virtual</span> <a class="code" href="classcsReversibleTransform.html" title="A class which defines a reversible transformation from one coordinate system to another...">csReversibleTransform</a>&amp; <a class="code" href="structiMeshFactoryWrapper.html#f299d25b03a318019ddf868af14e27ad" title="Get optional relative transform (relative to parent).">GetTransform</a> () = 0;
<a name="l00769"></a>00769 
<a name="l00773"></a>00773   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#05feabfcfc058955c28e7509b226819a" title="Set optional relative transform (relative to parent).">SetTransform</a> (<span class="keyword">const</span> <a class="code" href="classcsReversibleTransform.html" title="A class which defines a reversible transformation from one coordinate system to another...">csReversibleTransform</a>&amp; tr) = 0;
<a name="l00774"></a>00774 
<a name="l00781"></a>00781   <span class="keyword">virtual</span> <a class="code" href="structiLODControl.html" title="The iLODControl interface represents an object that has controllable LOD features...">iLODControl</a>* <a class="code" href="structiMeshFactoryWrapper.html#f8439159d724d12029295127b749d2e7" title="Create a LOD control template for this factory.">CreateStaticLOD</a> () = 0;
<a name="l00782"></a>00782 
<a name="l00786"></a>00786   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#c2083dc824205728e39b44e4dbf2f267" title="Destroy the LOD control for this factory.">DestroyStaticLOD</a> () = 0;
<a name="l00787"></a>00787 
<a name="l00793"></a>00793   <span class="keyword">virtual</span> <a class="code" href="structiLODControl.html" title="The iLODControl interface represents an object that has controllable LOD features...">iLODControl</a>* <a class="code" href="structiMeshFactoryWrapper.html#54b68bc63093df2633700fbb847c3ac8" title="Get the LOD control for this factory.">GetStaticLOD</a> () = 0;
<a name="l00794"></a>00794 
<a name="l00802"></a>00802   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#5d94d64bb8b0dbc09ec74122a9c7807b" title="Set the LOD function parameters for this factory.">SetStaticLOD</a> (<span class="keywordtype">float</span> m, <span class="keywordtype">float</span> a) = 0;
<a name="l00803"></a>00803 
<a name="l00807"></a>00807   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#54b68bc63093df2633700fbb847c3ac8" title="Get the LOD control for this factory.">GetStaticLOD</a> (<span class="keywordtype">float</span>&amp; m, <span class="keywordtype">float</span>&amp; a) <span class="keyword">const</span> = 0;
<a name="l00808"></a>00808 
<a name="l00813"></a>00813   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#501a09cb71871c4d93fdc3f037e85b3d" title="Set a given child factory at a specific lod level.">AddFactoryToStaticLOD</a> (<span class="keywordtype">int</span> lod, <a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a>* fact) = 0;
<a name="l00814"></a>00814 
<a name="l00819"></a>00819   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#aa844634b363ab8cec4976626342e051" title="Remove a child factory from all lod levels.">RemoveFactoryFromStaticLOD</a> (<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a>* fact) = 0;
<a name="l00820"></a>00820 
<a name="l00830"></a>00830   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#841935f5106cfc95dd85426e929eb6e2" title="Set the Z-buf drawing mode to use for this factory.">SetZBufMode</a> (<a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> mode) = 0;
<a name="l00834"></a>00834   <span class="keyword">virtual</span> <a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> <a class="code" href="structiMeshFactoryWrapper.html#df9c4a6e1f7454aba9c44928fc154f81" title="Get the Z-buf drawing mode.">GetZBufMode</a> () <span class="keyword">const</span> = 0;
<a name="l00839"></a>00839   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#f60b6d624bb79b1e2f6fae6a844b2e81" title="Same as SetZBufMode() but this will also set the z-buf mode for the children too...">SetZBufModeRecursive</a> (<a class="code" href="group__gfx3d.html#g79fdaed7abd7a72af33d0f0c5dc99055" title="Z-buffer modes.">csZBufMode</a> mode) = 0;
<a name="l00840"></a>00840 
<a name="l00856"></a>00856   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#4c11ee7ff112bc7ea2653e51258efd37" title="The renderer will render all objects in a sector based on this number.">SetRenderPriority</a> (<span class="keywordtype">long</span> rp) = 0;
<a name="l00860"></a>00860   <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="structiMeshFactoryWrapper.html#5011165a54f0027ca8cc9a943033f80a" title="Get the render priority.">GetRenderPriority</a> () <span class="keyword">const</span> = 0;
<a name="l00861"></a>00861 
<a name="l00866"></a>00866   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryWrapper.html#9c7c65e11e850f3f9b024a9e25f0a529" title="Same as SetRenderPriority() but this version will recursively set render priority...">SetRenderPriorityRecursive</a> (<span class="keywordtype">long</span> rp) = 0;
<a name="l00867"></a>00867 
<a name="l00871"></a>00871   <span class="keyword">virtual</span> <a class="code" href="structiShaderVariableContext.html" title="This is a baseclass for all interfaces which provides shadervariables both dynamically...">iShaderVariableContext</a>* <a class="code" href="structiMeshFactoryWrapper.html#1d50c1835748b763839e1094fc78c881" title="Get the shader variable context of the mesh factory.">GetSVContext</a>() = 0;
<a name="l00872"></a>00872 };
<a name="l00873"></a>00873 
<a name="l00884"></a><a class="code" href="structiMeshList.html">00884</a> <span class="keyword">struct </span><a class="code" href="structiMeshList.html" title="A list of meshes.">iMeshList</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="l00885"></a>00885 {
<a name="l00886"></a>00886   SCF_INTERFACE(<a class="code" href="structiMeshList.html" title="A list of meshes.">iMeshList</a>, 2,0,0);
<a name="l00888"></a>00888   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshList.html#08a67c6e8e69b6ac51656faf0d80a652" title="Return the number of meshes in this list.">GetCount</a> () <span class="keyword">const</span> = 0;
<a name="l00889"></a>00889 
<a name="l00891"></a>00891   <span class="keyword">virtual</span> <a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a> *<a class="code" href="structiMeshList.html#b735893f66659f6bf9390b65e5af0665" title="Return a mesh by index.">Get</a> (<span class="keywordtype">int</span> n) <span class="keyword">const</span> = 0;
<a name="l00892"></a>00892 
<a name="l00894"></a>00894   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshList.html#d64c227db7bdf3e77f9cf7cb009d9046" title="Add a mesh.">Add</a> (<a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a> *obj) = 0;
<a name="l00895"></a>00895 
<a name="l00897"></a>00897   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiMeshList.html#34ee3dade53693f9272104c6c577591d" title="Remove a mesh.">Remove</a> (<a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a> *obj) = 0;
<a name="l00898"></a>00898 
<a name="l00900"></a>00900   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiMeshList.html#34ee3dade53693f9272104c6c577591d" title="Remove a mesh.">Remove</a> (<span class="keywordtype">int</span> n) = 0;
<a name="l00901"></a>00901 
<a name="l00903"></a>00903   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshList.html#15129d8813a2afb2d5e109cf7d5e0a9f" title="Remove all meshes.">RemoveAll</a> () = 0;
<a name="l00904"></a>00904 
<a name="l00906"></a>00906   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshList.html#bafa52787837eb42f24af4c1067d8656" title="Find a mesh and return its index.">Find</a> (<a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a> *obj) <span class="keyword">const</span> = 0;
<a name="l00907"></a>00907 
<a name="l00913"></a>00913   <span class="keyword">virtual</span> <a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a> *<a class="code" href="structiMeshList.html#55e25abf342fbef8d2b4e294bda2adfe" title="Find a mesh by name.">FindByName</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Name) <span class="keyword">const</span> = 0;
<a name="l00914"></a>00914 };
<a name="l00915"></a>00915 
<a name="l00926"></a><a class="code" href="structiMeshFactoryList.html">00926</a> <span class="keyword">struct </span><a class="code" href="structiMeshFactoryList.html" title="A list of mesh factories.">iMeshFactoryList</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="l00927"></a>00927 {
<a name="l00928"></a>00928   SCF_INTERFACE(<a class="code" href="structiMeshFactoryList.html" title="A list of mesh factories.">iMeshFactoryList</a>,2,0,0);
<a name="l00930"></a>00930   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshFactoryList.html#76470923638b6fae528778f92665fb2c" title="Return the number of mesh factory wrappers in this list.">GetCount</a> () <span class="keyword">const</span> = 0;
<a name="l00931"></a>00931 
<a name="l00933"></a>00933   <span class="keyword">virtual</span> <a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a> *<a class="code" href="structiMeshFactoryList.html#11f48348e2ff3e54a579d315cfd5338d" title="Return a mesh factory wrapper by index.">Get</a> (<span class="keywordtype">int</span> n) <span class="keyword">const</span> = 0;
<a name="l00934"></a>00934 
<a name="l00936"></a>00936   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshFactoryList.html#990eb6387eeae7e91c07df9c857ede67" title="Add a mesh factory wrapper.">Add</a> (<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a> *obj) = 0;
<a name="l00937"></a>00937 
<a name="l00939"></a>00939   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiMeshFactoryList.html#db39bf3ac1694635979843af1ef4e7a9" title="Remove a mesh factory wrapper.">Remove</a> (<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a> *obj) = 0;
<a name="l00940"></a>00940 
<a name="l00942"></a>00942   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiMeshFactoryList.html#db39bf3ac1694635979843af1ef4e7a9" title="Remove a mesh factory wrapper.">Remove</a> (<span class="keywordtype">int</span> n) = 0;
<a name="l00943"></a>00943 
<a name="l00945"></a>00945   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshFactoryList.html#1fe596e5538bf16aef18c7fbc0964076" title="Remove all mesh factory wrappers.">RemoveAll</a> () = 0;
<a name="l00946"></a>00946 
<a name="l00948"></a>00948   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshFactoryList.html#6d3f3d496aebf37b74d9b00b4a7e4bc9" title="Find a mesh factory wrapper and return its index.">Find</a> (<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a> *obj) <span class="keyword">const</span> = 0;
<a name="l00949"></a>00949 
<a name="l00951"></a>00951   <span class="keyword">virtual</span> <a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a> *<a class="code" href="structiMeshFactoryList.html#f6043d6efddfeca7ea38c44afe7fd943" title="Find a mesh factory wrapper by name.">FindByName</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Name) <span class="keyword">const</span> = 0;
<a name="l00952"></a>00952 };
<a name="l00953"></a>00953 
<a name="l00961"></a><a class="code" href="structiMeshWrapperIterator.html">00961</a> <span class="keyword">struct </span><a class="code" href="structiMeshWrapperIterator.html" title="This is an iterator mesh wrappers.">iMeshWrapperIterator</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="l00962"></a>00962 {
<a name="l00963"></a>00963   SCF_INTERFACE(<a class="code" href="structiMeshWrapperIterator.html" title="This is an iterator mesh wrappers.">iMeshWrapperIterator</a>,2,0,0);
<a name="l00965"></a>00965   <span class="keyword">virtual</span> <a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>* <a class="code" href="structiMeshWrapperIterator.html#8293198f972d8ae917de654d2873c074" title="Move forward.">Next</a> () = 0;
<a name="l00966"></a>00966 
<a name="l00968"></a>00968   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshWrapperIterator.html#01c57e4c65a6578a49f52a8a8cfb1c21" title="Reset the iterator to the beginning.">Reset</a> () = 0;
<a name="l00969"></a>00969 
<a name="l00971"></a>00971   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiMeshWrapperIterator.html#d17fd6c889648f67d80189e827df76c6" title="Check if we have any more meshes.">HasNext</a> () <span class="keyword">const</span> = 0;
<a name="l00972"></a>00972 };
<a name="l00973"></a>00973 
<a name="l00974"></a>00974 
<a name="l00977"></a>00977 <span class="preprocessor">#endif // __CS_IENGINE_MESH_H__</span>
<a name="l00978"></a>00978 <span class="preprocessor"></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>