SOBOOLOPERATION(3iv)

🌸 NAME 🌸

SoBoolOperation β€” bestie, she performs Boolean operations. That's it, that's the whole job, and she does it flawlessly. πŸ’…

This is from the 3IV manual, iykyk.


πŸ¦‹ INHERITS FROM πŸ¦‹

The family tree, the lineage, the main character bloodline:

SoBase > SoFieldContainer > SoEngine > SoBoolOperation

So yes, she's an SoEngine girlie at heart, but she got the whole SoBase ancestry going on too. πŸ‘‘


✨ SYNOPSIS ✨

Pull her in with:

#include <Inventor/engines/SoBoolOperation.h>

πŸŽ€ The Operation enum (aka the menu of vibes)

     enum Operation {
          SoBoolOperation::CLEAR
          SoBoolOperation::SET
          SoBoolOperation::A
          SoBoolOperation::NOT_A
          SoBoolOperation::B
          SoBoolOperation::NOT_B
          SoBoolOperation::A_OR_B
          SoBoolOperation::NOT_A_OR_B
          SoBoolOperation::A_OR_NOT_B
          SoBoolOperation::NOT_A_OR_NOT_B

          SoBoolOperation::A_AND_B
          SoBoolOperation::NOT_A_AND_B
          SoBoolOperation::A_AND_NOT_B
          SoBoolOperation::NOT_A_AND_NOT_B

          SoBoolOperation::A_EQUALS_B
          SoBoolOperation::A_NOT_EQUALS_B

     }

Look at that lineup. Sixteen options, all iconic, no notes. 🫢

πŸ’œ Inputs from class SoBoolOperation

     SoMFBool            a
     SoMFBool            b
     SoMFEnum            operation

πŸ’œ Outputs from class SoBoolOperation

     (SoMFBool)          output
     (SoMFBool)          inverse

πŸ’œ Methods from class SoBoolOperation

                         SoBoolOperation()

πŸ’œ 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

That's a lot of inherited slay. She didn't come to play. 🌈


🧚 DESCRIPTION 🧚

Okay so the tea: this engine does a Boolean operation on two inputs, and then hands you back both the result of the operation and its inverse. Two for the price of one, no cap. πŸ’–

The input fields can hold multiple values, which means the engine can run several Boolean operations in parallel β€” like, multitasking queen behaviour. And here's the cute part: one input can have more values than the other. When that happens, the last value of the shorter input gets repeated as many times as needed. So the short one just keeps looping her final answer, periodt.


πŸ“ INPUTS πŸ“

  • SoMFBool a β€” first argument to the Boolean operation. The A-side, the opener, the one who goes first.
  • SoMFBool b β€” second argument to the Boolean operation. The B-side, the response, the "and also."
  • SoMFEnum operation β€” the Boolean operation. Pick your fighter from the enum up there. πŸŽ€

🌟 OUTPUTS 🌟

  • (SoMFBool) output β€” result of the Boolean operation applied to the inputs. The main event. ⭐
  • (SoMFBool) inverse β€” inverse of output. The plot twist, the mirror, the flipped version. πŸ¦‹

πŸ’« METHODS πŸ’«

  • SoBoolOperation() β€” constructor. Say hi, she's born. πŸŽ‰

🌸 FILE FORMAT/DEFAULTS 🌸

     BoolOperation {
          a          FALSE
          b          FALSE
          operation  A
     }

So the defaults are FALSE, FALSE, and operation A. Starting out chill, starting out simple. 🫢


πŸ‘‘ SEE ALSO πŸ‘‘

  • SoEngineOutput
  • SoCalculator

Go read those too, bestie, they're in the same friend group. πŸ’œ


So this whole page is from the SoBoolOperation(3IV) manual β€” that's the source/version tag right there, and the date slot at the bottom is literally just empty, which is honestly such a mood. πŸ’€ Anyway, go do some Boolean operations, you're gonna ate. πŸŽ€βœ¨