File libluminate/structures.h

RCS Header

This file defines the isurface and idisplay structures which map to the ISurface and IDisplay data types in illuminator.h. It also contains the zbuffer data type for multiz.c.


Included Files


Preprocessor definitions

#define ORBIT2 1

#define IMLIB2_EXISTS 1

#define SURFACE_H


Type struct isurface

struct isurface
struct isurface  
   {  
      int num_triangles; Number of triangles in this node. Its value is initialized to zero, and incremented as each triangle is added, then reset to zero when the triangulation is displayed.
      int vertisize; Number of triangles allocated in the vertices array.
      PetscScalar* vertices; Array of vertex corners of triangles. The number of triangles is given by num_triangles, and size of the array by vertisize. For each triangle, this array has the coordinates of the three nodes, and its R, G, B and A color values, hence 13 PetscScalars for each triangle.
   }  

Typedef zbuffer

The zbuffer type, used to store an entry for a pixel.

typedef struct {...} zbuffer

struct  
   {  
      guchar r;  
      guchar g;  
      guchar b;  
      guchar a;  
      float z;  
   }  

Type struct idisplay

struct idisplay
struct idisplay  
   {  
      FILE* to_geomview; Geomview output pipe
      guchar* rgb;  
      int rgb_width;  
      int rgb_height;  
      int rgb_rowskip;  
      int rgb_bpp;  
      zbuffer* zbuf;  
      int zbuf_width;  
      int zbuf_height;  
      int zbuf_rowskip;  
      int zbuf_depth;  
   }