SoVolumeDetail(3)
β¨ NAME β¨
SoVolumeDetail β the lil container that holds all the tea about a ray intersecting a volume π
π¦ SYNOPSIS π¦
#include <VolumeViz/details/SoVolumeDetail.h>
Inherited by SoVolumeRenderDetail, and SoVolumeSkinDetail.
π Public Member Functions
virtual SoDetail * copy (void) const
void getProfileObjectPos (SbVec3f profile[2]) const
int getProfileDataPos (SbVec3s profile[2]=0) const
unsigned int getProfileValue (int index, SbVec3s *pos=0, SbVec3f *objpos=0, SbBool flag=FALSE) const
SbBool getFirstNonTransparentValue (unsigned int *value, SbVec3s *pos=0, SbVec3f *objpos=0, SbBool flag=FALSE) const
void setDetails (const SbVec3f raystart, const SbVec3f rayend, SoState *state, SoNode *caller)
β¨ Static Public Member Functions
static void initClass (void)
π«Ά Friends
class SoVolumeDetailP
πΈ Detailed Description πΈ
Okay so, SoVolumeDetail is the one that keeps the receipts on ray intersection info through a volume. π
An SoVolumeDetail holds the info about a ray intersecting a volume that's rendered with the SoVolumeRender node.
And like, the detail contains a "profile" of voxel values going through the volume β where that profile is defined by a start point and an end point. That's the whole vibe. π
π Member Function Documentation π
void SoVolumeDetail::getProfileObjectPos (SbVec3f profile[2]) const
Sets the start and end points of the ray intersecting the volume, into the profile argument. The points it hands back are in object-space coordinates (i.e. in the same geometry unit system as polygon-based geometry in a scene). π¦
int SoVolumeDetail::getProfileDataPos (SbVec3s profile[2] = 0) const
Sets the start and end points of the ray intersecting the volume, into the profile argument. These points are in voxel-space coordinates (i.e. within the dimensions of the voxel block). β
Returns the total number of voxels intersected and stored in the profile. You can use that to iterate over the full profile with the getProfileValue() method. Bestie, that's your loop counter, periodt.
If profile is NULL, the points will not be set β but the correct number of total profile points will still be returned. Iconic behaviour honestly. π
unsigned int SoVolumeDetail::getProfileValue (int index, SbVec3s * pos = 0, SbVec3f * objpos = 0, SbBool flag = FALSE) const
Returns the voxel value at the given index along the ray intersection profile. π
If pos is not NULL, it sets the pos argument to voxel-space coordinates for that voxel.
If objpos is not NULL, it sets the objpos argument to object-space coordinates for that voxel.
The flag argument is unused and is only included for compatibility with TGS Inventor's VolumeViz extension. (Where it seems to be undocumented. π Not us knowing why, just saying.)
SbBool SoVolumeDetail::getFirstNonTransparentValue (unsigned int * value, SbVec3s * pos = 0, SbVec3f * objpos = 0, SbBool flag = FALSE) const
Fills in the info about the first voxel along the pick ray intersection which is not completely transparent. π
Returns FALSE if all voxels along the pick ray were fully transparent, otherwise TRUE.
Sets value to the value of the voxel.
If pos is not NULL, it sets the pos argument to voxel-space coordinates for the first voxel with some opaqueness.
If objpos is not NULL, it sets the objpos argument to object-space coordinates for the first voxel with some opaqueness.
The flag argument is unused and is only included for compatibility with TGS Inventor's VolumeViz extension. (Where it seems to be undocumented. π Same energy as before.)
void SoVolumeDetail::setDetails (const SbVec3f raystart, const SbVec3f rayend, SoState * state, SoNode * caller)
Okay so this API member is considered internal to the library, since it's not likely to be of interest to the application programmer. Not your business, bestie, and that's fine. π«Ά
Used to set raypick details.
NOTE: This method takes different arguments than the TGS equivalent.
Referenced by SoVolumeRender::rayPick().
π Author π
Generated automatically by Doxygen for SIMVoleon from the source code. (Yeah, the robot wrote this one, not me. π)
That's the whole page, bestie, no cap. This was SoVolumeDetail(3) from SIMVoleon, Version 2.1.0 β go slay those voxels π
β¨π¦
π¦ where this page comes from
- fedora 43: SIMVoleon-devel 2.1.0-9.fc43 Β· BSD-3-Clause
- fedora 43: SIMVoleon-devel 2.1.0-9.fc43 Β· BSD-3-Clause
- fedora 44: SIMVoleon-devel 2.1.0-11.fc44 Β· BSD-3-Clause
- fedora 44: SIMVoleon-devel 2.1.0-11.fc44 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms