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_INDEXED_TRIANGLE_STRIP_SET
00026 #define __VOLUME_INDEXED_TRIANGLE_STRIP_SET
00027
00028 #include <Inventor/nodes/SoIndexedTriangleStripSet.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
00159 class SoVolumeIndexedTriangleStripSet : public SoIndexedTriangleStripSet, public SoVolumeGeometry
00160 {
00161 SO_NODE_HEADER(SoVolumeIndexedTriangleStripSet);
00162
00163 public :
00164
00166 SoVolumeIndexedTriangleStripSet();
00167
00172 SoSFBool clipGeometry;
00173
00185 SoSFFloat offset;
00186
00190 SoSFEnum interpolation;
00191
00192 #if 1 SoDEPRECATED
00198 SoSFBool useVbo;
00199
00200 #endif
00202 #if 1 SoDEPRECATED enum
00205 Interpolation {
00207 NEAREST = SoVolumeShape::NEAREST,
00209 LINEAR = SoVolumeShape::LINEAR
00210 };
00211
00212 #endif
00215 private:
00216
00217 static void initClass();
00218
00220 static void exitClass();
00221
00223 virtual void GLRender(SoGLRenderAction *action);
00224
00226 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00227
00229 virtual void computeBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00230
00231 private:
00232
00234 virtual void notify(SoNotList *list);
00235
00236 #if 1 SoDEPRECATED
00240 virtual SoVolumeShape::Interpolation getInteractiveInterpolationValue(SoState* state) const;
00241
00242 #endif
00244 private:
00245
00246 virtual void shapeRender(SoGLRenderAction* action);
00247
00249 virtual void shapeGeneratePrimitives(SoAction* action);
00250
00252 virtual void checkShapeStyle(SoState *state,const SoShapeStyleElement *shapeStyle);
00253
00255 virtual void GLRenderBoundingBox(SoGLRenderAction* action);
00256
00258 virtual void getBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00259
00261 virtual void getBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00262
00264 virtual int getNumVertices(SoState* state);
00265
00267 virtual int getIndexCoord(int index) const;
00268
00270 virtual ~SoVolumeIndexedTriangleStripSet();
00271
00272 using SoVolumeGeometry::doRendering;
00273 };
00274
00275 #endif //__VOLUME_INDEXED_TRIANGLE_STRIP_SET
00276
00277
00278