Sophie

Sophie

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

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/particles.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/particles.h</h1><a href="particles_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) 2006 by Marten Svanfeldt</span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">  This library is free software; you can redistribute it and/or</span>
<a name="l00005"></a>00005 <span class="comment">  modify it under the terms of the GNU Library General Public</span>
<a name="l00006"></a>00006 <span class="comment">  License as published by the Free Software Foundation; either</span>
<a name="l00007"></a>00007 <span class="comment">  version 2 of the License, or (at your option) any later version.</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">  This library is distributed in the hope that it will be useful,</span>
<a name="l00010"></a>00010 <span class="comment">  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00011"></a>00011 <span class="comment">  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00012"></a>00012 <span class="comment">  Library General Public License for more details.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">  You should have received a copy of the GNU Library General Public</span>
<a name="l00015"></a>00015 <span class="comment">  License along with this library; if not, write to the Free</span>
<a name="l00016"></a>00016 <span class="comment">  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef __CS_IMESH_PARTICLES_H__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IMESH_PARTICLES_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="scf__interface_8h.html" title="Crystal Space Shared Class Facility (SCF) - interface creation support.">csutil/scf_interface.h</a>"</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="obb_8h.html" title="Oriented bounding box.">csgeom/obb.h</a>"</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="vector2_8h.html" title="2D vector.">csgeom/vector2.h</a>"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="vector3_8h.html" title="3D vector.">csgeom/vector3.h</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="quaternion_8h.html" title="Quaternions.">csgeom/quaternion.h</a>"</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="csutil_2array_8h.html" title="Generic Array Template.">csutil/array.h</a>"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="cscolor_8h.html" title="Floating-point color.">csutil/cscolor.h</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="ref_8h.html" title="Smart Pointers.">csutil/ref.h</a>"</span>
<a name="l00031"></a>00031 
<a name="l00036"></a>00036 <span class="keyword">struct </span><a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</a>;
<a name="l00037"></a>00037 
<a name="l00047"></a><a class="code" href="group__meshplugins.html#ge93e1c39097957ad64b31c2d8b8b6f43">00047</a> <span class="keyword">enum</span> <a class="code" href="group__meshplugins.html#ge93e1c39097957ad64b31c2d8b8b6f43" title="Sorting modes for particle renderer.">csParticleSortMode</a>
<a name="l00048"></a>00048 {
<a name="l00050"></a><a class="code" href="group__meshplugins.html#gge93e1c39097957ad64b31c2d8b8b6f43e4adc7f55ed3dfb7fcdd811135d12521">00050</a>   <a class="code" href="group__meshplugins.html#gge93e1c39097957ad64b31c2d8b8b6f43e4adc7f55ed3dfb7fcdd811135d12521" title="No sorting at all.">CS_PARTICLE_SORT_NONE</a>,
<a name="l00052"></a><a class="code" href="group__meshplugins.html#gge93e1c39097957ad64b31c2d8b8b6f438178728be3332499eb4a995aeb6b791d">00052</a>   <a class="code" href="group__meshplugins.html#gge93e1c39097957ad64b31c2d8b8b6f438178728be3332499eb4a995aeb6b791d" title="Sort by distance to camera.">CS_PARTICLE_SORT_DISTANCE</a>,
<a name="l00054"></a><a class="code" href="group__meshplugins.html#gge93e1c39097957ad64b31c2d8b8b6f43a670ec9563bf890d234ac6de3c38686c">00054</a>   <a class="code" href="group__meshplugins.html#gge93e1c39097957ad64b31c2d8b8b6f43a670ec9563bf890d234ac6de3c38686c" title="Sort by dot product of normalized camera vector and particle direction.">CS_PARTICLE_SORT_DOT</a>
<a name="l00055"></a>00055 };
<a name="l00056"></a>00056 
<a name="l00062"></a><a class="code" href="group__meshplugins.html#gdd37c684519925f0e82a570da3694912">00062</a> <span class="keyword">enum</span> <a class="code" href="group__meshplugins.html#gdd37c684519925f0e82a570da3694912" title="Particle orientation.">csParticleRenderOrientation</a>
<a name="l00063"></a>00063 {
<a name="l00068"></a><a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912c50d98ee12e8a990ca28d67ac9a979fa">00068</a>   <a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912c50d98ee12e8a990ca28d67ac9a979fa" title="Billboard always facing the camera, with exact computation per particle.">CS_PARTICLE_CAMERAFACE</a>,
<a name="l00075"></a><a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da369491261112e0630c10dd3d5c2d252e60c9a58">00075</a>   <a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da369491261112e0630c10dd3d5c2d252e60c9a58" title="Billboard always facing the camera direction.">CS_PARTICLE_CAMERAFACE_APPROX</a>,
<a name="l00080"></a><a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912750bb134bcdffeebafe10b32a429eb58">00080</a>   <a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912750bb134bcdffeebafe10b32a429eb58" title="Orient billboard around a common direction (y/up direction), facing the camera.">CS_PARTICLE_ORIENT_COMMON</a>,
<a name="l00087"></a><a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912847f8c9fd2c0ac69ae19092c20fb982a">00087</a>   <a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912847f8c9fd2c0ac69ae19092c20fb982a" title="Orient billboard around a common direction (y/up direction), facing the camera.">CS_PARTICLE_ORIENT_COMMON_APPROX</a>,
<a name="l00093"></a><a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912348efce74687d89c51f08fe7acbf96d4">00093</a>   <a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912348efce74687d89c51f08fe7acbf96d4" title="Orient billboard around a common direction (y/up direction), facing the camera.">CS_PARTICLE_ORIENT_VELOCITY</a>,
<a name="l00099"></a><a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da36949123f53390d25c732ba4f3c73733930e28a">00099</a>    <a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da36949123f53390d25c732ba4f3c73733930e28a" title="Orient the particles according to their internal rotation.">CS_PARTICLE_ORIENT_SELF</a>,
<a name="l00107"></a><a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912a379b3c0dd330ccccb622567aed00dfe">00107</a>     <a class="code" href="group__meshplugins.html#ggdd37c684519925f0e82a570da3694912a379b3c0dd330ccccb622567aed00dfe" title="Orient the particles according to their internal rotation.">CS_PARTICLE_ORIENT_SELF_FORWARD</a>
<a name="l00108"></a>00108 };
<a name="l00109"></a>00109 
<a name="l00114"></a><a class="code" href="group__meshplugins.html#ge09c0831393d0e3ccfc586fef7ea514a">00114</a> <span class="keyword">enum</span> <a class="code" href="group__meshplugins.html#ge09c0831393d0e3ccfc586fef7ea514a" title="Rotation mode.">csParticleRotationMode</a>
<a name="l00115"></a>00115 {
<a name="l00117"></a><a class="code" href="group__meshplugins.html#gge09c0831393d0e3ccfc586fef7ea514aa11d7853760505d392e8b4cf7835b649">00117</a>   <a class="code" href="group__meshplugins.html#gge09c0831393d0e3ccfc586fef7ea514aa11d7853760505d392e8b4cf7835b649" title="Do not take rotation into account at all.">CS_PARTICLE_ROTATE_NONE</a>,
<a name="l00119"></a><a class="code" href="group__meshplugins.html#gge09c0831393d0e3ccfc586fef7ea514aa9f3116f9cd38dc16b3271e2c75f3e85">00119</a>   <a class="code" href="group__meshplugins.html#gge09c0831393d0e3ccfc586fef7ea514aa9f3116f9cd38dc16b3271e2c75f3e85" title="Rotate texture coordinates.">CS_PARTICLE_ROTATE_TEXCOORD</a>,
<a name="l00121"></a><a class="code" href="group__meshplugins.html#gge09c0831393d0e3ccfc586fef7ea514ab561b972ddfd8b3aab9999e2d8d1399c">00121</a>   <a class="code" href="group__meshplugins.html#gge09c0831393d0e3ccfc586fef7ea514ab561b972ddfd8b3aab9999e2d8d1399c" title="Rotate particle vertices in the billboard plane.">CS_PARTICLE_ROTATE_VERTICES</a>
<a name="l00122"></a>00122 };
<a name="l00123"></a>00123 
<a name="l00129"></a><a class="code" href="group__meshplugins.html#gfa45b15d64c07a71e82de2dbb1c0e892">00129</a> <span class="keyword">enum</span> <a class="code" href="group__meshplugins.html#gfa45b15d64c07a71e82de2dbb1c0e892" title="Particle integration mode.">csParticleIntegrationMode</a>
<a name="l00130"></a>00130 {
<a name="l00132"></a><a class="code" href="group__meshplugins.html#ggfa45b15d64c07a71e82de2dbb1c0e89222f0c0a4fce949b238a4f76ae04b9d6e">00132</a>   <a class="code" href="group__meshplugins.html#ggfa45b15d64c07a71e82de2dbb1c0e89222f0c0a4fce949b238a4f76ae04b9d6e" title="Perform no integration.">CS_PARTICLE_INTEGRATE_NONE</a>,
<a name="l00134"></a><a class="code" href="group__meshplugins.html#ggfa45b15d64c07a71e82de2dbb1c0e89207b6043a05579e739e5cd1053707798f">00134</a>   <a class="code" href="group__meshplugins.html#ggfa45b15d64c07a71e82de2dbb1c0e89207b6043a05579e739e5cd1053707798f" title="Integrate linear velocity into linear position.">CS_PARTICLE_INTEGRATE_LINEAR</a>,
<a name="l00139"></a><a class="code" href="group__meshplugins.html#ggfa45b15d64c07a71e82de2dbb1c0e8926fef4aaa03adef745ab9d75a31091334">00139</a>   <a class="code" href="group__meshplugins.html#ggfa45b15d64c07a71e82de2dbb1c0e8926fef4aaa03adef745ab9d75a31091334" title="Integrate both linear and angular velocity into pose.">CS_PARTICLE_INTEGRATE_BOTH</a>
<a name="l00140"></a>00140 };
<a name="l00141"></a>00141 
<a name="l00147"></a><a class="code" href="group__meshplugins.html#g78ed97d2d4aec88a977525121f77879a">00147</a> <span class="keyword">enum</span> <a class="code" href="group__meshplugins.html#g78ed97d2d4aec88a977525121f77879a" title="Particle transformation mode.">csParticleTransformMode</a>
<a name="l00148"></a>00148 {
<a name="l00153"></a><a class="code" href="group__meshplugins.html#gg78ed97d2d4aec88a977525121f77879a44cac81be5f6ee2480660fa05c7d42dc">00153</a>   <a class="code" href="group__meshplugins.html#gg78ed97d2d4aec88a977525121f77879a44cac81be5f6ee2480660fa05c7d42dc" title="Fully local mode.">CS_PARTICLE_LOCAL_MODE</a>,
<a name="l00161"></a><a class="code" href="group__meshplugins.html#gg78ed97d2d4aec88a977525121f77879ad34c9b7bf74d06b980c6a61b280cbbde">00161</a>   <a class="code" href="group__meshplugins.html#gg78ed97d2d4aec88a977525121f77879ad34c9b7bf74d06b980c6a61b280cbbde" title="Mixed coordinate mode.">CS_PARTICLE_LOCAL_EMITTER</a>,
<a name="l00166"></a><a class="code" href="group__meshplugins.html#gg78ed97d2d4aec88a977525121f77879a437cadbef24d3c98038745fd2d2780c1">00166</a>   <a class="code" href="group__meshplugins.html#gg78ed97d2d4aec88a977525121f77879a437cadbef24d3c98038745fd2d2780c1" title="Fully global mode.">CS_PARTICLE_WORLD_MODE</a>
<a name="l00167"></a>00167 };
<a name="l00168"></a>00168 
<a name="l00172"></a><a class="code" href="structcsParticle.html">00172</a> <span class="keyword">struct </span><a class="code" href="structcsParticle.html" title="Data representation of a single particle.">csParticle</a>
<a name="l00173"></a>00173 {
<a name="l00179"></a><a class="code" href="structcsParticle.html#8d87056ace2bed10d81dfb6725b3fab7">00179</a>   <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structcsParticle.html#8d87056ace2bed10d81dfb6725b3fab7" title="Position.">position</a>;
<a name="l00180"></a>00180 
<a name="l00184"></a><a class="code" href="structcsParticle.html#6846a1d3f7f96b75d13481dbf72f8ed9">00184</a>   <span class="keywordtype">float</span> <a class="code" href="structcsParticle.html#6846a1d3f7f96b75d13481dbf72f8ed9" title="Particle mass.">mass</a>;
<a name="l00185"></a>00185 
<a name="l00192"></a><a class="code" href="structcsParticle.html#48cfc7b180d17e7c2a8363515253d553">00192</a>   <a class="code" href="classcsQuaternion.html" title="Class for a quaternion.">csQuaternion</a> <a class="code" href="structcsParticle.html#48cfc7b180d17e7c2a8363515253d553" title="Orientation of a single particle.">orientation</a>;
<a name="l00193"></a>00193   
<a name="l00199"></a><a class="code" href="structcsParticle.html#bc8fc01a0ab0cc9ca2f94fb45a093cc5">00199</a>   <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structcsParticle.html#bc8fc01a0ab0cc9ca2f94fb45a093cc5" title="Current linear velocity.">linearVelocity</a>;
<a name="l00200"></a>00200 
<a name="l00204"></a><a class="code" href="structcsParticle.html#672ebbd8bea2df1f3b652fd5d51de885">00204</a>   <span class="keywordtype">float</span> <a class="code" href="structcsParticle.html#672ebbd8bea2df1f3b652fd5d51de885" title="Current time to live.">timeToLive</a>;
<a name="l00205"></a>00205 
<a name="l00209"></a><a class="code" href="structcsParticle.html#09fb92c8cd84d9813b774968501877a3">00209</a>   <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structcsParticle.html#09fb92c8cd84d9813b774968501877a3" title="Angular velocity.">angularVelocity</a>;
<a name="l00210"></a>00210 
<a name="l00211"></a>00211   <span class="comment">// Pad to make this struct 64 bytes</span>
<a name="l00212"></a><a class="code" href="structcsParticle.html#71dcc1fd07b8da798334750edc09f1ab">00212</a>   <span class="keywordtype">float</span> <a class="code" href="structcsParticle.html#71dcc1fd07b8da798334750edc09f1ab">pad</a>;
<a name="l00213"></a>00213 };
<a name="l00214"></a>00214 
<a name="l00218"></a><a class="code" href="structcsParticleAux.html">00218</a> <span class="keyword">struct </span><a class="code" href="structcsParticleAux.html" title="Auxiliary data per particle, not used as often.">csParticleAux</a>
<a name="l00219"></a>00219 {
<a name="l00223"></a><a class="code" href="structcsParticleAux.html#c666e875c5527b715fd8e939c66baf3a">00223</a>   <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a> <a class="code" href="structcsParticleAux.html#c666e875c5527b715fd8e939c66baf3a" title="Current color value.">color</a>;
<a name="l00224"></a>00224 
<a name="l00229"></a><a class="code" href="structcsParticleAux.html#e349b13cb0d972c2ff1b7459d0b0f8d2">00229</a>   <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a> <a class="code" href="structcsParticleAux.html#e349b13cb0d972c2ff1b7459d0b0f8d2" title="Size of particle.">particleSize</a>;
<a name="l00230"></a>00230 
<a name="l00231"></a>00231   <span class="comment">// Pad to make this 32 bytes</span>
<a name="l00232"></a><a class="code" href="structcsParticleAux.html#c5eb675344ae39bd39a5438477238e6a">00232</a>   <span class="keywordtype">float</span> <a class="code" href="structcsParticleAux.html#c5eb675344ae39bd39a5438477238e6a">pad</a>[2];
<a name="l00233"></a>00233 };
<a name="l00234"></a>00234 
<a name="l00238"></a><a class="code" href="structcsParticleBuffer.html">00238</a> <span class="keyword">struct </span><a class="code" href="structcsParticleBuffer.html" title="Buffer holder for particle buffers.">csParticleBuffer</a>
<a name="l00239"></a>00239 {
<a name="l00241"></a><a class="code" href="structcsParticleBuffer.html#44a5dc01c7dbb176b0ad867c0d9d29e2">00241</a>   <a class="code" href="structcsParticle.html" title="Data representation of a single particle.">csParticle</a>* <a class="code" href="structcsParticleBuffer.html#44a5dc01c7dbb176b0ad867c0d9d29e2" title="Main particle data.">particleData</a>;
<a name="l00242"></a>00242   
<a name="l00244"></a><a class="code" href="structcsParticleBuffer.html#b5f0a2aa8319ee5fcb70651cca478106">00244</a>   <a class="code" href="structcsParticleAux.html" title="Auxiliary data per particle, not used as often.">csParticleAux</a>* <a class="code" href="structcsParticleBuffer.html#b5f0a2aa8319ee5fcb70651cca478106" title="Auxiliary data, indexed in same way as the main data.">particleAuxData</a>;
<a name="l00245"></a>00245 
<a name="l00247"></a><a class="code" href="structcsParticleBuffer.html#3572ab91f1f4f3f00960b6bbf7cea6e8">00247</a>   <span class="keywordtype">size_t</span> <a class="code" href="structcsParticleBuffer.html#3572ab91f1f4f3f00960b6bbf7cea6e8" title="Number of valid particles in the buffer.">particleCount</a>;
<a name="l00248"></a>00248 };
<a name="l00249"></a>00249 
<a name="l00254"></a><a class="code" href="structiParticleEmitter.html">00254</a> <span class="keyword">struct </span><a class="code" href="structiParticleEmitter.html" title="A particle emitter.">iParticleEmitter</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="l00255"></a>00255 {
<a name="l00256"></a>00256   SCF_INTERFACE(<a class="code" href="structiParticleEmitter.html" title="A particle emitter.">iParticleEmitter</a>,1,0,0);
<a name="l00257"></a>00257 
<a name="l00262"></a>00262   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#464795670fbad11a2922137088a88cf9" title="Set emitters enabled state.">SetEnabled</a> (<span class="keywordtype">bool</span> enabled) = 0;
<a name="l00263"></a>00263 
<a name="l00267"></a>00267   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiParticleEmitter.html#b9af6079603fb88509ed652a12f47560" title="Get emitters enabled state.">GetEnabled</a> () <span class="keyword">const</span> = 0;
<a name="l00268"></a>00268 
<a name="l00275"></a>00275   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#7444a2fc490164387deb7f3a9c0ebcda" title="Set the start time (in seconds) for this emitter.">SetStartTime</a> (<span class="keywordtype">float</span> time) = 0;
<a name="l00276"></a>00276 
<a name="l00280"></a>00280   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiParticleEmitter.html#6d728f38fcada0d60a88a64c6c1d0679" title="Get the start time (in seconds).">GetStartTime</a> () <span class="keyword">const</span> = 0;
<a name="l00281"></a>00281 
<a name="l00289"></a>00289   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#ca4decfdecd092c6e75dd83ba4699ac8" title="Set duration (in seconds) for this emitter.">SetDuration</a> (<span class="keywordtype">float</span> time) = 0;
<a name="l00290"></a>00290 
<a name="l00294"></a>00294   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiParticleEmitter.html#64a47d6803d07574cdc2d31bf8f24d2c" title="Get duration (in seconds) for this emitter.">GetDuration</a> () <span class="keyword">const</span> = 0;
<a name="l00295"></a>00295 
<a name="l00299"></a>00299   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#ba4f8eee97e0bde35e1e6f747b8cebb5" title="Set emission rate in particles per second.">SetEmissionRate</a> (<span class="keywordtype">float</span> particlesPerSecond) = 0;
<a name="l00300"></a>00300 
<a name="l00304"></a>00304   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiParticleEmitter.html#441ae1691bdcfd41376eff0a89c808cd" title="Get emission rate in particles per second.">GetEmissionRate</a> () <span class="keyword">const</span> = 0;
<a name="l00305"></a>00305 
<a name="l00310"></a>00310   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#bce5336fe9eed2912b6e0bb9ebac4008" title="Set initial time-to-live span.">SetInitialTTL</a> (<span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) = 0;
<a name="l00311"></a>00311 
<a name="l00315"></a>00315   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#ab61c4a9ad55411db1ce8c4a8760d745" title="Get initial time-to-live span.">GetInitialTTL</a> (<span class="keywordtype">float</span>&amp; min, <span class="keywordtype">float</span>&amp; max) <span class="keyword">const</span>= 0;
<a name="l00316"></a>00316 
<a name="l00321"></a>00321   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#133ed9ecce4a5b9e1a6b4084606ac437" title="Set initial mass for new particles.">SetInitialMass</a> (<span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) = 0;
<a name="l00322"></a>00322 
<a name="l00326"></a>00326   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#84e3c4841dba10cee890f45d9102bce5" title="Get initial mass for new particles.">GetInitialMass</a> (<span class="keywordtype">float</span>&amp; min, <span class="keywordtype">float</span>&amp; max) <span class="keyword">const</span> = 0;
<a name="l00327"></a>00327 
<a name="l00331"></a>00331   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleEmitter&gt;</a> <a class="code" href="structiParticleEmitter.html#c6c2af180a9f7ded062a8347676e3af0" title="Clone this emitter.">Clone</a> () <span class="keyword">const</span> = 0;
<a name="l00332"></a>00332 
<a name="l00336"></a>00336   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleEmitter.html#06b7acad3c165f82b56d563c19e1d830" title="Get number of particles this emitter wants to emit.">ParticlesToEmit</a> (<a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</a>* system,
<a name="l00337"></a>00337     <span class="keywordtype">float</span> dt, <span class="keywordtype">float</span> totalTime) = 0;
<a name="l00338"></a>00338 
<a name="l00342"></a>00342   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEmitter.html#19e3c7195d81f819710c73123fa08082" title="Spawn new particles.">EmitParticles</a> (<a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</a>* system,
<a name="l00343"></a>00343     <span class="keyword">const</span> <a class="code" href="structcsParticleBuffer.html" title="Buffer holder for particle buffers.">csParticleBuffer</a>&amp; particleBuffer, <span class="keywordtype">float</span> dt, <span class="keywordtype">float</span> totalTime,
<a name="l00344"></a>00344     <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>* <span class="keyword">const</span> emitterToParticle = 0) = 0;
<a name="l00345"></a>00345 
<a name="l00346"></a>00346 };
<a name="l00347"></a>00347 
<a name="l00353"></a><a class="code" href="structiParticleEffector.html">00353</a> <span class="keyword">struct </span><a class="code" href="structiParticleEffector.html" title="Base interface for particle effector.">iParticleEffector</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="l00354"></a>00354 {
<a name="l00355"></a>00355   SCF_INTERFACE(<a class="code" href="structiParticleEffector.html" title="Base interface for particle effector.">iParticleEffector</a>,1,0,0);
<a name="l00356"></a>00356 
<a name="l00360"></a>00360   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleEffector&gt;</a> <a class="code" href="structiParticleEffector.html#f8f2d042bc380dd40924d178ee7fa753" title="Clone this effector.">Clone</a> () <span class="keyword">const</span> = 0;
<a name="l00361"></a>00361 
<a name="l00365"></a>00365   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleEffector.html#45d41c4e75fa66b7f39c906beb637a8a" title="Calculate effect on particles and update their velocities.">EffectParticles</a> (<a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</a>* system,
<a name="l00366"></a>00366     <span class="keyword">const</span> <a class="code" href="structcsParticleBuffer.html" title="Buffer holder for particle buffers.">csParticleBuffer</a>&amp; particleBuffer, <span class="keywordtype">float</span> dt, <span class="keywordtype">float</span> totalTime) = 0;
<a name="l00367"></a>00367 };
<a name="l00368"></a>00368 
<a name="l00369"></a>00369 
<a name="l00376"></a><a class="code" href="structiParticleSystemBase.html">00376</a> <span class="keyword">struct </span><a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</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="l00377"></a>00377 {
<a name="l00378"></a>00378   SCF_INTERFACE(<a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</a>, 1,0,0);
<a name="l00379"></a>00379 
<a name="l00381"></a>00381   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#be54b0e2b7de40cdbd9df75097fe9fe1" title="Set particle type generated.">SetParticleRenderOrientation</a> (<a class="code" href="group__meshplugins.html#gdd37c684519925f0e82a570da3694912" title="Particle orientation.">csParticleRenderOrientation</a> o) = 0;
<a name="l00382"></a>00382 
<a name="l00384"></a>00384   <span class="keyword">virtual</span> <a class="code" href="group__meshplugins.html#gdd37c684519925f0e82a570da3694912" title="Particle orientation.">csParticleRenderOrientation</a> <a class="code" href="structiParticleSystemBase.html#197f2394672038257ae1569c444a9e98" title="Get particle type.">GetParticleRenderOrientation</a> () <span class="keyword">const</span> = 0;
<a name="l00385"></a>00385 
<a name="l00387"></a>00387   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#221efd0e5a2125adb0862ab9781e4785" title="Set particle rotation mode.">SetRotationMode</a> (<a class="code" href="group__meshplugins.html#ge09c0831393d0e3ccfc586fef7ea514a" title="Rotation mode.">csParticleRotationMode</a> mode) = 0;
<a name="l00388"></a>00388 
<a name="l00390"></a>00390   <span class="keyword">virtual</span> <a class="code" href="group__meshplugins.html#ge09c0831393d0e3ccfc586fef7ea514a" title="Rotation mode.">csParticleRotationMode</a> <a class="code" href="structiParticleSystemBase.html#9b32f3226a5c4a6e6c229af4c6753ffc" title="Get particle rotation mode.">GetRotationMode</a> () <span class="keyword">const</span> = 0;
<a name="l00391"></a>00391 
<a name="l00393"></a>00393   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#4c74990226832bd4c732723a3843f398" title="Set particle sort mode.">SetSortMode</a> (<a class="code" href="group__meshplugins.html#ge93e1c39097957ad64b31c2d8b8b6f43" title="Sorting modes for particle renderer.">csParticleSortMode</a> mode) = 0;
<a name="l00394"></a>00394 
<a name="l00396"></a>00396   <span class="keyword">virtual</span> <a class="code" href="group__meshplugins.html#ge93e1c39097957ad64b31c2d8b8b6f43" title="Sorting modes for particle renderer.">csParticleSortMode</a> <a class="code" href="structiParticleSystemBase.html#078e73d13213550758117c18be337663" title="Get particle sort mode.">GetSortMode</a> () <span class="keyword">const</span> = 0;
<a name="l00397"></a>00397 
<a name="l00399"></a>00399   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#e1111f2e5ea8f3aad61042a0818506bb" title="Set particle integration mode.">SetIntegrationMode</a> (<a class="code" href="group__meshplugins.html#gfa45b15d64c07a71e82de2dbb1c0e892" title="Particle integration mode.">csParticleIntegrationMode</a> mode) = 0;
<a name="l00400"></a>00400 
<a name="l00402"></a>00402   <span class="keyword">virtual</span> <a class="code" href="group__meshplugins.html#gfa45b15d64c07a71e82de2dbb1c0e892" title="Particle integration mode.">csParticleIntegrationMode</a> <a class="code" href="structiParticleSystemBase.html#1d7f1acbab92ae1c84cbc246766aca56" title="Get particle integration mode.">GetIntegrationMode</a> () = 0;
<a name="l00403"></a>00403 
<a name="l00405"></a>00405   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#1a52964c80d787218a0411c60cc46ad5" title="Set the common direction.">SetCommonDirection</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; direction) = 0;
<a name="l00406"></a>00406 
<a name="l00408"></a>00408   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; <a class="code" href="structiParticleSystemBase.html#c0d93749a9f32696631e829e3f8580b5" title="Get the common direction.">GetCommonDirection</a> () <span class="keyword">const</span> = 0;
<a name="l00409"></a>00409 
<a name="l00411"></a>00411   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#ac7cecde88399ad2da1c1b917f7e032f" title="Set transform mode.">SetTransformMode</a> (<a class="code" href="group__meshplugins.html#g78ed97d2d4aec88a977525121f77879a" title="Particle transformation mode.">csParticleTransformMode</a> mode) = 0;
<a name="l00412"></a>00412 
<a name="l00414"></a>00414   <span class="keyword">virtual</span> <a class="code" href="group__meshplugins.html#g78ed97d2d4aec88a977525121f77879a" title="Particle transformation mode.">csParticleTransformMode</a> <a class="code" href="structiParticleSystemBase.html#cef3e931aba678dbed18cf5efb228a5a" title="Get transform mode.">GetTransformMode</a> () <span class="keyword">const</span> = 0;
<a name="l00415"></a>00415 
<a name="l00417"></a>00417   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#b3d02306e0929cf7c224f331fd9af746" title="Set if particles should use specified or their own size.">SetUseIndividualSize</a> (<span class="keywordtype">bool</span> individual) = 0;
<a name="l00418"></a>00418 
<a name="l00420"></a>00420   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiParticleSystemBase.html#f47260312c45fbffede335badbc9206c" title="Get if particles should use specified or their own size.">GetUseIndividualSize</a> () <span class="keyword">const</span> = 0;
<a name="l00421"></a>00421 
<a name="l00423"></a>00423   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#fa06f32579bda6b2e2c6fe7c6de28c2a" title="Set common size of particles.">SetParticleSize</a> (<span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>&amp; size) = 0;
<a name="l00424"></a>00424 
<a name="l00426"></a>00426   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector2.html" title="A 2D vector.">csVector2</a>&amp; <a class="code" href="structiParticleSystemBase.html#aa747e9ff1ff136a5bb62d97e27811e0" title="Get common size of particles.">GetParticleSize</a> () <span class="keyword">const</span> = 0;
<a name="l00427"></a>00427 
<a name="l00429"></a>00429   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#6ac8a013bb92d15fdb0269a82b8013b4" title="Set the smallest bounding box particle system should use.">SetMinBoundingBox</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="l00430"></a>00430   
<a name="l00432"></a>00432   <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="structiParticleSystemBase.html#b2bc6536560b4725f77dbdfc61cb4712" title="Get the smallest bounding box particle system should use.">GetMinBoundingBox</a> () <span class="keyword">const</span> = 0;
<a name="l00433"></a>00433 
<a name="l00435"></a>00435   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#455f32bf7ef516786d34683251b13dc4" title="Add an emitter to the system. The particle should increment the reference.">AddEmitter</a> (<a class="code" href="structiParticleEmitter.html" title="A particle emitter.">iParticleEmitter</a>* emitter) = 0;
<a name="l00436"></a>00436 
<a name="l00438"></a>00438   <span class="keyword">virtual</span> <a class="code" href="structiParticleEmitter.html" title="A particle emitter.">iParticleEmitter</a>* <a class="code" href="structiParticleSystemBase.html#503b80d783256e74ed9e615b5ee8ffec" title="Get an emitter.">GetEmitter</a> (<span class="keywordtype">size_t</span> index) <span class="keyword">const</span> = 0;
<a name="l00439"></a>00439 
<a name="l00441"></a>00441   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#9b8105bab4d7fc064c0b2518c83a74eb" title="Remove an emitter by index.">RemoveEmitter</a> (<span class="keywordtype">size_t</span> index) = 0;
<a name="l00442"></a>00442 
<a name="l00444"></a>00444   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleSystemBase.html#e7bc2d89db1be2843281df7265b8a05d" title="Get total number of emitters.">GetEmitterCount</a> () <span class="keyword">const</span> = 0;
<a name="l00445"></a>00445 
<a name="l00447"></a>00447   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#0ec9d19c3a3930e0e200725467d0bd3d" title="Add an effector to the system. The particle should increment the reference.">AddEffector</a> (<a class="code" href="structiParticleEffector.html" title="Base interface for particle effector.">iParticleEffector</a>* effector) = 0;
<a name="l00448"></a>00448 
<a name="l00450"></a>00450   <span class="keyword">virtual</span> <a class="code" href="structiParticleEffector.html" title="Base interface for particle effector.">iParticleEffector</a>* <a class="code" href="structiParticleSystemBase.html#5fb9907d7b707439adca549ecb05d494" title="Get an effector.">GetEffector</a> (<span class="keywordtype">size_t</span> index) <span class="keyword">const</span> = 0;
<a name="l00451"></a>00451 
<a name="l00453"></a>00453   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemBase.html#9ea0da1fc641a049af754e956c85ebbb" title="Remove an effector by index.">RemoveEffector</a> (<span class="keywordtype">size_t</span> index) = 0;
<a name="l00454"></a>00454 
<a name="l00456"></a>00456   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleSystemBase.html#e690d168cbd275e0f970844be9850be3" title="Get total number of effector.">GetEffectorCount</a> () <span class="keyword">const</span> = 0;
<a name="l00457"></a>00457 
<a name="l00458"></a>00458 };
<a name="l00459"></a>00459 
<a name="l00460"></a>00460 
<a name="l00464"></a><a class="code" href="structiParticleSystemFactory.html">00464</a> <span class="keyword">struct </span><a class="code" href="structiParticleSystemFactory.html" title="Properties for particle system factory.">iParticleSystemFactory</a> : <span class="keyword">public</span> <a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</a>
<a name="l00465"></a>00465 {
<a name="l00466"></a>00466   SCF_INTERFACE(<a class="code" href="structiParticleSystemFactory.html" title="Properties for particle system factory.">iParticleSystemFactory</a>,1,0,0);
<a name="l00467"></a>00467 
<a name="l00472"></a>00472   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystemFactory.html#15e480b29a9f1ef8081d6a0fc5c2e02f" title="Set if emitters and effectors should be deep-copied (cloned) when creating a particle...">SetDeepCreation</a> (<span class="keywordtype">bool</span> deep) = 0;
<a name="l00473"></a>00473 
<a name="l00475"></a>00475   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiParticleSystemFactory.html#1af55ddce0c6bd52724fb6394c4e6d9b" title="Get if deep copy chould be used.">GetDeepCreation</a> () <span class="keyword">const</span> = 0;
<a name="l00476"></a>00476 };
<a name="l00477"></a>00477 
<a name="l00478"></a>00478 
<a name="l00482"></a><a class="code" href="structiParticleSystem.html">00482</a> <span class="keyword">struct </span><a class="code" href="structiParticleSystem.html" title="Properties for particle system object.">iParticleSystem</a> : <span class="keyword">public</span> <a class="code" href="structiParticleSystemBase.html" title="Base properties for particle system.">iParticleSystemBase</a>
<a name="l00483"></a>00483 {
<a name="l00484"></a>00484   SCF_INTERFACE(<a class="code" href="structiParticleSystem.html" title="Properties for particle system object.">iParticleSystem</a>,1,0,1);
<a name="l00485"></a>00485 
<a name="l00487"></a>00487   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleSystem.html#0f7bb9f4179d3418957e7157cf5d16af" title="Get number of particles currently in the system.">GetParticleCount</a> () <span class="keyword">const</span> = 0;
<a name="l00488"></a>00488 
<a name="l00490"></a>00490   <span class="keyword">virtual</span> <a class="code" href="structcsParticle.html" title="Data representation of a single particle.">csParticle</a>* <a class="code" href="structiParticleSystem.html#afac40b5401145947b9607939a036a5c" title="Get a specific particle.">GetParticle</a> (<span class="keywordtype">size_t</span> index) = 0;
<a name="l00491"></a>00491 
<a name="l00493"></a>00493   <span class="keyword">virtual</span> <a class="code" href="structcsParticleAux.html" title="Auxiliary data per particle, not used as often.">csParticleAux</a>* <a class="code" href="structiParticleSystem.html#d6de1fd7516c8518809eb5edc92a0499" title="Get aux-data for a specific particle.">GetParticleAux</a> (<span class="keywordtype">size_t</span> index) = 0;
<a name="l00494"></a>00494 
<a name="l00501"></a>00501   <span class="keyword">virtual</span> <a class="code" href="structcsParticleBuffer.html" title="Buffer holder for particle buffers.">csParticleBuffer</a>* <a class="code" href="structiParticleSystem.html#b4a9a17c97efb2aadd022ceb561d7373" title="Lock the particles and take external control over them.">LockForExternalControl</a> (<span class="keywordtype">size_t</span> maxParticles) = 0;
<a name="l00502"></a>00502   
<a name="l00510"></a>00510   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleSystem.html#3f632d93b1a233e5935d8616b948760e" title="Advance the time of the particle system object by the given duration.">Advance</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> time) = 0;
<a name="l00511"></a>00511 };
<a name="l00512"></a>00512 
<a name="l00518"></a>00518 
<a name="l00519"></a><a class="code" href="group__meshplugins.html#g92a7105932f4383bf09437ccaa2a1c85">00519</a> <span class="keyword">enum</span> <a class="code" href="group__meshplugins.html#g92a7105932f4383bf09437ccaa2a1c85" title="Set where in the emitter the builtin emitters should spawn their particles.">csParticleBuiltinEmitterPlacement</a>
<a name="l00520"></a>00520 {
<a name="l00522"></a><a class="code" href="group__meshplugins.html#gg92a7105932f4383bf09437ccaa2a1c8530ce21ee95a51abb5bc4f69bf477d971">00522</a>   <a class="code" href="group__meshplugins.html#gg92a7105932f4383bf09437ccaa2a1c8530ce21ee95a51abb5bc4f69bf477d971" title="In the center.">CS_PARTICLE_BUILTIN_CENTER</a>,
<a name="l00524"></a><a class="code" href="group__meshplugins.html#gg92a7105932f4383bf09437ccaa2a1c85fdb7e74cb758a2b7c93772834ea8ebc9">00524</a>   <a class="code" href="group__meshplugins.html#gg92a7105932f4383bf09437ccaa2a1c85fdb7e74cb758a2b7c93772834ea8ebc9" title="Anywhere in the volume.">CS_PARTICLE_BUILTIN_VOLUME</a>,
<a name="l00526"></a><a class="code" href="group__meshplugins.html#gg92a7105932f4383bf09437ccaa2a1c85568272545713fb64d14aae6c9205952e">00526</a>   <a class="code" href="group__meshplugins.html#gg92a7105932f4383bf09437ccaa2a1c85568272545713fb64d14aae6c9205952e" title="On the surface of the volume.">CS_PARTICLE_BUILTIN_SURFACE</a>
<a name="l00527"></a>00527 };
<a name="l00528"></a>00528 
<a name="l00529"></a><a class="code" href="structiParticleBuiltinEmitterBase.html">00529</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEmitterBase.html">iParticleBuiltinEmitterBase</a> : <span class="keyword">public</span> <a class="code" href="structiParticleEmitter.html" title="A particle emitter.">iParticleEmitter</a>
<a name="l00530"></a>00530 {
<a name="l00531"></a>00531   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEmitterBase.html">iParticleBuiltinEmitterBase</a>,1,0,0);
<a name="l00532"></a>00532 
<a name="l00538"></a>00538   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterBase.html#626ab6780b0327bfc0772c69c41e5d93" title="Set position of emitter.">SetPosition</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; position) = 0;
<a name="l00539"></a>00539 
<a name="l00541"></a>00541   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; <a class="code" href="structiParticleBuiltinEmitterBase.html#51d3156917ef177e47803cc52c20e09f" title="Get position.">GetPosition</a> () <span class="keyword">const</span> = 0;
<a name="l00542"></a>00542 
<a name="l00544"></a>00544   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterBase.html#0b341dffe471dd08d53cd76c8aab187f" title="Set particle placement.">SetParticlePlacement</a> (<a class="code" href="group__meshplugins.html#g92a7105932f4383bf09437ccaa2a1c85" title="Set where in the emitter the builtin emitters should spawn their particles.">csParticleBuiltinEmitterPlacement</a> place) = 0;
<a name="l00545"></a>00545 
<a name="l00547"></a>00547   <span class="keyword">virtual</span> <a class="code" href="group__meshplugins.html#g92a7105932f4383bf09437ccaa2a1c85" title="Set where in the emitter the builtin emitters should spawn their particles.">csParticleBuiltinEmitterPlacement</a> <a class="code" href="structiParticleBuiltinEmitterBase.html#a27357301e1f2538cd351201bceb83c0" title="Get particle placement.">GetParticlePlacement</a> () <span class="keyword">const</span> = 0;
<a name="l00548"></a>00548 
<a name="l00561"></a>00561   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterBase.html#b2fe190717ce29dbe5af3621be5af40d" title="Set initial velocity assignment strategy.">SetUniformVelocity</a> (<span class="keywordtype">bool</span> uniform) = 0;
<a name="l00562"></a>00562 
<a name="l00564"></a>00564   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiParticleBuiltinEmitterBase.html#95899105882eaa0c1a357ddef01dd249" title="Get initial velocity strategy.">GetUniformVelocity</a> () <span class="keyword">const</span> = 0;
<a name="l00565"></a>00565 
<a name="l00567"></a>00567   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterBase.html#04891451231a333b28163269c5de2562" title="Set velocity/magnitude for emitted particles.">SetInitialVelocity</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; linear, 
<a name="l00568"></a>00568     <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; angular) = 0;
<a name="l00569"></a>00569 
<a name="l00571"></a>00571   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterBase.html#3578e553ecdfa6aa74e7e99c88fd6eba" title="Get velocity for emitted particles.">GetInitialVelocity</a> (<a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; linear, 
<a name="l00572"></a>00572     <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; angular) <span class="keyword">const</span> = 0;
<a name="l00573"></a>00573 };
<a name="l00574"></a>00574 
<a name="l00575"></a><a class="code" href="structiParticleBuiltinEmitterSphere.html">00575</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEmitterSphere.html">iParticleBuiltinEmitterSphere</a> : <span class="keyword">public</span> <a class="code" href="structiParticleBuiltinEmitterBase.html">iParticleBuiltinEmitterBase</a>
<a name="l00576"></a>00576 {
<a name="l00577"></a>00577   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEmitterSphere.html">iParticleBuiltinEmitterSphere</a>,1,0,0);
<a name="l00578"></a>00578 
<a name="l00580"></a>00580   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterSphere.html#f28bd57be37e0890e6f931d03f7568f3" title="Set sphere radius.">SetRadius</a> (<span class="keywordtype">float</span> radius) = 0;
<a name="l00581"></a>00581 
<a name="l00583"></a>00583   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiParticleBuiltinEmitterSphere.html#d94573ccc4f657bca48a861dc8eb4dcf" title="Get sphere radius.">GetRadius</a> () <span class="keyword">const</span> = 0;
<a name="l00584"></a>00584 };
<a name="l00585"></a>00585 
<a name="l00586"></a><a class="code" href="structiParticleBuiltinEmitterCone.html">00586</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEmitterCone.html">iParticleBuiltinEmitterCone</a> : <span class="keyword">public</span> <a class="code" href="structiParticleBuiltinEmitterBase.html">iParticleBuiltinEmitterBase</a>
<a name="l00587"></a>00587 {
<a name="l00588"></a>00588   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEmitterCone.html">iParticleBuiltinEmitterCone</a>,1,0,0);
<a name="l00589"></a>00589 
<a name="l00591"></a>00591   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterCone.html#5cc310d9b4c8189564c2713ee26c2c44" title="Set cone extent vector (from center to end-point).">SetExtent</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; extent) = 0;
<a name="l00592"></a>00592 
<a name="l00594"></a>00594   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; <a class="code" href="structiParticleBuiltinEmitterCone.html#f4b933f91b2e9e8da2b59852048a1536" title="Get cone extent vector (from center to end-point).">GetExtent</a> () <span class="keyword">const</span> = 0;
<a name="l00595"></a>00595 
<a name="l00600"></a>00600   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterCone.html#bdcf13333608620d53fafddd84694952" title="Set cone angle, angle between center line and cone surface (in radians) Range: [0...">SetConeAngle</a> (<span class="keywordtype">float</span> angle) = 0;
<a name="l00601"></a>00601 
<a name="l00603"></a>00603   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiParticleBuiltinEmitterCone.html#3e7099ccb5536fac465fd1893ce8dc35" title="Get cone angle, angle between center line and cone surface (in radians).">GetConeAngle</a> () <span class="keyword">const</span> = 0;
<a name="l00604"></a>00604 };
<a name="l00605"></a>00605 
<a name="l00606"></a><a class="code" href="structiParticleBuiltinEmitterBox.html">00606</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEmitterBox.html">iParticleBuiltinEmitterBox</a> : <span class="keyword">public</span> <a class="code" href="structiParticleBuiltinEmitterBase.html">iParticleBuiltinEmitterBase</a>
<a name="l00607"></a>00607 {
<a name="l00608"></a>00608   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEmitterBox.html">iParticleBuiltinEmitterBox</a>,1,0,0);
<a name="l00609"></a>00609 
<a name="l00611"></a>00611   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterBox.html#4a30ed57bba8bee6b4afb6a7024e05c3" title="Set emitter box.">SetBox</a> (<span class="keyword">const</span> <a class="code" href="classcsOBB.html" title="Oriented bounding box (OBB).">csOBB</a>&amp; box) = 0;
<a name="l00612"></a>00612 
<a name="l00614"></a>00614   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsOBB.html" title="Oriented bounding box (OBB).">csOBB</a>&amp; <a class="code" href="structiParticleBuiltinEmitterBox.html#52521113356eb39270347860bccfa7a4" title="Get emitter box.">GetBox</a> () <span class="keyword">const</span> = 0;
<a name="l00615"></a>00615 };
<a name="l00616"></a>00616 
<a name="l00617"></a><a class="code" href="structiParticleBuiltinEmitterCylinder.html">00617</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEmitterCylinder.html">iParticleBuiltinEmitterCylinder</a> : <span class="keyword">public</span> <a class="code" href="structiParticleBuiltinEmitterBase.html">iParticleBuiltinEmitterBase</a>
<a name="l00618"></a>00618 {
<a name="l00619"></a>00619   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEmitterCylinder.html">iParticleBuiltinEmitterCylinder</a>,1,0,0);
<a name="l00620"></a>00620 
<a name="l00622"></a>00622   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterCylinder.html#f3f6829214bb745deaf12f498579460c" title="Set cylinder radius.">SetRadius</a> (<span class="keywordtype">float</span> radius) = 0;
<a name="l00623"></a>00623 
<a name="l00625"></a>00625   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiParticleBuiltinEmitterCylinder.html#dfcc15555b7d2f8a3b0d4e43f81500f8" title="Get cylinder radius.">GetRadius</a> () <span class="keyword">const</span> = 0;
<a name="l00626"></a>00626 
<a name="l00628"></a>00628   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEmitterCylinder.html#610b8ac5aaf089999722c120732fe986" title="Set cylinder extent vector (from center to one end-point).">SetExtent</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; extent) = 0;
<a name="l00629"></a>00629 
<a name="l00631"></a>00631   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; <a class="code" href="structiParticleBuiltinEmitterCylinder.html#266eacccf75bb271db18ee543722a32f" title="Get cylinder extent vector (from center to one end-point).">GetExtent</a> () <span class="keyword">const</span> = 0;
<a name="l00632"></a>00632 };
<a name="l00633"></a>00633 
<a name="l00637"></a><a class="code" href="structiParticleBuiltinEmitterFactory.html">00637</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEmitterFactory.html" title="Factory for builtin emitter-types.">iParticleBuiltinEmitterFactory</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="l00638"></a>00638 {
<a name="l00639"></a>00639   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEmitterFactory.html" title="Factory for builtin emitter-types.">iParticleBuiltinEmitterFactory</a>,1,0,0);
<a name="l00640"></a>00640 
<a name="l00641"></a>00641   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleBuiltinEmitterSphere&gt;</a> CreateSphere () <span class="keyword">const</span> = 0;
<a name="l00642"></a>00642   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleBuiltinEmitterCone&gt;</a> CreateCone () <span class="keyword">const</span> = 0;
<a name="l00643"></a>00643   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleBuiltinEmitterBox&gt;</a> CreateBox () <span class="keyword">const</span> = 0;
<a name="l00644"></a>00644   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleBuiltinEmitterCylinder&gt;</a> CreateCylinder () <span class="keyword">const</span> = 0;
<a name="l00645"></a>00645 };
<a name="l00646"></a>00646 
<a name="l00665"></a><a class="code" href="structiParticleBuiltinEffectorForce.html">00665</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEffectorForce.html" title="Simple force/acceleration applied to particles.">iParticleBuiltinEffectorForce</a> : <span class="keyword">public</span> <a class="code" href="structiParticleEffector.html" title="Base interface for particle effector.">iParticleEffector</a>
<a name="l00666"></a>00666 {
<a name="l00667"></a>00667   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEffectorForce.html" title="Simple force/acceleration applied to particles.">iParticleBuiltinEffectorForce</a>,2,0,0);
<a name="l00668"></a>00668   
<a name="l00670"></a>00670   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorForce.html#6f8b915d6d9e8e61189ae2647f3de239" title="Set constant acceleration vector.">SetAcceleration</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; acceleration) = 0;
<a name="l00671"></a>00671 
<a name="l00673"></a>00673   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; <a class="code" href="structiParticleBuiltinEffectorForce.html#9a1a6d37ed7cc480f0883af8cb6c8930" title="Get constant acceleration vector.">GetAcceleration</a> () <span class="keyword">const</span> = 0;
<a name="l00674"></a>00674 
<a name="l00676"></a>00676   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorForce.html#e95f4744ac9c23a7b1ed09c3ca4fab80" title="Set the force vector.">SetForce</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; force) = 0;
<a name="l00677"></a>00677 
<a name="l00679"></a>00679   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; <a class="code" href="structiParticleBuiltinEffectorForce.html#8354b9623bfb95b991d5c99f3d9adae5" title="Get the force vector.">GetForce</a> () <span class="keyword">const</span> = 0;
<a name="l00680"></a>00680 
<a name="l00682"></a>00682   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorForce.html#9e595938c85b783e78a10933c2f712e6" title="Set random acceleration magnitude.">SetRandomAcceleration</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; magnitude) = 0;
<a name="l00683"></a>00683 
<a name="l00685"></a>00685   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; <a class="code" href="structiParticleBuiltinEffectorForce.html#3da169653bb620b2bf4ed66e07a7ef78" title="Get random acceleration magnitude.">GetRandomAcceleration</a> () <span class="keyword">const</span> = 0;
<a name="l00686"></a>00686 };
<a name="l00687"></a>00687 
<a name="l00696"></a><a class="code" href="structiParticleBuiltinEffectorLinColor.html">00696</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEffectorLinColor.html" title="Simple linear interpolation of particle color based on particle lifetime.">iParticleBuiltinEffectorLinColor</a> : <span class="keyword">public</span> <a class="code" href="structiParticleEffector.html" title="Base interface for particle effector.">iParticleEffector</a>
<a name="l00697"></a>00697 {
<a name="l00698"></a>00698   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEffectorLinColor.html" title="Simple linear interpolation of particle color based on particle lifetime.">iParticleBuiltinEffectorLinColor</a>,1,0,0);
<a name="l00699"></a>00699 
<a name="l00704"></a>00704   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleBuiltinEffectorLinColor.html#d1443a21fedd12d85c7f11e1c965ba39" title="Add color to list of colors to interpolate between.">AddColor</a> (<span class="keyword">const</span> <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>&amp; color, <span class="keywordtype">float</span> endTTL) = 0;
<a name="l00705"></a>00705 
<a name="l00709"></a>00709   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorLinColor.html#6e4ea9c7cd4bb7e73f6b51797536be63" title="Set the color of an already existing entry.">SetColor</a> (<span class="keywordtype">size_t</span> index, <span class="keyword">const</span> <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>&amp; color) = 0;
<a name="l00710"></a>00710 
<a name="l00714"></a>00714   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorLinColor.html#65ef58026508f6962e852f03f4ab3c31" title="Get color and time.">GetColor</a> (<span class="keywordtype">size_t</span> index, <a class="code" href="classcsColor4.html" title="A class used to represent a color in RGBA space.">csColor4</a>&amp; color, <span class="keywordtype">float</span>&amp; endTTL) <span class="keyword">const</span> = 0;
<a name="l00715"></a>00715 
<a name="l00719"></a>00719   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleBuiltinEffectorLinColor.html#1f356b3e25832b177c6f19cd49a88242" title="Get number of color entries.">GetColorCount</a> () <span class="keyword">const</span> = 0;
<a name="l00720"></a>00720 };
<a name="l00721"></a>00721 
<a name="l00727"></a><a class="code" href="group__meshplugins.html#g80565dee652e2b5777d42fccc67711b4">00727</a> <span class="keyword">enum</span> <a class="code" href="group__meshplugins.html#g80565dee652e2b5777d42fccc67711b4" title="Velocity field effector types Determine the ODE the velocity field effector will...">csParticleBuiltinEffectorVFType</a>
<a name="l00728"></a>00728 {
<a name="l00736"></a><a class="code" href="group__meshplugins.html#gg80565dee652e2b5777d42fccc67711b4283c5d0068ff8c1b2a8299cba8fefe96">00736</a>   <a class="code" href="group__meshplugins.html#gg80565dee652e2b5777d42fccc67711b4283c5d0068ff8c1b2a8299cba8fefe96" title="Spiral around a given line.">CS_PARTICLE_BUILTIN_SPIRAL</a>,
<a name="l00737"></a>00737 
<a name="l00744"></a><a class="code" href="group__meshplugins.html#gg80565dee652e2b5777d42fccc67711b446fce477fc802d54a9a60b1b89cdfb6e">00744</a>   <a class="code" href="group__meshplugins.html#gg80565dee652e2b5777d42fccc67711b446fce477fc802d54a9a60b1b89cdfb6e" title="Exhort a radial movement relative to a given point.">CS_PARTICLE_BUILTIN_RADIALPOINT</a>
<a name="l00745"></a>00745 };
<a name="l00746"></a>00746 
<a name="l00758"></a><a class="code" href="structiParticleBuiltinEffectorVelocityField.html">00758</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEffectorVelocityField.html" title="Velocity field effector.">iParticleBuiltinEffectorVelocityField</a> : <span class="keyword">public</span> <a class="code" href="structiParticleEffector.html" title="Base interface for particle effector.">iParticleEffector</a>
<a name="l00759"></a>00759 {
<a name="l00760"></a>00760   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEffectorVelocityField.html" title="Velocity field effector.">iParticleBuiltinEffectorVelocityField</a>,1,0,0);
<a name="l00761"></a>00761 
<a name="l00765"></a>00765   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#8ce83ccaaca7b5bc80217720810df0d6" title="Set force field type.">SetType</a> (<a class="code" href="group__meshplugins.html#g80565dee652e2b5777d42fccc67711b4" title="Velocity field effector types Determine the ODE the velocity field effector will...">csParticleBuiltinEffectorVFType</a> type) = 0;
<a name="l00766"></a>00766 
<a name="l00770"></a>00770   <span class="keyword">virtual</span> <a class="code" href="group__meshplugins.html#g80565dee652e2b5777d42fccc67711b4" title="Velocity field effector types Determine the ODE the velocity field effector will...">csParticleBuiltinEffectorVFType</a> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#e80742c97740f6aa84a1bbe99bfed0be" title="Get force field type.">GetType</a> () <span class="keyword">const</span> = 0;
<a name="l00771"></a>00771 
<a name="l00775"></a>00775   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#80bd9e08c6392611530f7f72c6c63532" title="Set scalar parameter.">SetFParameter</a> (<span class="keywordtype">size_t</span> parameterNumber, <span class="keywordtype">float</span> value) = 0;
<a name="l00776"></a>00776   
<a name="l00780"></a>00780   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#e49531865269380744a7f527cefd93db" title="Get value of scalar parameter.">GetFParameter</a> (<span class="keywordtype">size_t</span> parameterNumber) <span class="keyword">const</span> = 0;
<a name="l00781"></a>00781 
<a name="l00785"></a>00785   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#1ce8285d8c0e4c51ccaca0e098fe084b" title="Get the number of set scalar parameters.">GetFParameterCount</a> () <span class="keyword">const</span> = 0;
<a name="l00786"></a>00786 
<a name="l00790"></a>00790   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#a638095ad72281a1126d91a4ec276b8c" title="Set vector parameter.">SetVParameter</a> (<span class="keywordtype">size_t</span> parameterNumber, <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a>&amp; value) = 0;
<a name="l00791"></a>00791   
<a name="l00795"></a>00795   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#434085b0ade1a5dc62d5c0510205213c" title="Get value of vector parameter.">GetVParameter</a> (<span class="keywordtype">size_t</span> parameterNumber) <span class="keyword">const</span> = 0;
<a name="l00796"></a>00796 
<a name="l00800"></a>00800   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiParticleBuiltinEffectorVelocityField.html#84f4e2a49519941143aee0ce54cde16e" title="Get the number of set vector parameters.">GetVParameterCount</a> () <span class="keyword">const</span> = 0;
<a name="l00801"></a>00801 };
<a name="l00802"></a>00802 
<a name="l00806"></a><a class="code" href="structiParticleBuiltinEffectorFactory.html">00806</a> <span class="keyword">struct </span><a class="code" href="structiParticleBuiltinEffectorFactory.html" title="Factory for builtin effectors.">iParticleBuiltinEffectorFactory</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="l00807"></a>00807 {
<a name="l00808"></a>00808   SCF_INTERFACE(<a class="code" href="structiParticleBuiltinEffectorFactory.html" title="Factory for builtin effectors.">iParticleBuiltinEffectorFactory</a>,1,0,0);
<a name="l00809"></a>00809 
<a name="l00810"></a>00810   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleBuiltinEffectorForce&gt;</a> CreateForce () <span class="keyword">const</span> = 0;
<a name="l00811"></a>00811   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleBuiltinEffectorLinColor&gt;</a> CreateLinColor () <span class="keyword">const</span> = 0;
<a name="l00812"></a>00812   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iParticleBuiltinEffectorVelocityField&gt;</a> CreateVelocityField () <span class="keyword">const</span> = 0;
<a name="l00813"></a>00813 };
<a name="l00814"></a>00814 
<a name="l00820"></a>00820 <span class="preprocessor">#endif // __CS_IMESH_PARTICLES_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>