##### Ninja Library - Motion Function

# njDrawShapeMotionLink

Draws motions with shapes

### FORMAT

`

  void njDrawShapeMotion( *object, *motion, *shape, frame )
  NJS_OBJECT *object
  NJS_MOTION *motion
  NJS_MOTION *shape
  Float frame

`

### PARAMETER

  `*object` | Pointer to object structure
  `*motion` | Pointer to motion structure
  `*shape` | Pointer to motion structure (apex animation)
  `frame` | Frame number

### RETURN

  None

### DESCRIPTION

  Draws motion according to motion data. Because floating-point notation is possible for frame numbers, interpolation of motion data is possible. For motions where the number of frames is 10, the frame number range is 0 to less than 10 (9.9999). For example, when the frame number is set to 0.5, the values for the mean between frame 0 and frame 1 are interpolated and drawn. Interpolation for frames between 9 and less than 10 (9.9999) is carried out between the last frame and the first frame. This also applies to shapes (vertex animation).

### EXAMPLE

      #include <Shinobi.h>
      #define	OBJECT	object_sample	/* Entered in NJA(NAM) file */
      #define	MOTION	motion_sample	/* Entered in NAM file */
      #define	SHAPE	shape_sample	/* Entered in NAS file */
      extern NJS_OBJECT	OBJECT[];
      extern NJS_MOTION	MOTION[];
      extern NJS_MOTION	SHAPE[];
      float	buf[10000];
      float	ff=0.f;
      	:
      InitShape(buf);
      	:
      njDrawShapeMotion( OBJECT,MOTION,SHAPE,ff );
      ff+=0.2f;
      if( ff >= (MOTION->nbFrame-1) ) ff=0.f;
      	:

### NOTE

  The drawing performed by this function is identical to model drawing, except that motion and shapes (apex animation) have been added. In other words, all of the `njControl3D()` settings are identical. This function corresponds to the model drawing function `njDrawObject(),` so the light source is normal light.

### REFERENCE

  `njInitShape()
  njFastDrawShapeMotion()
  njSimpleDrawShapeMotion()
  `

njDrawShapeMotionLink

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999