SOINTERPOLATEFLOAT(3iv)

πŸ’– NAME πŸ’–

SoInterpolateFloat β€” bestie, this engine interpolates floating-point values. That's it. That's the whole vibe. ✨

And psst, the manual page itself is called SoInterpolateFloat(3IV) if you ever need to look it up, iykyk. πŸŽ€


🌸 INHERITS FROM 🌸

It's giving very much a lineage moment, okay:

SoBase > SoFieldContainer > SoEngine > SoInterpolate >
SoInterpolateFloat

So it's an SoInterpolate, which is an SoEngine, which is an SoFieldContainer, which is an SoBase. The whole family tree ate. πŸ‘‘


✨ SYNOPSIS ✨

First things first, you gotta include the header:

#include <Inventor/engines/SoInterpolate.h>

Inputs from class SoInterpolateFloat:

SoMFFloat           input0
SoMFFloat           input1

Inputs from class SoInterpolate:

SoSFFloat           alpha

Outputs from class SoInterpolate:

(SoMFFloat)         output

Methods from class SoInterpolateFloat:

                    SoInterpolateFloat()

Methods from class SoEngine:

static SoType       getClassTypeId()
virtual int         getOutputs(SoEngineOutputList &list) const
SoEngineOutput *    getOutput(const SbName &outputName) const
SbBool              getOutputName(const SoEngineOutput *output, SbName
                         &outputName) const
SoEngine *          copy() const
static SoEngine *   getByName(const SbName &name)
static int          getByName(const SbName &name, SoEngineList &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

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so picture this. This engine linearly interpolates between two floating-point values, and it does it based on the alpha input value. That's the whole plot. πŸ’…

The alpha value should be between 0.0 and 1.0. No cap. πŸ“

Here's the fun part though β€” the input fields can have multiple values, which means the engine can interpolate several objects in parallel. Multitasking queen behavior. πŸ‘‘

One of the inputs may have more values than the other. And in that case? The last value of the shorter input gets repeated as necessary. It's literally just stretching. No drama. 🫢


πŸŽ€ INPUTS πŸŽ€

  • SoMFFloat input0
  • SoMFFloat input1

The engine linearly interpolates from input0 to input1. That's the journey. The character arc. From point A to point B. 🌈


πŸ’œ METHODS πŸ’œ

  • SoInterpolateFloat() β€” Constructor. It's the birth. The origin story. ✨

⭐ FILE FORMAT/DEFAULTS ⭐

Here's what the defaults look like when they're just sitting there being all defaulty:

InterpolateFloat {
    alpha   0
    input0  0
    input1  1
}

Notice alpha starts at 0, input0 starts at 0, and input1 starts at 1. So out of the box it's like… already living its best interpolated life. πŸ“


🌈 SEE ALSO 🌈

Go be nosy, bestie, the whole friend group is here:

  • SoEngineOutput
  • SoInterpolateRotation
  • SoInterpolateVec2f
  • SoInterpolateVec3f
  • SoInterpolateVec4f

and that's the whole page!! πŸŽ‰ this lil doc lives under the title SoInterpolateFloat(3IV), and the footer tag on it is SoInterpolateFloat(3IV)() β€” so like, if you're out here citing your sources, that's the one. mwah. πŸ’‹ no notes. periodt. πŸ’…βœ¨