SOCONCATENATE(3iv)

πŸ’– SoConcatenate(3IV) β€” the field-gluing engine πŸ’–

ok so real talk, this is the SoConcatenate(3IV) page and it's genuinely one of my faves because it does one tiny thing and does it flawlessly. It takes your separate fields and welds them into one big multiple-value field. Like a friendship bracelet but for data. 🫢


✨ NAME ✨

SoConcatenate β€” joins separate fields into a single multiple-value field πŸ’…


🧬 INHERITS FROM 🧬

SoBase > SoFieldContainer > SoEngine > SoConcatenate

the whole ancestry, iconic lineage, no notes πŸ‘‘


πŸ“œ SYNOPSIS πŸ“œ

#include <Inventor/engines/SoConcatenate.h>

   Inputs from class SoConcatenate:

<inputType>         input[10]

   Outputs from class SoConcatenate:

(<outputType>)      output

   Methods from class SoConcatenate:

                SoConcatenate(SoType inputType)

   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

like yes, she inherited a LOT from her ancestors, we love a girl with range πŸ’œ


🌸 DESCRIPTION 🌸

okay so, the whole vibe: this engine takes up to 10 separate fields of some type and joins them into one single multiple-valued field of that same type. that's it. that's the job. and she ate. πŸ”₯

the type of the input fields can be any subclass of SoMField, and you decide which one at the exact moment you make the instance. for example:

SoConcatenate(SoMFFloat::getClassTypeId())

creates an engine that concatenates floating-point values. ✨ cute right?

so the input field? it's a 10-element array, and every single element can be connected to either single-valued or multiple-valued fields. all the values hanging out in the input get concatenated together to form one multiple-value field. example time, bestie: if input[0] holds 10 values and input[1] holds 3 values, then the output holds 13 values. math is mathing. πŸ’€

⚠️ note that, unlike the output of most engines, output is a pointer. and also, by default input does not contain any values, and no value is output from the engine. so like, she's quiet until you give her something. valid. πŸ™ˆ

πŸ“₯ INPUTS πŸ“₯

<inputType>         input[10]

πŸ“€ OUTPUTS πŸ“€

(<outputType>)      output

πŸ› οΈ METHODS πŸ› οΈ

  • SoConcatenate(SoType inputType) β€” Constructor. the argument is literally you telling her the type of values to concatenate. that's the whole argument. give her the type, she gives you the concat. πŸ’…

πŸ“ FILE FORMAT/DEFAULTS πŸ“

Concatenate {
   type                <inputType>
   input0              []
   input1              []
   input2              []
   input3              []
   input4              []
   input5              []
   input6              []
   input7              []
   input8              []
   input9              []
}

look at all those empty brackets. ten little slots waiting to be filled. she's so ready. πŸŽ€


πŸ‘€ SEE ALSO πŸ‘€

  • SoEngineOutput
  • SoGate
  • SoSelectOne

go read those too bestie, iykyk πŸ¦‹


and that's the page!! footer's just sitting there going SoConcatenate(3IV)() β€” same name, no version, no date, just her name echoed back at you like a vibe check. honestly? iconic. no cap. periodt. πŸ’–βœ¨πŸŒˆ