00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __VOLUME_TRIANGLE_STRIP_SET
00026 #define __VOLUME_TRIANGLE_STRIP_SET
00027
00028 #include <Inventor/nodes/SoTriangleStripSet.h>
00029
00030 #include <VolumeViz/nodes/SoVolumeGeometry.h>
00031 #include <Inventor/fields/SoSFBool.h>
00032 #include <Inventor/fields/SoSFFloat.h>
00033 #include <Inventor/SbBox.h>
00034
00035 class SoVolumeGeometryVbo;
00036
00151 class SoVolumeTriangleStripSet : public SoTriangleStripSet, public SoVolumeGeometry
00152 {
00153 SO_NODE_HEADER(SoVolumeTriangleStripSet);
00154
00155 public :
00156
00158 SoVolumeTriangleStripSet();
00159
00164 SoSFBool clipGeometry;
00165
00177 SoSFFloat offset;
00178
00182 SoSFEnum interpolation;
00183
00184 #if 1 SoDEPRECATED enum
00187 Interpolation {
00189 NEAREST = SoVolumeShape::NEAREST,
00191 LINEAR = SoVolumeShape::LINEAR
00192 };
00193
00194 #endif
00196 private:
00197
00199 static void initClass();
00200
00202 static void exitClass();
00203
00205 virtual void GLRender(SoGLRenderAction *action);
00206
00208 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00209
00211 virtual void computeBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00212
00213 private:
00214
00216 virtual void notify(SoNotList *list);
00217
00218 #if 1 SoDEPRECATED
00222 virtual SoVolumeShape::Interpolation getInteractiveInterpolationValue(SoState* state) const;
00223
00224 #endif
00226 private:
00227
00228 virtual void shapeRender(SoGLRenderAction* action);
00229
00231 virtual void shapeGeneratePrimitives(SoAction* action);
00232
00234 virtual void checkShapeStyle(SoState *state,const SoShapeStyleElement *shapeStyle);
00235
00237 virtual void GLRenderBoundingBox(SoGLRenderAction* action);
00238
00240 virtual void getBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00241
00243 virtual void getBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00244
00246 virtual int getNumVertices(SoState* state);
00247
00249 virtual int getIndexCoord(int index) const;
00250
00252 virtual ~SoVolumeTriangleStripSet();
00253
00254 using SoVolumeGeometry::doRendering;
00255
00256 private:
00257 SoDEPRECATED
00259 SoSFBool useVbo;
00260
00261 };
00262
00263 #endif //__VOLUME_TRIANGLE_STRIP_SET
00264
00265