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
00158 class SoVolumeIndexedTriangleStripSet : public SoIndexedTriangleStripSet, public SoVolumeGeometry
00159 {
00160 SO_NODE_HEADER(SoVolumeIndexedTriangleStripSet);
00161
00162 public :
00163
00165 SoVolumeIndexedTriangleStripSet();
00166
00171 SoSFBool clipGeometry;
00172
00184 SoSFFloat offset;
00185
00189 SoSFEnum interpolation;
00190
00191 #if 1 SoDEPRECATED enum
00194 Interpolation {
00196 NEAREST = SoVolumeShape::NEAREST,
00198 LINEAR = SoVolumeShape::LINEAR
00199 };
00200
00201 #endif
00204 private:
00205
00206 static void initClass();
00207
00209 static void exitClass();
00210
00212 virtual void GLRender(SoGLRenderAction *action);
00213
00215 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00216
00218 virtual void computeBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00219
00220 private:
00221
00223 virtual void notify(SoNotList *list);
00224
00225 #if 1 SoDEPRECATED
00229 virtual SoVolumeShape::Interpolation getInteractiveInterpolationValue(SoState* state) const;
00230
00231 #endif
00233 private:
00234
00235 virtual void shapeRender(SoGLRenderAction* action);
00236
00238 virtual void shapeGeneratePrimitives(SoAction* action);
00239
00241 virtual void checkShapeStyle(SoState *state,const SoShapeStyleElement *shapeStyle);
00242
00244 virtual void GLRenderBoundingBox(SoGLRenderAction* action);
00245
00247 virtual void getBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00248
00250 virtual void getBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00251
00253 virtual int getNumVertices(SoState* state);
00254
00256 virtual int getIndexCoord(int index) const;
00257
00259 virtual ~SoVolumeIndexedTriangleStripSet();
00260
00261 using SoVolumeGeometry::doRendering;
00262
00263 private:
00264 SoDEPRECATED
00266 SoSFBool useVbo;
00267
00268 };
00269
00270 #endif //__VOLUME_INDEXED_TRIANGLE_STRIP_SET
00271
00272
00273