# Class: l3dpemitter

l3dnode of a particle emitter. Every emitter starts with the default values from the particle system. You can change the emittertype afterwards.
Important note about accessing subsystems: The l3dpemitter also hosts all subsystem emitters (all but trail, trail's common shared emitter is referenced), you can access them with a special ''subsys string'', that is made of the subsystem indices (0-based).
For example "0" accesses first subemitter, "12" the 2nd emitter of l3dpemitter and the 3rd of that one. An error is thrown when indexing is done out of bounds or on trail. You can use particlesys.getsubsysdigits to generate the string based on normal names. Be aware that if a trail subsystem is indexed, its default emitter (as used by trail effects) is modified. Also when a trail is used it wont report subsystems, as those are ignored in rendering as well.
Subsystem translation offsets can be scaled via renderscale.

## Hierarchy

    o-+ l3dlist
      o-+ l3dnode
        o-+ l3dpemitter

## Methods:

### Method overview:

- axis
- flipdirection
- getparticlesys
- height
- maxoffsetdist
- new
- offsetvelocity
- prtsize
- radius
- rate
- size
- spreadin
- spreadout
- start
- startage
- stop
- subsyscount
- typecircle
- typemodel
- typepoint
- typerectangle
- typerectanglelocal
- typesphere
- velocity
- velocityvar
- width

new (string name,|l3dlayerid layer|,particlesys)
  returns: (l3dpemitter)
  new particle emitter l3dnode (default type). The layer itself isnt important but the l3dset is extracted from it. Particlesys has a command to define in which layer it should be rendered.
axis (l3dpemitter,[subsys string],[int 0..2])
  returns: ([float])
  returns or sets emitter plane normal axis for typerectangle
flipdirection (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets percent of flip direction
getparticlesys (l3dpemitter,[subsys string])
  returns: (particlesys)
  returns particlesys emitter was created from
height (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets emitter height for typerectangle(local)
maxoffsetdist (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets max random offset from original spawnposition
offsetvelocity (l3dpemitter,[subsys string],[float x,y,z])
  returns: ([float x,y,z])
  returns or sets offset velocity
prtsize (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets particle size
radius (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets emitter radius for typecircle/typeshere. equivalent to size
rate (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets rate
size (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets emitter size (radius,width)
spreadin (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets inner spread (radians)
spreadout (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets outer spread (radians)
start (l3dpemitter,int timeoffset)
  returns: ()
  start with timeoffset(ms) from now
startage (l3dpemitter,[subsys string],[int])
  returns: ([int])
  returns or sets starting age of a particle
stop (l3dpemitter,int timeoffset,boolean norestarts)
  returns: ()
  end with offset from now, disallow restarts
subsyscount (l3dpemitter,[subsys string])
  returns: (int)
  returns how many subsys emitters are nested
typecircle (l3dpemitter,[subsys string], float radius)
  returns: ()
  sets emitter type to CIRCLE
typemodel (l3dpemitter,[subsys string], model, float scale)
  returns: ()
  sets emitter type to MODEL
typepoint (l3dpemitter,[subsys string])
  returns: ()
  sets emitter type to POINT
typerectangle (l3dpemitter,[subsys string], float width, float height, [int axis])
  returns: ()
  sets emitter type to RECTANGLE. Default plane normal is Z (2)
typerectanglelocal (l3dpemitter,[subsys string], float width, float height)
  returns: ()
  sets emitter type to RECTANGLELOCAL. width = along X axis, height = along Z axis
typesphere (l3dpemitter,[subsys string], float radius)
  returns: ()
  sets emitter type to SPHERE
velocity (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets velocity
velocityvar (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets velocityvar
width (l3dpemitter,[subsys string],[float])
  returns: ([float])
  returns or sets emitter width for typerectangles. equivalent to size

## Inherited Methods:

### From l3dnode

cambox, camsphere, camvolumedelete, color, delete, isanimateable, lastframe, lightmap, lightmaptexmatrix, linkinterface, localmatrix, localpos, localrotaxis, localrotdeg, localrotquat, localrotrad, name, novistest, parent, parentbone, renderscale, rotationlock, setlayer, unlink, unparentbone, uselocal, uselookat, usemanualworld, visflag, worldmatrix, worldpos, worldrotaxis, worldrotdeg, worldrotquat, worldrotrad

### From l3dlist