00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef X3DDISPLAYDEVICE_H
00022 #define X3DDISPLAYDEVICE_H
00023
00024 #include <stdio.h>
00025 #include "FileRenderer.h"
00026
00028 class X3DDisplayDevice : public FileRenderer {
00029 private:
00030 virtual void cylinder_noxfrm(float *a, float *b, float rad, int filled);
00031
00032 protected:
00033
00034 virtual void write_cindexmaterial(int, int);
00035 virtual void write_colormaterial(float *, int);
00036
00037
00038 virtual void comment(const char *);
00039 virtual void cone(float *a, float *b, float rad);
00040 virtual void cylinder(float *a, float *b, float rad, int filled);
00041 virtual void line(float *xyz1, float *xyz2);
00042 virtual void line_array(int num, float thickness, float *points);
00043 virtual void point(float *xyz);
00044 virtual void point_array(int num, float size, float *xyz, float *colors);
00045 virtual void polyline_array(int num, float thickness, float *points);
00046 virtual void sphere(float *xyzr);
00047 virtual void text(float *pos, float size, float thickness, const char *str);
00048 virtual void triangle(const float *, const float *, const float *,
00049 const float *, const float *, const float *);
00050 virtual void tricolor(const float * xyz1, const float * xyz2, const float * xyz3,
00051 const float * n1, const float * n2, const float * n3,
00052 const float *c1, const float *c2, const float *c3);
00053 virtual void trimesh_c4n3v3(int numverts, float * cnv,
00054 int numfacets, int * facets);
00055 virtual void tristrip(int numverts, const float * cnv,
00056 int numstrips, const int *vertsperstrip,
00057 const int *facets);
00058
00059 virtual void load(const Matrix4& mat);
00060 virtual void multmatrix(const Matrix4& mat);
00061 virtual void set_color(int color_index);
00062
00063 public:
00065 X3DDisplayDevice(const char *public_name,
00066 const char *public_pretty_name,
00067 const char *default_file_name,
00068 const char *default_command_line);
00069
00070 X3DDisplayDevice(void);
00071 virtual void write_header(void);
00072 virtual void write_trailer(void);
00073 };
00074
00075
00076 class X3DOMDisplayDevice : public X3DDisplayDevice {
00077 protected:
00078
00079 virtual void line_array(int num, float thickness, float *points);
00080 virtual void polyline_array(int num, float thickness, float *points);
00081 virtual void text(float *pos, float size, float thickness, const char *str);
00082 virtual void tristrip(int numverts, const float * cnv,
00083 int numstrips, const int *vertsperstrip,
00084 const int *facets);
00085
00086 public:
00087 X3DOMDisplayDevice(void);
00088 };
00089
00090
00091
00092 #endif
00093
00094
00095