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
00168 class SoVolumeTriangleStripSet : public SoTriangleStripSet, public SoVolumeGeometry
00169 {
00170 SO_NODE_HEADER(SoVolumeTriangleStripSet);
00171
00172 public :
00173
00175 SoVolumeTriangleStripSet();
00176
00181 SoSFBool clipGeometry;
00182
00194 SoSFFloat offset;
00195
00199 SoSFEnum interpolation;
00200
00201 #if 1 SoDEPRECATED enum
00204 Interpolation {
00206 NEAREST = SoVolumeShape::NEAREST,
00208 LINEAR = SoVolumeShape::LINEAR
00209 };
00210
00211 #endif
00213 private:
00214
00216 static void initClass();
00217
00219 static void exitClass();
00220
00222 virtual void GLRender(SoGLRenderAction *action);
00223
00225 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00226
00228 virtual void computeBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00229
00230 private:
00231
00233 virtual void notify(SoNotList *list);
00234
00235 #if 1 SoDEPRECATED
00239 virtual SoVolumeShape::Interpolation getInteractiveInterpolationValue(SoState* state) const;
00240
00241 #endif
00243 private:
00244
00245 virtual void shapeRender(SoGLRenderAction* action);
00246
00248 virtual void shapeGeneratePrimitives(SoAction* action);
00249
00251 virtual void checkShapeStyle(SoState *state,const SoShapeStyleElement *shapeStyle);
00252
00254 virtual void GLRenderBoundingBox(SoGLRenderAction* action);
00255
00257 virtual void getBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00258
00260 virtual void getBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00261
00263 virtual int getNumVertices(SoState* state);
00264
00266 virtual int getIndexCoord(int index) const;
00267
00269 virtual ~SoVolumeTriangleStripSet();
00270
00271 using SoVolumeGeometry::doRendering;
00272
00273 private:
00274 SoDEPRECATED
00276 SoSFBool useVbo;
00277
00278 };
00279
00280 #endif //__VOLUME_TRIANGLE_STRIP_SET
00281
00282