Sophie

Sophie

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

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: imesh/emit.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>imesh/emit.h</h1><a href="emit_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright (C) 2000 by Jorrit Tyberghein</span>
<a name="l00003"></a>00003 <span class="comment">    Copyright (C) 2001 by W.C.A. Wijngaards</span>
<a name="l00004"></a>00004 <span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment">    This library is free software; you can redistribute it and/or</span>
<a name="l00006"></a>00006 <span class="comment">    modify it under the terms of the GNU Library General Public</span>
<a name="l00007"></a>00007 <span class="comment">    License as published by the Free Software Foundation; either</span>
<a name="l00008"></a>00008 <span class="comment">    version 2 of the License, or (at your option) any later version.</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment">    This library is distributed in the hope that it will be useful,</span>
<a name="l00011"></a>00011 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00012"></a>00012 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00013"></a>00013 <span class="comment">    Library General Public License for more details.</span>
<a name="l00014"></a>00014 <span class="comment"></span>
<a name="l00015"></a>00015 <span class="comment">    You should have received a copy of the GNU Library General Public</span>
<a name="l00016"></a>00016 <span class="comment">    License along with this library; if not, write to the Free</span>
<a name="l00017"></a>00017 <span class="comment">    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00018"></a>00018 <span class="comment">*/</span>
<a name="l00019"></a>00019 
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef __CS_IMESH_EMIT_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IMESH_EMIT_H__</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="scf__interface_8h.html" title="Crystal Space Shared Class Facility (SCF) - interface creation support.">csutil/scf_interface.h</a>"</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="keyword">class </span><a class="code" href="classcsColor.html" title="A class used to represent a color in RGB space.">csColor</a>;
<a name="l00030"></a>00030 <span class="keyword">class </span><a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>;
<a name="l00031"></a>00031 
<a name="l00039"></a><a class="code" href="structiEmitGen3D.html">00039</a> <span class="keyword">struct </span><a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</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="l00040"></a>00040 {
<a name="l00041"></a>00041   SCF_INTERFACE(<a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>, 2, 0, 0);
<a name="l00042"></a>00042 
<a name="l00044"></a>00044   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitGen3D.html#87668387d6904e857bae11d8f05066a5" title="get the 3d value, posibly using a given value.">GetValue</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; value, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;given) = 0;
<a name="l00045"></a>00045 };
<a name="l00046"></a>00046 
<a name="l00056"></a><a class="code" href="structiEmitFixed.html">00056</a> <span class="keyword">struct </span><a class="code" href="structiEmitFixed.html" title="Fixed value emitter - returns a particular point value.">iEmitFixed</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00057"></a>00057 {
<a name="l00058"></a>00058   SCF_INTERFACE(<a class="code" href="structiEmitFixed.html" title="Fixed value emitter - returns a particular point value.">iEmitFixed</a>, 2, 0, 0);
<a name="l00059"></a>00059 
<a name="l00061"></a>00061   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitFixed.html#f5e00a8f7acc45fe6c73e3b5e65598c2" title="set the fixed value">SetValue</a>(<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; value) = 0;
<a name="l00062"></a>00062 };
<a name="l00063"></a>00063 
<a name="l00073"></a><a class="code" href="structiEmitSphere.html">00073</a> <span class="keyword">struct </span><a class="code" href="structiEmitSphere.html" title="Sphere value emitter - returns points in a sphere.">iEmitSphere</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00074"></a>00074 {
<a name="l00075"></a>00075   SCF_INTERFACE(<a class="code" href="structiEmitSphere.html" title="Sphere value emitter - returns points in a sphere.">iEmitSphere</a>, 2, 0, 0);
<a name="l00076"></a>00076 
<a name="l00078"></a>00078   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitSphere.html#1809b0ef903fff0ab769386edd216cfe" title="set content, center and min, max radius">SetContent</a>(<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; center, <span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) = 0;
<a name="l00080"></a>00080   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitSphere.html#af66d47af178202a4e48c1e3f28932d4" title="get content">GetContent</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; center, <span class="keywordtype">float</span>&amp; min, <span class="keywordtype">float</span>&amp; max) = 0;
<a name="l00081"></a>00081 };
<a name="l00082"></a>00082 
<a name="l00092"></a><a class="code" href="structiEmitBox.html">00092</a> <span class="keyword">struct </span><a class="code" href="structiEmitBox.html" title="Box value emitter - returns points in an (axis aligned) box.">iEmitBox</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00093"></a>00093 {
<a name="l00094"></a>00094   SCF_INTERFACE(<a class="code" href="structiEmitBox.html" title="Box value emitter - returns points in an (axis aligned) box.">iEmitBox</a>, 2, 0, 0);
<a name="l00095"></a>00095 
<a name="l00097"></a>00097   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitBox.html#e5184996a3fe9f5c33ecca463d9e513e" title="set content, min and max vector values">SetContent</a>(<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; min, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; max) = 0;
<a name="l00099"></a>00099   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitBox.html#fe48b446125aed1e8da91ce376802481" title="get content">GetContent</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; min, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; max) = 0;
<a name="l00100"></a>00100 };
<a name="l00101"></a>00101 
<a name="l00111"></a><a class="code" href="structiEmitCone.html">00111</a> <span class="keyword">struct </span><a class="code" href="structiEmitCone.html" title="Cone value emitter - returns points in a cone.">iEmitCone</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00112"></a>00112 {
<a name="l00113"></a>00113   SCF_INTERFACE(<a class="code" href="structiEmitCone.html" title="Cone value emitter - returns points in a cone.">iEmitCone</a>, 2, 0, 0);
<a name="l00114"></a>00114 
<a name="l00119"></a>00119   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitCone.html#54058d15c2c560d639fb3ca33d3dd87f" title="Set content, origin, elevation, azimuth, aperture(opening), and distance min, distance...">SetContent</a>(<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; origin, <span class="keywordtype">float</span> elevation,
<a name="l00120"></a>00120     <span class="keywordtype">float</span> azimuth, <span class="keywordtype">float</span> aperture, <span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) = 0;
<a name="l00122"></a>00122   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitCone.html#2296197a41c4069ef88b7405f760847b" title="get content">GetContent</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; origin, <span class="keywordtype">float</span>&amp; elevation,
<a name="l00123"></a>00123     <span class="keywordtype">float</span>&amp; azimuth, <span class="keywordtype">float</span>&amp; aperture, <span class="keywordtype">float</span>&amp; min, <span class="keywordtype">float</span>&amp; max) = 0;
<a name="l00124"></a>00124 };
<a name="l00125"></a>00125 
<a name="l00135"></a><a class="code" href="structiEmitMix.html">00135</a> <span class="keyword">struct </span><a class="code" href="structiEmitMix.html" title="Mix value emitter - returns a weighted random mix of other emitters.">iEmitMix</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00136"></a>00136 {
<a name="l00137"></a>00137   SCF_INTERFACE(<a class="code" href="structiEmitMix.html" title="Mix value emitter - returns a weighted random mix of other emitters.">iEmitMix</a>, 2, 0, 0);
<a name="l00138"></a>00138 
<a name="l00140"></a>00140   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitMix.html#09b31847a408f7f229d89e8211b71207" title="add a weighted emitter to the mix">AddEmitter</a>(<span class="keywordtype">float</span> weight, <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>* emit) = 0;
<a name="l00146"></a>00146   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitMix.html#2551c1b511282657c38532a342c9b2df" title="Removes an emitter from the mix given a zero based emitter number.">RemoveEmitter</a>(<span class="keywordtype">int</span> num) = 0;
<a name="l00148"></a>00148   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiEmitMix.html#302d614782e9637a61969248f494d705" title="get the total weight in this mix">GetTotalWeight</a>() = 0;
<a name="l00150"></a>00150   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiEmitMix.html#110abb5d0b0404a58fc41950e7e8566b" title="get the number of emitters in this mix">GetEmitterCount</a>() = 0;
<a name="l00156"></a>00156   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitMix.html#96800c19dc70bef25b9e737880defe25" title="Adjust the weight of an emitter given a zero based emitter number Use GetEmitterCount()...">AdjustEmitterWeight</a>(<span class="keywordtype">int</span> num,<span class="keywordtype">float</span> weight) = 0;
<a name="l00158"></a>00158   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitMix.html#c58bd67c8d0b5b0eefff825722f7def1" title="get content, returns emitters and their weight by a number (0..number-1)">GetContent</a>(<span class="keywordtype">int</span> num, <span class="keywordtype">float</span>&amp; weight, <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>*&amp; emit) = 0;
<a name="l00159"></a>00159 };
<a name="l00160"></a>00160 
<a name="l00170"></a><a class="code" href="structiEmitLine.html">00170</a> <span class="keyword">struct </span><a class="code" href="structiEmitLine.html" title="Line value emitter - returns values on the line between start and end.">iEmitLine</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00171"></a>00171 {
<a name="l00172"></a>00172   SCF_INTERFACE(<a class="code" href="structiEmitLine.html" title="Line value emitter - returns values on the line between start and end.">iEmitLine</a>, 2, 0, 0);
<a name="l00173"></a>00173 
<a name="l00175"></a>00175   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitLine.html#182c3ae50a9db51afbba6f14e75793d1" title="set content, start and end vector values">SetContent</a>(<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) = 0;
<a name="l00177"></a>00177   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitLine.html#29fdd9d0b9d54c3444c298209ddab2fd" title="get content">GetContent</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end) = 0;
<a name="l00178"></a>00178 };
<a name="l00179"></a>00179 
<a name="l00189"></a><a class="code" href="structiEmitCylinder.html">00189</a> <span class="keyword">struct </span><a class="code" href="structiEmitCylinder.html" title="Cylinder value emitter - returns values in a cylinder.">iEmitCylinder</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00190"></a>00190 {
<a name="l00191"></a>00191   SCF_INTERFACE(<a class="code" href="structiEmitCylinder.html" title="Cylinder value emitter - returns values in a cylinder.">iEmitCylinder</a>, 2, 0, 0);
<a name="l00192"></a>00192 
<a name="l00194"></a>00194   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitCylinder.html#752c3859033e83dd29fbeedbd7c1f8ba" title="set content, start and end position of cylinder, min/max distance">SetContent</a>(<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="l00195"></a>00195     <span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) = 0;
<a name="l00197"></a>00197   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitCylinder.html#360e120cdce93d5c717e7aa6e481a9c1" title="get content">GetContent</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end,
<a name="l00198"></a>00198     <span class="keywordtype">float</span>&amp; min, <span class="keywordtype">float</span>&amp; max) = 0;
<a name="l00199"></a>00199 };
<a name="l00200"></a>00200 
<a name="l00211"></a><a class="code" href="structiEmitSphereTangent.html">00211</a> <span class="keyword">struct </span><a class="code" href="structiEmitSphereTangent.html" title="Sphere tangential value emitter - gives direction tangential to sphere Uses the given...">iEmitSphereTangent</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00212"></a>00212 {
<a name="l00213"></a>00213   SCF_INTERFACE(<a class="code" href="structiEmitSphereTangent.html" title="Sphere tangential value emitter - gives direction tangential to sphere Uses the given...">iEmitSphereTangent</a>, 2, 0, 0);
<a name="l00214"></a>00214 
<a name="l00216"></a>00216   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitSphereTangent.html#7ed4c4095c7ebf7186aca24725775ac4" title="set content, center of sphere, min/max size">SetContent</a>(<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; center, <span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) = 0;
<a name="l00218"></a>00218   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitSphereTangent.html#f293be6ad84e25b83ebc7c669794fa22" title="get content">GetContent</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; center, <span class="keywordtype">float</span>&amp; min, <span class="keywordtype">float</span>&amp; max) = 0;
<a name="l00219"></a>00219 };
<a name="l00220"></a>00220 
<a name="l00231"></a><a class="code" href="structiEmitCylinderTangent.html">00231</a> <span class="keyword">struct </span><a class="code" href="structiEmitCylinderTangent.html" title="Cylinder tangential value emitter - gives direction tangential to cylinder Uses the...">iEmitCylinderTangent</a> : <span class="keyword">public</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>
<a name="l00232"></a>00232 {
<a name="l00233"></a>00233   SCF_INTERFACE(<a class="code" href="structiEmitCylinderTangent.html" title="Cylinder tangential value emitter - gives direction tangential to cylinder Uses the...">iEmitCylinderTangent</a>, 2, 0, 0);
<a name="l00234"></a>00234 
<a name="l00236"></a>00236   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitCylinderTangent.html#597eac35b72c99af84afc959f81f7613" title="set content, start,end of cylinder, min/max size">SetContent</a>(<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="l00237"></a>00237     <span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) = 0;
<a name="l00239"></a>00239   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitCylinderTangent.html#131905158f8e5df72102c85f0c5aa568" title="get content">GetContent</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; start, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; end,
<a name="l00240"></a>00240     <span class="keywordtype">float</span>&amp; min, <span class="keywordtype">float</span>&amp; max) = 0;
<a name="l00241"></a>00241 };
<a name="l00242"></a>00242 
<a name="l00256"></a><a class="code" href="structiEmitFactoryState.html">00256</a> <span class="keyword">struct </span><a class="code" href="structiEmitFactoryState.html" title="This interface describes the API for the emitter mesh factory object.">iEmitFactoryState</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="l00257"></a>00257 {
<a name="l00258"></a>00258   SCF_INTERFACE(<a class="code" href="structiEmitFactoryState.html" title="This interface describes the API for the emitter mesh factory object.">iEmitFactoryState</a>, 2, 0, 0);
<a name="l00259"></a>00259 
<a name="l00261"></a>00261   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitFixed&gt;</a> <a class="code" href="structiEmitFactoryState.html#68a723668a9d2c566ab652a87e8e33f4" title="create an emitter, you have to set the content">CreateFixed</a>() = 0;
<a name="l00263"></a>00263   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitBox&gt;</a> <a class="code" href="structiEmitFactoryState.html#477da604ea51fd65cd5adc116bb1d716" title="create an emitter">CreateBox</a>() = 0;
<a name="l00265"></a>00265   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitSphere&gt;</a> <a class="code" href="structiEmitFactoryState.html#fc274d90eaf89c179e0e894533b97150" title="create an emitter">CreateSphere</a>() = 0;
<a name="l00267"></a>00267   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitCone&gt;</a> <a class="code" href="structiEmitFactoryState.html#516ed132235b01bca42fdb12d7109c31" title="create an emitter">CreateCone</a>() = 0;
<a name="l00269"></a>00269   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitMix&gt;</a> <a class="code" href="structiEmitFactoryState.html#e352d9ab557998fbd1957424559db0e7" title="create an emitter">CreateMix</a>() = 0;
<a name="l00271"></a>00271   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitLine&gt;</a> <a class="code" href="structiEmitFactoryState.html#cc65b5d4ea67b1578791ac39e202c97d" title="create an emitter">CreateLine</a>() = 0;
<a name="l00273"></a>00273   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitCylinder&gt;</a> <a class="code" href="structiEmitFactoryState.html#b99bf508bd4f02b7ebe7fc5979de1ff5" title="create an emitter">CreateCylinder</a>() = 0;
<a name="l00275"></a>00275   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitSphereTangent&gt;</a> <a class="code" href="structiEmitFactoryState.html#32cee4eb0ccc5dcf9bd9530f9181d55e" title="create an emitter">CreateSphereTangent</a>() = 0;
<a name="l00277"></a>00277   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iEmitCylinderTangent&gt;</a> <a class="code" href="structiEmitFactoryState.html#ee579d8412505ba2ae0ad07f9289b0d2" title="create an emitter">CreateCylinderTangent</a>() = 0;
<a name="l00278"></a>00278 };
<a name="l00279"></a>00279 
<a name="l00293"></a><a class="code" href="structiEmitState.html">00293</a> <span class="keyword">struct </span><a class="code" href="structiEmitState.html" title="This interface describes the API for the emitter mesh object.">iEmitState</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="l00294"></a>00294 {
<a name="l00295"></a>00295   SCF_INTERFACE(<a class="code" href="structiEmitState.html" title="This interface describes the API for the emitter mesh object.">iEmitState</a>, 2, 0, 0);
<a name="l00296"></a>00296 
<a name="l00298"></a>00298   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#9299dbb3d367e95e3cd98930a5aa1c25" title="Set the number of particles to use.">SetParticleCount</a> (<span class="keywordtype">int</span> num) = 0;
<a name="l00300"></a>00300   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiEmitState.html#c34ead06690127f130f0ff6899200b72" title="Get the number of particles used.">GetParticleCount</a> () <span class="keyword">const</span> = 0;
<a name="l00302"></a>00302   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#519ebb539841024b607401f2263e93a7" title="Enable or disable lighting.">SetLighting</a> (<span class="keywordtype">bool</span> l) = 0;
<a name="l00304"></a>00304   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiEmitState.html#0963beaf8f22c5a6058cc9796e31491c" title="See if lighting is enabled.">GetLighting</a> () <span class="keyword">const</span> = 0;
<a name="l00306"></a>00306   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#5bcd3a4f0e1b890c2c1b94795165d223" title="Set the time to live for all particles, in msec.">SetParticleTime</a>(<span class="keywordtype">int</span> ttl) = 0;
<a name="l00308"></a>00308   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiEmitState.html#ba8a4b1ef3e9b8c0124c22e7a3b58718" title="Get the time to live for all particles, in msec.">GetParticleTime</a>() <span class="keyword">const</span> = 0;
<a name="l00310"></a>00310   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#363d5db5d06e70f0d9f754376de71d5f" title="set the particle start position emitter, increfs">SetStartPosEmit</a>(<a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a> *emit) = 0;
<a name="l00312"></a>00312   <span class="keyword">virtual</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>* <a class="code" href="structiEmitState.html#18314d087f433fb0303eee491373fd3a" title="get the particle start position emitter">GetStartPosEmit</a>() <span class="keyword">const</span> = 0;
<a name="l00314"></a>00314   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#310ad55ae86781224f7739c346dc9894" title="set the particle start speed emitter, increfs. The position is given.">SetStartSpeedEmit</a>(<a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a> *emit) = 0;
<a name="l00316"></a>00316   <span class="keyword">virtual</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>* <a class="code" href="structiEmitState.html#38ac32a614b0d33ffb8ca9345a9b1dd1" title="get the particle start speed emitter">GetStartSpeedEmit</a>() <span class="keyword">const</span> = 0;
<a name="l00318"></a>00318   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#d6a4bfa1c86cf8e873c9e4cdf15c3865" title="set the particle start acceleration emitter, increfs. Position is given.">SetStartAccelEmit</a>(<a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a> *emit) = 0;
<a name="l00320"></a>00320   <span class="keyword">virtual</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>* <a class="code" href="structiEmitState.html#626645f54da4a2ec81e20095f95b9233" title="get the particle start acceleration emitter">GetStartAccelEmit</a>() <span class="keyword">const</span> = 0;
<a name="l00322"></a>00322   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#2c3355449f7488aa61aaf87938bde6fb" title="set the particle attrator emitter, increfs. Position is given.">SetAttractorEmit</a>(<a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a> *emit) = 0;
<a name="l00324"></a>00324   <span class="keyword">virtual</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>* <a class="code" href="structiEmitState.html#5c1ccfb0511eaa76b195f4e427492a4d" title="get the particle attrator emitter. Null means no attractor.">GetAttractorEmit</a>() <span class="keyword">const</span> = 0;
<a name="l00325"></a>00325 
<a name="l00327"></a>00327   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#0ff76ef0ee7e69d18b4881c02c9fd1b9" title="Set the force of the attractor (negative gives repulsion).">SetAttractorForce</a>(<span class="keywordtype">float</span> f) = 0;
<a name="l00329"></a>00329   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiEmitState.html#f1d67823fc5257c75275e2454be49c79" title="Get the force of the attractor.">GetAttractorForce</a>() <span class="keyword">const</span> = 0;
<a name="l00330"></a>00330 
<a name="l00332"></a>00332   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#8c35109337f9bbc6a4884dc757b88b88" title="Set the field speed emitter, increfs (given position determines speed).">SetFieldSpeedEmit</a>(<a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a> *emit) = 0;
<a name="l00334"></a>00334   <span class="keyword">virtual</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>* <a class="code" href="structiEmitState.html#dc50e2d2d25fcfd440c450e605c9a085" title="get field speed emitter, can be 0">GetFieldSpeedEmit</a>() <span class="keyword">const</span> = 0;
<a name="l00336"></a>00336   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#96e963c9f756b296b22a25b00165d8b5" title="Set the field accel emitter, increfs (given position determines accel).">SetFieldAccelEmit</a>(<a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a> *emit) = 0;
<a name="l00338"></a>00338   <span class="keyword">virtual</span> <a class="code" href="structiEmitGen3D.html" title="This interface is for objects that can generate 3d vectors, which are used for emitting...">iEmitGen3D</a>* <a class="code" href="structiEmitState.html#097dea112dffa279bee3e92b124669ef" title="get field accel emitter, can be 0">GetFieldAccelEmit</a>() <span class="keyword">const</span> = 0;
<a name="l00339"></a>00339 
<a name="l00350"></a>00350   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#dd244778e0baa3b13fe149170d67302f" title="Add an aging moment, they are interpolated.">AddAge</a>(<span class="keywordtype">int</span> time, <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, <span class="keywordtype">float</span> alpha,
<a name="l00351"></a>00351     <span class="keywordtype">float</span> swirl, <span class="keywordtype">float</span> rotspeed, <span class="keywordtype">float</span> scale) = 0;
<a name="l00353"></a>00353   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiEmitState.html#8f57b00b94959a1384face9a0f790d83" title="Get the number of aging moments.">GetAgingCount</a>() <span class="keyword">const</span> = 0;
<a name="l00355"></a>00355   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#5a2bf55c10c357bfb534853176fcd512" title="get the settings of aging moment i (0..number-1)">GetAgingMoment</a>(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span>&amp; time, <a class="code" href="classcsColor.html" title="A class used to represent a color in RGB space.">csColor</a>&amp; color, <span class="keywordtype">float</span> &amp;alpha,
<a name="l00356"></a>00356     <span class="keywordtype">float</span>&amp; swirl, <span class="keywordtype">float</span>&amp; rotspeed, <span class="keywordtype">float</span>&amp; scale) = 0;
<a name="l00358"></a>00358   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#8cc2366039b79d0e1ef5c8e88415f93e" title="remove an aging moment">RemoveAge</a>(<span class="keywordtype">int</span> time, <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, <span class="keywordtype">float</span> alpha,
<a name="l00359"></a>00359         <span class="keywordtype">float</span> swirl, <span class="keywordtype">float</span> rotspeed, <span class="keywordtype">float</span> scale) = 0;
<a name="l00361"></a>00361   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#4d115f3eaa2f23f0e2cfe4e8f282724d" title="replace the settings for the age at the timepoint given.">ReplaceAge</a>(<span class="keywordtype">int</span> time, <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, <span class="keywordtype">float</span> alpha,
<a name="l00362"></a>00362     <span class="keywordtype">float</span> swirl, <span class="keywordtype">float</span> rotspeed, <span class="keywordtype">float</span> scale) = 0;
<a name="l00363"></a>00363 
<a name="l00365"></a>00365   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#49b16beef9391e895a0e224a81df6522" title="Set the particle system to use rectangular particles, given w, h.">SetRectParticles</a>(<span class="keywordtype">float</span> w, <span class="keywordtype">float</span> h) = 0;
<a name="l00367"></a>00367   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#61cebb5829ff36a3ff3725ee98fd1728" title="Set the particle system to use regular shaped particles.">SetRegularParticles</a>(<span class="keywordtype">int</span> n, <span class="keywordtype">float</span> radius) = 0;
<a name="l00369"></a>00369   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiEmitState.html#a0fb2e35e4c58d5af816738bfd0d5522" title="true if using rect particles. false if using regular particles.">UsingRectParticles</a>() <span class="keyword">const</span> = 0;
<a name="l00371"></a>00371   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#0b1cb73bf77884e948ca7ae3af8ef295" title="get the size of rect particles;">GetRectParticles</a>(<span class="keywordtype">float</span> &amp;w, <span class="keywordtype">float</span> &amp;h) <span class="keyword">const</span> = 0;
<a name="l00373"></a>00373   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#b88f2245d036b21e38bd7171a6c8f59e" title="Get the regular shaped particles sides and radius.">GetRegularParticles</a>(<span class="keywordtype">int</span>&amp; n, <span class="keywordtype">float</span>&amp; radius) <span class="keyword">const</span> = 0;
<a name="l00374"></a>00374 
<a name="l00376"></a>00376   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiEmitState.html#e204e3700ca02e961195df52f466088e" title="Set container box, particles are only allowed inside this box.">SetContainerBox</a>(<span class="keywordtype">bool</span> enabled, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; min, 
<a name="l00377"></a>00377     <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; max) = 0;
<a name="l00384"></a>00384   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiEmitState.html#cadc0385aa7969721d7a2161c934f28d" title="Get container box, particles are only allowed inside this box.">GetContainerBox</a>(<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; min, <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; max) <span class="keyword">const</span> = 0;
<a name="l00385"></a>00385 };
<a name="l00386"></a>00386 
<a name="l00389"></a>00389 <span class="preprocessor">#endif // __CS_IMESH_EMIT_H__</span>
<a name="l00390"></a>00390 <span class="preprocessor"></span>
</pre></div><hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>