@c -*-texinfo-*-
@node MeshObject Spiral, MeshObject Haze, MeshObject Explo, MeshObject
@subsection Spiral Mesh Object
@cindex MeshObject
@cindex Spiral Particle System
@cindex @code{iMeshObject}
@cindex @code{iMeshObjectFactory}
@cindex @code{iMeshObjectType}
@cindex @code{iSpiralState}
@cindex @code{iParticleState}

@emph{Written by Jorrit Tyberghein,
@email{jorrit.tyberghein@@gmail.com}.}

Spiral is a particle system for a special spiral effect.  This is an
experimental particle system which is currently not fully operational.  Also
see the general particle system documentation which is valid for all particle
systems.  @xref{MeshObject PartSys}.

@subsubheading Basic Structure

The following @sc{scf} class names are used (for @code{csLoadPlugin}):

@itemize @bullet
@item
Type plugin: @samp{crystalspace.mesh.object.spiral}
@item
Loader plugin: @samp{crystalspace.mesh.loader.spiral}
@item
Factory loader plugin: @samp{crystalspace.mesh.loader.factory.spiral}
@end itemize

Objects in this plugin implement the following @sc{scf} interfaces (get
with @code{scfQueryInterface}):

@itemize @bullet
@item
@emph{MeshObject}
@itemize @bullet
@item
Implements @samp{iMeshObject}
@item
Implements @samp{iParticleState}
@item
Implements @samp{iSpiralState}
@end itemize
@item
@emph{MeshObjectFactory}
@itemize @bullet
@item
Implements @samp{iMeshObjectFactory}
@end itemize
@item
@emph{MeshObjectFactory}
@itemize @bullet
@item
Implements @samp{iMeshObjectType}
@end itemize
@end itemize

@subsubheading Factory State Interface

This plugin has no factory state interface.

@subsubheading Factory Loader

The fountain mesh factory loader has no parameters.

@subsubheading Object State Interface

@samp{iSpiralState} is the @sc{scf} interface that you can
use to set/get settings for an spiral object. The definition of this
interface can be found in @file{CS/include/imesh/spiral.h} and that's also the
include file you need to include in your applications to use this plugin.
Using this interface you can access the number of particles and the
source of the spiral.

In addition you can use @samp{iParticleState}.

@subsubheading Object Loader

Also see the general documentation for particle systems for other recognized
keywords.  @xref{MeshObject PartSys}.

@table @code
@item <source x="" y="" z="" />
Source of the spiral (3D coordinate).
@item <number>nrParticles</number>
Number of particles to use.
@item <particlesize w="" h="" />
Size of the particles in the spiral.
@item <particletime>particleTime</particleTime>
Time to live of particles, in msec.
@item <radialspeed>radialSpeed</radialSpeed>
Particle radial speed in spiral.
@item <rotationspeed>rotationSpeed</rotationSpeed>
Particle rotation speed in spiral.
@item <climbspeed>climbSpeed</climbSpeed>
Particle climb speed in spiral.
@end table
