Sophie

Sophie

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

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: cstool/meshobjtmpl.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>cstool/meshobjtmpl.h</h1><a href="meshobjtmpl_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) 2003 by Martin Geisse &lt;mgeisse@gmx.net&gt;</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_MESHOBJTMPL_H__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_MESHOBJTMPL_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "csextern.h"</span>
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <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="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="cstool_2objmodel_8h.html" title="Implementation of iObjectModel.">cstool/objmodel.h</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="flags_8h.html" title="Set of flags.">csutil/flags.h</a>"</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="refarr_8h.html" title="Smart Pointer array.">csutil/refarr.h</a>"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="scf__implementation_8h.html" title="Crystal Space Shared Class Facility (SCF) - implementation creation support.">csutil/scf_implementation.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 <span class="preprocessor">#include "<a class="code" href="imesh_2object_8h.html" title="Mesh object and mesh object factory interfaces.">imesh/object.h</a>"</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="comp_8h.html" title="Generic component interface.">iutil/comp.h</a>"</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="keyword">struct </span><a class="code" href="structiEngine.html" title="This interface is the main interface to the 3D engine.">iEngine</a>;
<a name="l00039"></a>00039 <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="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="comment">//Deprecate these when possible!</span>
<a name="l00043"></a><a class="code" href="meshobjtmpl_8h.html#4060e38b068039855583b4bb11ba0bac">00043</a> <span class="comment"></span><span class="preprocessor">#define CS_DECLARE_SIMPLE_MESH_FACTORY(name,meshclass)                      \</span>
<a name="l00044"></a>00044 <span class="preprocessor">  class name : public csMeshFactory {                                       \</span>
<a name="l00045"></a>00045 <span class="preprocessor">  public:                                                                   \</span>
<a name="l00046"></a>00046 <span class="preprocessor">    name (iEngine *e, iObjectRegistry* reg, iMeshObjectType* type)          \</span>
<a name="l00047"></a>00047 <span class="preprocessor">    : csMeshFactory (e, reg, type) {}                                       \</span>
<a name="l00048"></a>00048 <span class="preprocessor">    virtual csPtr&lt;iMeshObject&gt; NewInstance ()                               \</span>
<a name="l00049"></a>00049 <span class="preprocessor">    { return new meshclass (Engine, this); }                                \</span>
<a name="l00050"></a>00050 <span class="preprocessor">    virtual csPtr&lt;iMeshObjectFactory&gt; Clone () { return 0; }                \</span>
<a name="l00051"></a>00051 <span class="preprocessor">  };</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span>
<a name="l00054"></a><a class="code" href="meshobjtmpl_8h.html#fbf7aa119e9660c3f99b713e4d577b91">00054</a> <span class="preprocessor">#define CS_DECLARE_SIMPLE_MESH_PLUGIN(name,factclass)                       \</span>
<a name="l00055"></a>00055 <span class="preprocessor">  class name : public csMeshType {                                          \</span>
<a name="l00056"></a>00056 <span class="preprocessor">  public:                                                                   \</span>
<a name="l00057"></a>00057 <span class="preprocessor">    name (iBase *p) : csMeshType (p) {}                                     \</span>
<a name="l00058"></a>00058 <span class="preprocessor">    virtual csPtr&lt;iMeshObjectFactory&gt; NewFactory ()                         \</span>
<a name="l00059"></a>00059 <span class="preprocessor">    { return new factclass (Engine, object_reg, this); }                    \</span>
<a name="l00060"></a>00060 <span class="preprocessor">  };</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span>
<a name="l00062"></a>00062 <span class="preprocessor">#include "<a class="code" href="msvc__deprecated__warn__off_8h.html" title="Disable MSVC deprecated warnings.">csutil/win32/msvc_deprecated_warn_off.h</a>"</span>
<a name="l00063"></a>00063 
<a name="l00075"></a><a class="code" href="classcsMeshObject.html">00075</a> <span class="keyword">class </span>CS_CRYSTALSPACE_EXPORT <a class="code" href="classcsMeshObject.html" title="This is an abstract implementation of iMeshObject.">csMeshObject</a> : 
<a name="l00076"></a>00076   <span class="keyword">public</span> <a class="code" href="classscfImplementationExt1.html">scfImplementationExt1</a>&lt;csMeshObject, csObjectModel, iMeshObject&gt;
<a name="l00077"></a>00077 {
<a name="l00078"></a>00078 <span class="keyword">protected</span>:
<a name="l00080"></a><a class="code" href="classcsMeshObject.html#cd09ea4e1c26f0d00ecb6bb2ba6580f4">00080</a>   <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iMeshObjectDrawCallback&gt;</a> VisCallback;
<a name="l00081"></a>00081 
<a name="l00083"></a><a class="code" href="classcsMeshObject.html#9bf695b8211f89bffbf6abbd218c8b1d">00083</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> *LogParent;
<a name="l00084"></a>00084 
<a name="l00086"></a><a class="code" href="classcsMeshObject.html#b39ad5a444f9cb8f5a4670f140d462da">00086</a>   <a class="code" href="structiEngine.html" title="This interface is the main interface to the 3D engine.">iEngine</a> *Engine;
<a name="l00087"></a>00087 
<a name="l00089"></a>00089   <span class="keywordtype">void</span> WantToDie ();
<a name="l00090"></a>00090 
<a name="l00092"></a><a class="code" href="classcsMeshObject.html#5cdebe6065a7a10d7cf112e73f5f2715">00092</a>   <a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a> flags;
<a name="l00093"></a>00093 
<a name="l00095"></a><a class="code" href="classcsMeshObject.html#b98e814c72a4bf8c03f092b9b32194a0">00095</a>   <a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a> boundingbox;
<a name="l00096"></a>00096 
<a name="l00097"></a>00097 <span class="keyword">public</span>:
<a name="l00098"></a>00098 
<a name="l00100"></a>00100   <a class="code" href="classcsMeshObject.html" title="This is an abstract implementation of iMeshObject.">csMeshObject</a> (<a class="code" href="structiEngine.html" title="This interface is the main interface to the 3D engine.">iEngine</a> *engine);
<a name="l00101"></a>00101 
<a name="l00103"></a>00103   <span class="keyword">virtual</span> ~<a class="code" href="classcsMeshObject.html" title="This is an abstract implementation of iMeshObject.">csMeshObject</a> ();
<a name="l00104"></a>00104 
<a name="l00109"></a>00109   <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>* GetFactory () <span class="keyword">const</span> = 0;
<a name="l00110"></a>00110 
<a name="l00115"></a><a class="code" href="classcsMeshObject.html#f9e658c5c46042d036fe2fbcf8bb71c6">00115</a>   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iMeshObject&gt;</a> Clone () { <span class="keywordflow">return</span> 0; }
<a name="l00116"></a>00116   
<a name="l00120"></a><a class="code" href="classcsMeshObject.html#90bfc7a55d27707d7d6d2ff2a0e22783">00120</a>   <span class="keyword">virtual</span> <a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a>&amp; GetFlags () { <span class="keywordflow">return</span> flags; }
<a name="l00121"></a>00121 
<a name="l00126"></a><a class="code" href="classcsMeshObject.html#c3f9e1e93019e69fa375ab3b55c8e631">00126</a>   <span class="keyword">virtual</span> <a class="code" href="structcsRenderMesh.html" title="Mesh data as returned by mesh plugins.">csRenderMesh</a>** GetRenderMeshes (<span class="keywordtype">int</span>&amp; num, <a class="code" href="structiRenderView.html" title="This interface represents all information needed to render some object in a current...">iRenderView</a>*, <a class="code" href="structiMovable.html" title="This interface represents the position and orientation of an object relative to its...">iMovable</a>*,
<a name="l00127"></a>00127         <a class="code" href="group__util.html#g1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32-bit integer (0..4 294 967 295)">uint32</a>)
<a name="l00128"></a>00128   {
<a name="l00129"></a>00129     num = 0;
<a name="l00130"></a>00130     <span class="keywordflow">return</span> 0;
<a name="l00131"></a>00131   }
<a name="l00132"></a>00132 
<a name="l00138"></a>00138   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetVisibleCallback (<a class="code" href="structiMeshObjectDrawCallback.html" title="Set a callback which is called just before the object is drawn.">iMeshObjectDrawCallback</a>* cb);
<a name="l00139"></a>00139 
<a name="l00144"></a>00144   <span class="keyword">virtual</span> <a class="code" href="structiMeshObjectDrawCallback.html" title="Set a callback which is called just before the object is drawn.">iMeshObjectDrawCallback</a>* GetVisibleCallback () <span class="keyword">const</span>;
<a name="l00145"></a>00145 
<a name="l00150"></a>00150   <span class="keyword">virtual</span> <span class="keywordtype">void</span> NextFrame (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> current_time,<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; pos,
<a name="l00151"></a>00151     <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> currentFrame);
<a name="l00152"></a>00152 
<a name="l00157"></a>00157   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HardTransform (<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);
<a name="l00158"></a>00158 
<a name="l00163"></a>00163   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SupportsHardTransform () <span class="keyword">const</span>;
<a name="l00164"></a>00164 
<a name="l00169"></a>00169   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> HitBeamOutline (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start,
<a name="l00170"></a>00170         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; isect, <span class="keywordtype">float</span>* pr);
<a name="l00171"></a>00171 
<a name="l00176"></a>00176   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> HitBeamObject (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end,
<a name="l00177"></a>00177         <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; isect, <span class="keywordtype">float</span>* pr, <span class="keywordtype">int</span>* polygon_idx = 0,
<a name="l00178"></a>00178         <a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>** = 0);
<a name="l00179"></a>00179 
<a name="l00184"></a>00184   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetMeshWrapper (<a class="code" href="structiMeshWrapper.html" title="A mesh wrapper is an engine-level object that wraps around an actual mesh object...">iMeshWrapper</a>* logparent);
<a name="l00185"></a>00185 
<a name="l00190"></a>00190   <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>* GetMeshWrapper () <span class="keyword">const</span>;
<a name="l00191"></a>00191 
<a name="l00195"></a><a class="code" href="classcsMeshObject.html#7ba41244fa8a8707447472c040684a55">00195</a>   <span class="keyword">virtual</span> <a class="code" href="structiObjectModel.html" title="This interface represents data related to some geometry in object space.">iObjectModel</a>* GetObjectModel () { <span class="keywordflow">return</span> <span class="keyword">this</span>; }
<a name="l00196"></a>00196 
<a name="l00201"></a>00201   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetColor (<span class="keyword">const</span> <a class="code" href="classcsColor.html" title="A class used to represent a color in RGB space.">csColor</a>&amp; color);
<a name="l00202"></a>00202 
<a name="l00207"></a>00207   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetColor (<a class="code" href="classcsColor.html" title="A class used to represent a color in RGB space.">csColor</a>&amp; color) <span class="keyword">const</span>;
<a name="l00208"></a>00208 
<a name="l00213"></a>00213   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetMaterialWrapper (<a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>* material);
<a name="l00214"></a>00214 
<a name="l00219"></a>00219   <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>* GetMaterialWrapper () <span class="keyword">const</span>;
<a name="l00220"></a>00220 
<a name="l00222"></a><a class="code" href="classcsMeshObject.html#9fa4d60637214ee639f9d10b23e4dcd7">00222</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetMixMode (<a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a>) { }
<a name="l00224"></a><a class="code" href="classcsMeshObject.html#f2daaae57d328595a9cbc58d9ad6ce82">00224</a>   <span class="keyword">virtual</span> <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> GetMixMode ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__gfx3d.html#g157a5b79fc02bff999d17b291dac354d" title="This mixmode uses alpha smooth blending, binary blending (ie enabled alpha test)...">CS_FX_COPY</a>; }
<a name="l00225"></a>00225 
<a name="l00230"></a><a class="code" href="classcsMeshObject.html#1ee99e73092eb2afbd1ce0681de75739">00230</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> InvalidateMaterialHandles () { }
<a name="l00231"></a>00231 
<a name="l00236"></a><a class="code" href="classcsMeshObject.html#74acd09d8ffb5b1519cd5daef2ad0749">00236</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> PositionChild (<a class="code" href="structiMeshObject.html" title="This is a general mesh object that the engine can interact with.">iMeshObject</a>* <span class="comment">/*child*/</span>,<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> <span class="comment">/*current_time*/</span>) { }
<a name="l00237"></a>00237 
<a name="l00242"></a><a class="code" href="classcsMeshObject.html#e52a469459d5a4010da4ceedc192617d">00242</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> BuildDecal(<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>* pos, <span class="keywordtype">float</span> decalRadius,
<a name="l00243"></a>00243         <a class="code" href="structiDecalBuilder.html" title="Interface for mesh objects to use to build decals for their mesh object.">iDecalBuilder</a>* decalBuilder)
<a name="l00244"></a>00244   {
<a name="l00245"></a>00245   }
<a name="l00246"></a>00246 
<a name="l00251"></a>00251   <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetObjectBoundingBox (<a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a>&amp; bbox);
<a name="l00252"></a>00252 
<a name="l00257"></a>00257   <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; GetObjectBoundingBox ();
<a name="l00258"></a>00258 
<a name="l00263"></a>00263   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetObjectBoundingBox (<span class="keyword">const</span> <a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a>&amp; bbox);
<a name="l00264"></a>00264 
<a name="l00269"></a>00269   <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetRadius (<span class="keywordtype">float</span>&amp; radius, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; center);
<a name="l00270"></a>00270 
<a name="l00275"></a><a class="code" href="classcsMeshObject.html#27632054cc980e5c59eab9e92c9b2b32">00275</a>   <span class="keyword">virtual</span> <a class="code" href="structiTerraFormer.html" title="TerraFormer objects are used to retrieve terrain data.">iTerraFormer</a>* GetTerraFormerColldet () { <span class="keywordflow">return</span> 0; }
<a name="l00276"></a>00276 
<a name="l00277"></a><a class="code" href="classcsMeshObject.html#e70dd21501643528c7fbfbfae068f92a">00277</a>   <span class="keyword">virtual</span> <a class="code" href="structiTerrainSystem.html" title="This class represents the terrain object as a set of cells.">iTerrainSystem</a>* GetTerrainColldet () { <span class="keywordflow">return</span> 0; }
<a name="l00278"></a>00278 };
<a name="l00279"></a>00279 
<a name="l00280"></a>00280 <span class="preprocessor">#include "<a class="code" href="msvc__deprecated__warn__on_8h.html" title="Re-enable MSVC deprecated warnings.">csutil/win32/msvc_deprecated_warn_on.h</a>"</span>
<a name="l00281"></a>00281 
<a name="l00286"></a><a class="code" href="classcsMeshFactory.html">00286</a> <span class="keyword">class </span>CS_CRYSTALSPACE_EXPORT <a class="code" href="classcsMeshFactory.html" title="This is the abstract implementation of iMeshObjectFactory.">csMeshFactory</a> : 
<a name="l00287"></a>00287   <span class="keyword">public</span> <a class="code" href="classscfImplementation1.html">scfImplementation1</a>&lt;csMeshFactory, iMeshObjectFactory&gt;
<a name="l00288"></a>00288 {
<a name="l00289"></a>00289 <span class="keyword">protected</span>:
<a name="l00291"></a><a class="code" href="classcsMeshFactory.html#7dd5d4a918ef941346ad340ca2c8c21b">00291</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> *LogParent;
<a name="l00292"></a>00292 
<a name="l00294"></a><a class="code" href="classcsMeshFactory.html#4807d360dfbb7b46f8b7a2d3a835d474">00294</a>   <a class="code" href="structiMeshObjectType.html" title="This plugin describes a specific type of mesh objects.">iMeshObjectType</a>* mesh_type;
<a name="l00295"></a>00295 
<a name="l00297"></a><a class="code" href="classcsMeshFactory.html#fd89f164abb74e2014061c761e8fad4a">00297</a>   <a class="code" href="structiEngine.html" title="This interface is the main interface to the 3D engine.">iEngine</a> *Engine;
<a name="l00298"></a>00298 
<a name="l00300"></a><a class="code" href="classcsMeshFactory.html#608063cce3af7269258667fa56ec8f86">00300</a>   <a class="code" href="structiObjectRegistry.html" title="This interface serves as a registry of other objects.">iObjectRegistry</a>* object_reg;
<a name="l00301"></a>00301 
<a name="l00303"></a><a class="code" href="classcsMeshFactory.html#c7c4355d1f265fef962447d839513271">00303</a>   <a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a> flags;
<a name="l00304"></a>00304 
<a name="l00305"></a>00305 <span class="keyword">public</span>:
<a name="l00306"></a>00306 
<a name="l00308"></a>00308   <a class="code" href="classcsMeshFactory.html" title="This is the abstract implementation of iMeshObjectFactory.">csMeshFactory</a> (<a class="code" href="structiEngine.html" title="This interface is the main interface to the 3D engine.">iEngine</a> *engine, <a class="code" href="structiObjectRegistry.html" title="This interface serves as a registry of other objects.">iObjectRegistry</a>* object_reg,
<a name="l00309"></a>00309     <a class="code" href="structiMeshObjectType.html" title="This plugin describes a specific type of mesh objects.">iMeshObjectType</a>* parent);
<a name="l00310"></a>00310 
<a name="l00312"></a><a class="code" href="classcsMeshFactory.html#b12f17bbbcc87bbd41d3457ceeea88af">00312</a>   <a class="code" href="structiObjectRegistry.html" title="This interface serves as a registry of other objects.">iObjectRegistry</a>* GetObjectRegistry () { <span class="keywordflow">return</span> object_reg; }
<a name="l00313"></a>00313 
<a name="l00315"></a>00315   <span class="keyword">virtual</span> ~<a class="code" href="classcsMeshFactory.html" title="This is the abstract implementation of iMeshObjectFactory.">csMeshFactory</a> ();
<a name="l00316"></a>00316 
<a name="l00320"></a><a class="code" href="classcsMeshFactory.html#b74f4aeacbd4635dd29d26236edf126c">00320</a>   <span class="keyword">virtual</span> <a class="code" href="classcsFlags.html" title="Set of flags which can be accessed through masks.">csFlags</a>&amp; GetFlags () { <span class="keywordflow">return</span> flags; }
<a name="l00321"></a>00321 
<a name="l00326"></a>00326   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iMeshObject&gt;</a> NewInstance () = 0;
<a name="l00327"></a>00327 
<a name="l00332"></a>00332   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HardTransform (<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);
<a name="l00333"></a>00333 
<a name="l00338"></a>00338   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SupportsHardTransform () <span class="keyword">const</span>;
<a name="l00339"></a>00339 
<a name="l00344"></a>00344   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetMeshFactoryWrapper (<a class="code" href="structiMeshFactoryWrapper.html" title="A mesh factory wrapper is an engine-level object that wraps around a mesh object...">iMeshFactoryWrapper</a>* logparent);
<a name="l00345"></a>00345 
<a name="l00350"></a>00350   <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>* GetMeshFactoryWrapper () <span class="keyword">const</span>;
<a name="l00351"></a>00351 
<a name="l00355"></a>00355   <span class="keyword">virtual</span> <a class="code" href="structiMeshObjectType.html" title="This plugin describes a specific type of mesh objects.">iMeshObjectType</a>* GetMeshObjectType () <span class="keyword">const</span>;
<a name="l00356"></a>00356 
<a name="l00360"></a><a class="code" href="classcsMeshFactory.html#cc04c972dde0de1f95d197dbfaa40011">00360</a>   <span class="keyword">virtual</span> <a class="code" href="structiObjectModel.html" title="This interface represents data related to some geometry in object space.">iObjectModel</a>* GetObjectModel () { <span class="keywordflow">return</span> 0; }
<a name="l00361"></a>00361 
<a name="l00362"></a><a class="code" href="classcsMeshFactory.html#ccbc98dabf71f885ef317d4ca07a1ea1">00362</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetMaterialWrapper (<a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>*) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
<a name="l00363"></a><a class="code" href="classcsMeshFactory.html#3ced49b5b2088e210e4fbe3d4a1cd905">00363</a>   <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>* GetMaterialWrapper ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }
<a name="l00364"></a><a class="code" href="classcsMeshFactory.html#d5f86e907dfd2bf578d8c29503d3adad">00364</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetMixMode (<a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a>) { }
<a name="l00365"></a><a class="code" href="classcsMeshFactory.html#67d94fdef09b6f2bf66a7f619fed06d0">00365</a>   <span class="keyword">virtual</span> <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> GetMixMode ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }
<a name="l00366"></a>00366 };
<a name="l00367"></a>00367 
<a name="l00371"></a><a class="code" href="classcsMeshType.html">00371</a> <span class="keyword">class </span>CS_CRYSTALSPACE_EXPORT <a class="code" href="classcsMeshType.html" title="This is the abstract implementation of iMeshObjectType.">csMeshType</a> : 
<a name="l00372"></a>00372   <span class="keyword">public</span> <a class="code" href="classscfImplementation2.html">scfImplementation2</a>&lt;csMeshType, iMeshObjectType, iComponent&gt;
<a name="l00373"></a>00373 {
<a name="l00374"></a>00374 <span class="keyword">protected</span>:
<a name="l00376"></a><a class="code" href="classcsMeshType.html#e7f7ef5fd80766533f7dd90ee88b33aa">00376</a>   <a class="code" href="structiEngine.html" title="This interface is the main interface to the 3D engine.">iEngine</a> *Engine;
<a name="l00377"></a>00377 
<a name="l00379"></a><a class="code" href="classcsMeshType.html#1344d04af49aceb79792f0869eccdf0d">00379</a>   <a class="code" href="structiObjectRegistry.html" title="This interface serves as a registry of other objects.">iObjectRegistry</a>* object_reg;
<a name="l00380"></a>00380 
<a name="l00381"></a>00381 <span class="keyword">public</span>:
<a name="l00382"></a>00382 
<a name="l00384"></a>00384   <a class="code" href="classcsMeshType.html" title="This is the abstract implementation of iMeshObjectType.">csMeshType</a> (<a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a> *p);
<a name="l00385"></a>00385 
<a name="l00387"></a>00387   <span class="keyword">virtual</span> ~<a class="code" href="classcsMeshType.html" title="This is the abstract implementation of iMeshObjectType.">csMeshType</a> ();
<a name="l00388"></a>00388 
<a name="l00392"></a>00392   <span class="keywordtype">bool</span> Initialize (<a class="code" href="structiObjectRegistry.html" title="This interface serves as a registry of other objects.">iObjectRegistry</a>* reg);
<a name="l00393"></a>00393 
<a name="l00398"></a>00398   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iMeshObjectFactory&gt;</a> NewFactory () = 0;
<a name="l00399"></a>00399 
<a name="l00400"></a>00400 };
<a name="l00401"></a>00401 
<a name="l00402"></a>00402 <span class="preprocessor">#endif // __CS_MESHOBJTMPL_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>