The Movie Library

 

This library provide functions to manipulate 3D geometries. It is named "Movie" since one of the first 3D format was the format used in the "MOVIE.BYU" program.

 

 

The structures used by the library are:

 

 

typedef struct  Nodes {

          char          flag ;          // used by some func

          float          x, y, z ;          // coord of the node in 3D space

          Vect          Dir ;          // normal direction

          Vect          Disp ;          // displacement associated with the node

          float          Func ;          // function scalar function associated with the node

          long          Color ;          // Gouraud color of this node

          int          Nb_Poly ;          // number of polygons connected to this point

          struct Polys          **Poly ;          // array of pointers to the connected polygons

} Nodes ;

 

 

 

typedef struct  Polys   {

          char          flag ;          // 1 -> this poly is on its way out! (in cleanup)

          int          Nb_Side ;

          Nodes          *Side[4] ;          // Pointer t the nodes associated with this polygon

          Vect          Dir ;          // normal direction

          float          size ;          // max dim of polygon (vs pt[1])

          float          d ;          // polygon plane coefficient

          short          ind ;          //    "      "      "

} Polys ;

 

 

 

typedef struct  Movie_Objs  {

          int          Flag ;          // file type (mov+disp+func)

          char          *Name ;          // file name if the geometry comes from a file

          char          *Path ;          // file path if the geometry comes from a file

          Matrix          Transfo ;          // local transformation (not used in sliceO)

          int          Nb_Node ;          // number of associated nodes

          Nodes          *Node ;          // array of associated nodes

          int          Nb_Poly ;          // number of associated polygons

          Polys          *Poly ;          // array of associated polygons

          Vect          Mini, Maxi ;          // min and max values of the nodes

          float          Func_Min, Func_Max ;

} Movie_Objs ;