Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TachyonDisplayDevice.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *cr                                                                       
00003  *cr            (C) Copyright 1995-2019 The Board of Trustees of the           
00004  *cr                        University of Illinois                       
00005  *cr                         All Rights Reserved                        
00006  *cr                                                                   
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  * RCS INFORMATION:
00011  *
00012  *      $RCSfile: TachyonDisplayDevice.h,v $
00013  *      $Author: johns $        $Locker:  $             $State: Exp $
00014  *      $Revision: 1.51 $       $Date: 2020/07/01 06:09:05 $
00015  *
00016  ***************************************************************************/
00023 #ifndef TACHYONDISPLAYDEVICE
00024 #define TACHYONDISPLAYDEVICE
00025 
00026 #include <stdio.h>
00027 #include "FileRenderer.h"
00028 
00030 class TachyonDisplayDevice : public FileRenderer {
00031 private:
00032   int inclipgroup;            
00033   int involtex;               
00034   int voltexID;               
00035   float xplaneeq[4];          
00036   float yplaneeq[4];
00037   float zplaneeq[4];
00038 
00039   void reset_vars(void);      
00040   void write_camera(void);    
00041   void write_lights(void);    
00042   void write_materials(void); 
00043   void write_cindexmaterial(int, int);    
00044   void write_colormaterial(float *, int); 
00045 
00046 protected:
00047   // assorted graphics functions
00048   void comment(const char *);
00049   void cylinder(float *, float *, float rad, int filled);
00050   void line(float *xyz1, float *xyz2);
00051   void point(float *xyz);
00052   void sphere(float *xyzr);
00053   virtual void sphere_array(int num, int res, float *centers, float *radii, float *colors);
00054   void text(float *pos, float size, float thickness, const char *str);
00055   void triangle(const float *, const float *, const float *,
00056                 const float *, const float *, const float *);
00057   void tricolor(const float * xyz1, const float * xyz2, const float * xyz3,
00058                 const float * n1,   const float * n2,   const float * n3,
00059                 const float * c1,   const float * c2,   const float * c3);
00060   virtual void trimesh_c4n3v3(int numverts, float * cnv, 
00061                               int numfacets, int * facets);
00062   virtual void trimesh_c4u_n3b_v3f(unsigned char *c, signed char *n, 
00063                                    float *v, int numfacets);
00064   virtual void tristrip(int numverts, const float * cnv,
00065                         int numstrips, const int *vertsperstrip,
00066                         const int *facets);
00067 
00068   // define a volumetric texture map
00069   virtual void define_volume_texture(int ID, int xs, int ys, int zs,
00070                                      const float *xplaneeq,
00071                                      const float *yplaneeq,
00072                                      const float *zplaneeq,
00073                                      unsigned char *texmap);
00074 
00075   // enable volumetric texturing, either in "replace" or "modulate" mode
00076   virtual void volume_texture_on(int texmode);
00077 
00078   // disable volumetric texturing
00079   virtual void volume_texture_off(void);
00080 
00081   // begin a group of objects to be clipped by the same set of
00082   // clipping planes
00083   void start_clipgroup(void);
00084   void end_clipgroup(void);
00085 
00086   void update_exec_cmd();
00087 
00088 public: 
00089   TachyonDisplayDevice(void);           // constructor
00090   virtual ~TachyonDisplayDevice(void);  // destructor
00091   void write_header(void); 
00092   void write_trailer(void);
00093 }; 
00094 
00095 #endif
00096 

Generated on Fri Apr 19 02:45:23 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002