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_FACE_SET
00026 #define __VOLUME_FACE_SET
00027
00028 #include <Inventor/nodes/SoFaceSet.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
00179 class SoVolumeFaceSet : public SoFaceSet, public SoVolumeGeometry
00180 {
00181 SO_NODE_HEADER(SoVolumeFaceSet);
00182
00183 public :
00184
00186 SoVolumeFaceSet();
00187
00192 SoSFBool clipGeometry;
00193
00205 SoSFFloat offset;
00206
00210 SoSFEnum interpolation;
00211
00212 #if 1 SoDEPRECATED enum
00215 Interpolation {
00217 NEAREST = SoVolumeShape::NEAREST,
00219 LINEAR = SoVolumeShape::LINEAR
00220 };
00221
00222 #endif
00225 private:
00226
00227 static void initClass();
00228
00230 static void exitClass();
00231
00233 virtual void GLRender(SoGLRenderAction *action);
00234
00236 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00237
00239 virtual void computeBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00240
00241 private:
00242
00244 virtual void notify(SoNotList *list);
00245
00246 #if 1 SoDEPRECATED
00250 virtual SoVolumeShape::Interpolation getInteractiveInterpolationValue(SoState* state) const;
00251
00252 #endif
00254 private:
00255
00256 virtual void shapeRender(SoGLRenderAction* action);
00257
00259 virtual void shapeGeneratePrimitives(SoAction* action);
00260
00262 virtual void checkShapeStyle(SoState *state,const SoShapeStyleElement *shapeStyle);
00263
00265 virtual void GLRenderBoundingBox(SoGLRenderAction* action);
00266
00268 virtual void getBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00269
00271 virtual void getBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00272
00274 virtual int getNumVertices(SoState* state);
00275
00277 virtual int getIndexCoord(int index) const;
00278
00280 virtual ~SoVolumeFaceSet();
00281
00282 using SoVolumeGeometry::doRendering;
00283
00284 private:
00285 SoDEPRECATED
00287 SoSFBool useVbo;
00288
00289 };
00290
00291 #endif //__VOLUME_FACE_SET
00292
00293
00294