00001 #ifndef OSGDVRRENDERSLICE_H
00002 #define OSGDVRRENDERSLICE_H
00003
00004 #include <vector>
00005
00006
00007 #include <OSGGL.h>
00008 #include <OSGVector.h>
00009
00010 OSG_BEGIN_NAMESPACE
00011
00012
00013
00014
00015
00016
00017 class DVRRenderSlicePrimitive
00018 {
00019 public:
00020
00021
00022 void render(void) const;
00023
00024
00025 GLenum type;
00026
00027
00028 std::vector<GLdouble *> vertices;
00029 };
00030
00031
00032
00033
00034
00035
00036 #ifdef __sgi
00037 #pragma set woff 1375
00038 #endif
00039
00040 class DVRRenderSlice : public std::vector<DVRRenderSlicePrimitive *>
00041 {
00042 public:
00043
00044 enum Orientation
00045 {
00046 UNDEFINED,
00047 XY,
00048 XZ,
00049 YZ
00050 };
00051
00052 public:
00053
00054 DVRRenderSlice(void);
00055 ~DVRRenderSlice(void);
00056
00057
00058 void render(void) const;
00059
00060
00061 void clear (void);
00062
00063
00064
00065
00066 GLdouble *vertexCombineData;
00067 UInt32 numVertexCombineData;
00068 UInt32 maxVertexCombineData;
00069
00070
00071
00072
00073 bool directRender;
00074
00075
00076 UInt32 numPerVertexData;
00077
00078
00079 Orientation orientation;
00080
00081 };
00082
00083 #ifdef __sgi
00084 #pragma reset woff 1375
00085 #endif
00086
00087 OSG_END_NAMESPACE
00088
00089 #endif