Sophie

Sophie

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

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/meshgen.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/meshgen.h</h1><a href="meshgen_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) 2005 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_MESHGEN_H__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IENGINE_MESHGEN_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 
<a name="l00030"></a>00030 <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="l00031"></a>00031 
<a name="l00032"></a>00032 <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="l00033"></a>00033 <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="l00034"></a>00034 <span class="keyword">class </span><a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a>;
<a name="l00035"></a>00035 <span class="keyword">struct </span><a class="code" href="structiTerraFormer.html" title="TerraFormer objects are used to retrieve terrain data.">iTerraFormer</a>;
<a name="l00036"></a>00036 
<a name="l00050"></a><a class="code" href="structiMeshGeneratorGeometry.html">00050</a> <span class="keyword">struct </span><a class="code" href="structiMeshGeneratorGeometry.html" title="This interface defines one piece of geometry for the mesh generator.">iMeshGeneratorGeometry</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="l00051"></a>00051 {
<a name="l00052"></a>00052   SCF_INTERFACE(<a class="code" href="structiMeshGeneratorGeometry.html" title="This interface defines one piece of geometry for the mesh generator.">iMeshGeneratorGeometry</a>, 1, 0, 0);
<a name="l00053"></a>00053 
<a name="l00059"></a>00059   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#832731106d0c0c4c3b72dd1710be0fcf" title="Add a factory and the maximum distance after which this factory will no longer be...">AddFactory</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, <span class="keywordtype">float</span> maxdist) = 0;
<a name="l00060"></a>00060 
<a name="l00064"></a>00064   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiMeshGeneratorGeometry.html#c99fc5abc9b81611b0cb77b572afb37d" title="Get the number of factories for this geometry.">GetFactoryCount</a> () <span class="keyword">const</span> = 0;
<a name="l00065"></a>00065 
<a name="l00069"></a>00069   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#dce7fe42cd635e6ece65468a0dc07101" title="Remove a factory.">RemoveFactory</a> (<span class="keywordtype">size_t</span> idx) = 0;
<a name="l00070"></a>00070 
<a name="l00074"></a>00074   <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="structiMeshGeneratorGeometry.html#3a3aa2cc066cc7cd3fc5bc760f44875c" title="Get a specified factory.">GetFactory</a> (<span class="keywordtype">size_t</span> idx) = 0;
<a name="l00075"></a>00075 
<a name="l00079"></a>00079   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiMeshGeneratorGeometry.html#7b370e8d1dc3b2034da5ee12e709ed94" title="Get a specified maximum distance.">GetMaximumDistance</a> (<span class="keywordtype">size_t</span> idx) = 0;
<a name="l00080"></a>00080 
<a name="l00088"></a>00088   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#2e45eaa76e6287ba3f8ee77bd130f50f" title="Set the radius for this object.">SetRadius</a> (<span class="keywordtype">float</span> radius) = 0;
<a name="l00089"></a>00089 
<a name="l00093"></a>00093   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiMeshGeneratorGeometry.html#760a52e5b206c1ef08bbffaa018bf684" title="Get the radius for this object.">GetRadius</a> () <span class="keyword">const</span> = 0;
<a name="l00094"></a>00094 
<a name="l00100"></a>00100   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#d16b99bdac3b2d9d83627ceed3c644fa" title="Set the density.">SetDensity</a> (<span class="keywordtype">float</span> density) = 0;
<a name="l00101"></a>00101 
<a name="l00111"></a>00111   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#0aef7e1d81386582ae2bacddc08f9c31" title="Add a density factor based on a material.">AddDensityMaterialFactor</a> (<a class="code" href="structiMaterialWrapper.html" title="A material wrapper is an engine-level object that wraps around an actual material...">iMaterialWrapper</a>* material,
<a name="l00112"></a>00112         <span class="keywordtype">float</span> factor) = 0;
<a name="l00113"></a>00113 
<a name="l00121"></a>00121   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#98ed2b83fc83a236737143cad1a5412d" title="Set a density map in grayscale with factor.">SetDensityMap</a> (<a class="code" href="structiTerraFormer.html" title="TerraFormer objects are used to retrieve terrain data.">iTerraFormer</a>* map, <span class="keywordtype">float</span> factor, 
<a name="l00122"></a>00122     <span class="keyword">const</span> <a class="code" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd" title="An identifier for a string.">csStringID</a> &amp; type) = 0;
<a name="l00123"></a>00123 
<a name="l00133"></a>00133   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#1cefdf489fdf6be703355d95e9a2d1a2" title="Set the default factor to use in case the material found on the meshes is not any...">SetDefaultDensityMaterialFactor</a> (<span class="keywordtype">float</span> factor) = 0;
<a name="l00134"></a>00134 
<a name="l00138"></a>00138   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiMeshGeneratorGeometry.html#b78ad6b7493c7e0d5902e42c93704bd8" title="Get the density.">GetDensity</a> () <span class="keyword">const</span> = 0;
<a name="l00139"></a>00139 
<a name="l00143"></a>00143   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGeneratorGeometry.html#22a49631cbb0270847773a6f47db5344" title="Add position for placing mesh (only material factor will influence it).">AddPosition</a> (<span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a> &amp;pos) = 0;
<a name="l00144"></a>00144 
<a name="l00145"></a>00145   <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddPositionsFromMap (<a class="code" href="structiTerraFormer.html" title="TerraFormer objects are used to retrieve terrain data.">iTerraFormer</a>* map, <span class="keyword">const</span> <a class="code" href="classcsBox2.html" title="A bounding box in 2D space.">csBox2</a> &amp;region,
<a name="l00146"></a>00146     <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> resx, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> resy, <span class="keywordtype">float</span> value, <span class="keyword">const</span> <a class="code" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd" title="An identifier for a string.">csStringID</a> &amp; type) = 0;
<a name="l00147"></a>00147 };
<a name="l00148"></a>00148 
<a name="l00161"></a><a class="code" href="structiMeshGenerator.html">00161</a> <span class="keyword">struct </span><a class="code" href="structiMeshGenerator.html" title="iMeshGenerator defines the interface for a mesh generator.">iMeshGenerator</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="l00162"></a>00162 {
<a name="l00163"></a>00163   SCF_INTERFACE(<a class="code" href="structiMeshGenerator.html" title="iMeshGenerator defines the interface for a mesh generator.">iMeshGenerator</a>, 1, 0, 0);
<a name="l00164"></a>00164 
<a name="l00168"></a>00168   <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="structiMeshGenerator.html#ae079dec35bbbfb766b692bd5551182b" title="Get the iObject for this mesh generator.">QueryObject</a> () = 0;
<a name="l00169"></a>00169 
<a name="l00183"></a>00183   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#cd8d55ad15138350da67ff4f6f605a68" title="Set the density scale.">SetDensityScale</a> (<span class="keywordtype">float</span> mindist, <span class="keywordtype">float</span> maxdist,
<a name="l00184"></a>00184         <span class="keywordtype">float</span> maxdensityfactor) = 0;
<a name="l00185"></a>00185 
<a name="l00194"></a>00194   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#607913e1be19c022f24d1bd2a0e07169" title="Set the alpha scale.">SetAlphaScale</a> (<span class="keywordtype">float</span> mindist, <span class="keywordtype">float</span> maxdist) = 0;
<a name="l00195"></a>00195 
<a name="l00202"></a>00202   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#41fdae6703574a482ece996e6436fa6c" title="Get the box where where we will sample.">SetSampleBox</a> (<span class="keyword">const</span> <a class="code" href="classcsBox3.html" title="A bounding box in 3D space.">csBox3</a>&amp; box) = 0;
<a name="l00203"></a>00203 
<a name="l00207"></a>00207   <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="structiMeshGenerator.html#085b14b5c93094840c5e537bbcf4cef0" title="Get the sample box.">GetSampleBox</a> () <span class="keyword">const</span> = 0;
<a name="l00208"></a>00208 
<a name="l00217"></a>00217   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#95ff89cfcd865000cb491f081b1aefdb" title="Set the number of cells to use in one direction.">SetCellCount</a> (<span class="keywordtype">int</span> number) = 0;
<a name="l00218"></a>00218 
<a name="l00222"></a>00222   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshGenerator.html#9216f63da3f2dff4d79948581a9f8c3a" title="Get the cell count.">GetCellCount</a> () <span class="keyword">const</span> = 0;
<a name="l00223"></a>00223 
<a name="l00231"></a>00231   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#94912dad05371213a4e46330df1dc7a5" title="Set the maximum number of blocks to keep in memory at the same time.">SetBlockCount</a> (<span class="keywordtype">int</span> number) = 0;
<a name="l00232"></a>00232 
<a name="l00236"></a>00236   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiMeshGenerator.html#4897114571b34629fd848ab1f0259891" title="Get the block count.">GetBlockCount</a> () <span class="keyword">const</span> = 0;
<a name="l00237"></a>00237 
<a name="l00241"></a>00241   <span class="keyword">virtual</span> <a class="code" href="structiMeshGeneratorGeometry.html" title="This interface defines one piece of geometry for the mesh generator.">iMeshGeneratorGeometry</a>* <a class="code" href="structiMeshGenerator.html#2f7491f446b357854b6d457cfcc6fc6a" title="Create a geometry specification for this mesh generator.">CreateGeometry</a> () = 0;
<a name="l00242"></a>00242 
<a name="l00246"></a>00246   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiMeshGenerator.html#8e91ae9adca998ee289d35d82fc55f05" title="Get the number of geometry specifications.">GetGeometryCount</a> () <span class="keyword">const</span> = 0;
<a name="l00247"></a>00247 
<a name="l00251"></a>00251   <span class="keyword">virtual</span> <a class="code" href="structiMeshGeneratorGeometry.html" title="This interface defines one piece of geometry for the mesh generator.">iMeshGeneratorGeometry</a>* <a class="code" href="structiMeshGenerator.html#1563770807c8c7d4444cc3aebca98b55" title="Get a specific geometry.">GetGeometry</a> (<span class="keywordtype">size_t</span> idx) = 0;
<a name="l00252"></a>00252 
<a name="l00256"></a>00256   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#382e996fa036c7c383d5ef57c99f05f9" title="Remove a geometry.">RemoveGeometry</a> (<span class="keywordtype">size_t</span> idx) = 0;
<a name="l00257"></a>00257 
<a name="l00261"></a>00261   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#3ef73b5717adf95e5442a8a13d1c54b7" title="Add a mesh on which we will map our geometry.">AddMesh</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="l00262"></a>00262 
<a name="l00266"></a>00266   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiMeshGenerator.html#1f5593a8f6c9a8df1accf835f16d0ed4" title="Get the number of meshes.">GetMeshCount</a> () <span class="keyword">const</span> = 0;
<a name="l00267"></a>00267 
<a name="l00271"></a>00271   <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="structiMeshGenerator.html#7980404b8de6d944f426a0109e6e0611" title="Get a specific mesh.">GetMesh</a> (<span class="keywordtype">size_t</span> idx) = 0;
<a name="l00272"></a>00272 
<a name="l00276"></a>00276   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiMeshGenerator.html#190b1010fbf1341bf96d1e8e91160008" title="Remove a mesh.">RemoveMesh</a> (<span class="keywordtype">size_t</span> idx) = 0;
<a name="l00277"></a>00277 };
<a name="l00278"></a>00278 
<a name="l00281"></a>00281 <span class="preprocessor">#endif // __CS_IENGINE_MESHGEN_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>