00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef WavefrontDISPLAYDEVICE
00023 #define WavefrontDISPLAYDEVICE
00024
00025 #include <stdio.h>
00026 #include "FileRenderer.h"
00027
00029 class WavefrontDisplayDevice : public FileRenderer {
00030 private:
00031 FILE *mtlfile;
00032 char *mtlfilename;
00033 int oldColorIndex;
00034 int oldMaterialIndex;
00035 int oldMaterialState;
00036 void write_material_block(void);
00037 void write_cindexmaterial(int, int);
00038 void write_colormaterial(float *, int);
00039
00040 protected:
00041 void beginrepgeomgroup(const char *);
00042 void comment(const char *);
00043 void line(float *xyz1, float *xyz2);
00044 void point(float *xyz);
00045 void triangle(const float *, const float *, const float *,
00046 const float *, const float *, const float *);
00047 virtual void trimesh_c4n3v3(int numverts, float * cnv,
00048 int numfacets, int * facets);
00049 virtual void tristrip(int numverts, const float * cnv,
00050 int numstrips, const int *vertsperstrip,
00051 const int *facets);
00052
00053 public:
00054 WavefrontDisplayDevice(void);
00055 virtual ~WavefrontDisplayDevice(void);
00056 virtual int open_file(const char *filename);
00057 virtual void close_file(void);
00058 void write_header (void);
00059 void write_trailer(void);
00060 };
00061
00062 #endif
00063