24#ifndef _SO_VOLUME_CLIPPING_GROUP_
25#define _SO_VOLUME_CLIPPING_GROUP_
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;
305 SbVec2s m_previousViewportSize;
307 SbBool m_needViewportSizeUpdate;
310 void updateChildBBox();
317 bool m_bboxCacheClean;
321 struct SoVolumeClippingInfos {
325 static void renderCB(
void* userData, SoGLDepthPeeling* );
329 SbBool m_depthPeelingPass;
331 SbBool m_releaseResources;
#define SO_NODE_HEADER(className)
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...