@c -*-texinfo-*-
@node MeshObject Rain, MeshObject Explo, MeshObject Snow, MeshObject
@subsection Rain Mesh Object
@cindex MeshObject
@cindex Rain Particle System
@cindex @code{iMeshObject}
@cindex @code{iMeshObjectFactory}
@cindex @code{iMeshObjectType}
@cindex @code{iRainState}
@cindex @code{iParticleState}

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

Rain is a particle system that emulates rain.  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.rain}
@item
Loader plugin: @samp{crystalspace.mesh.loader.rain}
@item
Factory loader plugin: @samp{crystalspace.mesh.loader.factory.rain}
@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{iRainState}
@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{iRainState} is the @sc{scf} interface that you can
use to set/get settings for a rain object. The definition of this
interface can be found in @file{CS/include/imesh/rain.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, the size
of the particles, and various other rain parameters.

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 <dropsize w="" h="" />
Size of the droplets for the rain (width and height).
@item <box>
@example
	<min x="" y="" z="" />
	<max x="" y="" z="" />
</box>
@end example
Box that will contain the rain particles.
@item <fallspeed x="" y="" z="" />
Speed of the rain.
@item <lighting>yes/no</lighting>
Disable or enable lighting for the rain particles.
@item <number>nrParticles</number>
Number of particles to use.
@end table

