24#ifndef _SO_VOLUME_CLIPPING_GROUP_
25#define _SO_VOLUME_CLIPPING_GROUP_
27#include <Inventor/nodes/SoGroup.h>
28#include <Inventor/fields/SoSFInt32.h>
29#include <Inventor/fields/SoSFFloat.h>
30#include <Inventor/SbBox.h>
32class SoGLDepthPeeling;
209 virtual void doAction(
SoAction* action);
216 static void initClass();
217 static void exitClass();
223 int getNumPairs()
const;
226 int getNumPassUsed()
const;
237 void lockResources();
240 void unlockResources();
243 bool areResourcesLocked()
const;
248 void releaseResources();
255 inline const SbXfBox3f& getWorldBbox()
const {
return m_worldBbox; }
258 virtual void notify(SoNotList* list);
271 LayersState m_layersState;
276 struct NotEnoughLayerCBData {
277 NotEnoughLayerCBData() : m_notEnoughPassCB(NULL), m_notEnoughPassCBData(NULL), that(NULL) {}
281 void* m_notEnoughPassCBData;
286 NotEnoughLayerCBData m_notEnoughLayerCBData;
297 static void notEnoughLayerCB(
void* userData, SoGLDepthPeeling* mgr);
303 SoGLDepthPeeling* m_glDepthPeeling;
306 void updateChildBBox();
313 bool m_bboxCacheClean;
317 struct SoVolumeClippingInfos {
321 static void renderCB(
void* userData, SoGLDepthPeeling* );
325 SbBool m_depthPeelingPass;
327 SbBool m_releaseResources;
3D box with an associated transformation matrix.
Abstract base class for all actions.
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
Base class for all group nodes.
Intersects objects with a ray cast into scene.
Field containing a single Boolean value.
Field containing a int32_t integer.
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Clipping a volume wit...
SoSFBool clipOutside
If TRUE, voxels inside the clipping object will be drawn, voxels outside will be clipped.
void SoVolumeClippingGroupCB(SoVolumeClippingGroup *mgr, void *userData)
Callback prototype.
static unsigned int getMaxNumPasses()
Returns the maximum number of passes supported by the hardware.
SoSFInt32 numPasses
Number of passes used to do the clipping.
SoVolumeClippingGroup()
Default constructor.
void setNotEnoughPassCallback(SoVolumeClippingGroupCB *f, void *userData)
Set a callback to be called when there are not enough passes (see numPasses) to properly apply the cl...