<!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/thing.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/thing.h</h1><a href="thing_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) 1998-2003 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_THING_H__</span> <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IMESH_THING_H__</span> <a name="l00021"></a>00021 <span class="preprocessor"></span> <a name="l00022"></a>00022 <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="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="image_8h.html" title="Image interface.">igraphic/image.h</a>"</span> <a name="l00024"></a>00024 <a name="l00033"></a>00033 <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="l00034"></a>00034 <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="l00035"></a>00035 <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="l00036"></a>00036 <span class="keyword">struct </span><a class="code" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>; <a name="l00037"></a>00037 <span class="keyword">struct </span><a class="code" href="structiThingState.html" title="This is the state interface to access the internals of a thing mesh object.">iThingState</a>; <a name="l00038"></a>00038 <span class="keyword">struct </span><a class="code" href="structiThingFactoryState.html" title="This is the state interface to access the internals of a thing mesh factory.">iThingFactoryState</a>; <a name="l00039"></a>00039 <a name="l00040"></a>00040 <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="l00041"></a>00041 <span class="keyword">class </span><a class="code" href="classcsMatrix3.html" title="A 3x3 matrix.">csMatrix3</a>; <a name="l00042"></a>00042 <span class="keyword">class </span><a class="code" href="classcsPlane3.html" title="A plane in 3D space.">csPlane3</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 <a name="l00049"></a><a class="code" href="structcsPolygonRange.html">00049</a> <span class="keyword">struct </span><a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a> <a name="l00050"></a>00050 { <a name="l00051"></a><a class="code" href="structcsPolygonRange.html#7269a7b86d8a5cb3317aa4199c917515">00051</a> <span class="keywordtype">int</span> <a class="code" href="structcsPolygonRange.html#7269a7b86d8a5cb3317aa4199c917515">start</a>, <a class="code" href="structcsPolygonRange.html#f7062769ecbe7d6e73b0dbc01d713212">end</a>; <a name="l00052"></a><a class="code" href="structcsPolygonRange.html#30fccb426f581f367b9e0872ec3334ad">00052</a> <a class="code" href="structcsPolygonRange.html#30fccb426f581f367b9e0872ec3334ad">csPolygonRange</a> (<span class="keywordtype">int</span> <a class="code" href="structcsPolygonRange.html#7269a7b86d8a5cb3317aa4199c917515">start</a>, <span class="keywordtype">int</span> <a class="code" href="structcsPolygonRange.html#f7062769ecbe7d6e73b0dbc01d713212">end</a>) <a name="l00053"></a>00053 { <a name="l00054"></a>00054 <a class="code" href="structcsPolygonRange.html#7269a7b86d8a5cb3317aa4199c917515">csPolygonRange::start</a> = start; <a name="l00055"></a>00055 <a class="code" href="structcsPolygonRange.html#f7062769ecbe7d6e73b0dbc01d713212">csPolygonRange::end</a> = end; <a name="l00056"></a>00056 } <a name="l00057"></a><a class="code" href="structcsPolygonRange.html#651210f2296304ec811ea8176eff4004">00057</a> <span class="keywordtype">void</span> <a class="code" href="structcsPolygonRange.html#651210f2296304ec811ea8176eff4004">Set</a> (<span class="keywordtype">int</span> <a class="code" href="structcsPolygonRange.html#7269a7b86d8a5cb3317aa4199c917515">start</a>, <span class="keywordtype">int</span> <a class="code" href="structcsPolygonRange.html#f7062769ecbe7d6e73b0dbc01d713212">end</a>) <a name="l00058"></a>00058 { <a name="l00059"></a>00059 <a class="code" href="structcsPolygonRange.html#7269a7b86d8a5cb3317aa4199c917515">csPolygonRange::start</a> = start; <a name="l00060"></a>00060 <a class="code" href="structcsPolygonRange.html#f7062769ecbe7d6e73b0dbc01d713212">csPolygonRange::end</a> = end; <a name="l00061"></a>00061 } <a name="l00062"></a><a class="code" href="structcsPolygonRange.html#3845414905cac97575377b09fc5358c9">00062</a> <span class="keywordtype">void</span> <a class="code" href="structcsPolygonRange.html#651210f2296304ec811ea8176eff4004">Set</a> (<span class="keywordtype">int</span> idx) <a name="l00063"></a>00063 { <a name="l00064"></a>00064 <a class="code" href="structcsPolygonRange.html#7269a7b86d8a5cb3317aa4199c917515">csPolygonRange::start</a> = idx; <a name="l00065"></a>00065 <a class="code" href="structcsPolygonRange.html#f7062769ecbe7d6e73b0dbc01d713212">csPolygonRange::end</a> = idx; <a name="l00066"></a>00066 } <a name="l00067"></a>00067 }; <a name="l00068"></a>00068 <a name="l00075"></a><a class="code" href="group__meshplugins.html#g785e76fb2bbd8af48c4919d315d1d936">00075</a> <span class="preprocessor">#define CS_POLY_LIGHTING 0x00000001</span> <a name="l00076"></a>00076 <span class="preprocessor"></span> <a name="l00080"></a><a class="code" href="group__meshplugins.html#ga94c4f64d2258575754e840df308754c">00080</a> <span class="preprocessor">#define CS_POLY_COLLDET 0x00000002</span> <a name="l00081"></a>00081 <span class="preprocessor"></span> <a name="l00085"></a><a class="code" href="group__meshplugins.html#ga443a016d9a4c6e1f6c4d2409cabf58f">00085</a> <span class="preprocessor">#define CS_POLY_VISCULL 0x00000004</span> <a name="l00086"></a>00086 <span class="preprocessor"></span> <a name="l00094"></a><a class="code" href="group__meshplugins.html#g4fa7d91777e87a686154a08faba7d304">00094</a> <span class="preprocessor">#define CS_POLYRANGE(s1,s2) csPolygonRange (s1, s2)</span> <a name="l00095"></a>00095 <span class="preprocessor"></span> <a name="l00098"></a><a class="code" href="group__meshplugins.html#ga615294f72135020101807d8b8631311">00098</a> <span class="preprocessor">#define CS_POLYRANGE_SINGLE(idx) csPolygonRange (idx, idx)</span> <a name="l00099"></a>00099 <span class="preprocessor"></span> <a name="l00102"></a><a class="code" href="group__meshplugins.html#ge88034c04fb44285f1d003617e2580e1">00102</a> <span class="preprocessor">#define CS_POLYRANGE_LAST csPolygonRange (-1, -1)</span> <a name="l00103"></a>00103 <span class="preprocessor"></span> <a name="l00106"></a><a class="code" href="group__meshplugins.html#g40261d7889d8046cd9ef1869e1a1fca3">00106</a> <span class="preprocessor">#define CS_POLYRANGE_ALL csPolygonRange (0, 2000000000)</span> <a name="l00107"></a>00107 <span class="preprocessor"></span> <a name="l00112"></a><a class="code" href="group__meshplugins.html#g0b86ff5b7f9397c3a2308047822da46c">00112</a> <span class="preprocessor">#define CS_POLYINDEX_LAST -1</span> <a name="l00113"></a>00113 <span class="preprocessor"></span> <a name="l00122"></a><a class="code" href="group__meshplugins.html#g8406796c090505e26463aed79c333aeb">00122</a> <span class="preprocessor">#define CS_THING_NOCOMPRESS 0x00010000</span> <a name="l00123"></a>00123 <span class="preprocessor"></span> <a name="l00131"></a><a class="code" href="group__meshplugins.html#gc5f2b661887fad9b8c86b4a11e4a451e">00131</a> <span class="preprocessor">#define CS_THING_MOVE_NEVER 0</span> <a name="l00132"></a><a class="code" href="group__meshplugins.html#g657c1d04bda160221a9b0f06c7637757">00132</a> <span class="preprocessor"></span><span class="preprocessor">#define CS_THING_MOVE_OCCASIONAL 2</span> <a name="l00133"></a>00133 <span class="preprocessor"></span> <a name="l00152"></a><a class="code" href="structiPolygonHandle.html">00152</a> <span class="keyword">struct </span><a class="code" href="structiPolygonHandle.html" title="This is an interface that can be used to represent a polygon in situations where...">iPolygonHandle</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="l00153"></a>00153 { <a name="l00154"></a>00154 SCF_INTERFACE (<a class="code" href="structiPolygonHandle.html" title="This is an interface that can be used to represent a polygon in situations where...">iPolygonHandle</a>, 1, 0, 0); <a name="l00155"></a>00155 <a name="l00160"></a>00160 <span class="keyword">virtual</span> <a class="code" href="structiThingFactoryState.html" title="This is the state interface to access the internals of a thing mesh factory.">iThingFactoryState</a>* <a class="code" href="structiPolygonHandle.html#7ff071c0ee24633fc8b1e9789581fb8b" title="Get the factory state for this polygon.">GetThingFactoryState</a> () <span class="keyword">const</span> = 0; <a name="l00161"></a>00161 <a name="l00166"></a>00166 <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="structiPolygonHandle.html#b24c27b9390b466b0e4f42d2ad82ad1d" title="Get the mesh object factory for this polygon.">GetMeshObjectFactory</a> () <span class="keyword">const</span> = 0; <a name="l00167"></a>00167 <a name="l00172"></a>00172 <span class="keyword">virtual</span> <a class="code" href="structiThingState.html" title="This is the state interface to access the internals of a thing mesh object.">iThingState</a>* <a class="code" href="structiPolygonHandle.html#1449bea0c51b37261b11bb670cca80d6" title="Get the instance of this polygon.">GetThingState</a> () <span class="keyword">const</span> = 0; <a name="l00173"></a>00173 <a name="l00178"></a>00178 <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="structiPolygonHandle.html#4c030e3fec7efe91423cee5852c28575" title="Get the mesh object of this polygon.">GetMeshObject</a> () <span class="keyword">const</span> = 0; <a name="l00179"></a>00179 <a name="l00183"></a>00183 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiPolygonHandle.html#60585ad3aa1f0c852d144b9dc0110c8e" title="Get the polygon index which this polygon handle represents.">GetIndex</a> () <span class="keyword">const</span> = 0; <a name="l00184"></a>00184 }; <a name="l00185"></a>00185 <a name="l00186"></a>00186 <a name="l00203"></a><a class="code" href="structiThingFactoryState.html">00203</a> <span class="keyword">struct </span><a class="code" href="structiThingFactoryState.html" title="This is the state interface to access the internals of a thing mesh factory.">iThingFactoryState</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="l00204"></a>00204 { <a name="l00205"></a>00205 SCF_INTERFACE(<a class="code" href="structiThingFactoryState.html" title="This is the state interface to access the internals of a thing mesh factory.">iThingFactoryState</a>, 2, 0, 1); <a name="l00206"></a>00206 <a name="l00215"></a>00215 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#8faa18b1b64fd34115174e703adac632" title="Compress the vertex table so that all nearly identical vertices are compressed.">CompressVertices</a> () = 0; <a name="l00216"></a>00216 <a name="l00218"></a>00218 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#c04a24183471d684c5515c2e82ed9d7c" title="Query number of polygons in this thing.">GetPolygonCount</a> () = 0; <a name="l00220"></a>00220 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#bfec158dc6b52a6ae3312f46610885a9" title="Delete a polygon given an index.">RemovePolygon</a> (<span class="keywordtype">int</span> idx) = 0; <a name="l00222"></a>00222 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#f7d0c13e10cf27e1fff40fd04958a45a" title="Delete all polygons.">RemovePolygons</a> () = 0; <a name="l00223"></a>00223 <a name="l00225"></a>00225 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#0dcfefb5551a26a95d9c8f44ea3a95f7" title="Find a polygon index with a name.">FindPolygonByName</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* name) = 0; <a name="l00226"></a>00226 <a name="l00231"></a>00231 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#b690d2f74ebcb327688c2aa6c1b95414" title="Add an empty polygon.">AddEmptyPolygon</a> () = 0; <a name="l00232"></a>00232 <a name="l00243"></a>00243 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#ca8cdb92b550a8981c638ce4706e7927" title="Add a triangle.">AddTriangle</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v1, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v2, <a name="l00244"></a>00244 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v3) = 0; <a name="l00256"></a>00256 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#c1929d42ac17fb2526f8fa0ef158b774" title="Add a quad.">AddQuad</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v1, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v2, <a name="l00257"></a>00257 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v3, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v4) = 0; <a name="l00258"></a>00258 <a name="l00269"></a>00269 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#7bbca8871ce7ed9a85ca0d6e9b7a895d" title="Add a general polygon.">AddPolygon</a> (<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* vertices, <span class="keywordtype">int</span> num) = 0; <a name="l00270"></a>00270 <a name="l00281"></a>00281 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#7bbca8871ce7ed9a85ca0d6e9b7a895d" title="Add a general polygon.">AddPolygon</a> (<span class="keywordtype">int</span> num, ...) = 0; <a name="l00282"></a>00282 <a name="l00293"></a>00293 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#2b55c3fd2e0f413bb2fbd12518cecb85" title="Add a box that can be seen from the outside.">AddOutsideBox</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& bmin, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& bmax) = 0; <a name="l00294"></a>00294 <a name="l00305"></a>00305 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#e67a3148c38b0894d67c9ce1233d6d65" title="Add a box that can be seen from the inside.">AddInsideBox</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& bmin, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& bmax) = 0; <a name="l00306"></a>00306 <a name="l00313"></a>00313 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#648dab4cfacc7cef54b488a9d9f6e8dc" title="Set the name of all polygons in the given range.">SetPolygonName</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00314"></a>00314 <span class="keyword">const</span> <span class="keywordtype">char</span>* name) = 0; <a name="l00315"></a>00315 <a name="l00321"></a>00321 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structiThingFactoryState.html#beca44381e78caf2a6b0332cd01ce647" title="Get the name of the specified polygon.">GetPolygonName</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00322"></a>00322 <a name="l00333"></a>00333 <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr<iPolygonHandle></a> <a class="code" href="structiThingFactoryState.html#24b669ebb0cb6002c192362e3264ece8" title="Create a polygon handle that can be used to refer to some polygon.">CreatePolygonHandle</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00334"></a>00334 <a name="l00341"></a>00341 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#fc4bb06a10556b414b4e2cc3aa13ce8f" title="Set the material of all polygons in the given range.">SetPolygonMaterial</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00342"></a>00342 <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="l00343"></a>00343 <a name="l00349"></a>00349 <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="structiThingFactoryState.html#1b9c9ba1eb73c11026f33f712416a6b4" title="Get the material for the specified polygon.">GetPolygonMaterial</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00350"></a>00350 <a name="l00357"></a>00357 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#b1dde02003de8b3ca0d90a0ad2553c84" title="Add a vertex to all polygons in the given range.">AddPolygonVertex</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00358"></a>00358 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& vt) = 0; <a name="l00359"></a>00359 <a name="l00366"></a>00366 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#b1dde02003de8b3ca0d90a0ad2553c84" title="Add a vertex to all polygons in the given range.">AddPolygonVertex</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <span class="keywordtype">int</span> vt) = 0; <a name="l00367"></a>00367 <a name="l00377"></a>00377 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#2e413defc63d70df2f829ebaf325e3db" title="Set the given polygon index table for all polygons in the given range.">SetPolygonVertexIndices</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00378"></a>00378 <span class="keywordtype">int</span> num, <span class="keywordtype">int</span>* indices) = 0; <a name="l00379"></a>00379 <a name="l00385"></a>00385 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#845f0112dda03278a812fbf0ce5e53e0" title="Get number of vertices for polygon.">GetPolygonVertexCount</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00386"></a>00386 <a name="l00393"></a>00393 <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="structiThingFactoryState.html#98df348d1cf9cba97e3d465265b05dd3" title="Get a vertex from a polygon.">GetPolygonVertex</a> (<span class="keywordtype">int</span> polygon_idx, <a name="l00394"></a>00394 <span class="keywordtype">int</span> vertex_idx) = 0; <a name="l00395"></a>00395 <a name="l00401"></a>00401 <span class="keyword">virtual</span> <span class="keywordtype">int</span>* <a class="code" href="structiThingFactoryState.html#c4d48d0780be1e112ba4aab24c473f54" title="Get table with vertex indices from polygon.">GetPolygonVertexIndices</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00402"></a>00402 <a name="l00416"></a>00416 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#21acd302a8564bb55749e9458ded7bf2" title="Set texture mapping of all polygons in the given range to use the transform.">SetPolygonTextureMapping</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00417"></a>00417 <span class="keyword">const</span> <a class="code" href="classcsMatrix3.html" title="A 3x3 matrix.">csMatrix3</a>& m, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v) = 0; <a name="l00418"></a>00418 <a name="l00430"></a>00430 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#21acd302a8564bb55749e9458ded7bf2" title="Set texture mapping of all polygons in the given range to use the transform.">SetPolygonTextureMapping</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00431"></a>00431 <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>& uv1, <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>& uv2, <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>& uv3) = 0; <a name="l00432"></a>00432 <a name="l00449"></a>00449 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#21acd302a8564bb55749e9458ded7bf2" title="Set texture mapping of all polygons in the given range to use the transform.">SetPolygonTextureMapping</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00450"></a>00450 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& p1, <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>& uv1, <a name="l00451"></a>00451 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& p2, <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>& uv2, <a name="l00452"></a>00452 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& p3, <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>& uv3) = 0; <a name="l00453"></a>00453 <a name="l00472"></a>00472 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#21acd302a8564bb55749e9458ded7bf2" title="Set texture mapping of all polygons in the given range to use the transform.">SetPolygonTextureMapping</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00473"></a>00473 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v_orig, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v, <span class="keywordtype">float</span> len) = 0; <a name="l00474"></a>00474 <a name="l00495"></a>00495 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#21acd302a8564bb55749e9458ded7bf2" title="Set texture mapping of all polygons in the given range to use the transform.">SetPolygonTextureMapping</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00496"></a>00496 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v_orig, <a name="l00497"></a>00497 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v1, <span class="keywordtype">float</span> len1, <a name="l00498"></a>00498 <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v2, <span class="keywordtype">float</span> len2) = 0; <a name="l00499"></a>00499 <a name="l00517"></a>00517 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#21acd302a8564bb55749e9458ded7bf2" title="Set texture mapping of all polygons in the given range to use the transform.">SetPolygonTextureMapping</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00518"></a>00518 <span class="keywordtype">float</span> len) = 0; <a name="l00519"></a>00519 <a name="l00527"></a>00527 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#12876bfa62f9642c4a22ab0c0c4a96a5" title="Get the texture space information for the specified polygon.">GetPolygonTextureMapping</a> (<span class="keywordtype">int</span> polygon_idx, <a name="l00528"></a>00528 <a class="code" href="classcsMatrix3.html" title="A 3x3 matrix.">csMatrix3</a>& m, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v) = 0; <a name="l00529"></a>00529 <a name="l00537"></a>00537 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#a048fcf1e5a1b574c9212ef41bded194" title="Enable or disable texture mapping for the range of polygons.">SetPolygonTextureMappingEnabled</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00538"></a>00538 <span class="keywordtype">bool</span> enabled) = 0; <a name="l00539"></a>00539 <a name="l00545"></a>00545 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#1f06dd5bd26d152b7fcaf97ddedd5963" title="Check if texture mapping is enabled for the specified polygon.">IsPolygonTextureMappingEnabled</a> (<span class="keywordtype">int</span> polygon_idx) <span class="keyword">const</span> = 0; <a name="l00546"></a>00546 <a name="l00554"></a>00554 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#eb47d2dc6c88001b0b1ff4a47159b7c8" title="Set the given flags to all polygons in the range.">SetPolygonFlags</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> flags) = 0; <a name="l00555"></a>00555 <a name="l00566"></a>00566 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#eb47d2dc6c88001b0b1ff4a47159b7c8" title="Set the given flags to all polygons in the range.">SetPolygonFlags</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> mask, <a name="l00567"></a>00567 <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> flags) = 0; <a name="l00568"></a>00568 <a name="l00576"></a>00576 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#61f76fe818ab455c32f2320811f610f0" title="Reset the given flags to all polygons in the range.">ResetPolygonFlags</a> (<span class="keyword">const</span> <a class="code" href="structcsPolygonRange.html" title="A range structure for specifing polygon ranges.">csPolygonRange</a>& range, <a name="l00577"></a>00577 <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a> flags) = 0; <a name="l00578"></a>00578 <a name="l00584"></a>00584 <span class="keyword">virtual</span> <a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a>& <a class="code" href="structiThingFactoryState.html#feb7d017deb6cd6ce18ea04f87d9a622" title="Get the flags of the specified polygon.">GetPolygonFlags</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00585"></a>00585 <a name="l00591"></a>00591 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsPlane3.html" title="A plane in 3D space.">csPlane3</a>& <a class="code" href="structiThingFactoryState.html#e6d67c5dd4011d30be5151885f8283ac" title="Get object space plane of the specified polygon.">GetPolygonObjectPlane</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00592"></a>00592 <a name="l00598"></a>00598 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#c285950cf84f32090c5547c1cc0a2b3d" title="Return true if this polygon or the texture it uses is transparent.">IsPolygonTransparent</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00599"></a>00599 <a name="l00607"></a>00607 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#74453e1bfbfe89a83e6e1b5dc5fe833c" title="Return true if an object space point is on (or very nearly on) the given polygon...">PointOnPolygon</a> (<span class="keywordtype">int</span> polygon_idx, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& v) = 0; <a name="l00608"></a>00608 <a name="l00610"></a>00610 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#49070a402854cf8f48e999fc87d4a2b6" title="Query number of vertices in set.">GetVertexCount</a> () <span class="keyword">const</span> = 0; <a name="l00612"></a>00612 <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="structiThingFactoryState.html#a1873a0fd7ae88f2090873976b6303c7" title="Get the given vertex coordinates in object space.">GetVertex</a> (<span class="keywordtype">int</span> idx) <span class="keyword">const</span> = 0; <a name="l00614"></a>00614 <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="structiThingFactoryState.html#71110e5dc3620f4f8525af770baea100" title="Get the vertex coordinates in object space.">GetVertices</a> () <span class="keyword">const</span> = 0; <a name="l00616"></a>00616 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingFactoryState.html#ca266e218a1432ef9a5ef968a40983b5" title="Create a vertex given his object-space coords and return his index.">CreateVertex</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& vt) = 0; <a name="l00618"></a>00618 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#bfcf9049be84eb95b38d681dcc254173" title="Set the object space vertices for a given vertex.">SetVertex</a> (<span class="keywordtype">int</span> idx, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>& vt) = 0; <a name="l00624"></a>00624 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#c84fad9d2502cf40da0428505b6bd82a" title="Delete a vertex.">DeleteVertex</a> (<span class="keywordtype">int</span> idx) = 0; <a name="l00632"></a>00632 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#25c2ee0e7025d643d67e0f70f95f0685" title="Delete a range of vertices (inclusive).">DeleteVertices</a> (<span class="keywordtype">int</span> from, <span class="keywordtype">int</span> to) = 0; <a name="l00633"></a>00633 <a name="l00637"></a>00637 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#eec46df82c054b1026a6ef52658523dd" title="Sets the smoothing flag.">SetSmoothingFlag</a> (<span class="keywordtype">bool</span> smoothing) = 0; <a name="l00638"></a>00638 <a name="l00642"></a>00642 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#a2e73872af04ec5c54d3babc3a2c858d" title="Gets the smoothing flag.">GetSmoothingFlag</a> () = 0; <a name="l00643"></a>00643 <a name="l00647"></a>00647 <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* <a class="code" href="structiThingFactoryState.html#778d9b7839341ad53590dfbb53b10c80" title="Gets the normals.">GetNormals</a> () = 0; <a name="l00648"></a>00648 <a name="l00652"></a>00652 <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiThingFactoryState.html#081e567b148271c7c499fac5fd3af495" title="Get cosinus factor.">GetCosinusFactor</a> () <span class="keyword">const</span> = 0; <a name="l00658"></a>00658 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingFactoryState.html#38d032906ee6fec3f52ad19f73c35408" title="Set cosinus factor.">SetCosinusFactor</a> (<span class="keywordtype">float</span> cosfact) = 0; <a name="l00659"></a>00659 <a name="l00660"></a>00660 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddPolygonRenderBuffer (<span class="keywordtype">int</span> polygon_idx, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a name="l00661"></a>00661 <a class="code" href="structiRenderBuffer.html" title="This is a general buffer.">iRenderBuffer</a>* buffer) = 0; <a name="l00662"></a>00662 <a name="l00674"></a>00674 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingFactoryState.html#f15d59c15b7f0a6be246d7063d6f63d6" title="Query the lightmap layout of a polygon.">GetLightmapLayout</a> (<span class="keywordtype">int</span> polygon_idx, <span class="keywordtype">size_t</span>& slm, <a name="l00675"></a>00675 <a class="code" href="classcsRect.html" title="Rectangle class: simple class for manipulating 2D rectangles.">csRect</a>& slmSubRect, <span class="keywordtype">float</span>* slmCoord) = 0; <a name="l00677"></a>00677 }; <a name="l00678"></a>00678 <a name="l00694"></a><a class="code" href="structiThingState.html">00694</a> <span class="keyword">struct </span><a class="code" href="structiThingState.html" title="This is the state interface to access the internals of a thing mesh object.">iThingState</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="l00695"></a>00695 { <a name="l00696"></a>00696 SCF_INTERFACE (<a class="code" href="structiThingState.html" title="This is the state interface to access the internals of a thing mesh object.">iThingState</a>, 1, 0, 2); <a name="l00697"></a>00697 <a name="l00699"></a>00699 <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="structiThingState.html#1f6f5796cc92ef11335bbf8506f7f1c0" title="Get the given vertex coordinates in world space.">GetVertexW</a> (<span class="keywordtype">int</span> idx) <span class="keyword">const</span> = 0; <a name="l00701"></a>00701 <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="structiThingState.html#8a0ecd537444489e57d416fba0e75c31" title="Get the vertex coordinates in world space.">GetVerticesW</a> () <span class="keyword">const</span> = 0; <a name="l00702"></a>00702 <a name="l00706"></a>00706 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingState.html#d496f45889815176c74fb47a2873a903" title="Get the moving option.">GetMovingOption</a> () <span class="keyword">const</span> = 0; <a name="l00707"></a>00707 <a name="l00733"></a>00733 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingState.html#d870063248501edee17e9052b70ca42c" title="Control how this thing will be moved.">SetMovingOption</a> (<span class="keywordtype">int</span> opt) = 0; <a name="l00734"></a>00734 <a name="l00743"></a>00743 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingState.html#763857816204a22efdee7b9b4c69ad03" title="Prepare the thing to be ready for use.">Prepare</a> () = 0; <a name="l00744"></a>00744 <a name="l00749"></a>00749 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingState.html#4df18bd24a5294fd4156e255f5fd51d8" title="Reset the prepare flag so that this Thing can be re-prepared.">Unprepare</a> () = 0; <a name="l00750"></a>00750 <a name="l00758"></a>00758 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingState.html#66e43371fb866d81529590e53a570132" title="Scan all polygons and replace the given material with a new material.">ReplaceMaterial</a> (<a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>* oldmat, <a name="l00759"></a>00759 <a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>* newmat) = 0; <a name="l00760"></a>00760 <a name="l00765"></a>00765 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingState.html#e6be96b517f1fcac42eb8a4b70d6b6a1" title="Clear all replaced materials (i.e.">ClearReplacedMaterials</a> () = 0; <a name="l00766"></a>00766 <a name="l00768"></a>00768 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingState.html#c15eb7dfa4e3df139feb089535768779" title="Set mix mode.">SetMixMode</a> (<a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> mode) = 0; <a name="l00770"></a>00770 <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="structiThingState.html#cec3362549cba31dc31dca81ae96c33e" title="Get mix mode.">GetMixMode</a> () <span class="keyword">const</span> = 0; <a name="l00771"></a>00771 <a name="l00781"></a>00781 <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr<iPolygonHandle></a> <a class="code" href="structiThingState.html#45db8c0af1a30e76ce951fd4d3835ac6" title="Create a polygon handle that can be used to refer to some polygon.">CreatePolygonHandle</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00782"></a>00782 <a name="l00788"></a>00788 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsPlane3.html" title="A plane in 3D space.">csPlane3</a>& <a class="code" href="structiThingState.html#69f598e322c126c196b3537b966addb5" title="Get world space plane of the specified polygon.">GetPolygonWorldPlane</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00789"></a>00789 <a name="l00792"></a>00792 <a name="l00793"></a>00793 <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr<iImage></a> <a class="code" href="structiThingState.html#6797b37b30740d0dec4f2cee389720cd" title="Get the lightmap for a specific polygon.">GetPolygonLightmap</a> (<span class="keywordtype">int</span> polygon_idx) = 0; <a name="l00795"></a>00795 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiThingState.html#156927f077264e2b2f0060b998a3e2eb" title="Query for pseudo-static lightmaps.">GetPolygonPDLight</a> (<span class="keywordtype">int</span> polygon_idx, <span class="keywordtype">size_t</span> pdlight_index, <a name="l00796"></a>00796 <a class="code" href="classcsRef.html" title="A smart pointer.">csRef<iImage></a>& map, <a class="code" href="structiLight.html" title="The iLight interface is the SCF interface for the csLight class.">iLight</a>*& light) = 0; <a name="l00802"></a>00802 <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="structiThingState.html#9cc2b03bfd914f09cd0d729f2f21a9e7" title="Return the material oldMat was replaced with (or 0 if it wasn&#39;t).">GetReplacedMaterial</a> (<a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>* oldMat) = 0; <a name="l00803"></a>00803 }; <a name="l00804"></a>00804 <a name="l00816"></a><a class="code" href="structiThingEnvironment.html">00816</a> <span class="keyword">struct </span><a class="code" href="structiThingEnvironment.html" title="This interface is implemented by the iObjectType for things.">iThingEnvironment</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="l00817"></a>00817 { <a name="l00818"></a>00818 SCF_INTERFACE (<a class="code" href="structiThingEnvironment.html" title="This interface is implemented by the iObjectType for things.">iThingEnvironment</a>, 1, 0, 0); <a name="l00819"></a>00819 <a name="l00823"></a>00823 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingEnvironment.html#3a881e7ff1f7a6061d4b2804523b44ff" title="Reset the thing environment (clear all stuff related to things).">Clear</a> () = 0; <a name="l00824"></a>00824 <a name="l00826"></a>00826 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingEnvironment.html#718c9b6ac800cf94b74ba2e428a3fcc0" title="Return the current lightmap cell size.">GetLightmapCellSize</a> () <span class="keyword">const</span> = 0; <a name="l00828"></a>00828 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiThingEnvironment.html#4d9a6f2515dd9bc2106e299fbe9394ed" title="Set lightmap cell size.">SetLightmapCellSize</a> (<span class="keywordtype">int</span> Size) = 0; <a name="l00830"></a>00830 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiThingEnvironment.html#7471de2f8dbc90ac2585fc1c212461e2" title="Return default lightmap cell size.">GetDefaultLightmapCellSize</a> () <span class="keyword">const</span> = 0; <a name="l00831"></a>00831 }; <a name="l00832"></a>00832 <a name="l00835"></a>00835 <span class="preprocessor">#endif // __CS_IMESH_THING_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>