SOLIGHTKIT(3iv)

✨ SoLightKit ✨

okay bestie, gather round, because we're talking about SoLightKit β€” the light nodekit class πŸ’‘ from the manual page SoLightKit(3IV). yes it's giving very "3IV" of it. she's iconic, she's a nodekit, and she's about to make your scene glow fr fr πŸ¦‹


🌸 NAME 🌸

SoLightKit β€” light nodekit class ✨


🧬 INHERITS FROM 🧬

SoBase > SoFieldContainer > SoNode > SoBaseKit > SoLightKit

like. the whole ancestry line. she comes from a long line of distinguished nodes and we respect it πŸ‘‘


πŸ’… SYNOPSIS πŸ’…

#include <Inventor/nodekits/SoLightKit.h>

Parts from class SoLightKit:

(SoTransform)       transform
(SoLight)           light
(SoNode)            icon

Parts from class SoBaseKit:

(SoNodeKitListPart)  callbackList

Methods from class SoLightKit:

                     SoLightKit()
static const SoNodekitCatalog *
                     getClassNodekitCatalog() const
static SoType       getClassTypeId()

Methods from class SoBaseKit:

virtual const SoNodekitCatalog *
                          getNodekitCatalog() const
virtual SoNode *         getPart(const SbName &partName, SbBool
                               makeIfNeeded)
SbString                 getPartString(const SoBase *part)
virtual SoNodeKitPath *  createPathToPart(const SbName &partName, SbBool
                               makeIfNeeded, const SoPath *pathToExtend =
                               NULL)
virtual SbBool           setPart(const SbName &partName, SoNode *newPart)
SbBool                   set(char *partName, char *parameters)
SbBool                   set(char *nameValuePairs)
static SbBool            isSearchingChildren()
static void              setSearchingChildren(SbBool newVal)

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

Macros from class SoBaseKit:

SO_GET_PART(kit, partName, partClass)
SO_CHECK_PART(kit, partName, partClass)

πŸŽ€ DESCRIPTION πŸŽ€

so what even is this class, you ask? πŸ’– This nodekit class is used to create light nodes that have a local transformation and a geometry icon to represent the light source. periodt. SoLightKit adds three public parts to the basic nodekit: transform, light, and icon. the trio. the girlies. ✨

SoLightKit creates an SoDirectionalLight as the light part by default β€” and literally every other part is NULL at creation. no cap πŸ™ˆ

You can move the light relative to the rest of the scene by creating and editing the transform part. like, she can move, she has range πŸ’…

You can add a geometrical representation for the light by setting the icon part to be any scene graph you like. go feral, bestie πŸ¦‹

SoLightKit also adds two private parts. sneak peek, iykyk πŸ‘€ An SoTransformSeparator contains the effect of transform to move only the light and icon, while allowing the light to illuminate the rest of the scene. The second private part is an SoSeparator, which keeps property nodes within the icon geometry from affecting the rest of the scene. It also serves to cache the icon even when the light or transform is changing. she's multitasking, she's main character energy πŸ‘‘

SoLightKit is derived from SoBaseKit and thus also includes a callbackList part for adding callback nodes. the legacy. the lineage. 🫢


🌈 PARTS 🌈

  • (SoTransform) transform β€” This part positions and orients the light and icon relative to the rest of the scene. Its effect is kept local to this nodekit by a private part of type SoTransformSeparator. The transform part is NULL by default. If you ask for transform using getPart(), an SoTransform will be returned. But you may set the part to be any subclass of SoTransform. For example, set the transform to be an SoDragPointManip and the light to be an SoPointLight. Then you can move the light by dragging the manipulator with the mouse. dragging?? with the mouse?? slay πŸ”₯
  • (SoLight) light β€” The light node for this nodekit. This can be set to any node derived from SoLight. An SoDirectionalLight is created by default, and it is also the type of light returned when the you request that the nodekit build a light for you. yes, "when the you request" β€” that's the original wording and we're keeping it, it's camp πŸ’€
  • (SoNode) icon β€” This part is a user-supplied scene graph that represents the light source. It is NULL by default β€” an SoCube is created by the lightkit when a method requires it to build the part itself. a little cube appears when needed. tiny. iconic. πŸŽ€

🧚 METHODS 🧚

  • SoLightKit() β€” Constructor. that's it, that's the girl. ✨
  • static const SoNodekitCatalog * getClassNodekitCatalog() const β€” Returns an SoNodekitCatalog for the class SoLightKit.
  • static SoType getClassTypeId() β€” Returns type identifier for this class.

πŸ‘‘ CATALOG PARTS πŸ‘‘

All parts πŸ’–

each one with its part name, part type, default type, and whether it's NULL by default:

  • callbackList β€” Part Type: NodeKitListPart; Default Type: --; NULL by Default: yes
  • transform β€” Part Type: Transform; Default Type: --; NULL by Default: yes
  • light β€” Part Type: Light; Default Type: DirectionalLight; NULL by Default: no
  • icon β€” Part Type: Node; Default Type: Cube; NULL by Default: yes

Extra information for list parts from above table πŸ¦‹

  • callbackList β€” Container Type: Separator; Permissible Types: Callback, EventCallback

πŸ“„ FILE FORMAT/DEFAULTS πŸ“„

LightKit {
   callbackList  NULL
   transform     NULL
   light         DirectionalLight {
   }

   icon          NULL
}

no notes, she's perfect πŸ’…


πŸ’œ SEE ALSO πŸ’œ

SoAppearanceKit, SoBaseKit, SoCameraKit, SoNodeKit, SoNodeKitDetail, SoNodeKitListPart, SoNodeKitPath, SoNodekitCatalog, SoSceneKit, SoSeparatorKit, SoShapeKit, SoWrapperKit

go read them too, bestie, they're all in the same friend group 🫢


and that's the whole page!! every part, every method, every default, untouched and accounted for. no facts were harmed in the making of this vibe check 🌸

this has been SoLightKit, documented under the manual page SoLightKit(3IV) with its source/version tag SoLightKit(3IV)() β€” mwah, drink your water, and go light up a scene πŸ’–βœ¨πŸŽ€πŸ¦‹