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_FACE_SET
00026 #define __VOLUME_INDEXED_FACE_SET
00027
00028 #include <Inventor/nodes/SoIndexedFaceSet.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
00160 class SoVolumeIndexedFaceSet : public SoIndexedFaceSet, public SoVolumeGeometry
00161 {
00162 SO_NODE_HEADER(SoVolumeIndexedFaceSet);
00163
00164 public :
00165
00167 SoVolumeIndexedFaceSet();
00168
00173 SoSFBool clipGeometry;
00174
00186 SoSFFloat offset;
00187
00188
00192 SoSFEnum interpolation;
00193
00194 #if 1 SoDEPRECATED enum
00197 Interpolation {
00199 NEAREST = SoVolumeShape::NEAREST,
00201 LINEAR = SoVolumeShape::LINEAR
00202 };
00203
00204 #endif
00206 private:
00207
00208 static void initClass();
00209
00211 static void exitClass();
00212
00214 virtual void GLRender(SoGLRenderAction *action);
00215
00217 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00218
00220 virtual void computeBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00221
00222 private:
00223
00225 virtual void notify(SoNotList *list);
00226
00227 #if 1 SoDEPRECATED
00231 virtual SoVolumeShape::Interpolation getInteractiveInterpolationValue(SoState* state) const;
00232
00233 #endif
00235 private:
00236
00237 virtual void shapeRender(SoGLRenderAction* action);
00238
00240 virtual void shapeGeneratePrimitives(SoAction* action);
00241
00243 virtual void checkShapeStyle(SoState *state,const SoShapeStyleElement *shapeStyle);
00244
00246 virtual void GLRenderBoundingBox(SoGLRenderAction* action);
00247
00249 virtual void getBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00250
00252 virtual void getBBox(SoAction *action, SbXfBox3d &box, SbVec3d ¢er);
00253
00255 virtual int getNumVertices(SoState* state);
00256
00258 virtual int getIndexCoord(int index) const;
00259
00261 virtual ~SoVolumeIndexedFaceSet();
00262
00263 using SoVolumeGeometry::doRendering;
00264
00265 private:
00266 SoDEPRECATED
00268 SoSFBool useVbo;
00269
00270 };
00271
00272 #endif //__VOLUME_INDEXED_FACE_SET
00273
00274
00275