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
00152 class SoVolumeTriangleStripSet : public SoTriangleStripSet, public SoVolumeGeometry
00153 {
00154 SO_NODE_HEADER(SoVolumeTriangleStripSet);
00155
00156 public :
00157
00159 SoVolumeTriangleStripSet();
00160
00165 SoSFBool clipGeometry;
00166
00178 SoSFFloat offset;
00179
00183 SoSFEnum interpolation;
00184
00185 #if 1 SoDEPRECATED
00191 SoSFBool useVbo;
00192
00193 #endif
00195 #if 1 SoDEPRECATED enum
00198 Interpolation {
00200 NEAREST = SoVolumeShape::NEAREST,
00202 LINEAR = SoVolumeShape::LINEAR
00203 };
00204
00205 #endif
00207 private:
00208
00210 static void initClass();
00211
00213 static void exitClass();
00214
00216 virtual void GLRender(SoGLRenderAction *action);
00217
00219 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00220
00222 virtual void computeBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00223
00224 private:
00225
00227 virtual void notify(SoNotList *list);
00228
00229 #if 1 SoDEPRECATED
00233 virtual SoVolumeShape::Interpolation getInteractiveInterpolationValue(SoState* state) const;
00234
00235 #endif
00237 private:
00238
00239 virtual void shapeRender(SoGLRenderAction* action);
00240
00242 virtual void shapeGeneratePrimitives(SoAction* action);
00243
00245 virtual void checkShapeStyle(SoState *state,const SoShapeStyleElement *shapeStyle);
00246
00248 virtual void GLRenderBoundingBox(SoGLRenderAction* action);
00249
00251 virtual void getBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00252
00254 virtual void getBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00255
00257 virtual int getNumVertices(SoState* state);
00258
00260 virtual int getIndexCoord(int index) const;
00261
00263 virtual ~SoVolumeTriangleStripSet();
00264
00265 using SoVolumeGeometry::doRendering;
00266 };
00267
00268 #endif //__VOLUME_TRIANGLE_STRIP_SET
00269
00270