SOLIGHT(3iv)

✨ SoLight ✨ β€” the abstract base class for all light source nodes πŸ’‘

okay bestie, come sit with me, we're reading the SoLight(3IV) manual page together and honestly? it's giving ✨ foundational ✨. this one lives in the 3IV manual and it's the blueprint every other light in your scene graph is built on. let's get into it 🫢


🌈 INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoLight

so yeah, she's got ancestors. a whole lineage. main character energy runs in the family πŸ’…


πŸŽ€ SYNOPSIS

#include <Inventor/nodes/SoLight.h>

πŸ’– Fields from class SoLight

SoSFBool            on
SoSFFloat           intensity
SoSFColor           color

πŸ’– Methods from class SoLight

static SoType       getClassTypeId()

πŸ¦‹ Methods from class SoNode

void                setOverride(SbBool state)
SbBool              isOverride() const
SoNode *            copy(SbBool copyConnections = FALSE) const
virtual SbBool      affectsState() const
static SoNode *     getByName(const SbName &name)
static int          getByName(const SbName &name, SoNodeList &list)

πŸ¦‹ Methods from class SoFieldContainer

void                setToDefaults()
SbBool              hasDefaultValues() const
SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
void                copyFieldValues(const SoFieldContainer *fc, SbBool
                         copyConnections = FALSE)
SbBool              set(const char *fieldDataString)
void                get(SbString &fieldDataString)
virtual int         getFields(SoFieldList &resultList) const
virtual SoField *   getField(const SbName &fieldName) const
SbBool              getFieldName(const SoField *field, SbName &fieldName)
                         const
SbBool              isNotifyEnabled() const
SbBool              enableNotify(SbBool flag)

πŸ¦‹ Methods from class SoBase

void                ref()
void                unref() const
void                unrefNoDelete() const
void                touch()
virtual SoType      getTypeId() const
SbBool              isOfType(SoType type) const
virtual void        setName(const SbName &name)
virtual SbName      getName() const

like… look at all those inherited methods. she didn't just inherit trauma, she inherited capabilities πŸ’€βœ¨


πŸ’‘ DESCRIPTION

okay so. SoLight is the abstract base class for all light nodes. periodt. she doesn't do the lighting herself β€” she's the blueprint, the template, the queen the other lights copy their whole thing from πŸ‘‘

a light node defines an illumination source that may affect subsequent shapes in the scene graph, and whether it actually does depends on the current lighting style. so it's a vibe check situation, not a guaranteed glow-up.

Light sources are affected by the current transformation. yes bestie, transformations move your lights too, they're not immune.

and here's the tea: a light node under a separator does not affect any objects outside that separator. it's a boundaries thing. she stays in her lane, and honestly? iconic.

you can also use a node kit to create a light β€” go peek at the reference page for SoLightKit if you wanna do it the fancy way πŸŽ€


🌸 FIELDS

  • SoSFBool on β€” decides whether the source is active or inactive. when it's inactive, the source does not illuminate at all. not even a little. not even a whisper. it's off-off πŸ™ˆ
  • SoSFFloat intensity β€” the illumination intensity of the light source. valid values range from 0.0 (no illumination) to 1.0 (maximum illumination). so like, 0.0 = ghosting you, 1.0 = full beam full send πŸ”₯
  • SoSFColor color β€” the light source illumination color. pick your aesthetic, bestie 🌈

⭐ METHODS

  • static SoType getClassTypeId() β€” returns the type identifier for this class. it's her ID card, her little passport, her "yes i belong here" proof πŸ’…

🎬 ACTION BEHAVIOR

SoGLRenderAction

activates this light (if so specified) during traversal. all shape nodes that come after this light in the scene graph are illuminated by this light. so it's like walking into a room and every single thing after you gets lit up β€” order matters, bestie ✨


πŸ“ FILE FORMAT/DEFAULTS

this is an abstract class. so there's nothing to show here, no defaults, no format, nada. go look at the reference page of a derived class for the format and default values, because she's not gonna do that work for you πŸ’…


πŸ‘€ SEE ALSO

  • SoDirectionalLight
  • SoEnvironment
  • SoLightKit
  • SoLightModel
  • SoMaterial
  • SoPointLight
  • SoSpotLight

the whole light squad, the friend group, the group chat 🫢 go say hi.


⚠️ real talk though: she's abstract. you literally cannot make one of these on her own. she exists so that the derived classes have somewhere to come from. no cap.

and that's the page, bestie πŸŽ€ this came to you from the SoLight(3IV)() footer situation β€” the source/version and date fields on that line were empty, so no version numbers and no dates to spill, just the page name hanging out at the bottom all alone 😭 anyway, go forth and light things up. mwah πŸ’–