Render a slice of the volume data, with any orientation.
More...
#include <VolumeViz/nodes/SoObliqueSlice.h>
Inherits SoShape.
|
static void | initClass (void) |
|
|
virtual void | GLRender (SoGLRenderAction *action) |
|
virtual void | rayPick (SoRayPickAction *action) |
|
virtual void | generatePrimitives (SoAction *action) |
|
virtual void | computeBBox (SoAction *action, SbBox3f &box, SbVec3f ¢er) |
|
virtual void | write (SoWriteAction *action) |
|
virtual SbBool | readInstance (SoInput *in, unsigned short flags) |
|
Render a slice of the volume data, with any orientation.
Insert a node of this type after an SoVolumeData node in the scene graph to render a single slice from the full volume data set. The slice is specified as a plane with an orientation and position within the volume.
Here is a simple example, in the form of an iv-file:
#Inventor V2.1 ascii
SoVolumeData { fileName "ENGINE.VOL" }
Separator {
SoTransferFunction { }
DEF clipper ClipPlaneManip { }
SoVolumeRender { }
}
Separator {
SoTransferFunction { predefColorMap GLOW }
SoObliqueSlice {
interpolation LINEAR
alphaUse ALPHA_AS_IS
plane = USE clipper . plane
}
}
Please note that SoObliqueSlice will not work with older OpenGL drivers as they usually lack 3D-texture support. OpenGL drivers of version 1.2 and onwards supports 3D-texturing, as does older OpenGL drivers with the GL_EXT_texture3D
extension. If none of these are available, a warning message will be printed using Coin's SoDebugError::postWarning().
- See also
- SoVolumeRender, SoOrthoSlice
-
SoVolumeTriangleStripSet, SoVolumeIndexedTriangleStripSet,
-
SoVolumeIndexedFaceSet, SoVolumeFaceSet
- Since
- SIM Voleon 2.0
◆ Interpolation
Enumeration of available types of voxel colors interpolation.
Enumerator |
---|
NEAREST | For "in between" pixels of the screen rasterization, pick the color of the nearest voxel. Will give sharp edges and a distinct blocky look.
|
LINEAR | For "in between" pixels of the screen rasterization, interpolate by averaging the colors of several of the nearest voxels. Will give a smoother appearance, but sacrifies some "correctness" for appearance.
|
◆ AlphaUse
Enumerator |
---|
ALPHA_AS_IS | The alpha channel is rendered 'as-is'.
|
ALPHA_OPAQUE | The alpha channel is ignored making the slice opaque.
|
ALPHA_BINARY | All alpha values not equal to 0 is threated as value 1.0f.
|
◆ plane
SoSFPlane SoObliqueSlice::plane |
The plane defining the slice.
Default value is an XY plane.
◆ interpolation
SoSFEnum SoObliqueSlice::interpolation |
◆ alphaUse
SoSFEnum SoObliqueSlice::alphaUse |
◆ alternateRep
SoSFNode SoObliqueSlice::alternateRep |
NOTE: support for this field not yet implemented in SIM Voleon.
- Since
- SIM Voleon 2.0
The documentation for this class was generated from the following files:
Definition: SoVolumeRender.h:57
SoSFInt32 numSlices
Definition: SoVolumeRender.h:72
void setUserData(void *data)
Definition: VRVolFileReader.cpp:282
void setAbortCallback(SoVolumeRenderAbortCB *func, void *userdata=NULL)
Definition: VolumeRender.cpp:777
SoSFEnum predefColorMap
Definition: SoTransferFunction.h:73
The main interface for setting up volume data sets.
Definition: SoVolumeData.h:54
void setVolumeData(const SbVec3s &dimension, void *data, SoVolumeData::DataType type=SoVolumeData::UNSIGNED_BYTE, int significantbits=0)
Definition: VolumeData.cpp:410
Contains the transfer function definition.
Definition: SoTransferFunction.h:44
void setVolumeSize(const SbBox3f &size)
Definition: VolumeData.cpp:335
void getProfileObjectPos(SbVec3f profile[2]) const
Definition: VolumeDetail.cpp:152
Render the full volume.
Definition: SoVolumeRender.h:47
Definition: SoVolumeRender.h:58
static SbBool getDelayedRendering(void)
Definition: VolumeRendering.cpp:529
SoSFEnum numSlicesControl
Definition: SoVolumeRender.h:71
SoSFEnum colorMapType
Definition: SoTransferFunction.h:74
SoSFBool useSharedPalettedTexture
Definition: SoVolumeData.h:81
Definition: SoTransferFunction.h:56
SoSFEnum composition
Definition: SoVolumeRender.h:67
static void init(void)
Definition: VolumeRendering.cpp:324
Definition: SoVolumeRender.h:57
Definition: SoVolumeRender.h:58
uint32_t getVoxelValue(const SbVec3s &voxelpos) const
Definition: VolumeData.cpp:486
Definition: SoTransferFunction.h:61
The SoVolumeDetail stores ray intersection information through a volume.
Definition: SoVolumeDetail.h:45
SoSFBool useCompressedTexture
Definition: SoVolumeData.h:82
Definition: SoVolumeRender.h:57
static void setWriteAlternateRep(SbBool flag)
Definition: VolumeRendering.cpp:453
void getDataChar(SbBox3f &size, SoVolumeData::DataType &type, SbVec3s &dim)
Definition: VRVolFileReader.cpp:211
Render a set of trianglestrips within the volume.
Definition: SoVolumeTriangleStripSet.h:44
virtual void getDataChar(SbBox3f &size, SoVolumeData::DataType &type, SbVec3s &dim)=0
Definition: SoTransferFunction.h:68
int getProfileDataPos(SbVec3s profile[2]=0) const
Definition: VolumeDetail.cpp:174
static SbBool getWriteAlternateRep(void)
Definition: VolumeRendering.cpp:483
void setDetails(const SbVec3f raystart, const SbVec3f rayend, SoState *state, SoNode *caller)
Definition: VolumeDetail.cpp:262
Definition: SoTransferFunction.h:54
Composition
Definition: SoVolumeRender.h:57
Render just the six sides of the volume data.
Definition: SoVolumeSkin.h:40
ColorMapType
Definition: SoTransferFunction.h:65
The SoVolumeSkinDetail stores ray intersection information through a volume.
Definition: SoVolumeSkinDetail.h:45
SoSFInt32 shift
Definition: SoTransferFunction.h:71
SoSFBool usePalettedTexture
Definition: SoVolumeData.h:80
Definition: SoTransferFunction.h:67
SoMFFloat colorMap
Definition: SoTransferFunction.h:75
static void setDelayedRendering(SbBool flag)
Definition: VolumeRendering.cpp:510
virtual void getSubSlice(SbBox2s &subslice, int slicenumber, void *data)
Definition: VRVolFileReader.cpp:244
SbBool getFirstNonTransparentValue(unsigned int *value, SbVec3s *pos=0, SbVec3f *objpos=0, SbBool flag=FALSE) const
Definition: VolumeDetail.cpp:235
static void setReadAlternateRep(SbBool flag)
Definition: VolumeRendering.cpp:427
AbortCode SoVolumeRenderAbortCB(int totalslices, int thisslice, void *userdata)
Definition: SoVolumeRender.h:61
Abstract superclass for all volume data reader classes.
Definition: SoVolumeReader.h:43
unsigned int getProfileValue(int index, SbVec3s *pos=0, SbVec3f *objpos=0, SbBool flag=FALSE) const
Definition: VolumeDetail.cpp:203
static void initClass(void)
Definition: VolumeRendering.cpp:370
Definition: SoTransferFunction.h:59
static SbBool getReadAlternateRep(void)
Definition: VolumeRendering.cpp:471
Render a set of faces within the volume.
Definition: SoVolumeFaceSet.h:44
Definition: SoTransferFunction.h:62
Definition: SoTransferFunction.h:58
SbBox3f getVolumeSize(void) const
Definition: VolumeData.cpp:350
const SbVec3s & getPageSize(void) const
Definition: VolumeData.cpp:580
void setTexMemorySize(int megatexels)
Definition: VolumeData.cpp:659
Loader for files in the VOL data format.
Definition: SoVRVolFileReader.h:39
void setPageSize(int size)
Definition: VolumeData.cpp:536
Definition: SoVolumeRender.h:56
Definition: SoTransferFunction.h:66
Definition: SoTransferFunction.h:60
Definition: SoTransferFunction.h:55
PredefColorMap
Definition: SoTransferFunction.h:53
int getTexMemorySize(void) const
Definition: VolumeData.cpp:689
void loadRegions(const SbBox3s *region, int num, SoState *state, SoTransferFunction *node)
Definition: VolumeData.cpp:812
Definition: SoVolumeRender.h:56
Definition: SoVolumeRender.h:58
Render a set of trianglestrips within the volume.
Definition: SoVolumeIndexedTriangleStripSet.h:44
Definition: SoTransferFunction.h:57
NumSlicesControl
Definition: SoVolumeRender.h:58
Render a set of faces within the volume.
Definition: SoVolumeIndexedFaceSet.h:44
SbBool getHistogram(int &length, int *&histogram)
Definition: VolumeData.cpp:726
SbBool getVolumeData(SbVec3s &dimension, void *&data, SoVolumeData::DataType &type, int *significantbits=NULL) const
Definition: VolumeData.cpp:457
SoSFEnum interpolation
Definition: SoVolumeRender.h:66
virtual void rayPick(SoRayPickAction *action)
Definition: VolumeRender.cpp:693
Render one orthogonal slice of the volume data.
Definition: SoOrthoSlice.h:46
SoSFInt32 offset
Definition: SoTransferFunction.h:72
void reMap(int low, int high)
Definition: TransferFunction.cpp:352
Abstract base class for all nodes related to volume rendering.
Definition: SoVolumeRendering.h:41
The SoVolumeRenderDetail stores ray intersection information through a volume.
Definition: SoVolumeRenderDetail.h:45
Interpolation
Definition: SoVolumeRender.h:56