SOPOINTLIGHT(3iv)

🌟 SoPointLight β€” bestie edition 🌟

okay so this is the man page for SoPointLight, from the 3IV manual set. It's a node that represents a point light source. Very main character of it, honestly. πŸ’‘βœ¨


πŸ’– NAME πŸ’–

SoPointLight β€” a node representing a point light source. yep that's the whole vibe. one little light, floating in 3D space, lighting up everything around it. iconic behavior fr fr. πŸ•―οΈ


🧬 INHERITS FROM 🧬

This is the family tree, and yes it's giving royal lineage:

SoBase > SoFieldContainer > SoNode > SoLight > SoPointLight

so like. it inherited everything from all of those. nepo baby but make it scene graph. πŸ’…


πŸ“œ SYNOPSIS πŸ“œ

Include it like this, bestie:

#include <Inventor/nodes/SoPointLight.h>

   Fields from class SoPointLight:

SoSFVec3f           location

   Fields from class SoLight:

SoSFBool            on
SoSFFloat           intensity
SoSFColor           color

   Methods from class SoPointLight:

                    SoPointLight()
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

yes it's a lot. yes you should read it. no you don't have to memorize it. 🫢


🌸 DESCRIPTION 🌸

So like, this node defines a point light source at a fixed 3D location. 🎯

And here's the cute part: a point source illuminates equally in all directions. like, it's not picky, it's not choosing favorites, it's not shining only one way. It's omni-directional, bestie. It loves everyone equally. 🌈✨


πŸŽ€ FIELDS πŸŽ€

  • SoSFVec3f location β€” where the source is located. its little address in 3D space. its home. πŸ“

🧚 METHODS 🧚

  • SoPointLight() β€” creates a point light source node with default settings. brand new baby light, freshly born, defaults and all. πŸ‘Άβœ¨
  • static SoType getClassTypeId() β€” returns the type identifier for this class. it's the "who am I" but in a type-system way. πŸͺͺ

🎬 ACTION BEHAVIOR 🎬

  • SoGLRenderAction β€” activates this light (if so specified, like if you actually asked for it) during traversal. Every shape node that comes after this light in the scene graph gets illuminated by it. and β€” plot twist β€” the light's location is affected by the current transformation. so yes, move the transform, move the light. it follows. πŸ’«

πŸ—‚οΈ FILE FORMAT/DEFAULTS πŸ—‚οΈ

the default state of this whole situation:

PointLight {
   on         TRUE
   intensity  1
   color      1 1 1
   location   0 0 1
}

so by default it's ON, intensity 1, color 1 1 1 (white, obviously), sitting at 0 0 1. slay. πŸ’…


πŸ‘€ SEE ALSO πŸ‘€

go read these next, they're in the same friend group:

  • SoDirectionalLight
  • SoSpotLight

quick reminder bestie: this page is SoPointLight(3IV) from the 3IV manual set β€” that's the source/version tag at the bottom of the original, and the date slot is just... empty, no cap, there's literally nothing in those parens. so consider this your sign-off: stay illuminated, stay omni-directional, and go light up your scene graph. πŸ’–πŸŒˆβ­πŸ¦‹πŸ‘‘