# Class: l3dshadowmodel

A volume model for stencil shadows. It takes meshdata from the original model, and renders only into the stencil buffer for the given light. Models will takeover bonelinks and skinobjects. You must use camera infinitebackplane in the view that contains the shadowmodels.

## Hierarchy

    o-+ l3dlist
      o-+ l3dnode
        o-+ l3dshadowmodel

## Methods:

### Method overview:

- extrusionlength
- islightvalid
- istargetvalid
- light
- new

new (string name,|l3dlayerid|,l3dlight,l3dprimitive/l3dmodel,[string meshname])
  returns: ([l3dshadowmodel])
  creates a new l3dshadowmodel for the given nodes. Can return nil, if sourcemesh is too complex or not closed. When a l3dmodel is used you can specify a substring that is searched for in the l3dmodel's meshes. That way you can mark some meshes with nodraw/neverdraw in the original model, but use them as shadowmeshes and they still use the original animation/skin data. However when the original model is not visible, the animation data is not further updated. For l3dprimitives have in mind that you must not change the mesh after the shadowmodel was created.
extrusionlength (l3dshadowmodel,[float])
  returns: ([float])
  returns or sets volume extrusion length. A value of 0 (default) means infinite length.
islightvalid (l3dshadowmodel)
  returns: (boolean)
  is light still valid, if not you should delete the node, or use another light
istargetvalid (l3dshadowmodel)
  returns: (boolean)
  is target model/primitive still valid, if not you should delete the node.
light (l3dshadowmodel,[l3dlight])
  returns: ([l3dlight])
  returns or sets the light that is used. The light should be activated or sun, else its position is not updated.

## 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