SOTEXTURECOORDINATEENVIRONMENT(3iv)

πŸ’– SoTextureCoordinateEnvironment πŸ’–

okay bestie, gather round, because this is a page from the 3IV manual (that's the manual name, she's fancy) and we're about to get into a node that makes stuff look like it's reflecting the whole world around it. no cap.


🌸 NAME 🌸

SoTextureCoordinateEnvironment β€” a node that specifies texture coordinates by projection from an environment. it's giving "your object is a disco ball and the room is the texture". πŸͺ©


πŸ¦‹ INHERITS FROM πŸ¦‹

so the family tree goes like this, oldest ancestor first, and she's at the bottom of it:

  • SoBase
  • > SoFieldContainer
  • > > SoNode
  • > > > SoTextureCoordinateFunction
  • > > > > SoTextureCoordinateEnvironment πŸ‘‘

✨ SYNOPSIS ✨

#include <Inventor/nodes/SoTextureCoordinateEnvironment.h>

   Methods from class SoTextureCoordinateEnvironment:

                  SoTextureCoordinateEnvironment()
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 yes she literally inherits all of that. she's not doing it alone, she's got a whole support system. 🫢


πŸ’… DESCRIPTION πŸ’…

okay so here's the tea, and it's genuinely iconic:

This node creates texture coordinates by projecting points on an object's surface to the interior of a surrounding sphere, along the reflection across the surface normal of the vector from the camera point to the surface. πŸŽ€

and the payoff? If the current texture image represents a spherical reflection map of the current surrounding environment, subsequent shapes will appear to reflect that environment. so it looks like the chrome is reflecting the whole world around it, and you did that with like four lines of code. obsessed. πŸ”₯


πŸŽ€ METHODS πŸŽ€

  • SoTextureCoordinateEnvironment() β€” Creates a texture function node with default settings. the blank-slate baby, no notes, ready to slay. ✨
  • static SoType getClassTypeId() β€” Returns type identifier for this class. that's her ID, her little name tag at the function party. πŸͺͺ

🌈 ACTION BEHAVIOR 🌈

  • SoGLRenderAction, SoCallbackAction, SoRayPickAction β€” Sets the current texture function in the state.

basically when those actions roll through, this node sets the current texture function into the state and moves on. main character behavior, honestly. πŸ’«


πŸ“ FILE FORMAT/DEFAULTS πŸ“

TextureCoordinateEnvironment {
}

look at her. empty. flawless. the default settings are literally just the node existing. πŸ’€βœ¨


πŸ’œ SEE ALSO πŸ’œ

  • SoTexture2
  • SoTexture2Transform
  • SoTextureCoordinateDefault
  • SoTextureCoordinatePlane

go read those next, bestie, iykyk. πŸ“š


and that's the whole page! this was SoTextureCoordinateEnvironment(3IV), and the footer said SoTextureCoordinateEnvironment(3IV)() β€” so, source and version info: she's from the SoTextureCoordinateEnvironment(3IV) family, manual section 3IV, and the page footer is her signature. πŸŽ€ sending you off with a vibe check passed and a full heart, mwah. πŸ’–πŸŒΈπŸ¦‹