Provided by: allegro4-doc_4.4.2-10_all bug

NAME

       clip3d_f  -  Clips  the  polygon  given  in  vtx  using  floating point math, Allegro game
       programming library.

SYNOPSIS

       #include <allegro.h>

       int clip3d_f(int type, float min_z,  float  max_z,  int  vc,  const  V3D_f  *vtx[],  V3D_f
       *vout[], V3D_f *vtmp[], int out[]);

DESCRIPTION

       Clips  the  polygon  given  in  `vtx'.  The number of vertices is `vc', the result goes in
       `vout', and `vtmp' and `out' are needed for internal  purposes.  The  pointers  in  `vtx',
       `vout' and `vtmp' must point to valid V3D_f structures.

       As  additional  vertices  may  appear  in  the process of clipping, so the size of `vout',
       `vtmp' and `out' should be at least vc * (1.5 ^ n), where `n' is the  number  of  clipping
       planes (5 or 6), and `^' denotes "to the power of".

       The   frustum   (viewing  volume)  is  defined  by  -z<x<z,  -z<y<z,  0<min_z<z<max_z.  If
       max_z<=min_z, the z<max_z clipping is not done. As you can see, clipping is  done  in  the
       camera  space,  with perspective in mind, so this routine should be called after you apply
       the camera matrix, but before the  perspective  projection.  The  routine  will  correctly
       interpolate  u,  v,  and  c  in  the  vertex  structure. However, no provision is made for
       high/truecolor GCOL.

RETURN VALUE

       Returns the number of vertices after clipping is done.

SEE ALSO

       polygon3d(3alleg4), clip3d(3alleg4), excamera(3alleg4), exscn3d(3alleg4)