SoObliqueSlice(3)

πŸ“¦ version 2.1.0, in fedora 43, fedora 44

πŸ’– SoObliqueSlice β€” welcome to the SoObliqueSlice(3) chapter of the Library Functions Manual πŸ’–

okay bestie, sit down, hydrate, because this one is genuinely iconic. this is the manpage for SoObliqueSlice, and yes it lives in section 3 (library functions) β€” so like, it's a programmer girlie, not a shell-command girlie. πŸ’…


✨ NAME ✨

SoObliqueSlice β€” Render a slice of the volume data, with any orientation.

like. ANY orientation. she does not do "upright only", she does not do "one angle", she is versatile. periodt. 🌈


πŸŽ€ SYNOPSIS πŸŽ€

#include <VolumeViz/nodes/SoObliqueSlice.h>

πŸ¦‹ Public Types

enum Interpolation { NEAREST, LINEAR }
enum AlphaUse { ALPHA_AS_IS, ALPHA_OPAQUE, ALPHA_BINARY }

🌸 Static Public Member Functions

static void initClass (void)

πŸ’œ Public Attributes

SoSFPlane plane
SoSFEnum interpolation
SoSFEnum alphaUse
SoSFNode alternateRep

🧚 Protected Member Functions

virtual void GLRender (SoGLRenderAction *action)
virtual void rayPick (SoRayPickAction *action)
virtual void generatePrimitives (SoAction *action)
virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f &center)
virtual void write (SoWriteAction *action)
virtual SbBool readInstance (SoInput *in, unsigned short flags)

⭐ Friends

class SoObliqueSliceP

πŸ‘‘ Detailed Description πŸ‘‘

Render a slice of the volume data, with any orientation.

so the way this works: you drop a node of this type after an SoVolumeData node in the scene graph, and boom β€” you get a single slice rendered out of the whole full volume data set. 🫢 the slice itself is specified as a plane, and that plane carries both an orientation and a position inside the volume. lowkey elegant, highkey powerful.

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
  }
}
⚠️ okay important bestie, listen up: please note that SoObliqueSlice will not work with older OpenGL drivers, because they usually lack 3D-texture support. OpenGL drivers of version 1.2 and onwards support 3D-texturing, and older OpenGL drivers with the GL_EXT_texture3D extension do too. 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


🌈 Member Enumeration Documentation 🌈

πŸ’… enum SoObliqueSlice::Interpolation

Enumeration of available types of voxel colors interpolation. (yes, "threated"-adjacent energy, but the colors are being interpolated and that's the whole vibe.)

Enumerator

  • NEAREST β€” for the "in between" pixels of the screen rasterization, pick the color of the nearest voxel. Will give sharp edges and a distinct blocky look. πŸ’€ (affectionate β€” blocky is a choice and she's serving it)
  • LINEAR β€” for the "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. ✨ (yes, it says "sacrifies", we're quoting the source, don't come for me)

πŸŽ€ enum SoObliqueSlice::AlphaUse

Enumerator

  • ALPHA_AS_IS β€” the alpha channel is rendered 'as-is'. no notes, no edits, no filters. she's showing up exactly how she is. 🫢
  • ALPHA_OPAQUE β€” the alpha channel is ignored, making the slice opaque. transparency? never met her. πŸ”₯
  • ALPHA_BINARY β€” all alpha values not equal to 0 is threated as value 1.0f. so like, it's either there or it's not there, no in-between, no nuance. binary queen. πŸ‘‘

πŸ’– Member Data Documentation πŸ’–

⭐ SoSFPlane SoObliqueSlice::plane

The plane defining the slice.

Default value is an XY plane.

🌸 SoSFEnum SoObliqueSlice::interpolation

How to interpolate color values when rendering "in between" voxels. See SoObliqueSlice::Interpolation.

Default value is SoObliqueSlice::LINEAR.

πŸ¦‹ SoSFEnum SoObliqueSlice::alphaUse

How the alpha channel should be threated during rendering. See SoObliqueSlice::AlphaUse.

Default value is SoObliqueSlice::ALPHA_AS_IS

🧚 SoSFNode SoObliqueSlice::alternateRep

⚠️ NOTE: support for this field not yet implemented in SIM Voleon.

Since: SIM Voleon 2.0


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for SIMVoleon from the source code. (not me writing this by hand, bestie β€” the robots did it, I just gave it ✨personality✨)


and that's the whole page, fr fr. no cap, every flag, every enum, every default accounted for. πŸ’…

signing off from the very bottom of the page: this gorgeous thing is from SIMVoleon, Version 2.1.0, and it lives at SoObliqueSlice(3). slay, stay textured, and may your drivers always be 1.2 or better. πŸŽ€βœ¨πŸ¦‹πŸ’–

πŸ“¦ where this page comes from