SoInteraction(3)

πŸ“¦ version 3.1.3, in fedora 43, fedora 44

πŸ’– SoInteraction(3) β€” Library Functions Manual πŸ’–

okay bestie, welcome to the SoInteraction(3) page, straight out of the Library Functions Manual ✨ this one's short and sweet, no cap.


🌸 NAME 🌸

SoInteraction β€” the class that handles initializing internal classes. that's it, that's the whole job description πŸ’…


✨ SYNOPSIS ✨

#include <Inventor/SoInteraction.h>

πŸŽ€ Static Public Member Functions πŸŽ€

  • static void init (void) β€” the one and only, the main character of this whole page 🫢

πŸ¦‹ Detailed Description πŸ¦‹

so like. the SoInteraction class takes care of initalizing internal classes. (yes, that's the original spelling, we're keeping it exactly as-is, no editing the lore πŸ’€)

the way that SoInteraction exists is literally for one reason: to provide an interface to the initialization methods of the classes in Coin that are somehow related to user interaction. we're talking draggers. we're talking manipulators. iconic behavior honestly πŸ‘‘

and bestie, listen β€” it's unlikely that you, the application programmer, will ever need to worry about this class. because SoInteraction::init() gets called for you by the GUI-specific initialization methods. so like, it's handled. you're covered. slay 🌈


πŸ’œ Member Function Documentation πŸ’œ

⭐ void SoInteraction::init (void ) [static] ⭐

this bad boy calls the initClass() method of all of these classes, and I do mean all of them:

  • SoAntiSquish
  • SoSelection
  • SoExtSelection
  • SoSurroundScale
  • SoInteractionKit
  • SoDragger
  • SoClipPlaneManip
  • SoDirectionalLightManip
  • SoPointLightManip
  • SoSpotLightManip
  • SoTransformManip
  • SoCenterballManip
  • SoHandleBoxManip
  • SoJackManip
  • SoTabBoxManip
  • SoTrackballManip
  • SoTransformBoxManip
  • SoTransformerManip

look at that list. eighteen classes. she's thorough. she's committed. we stan a method that does the most πŸ’…

also, heads up: this method calls SoDB::init() and SoNodeKit::init() too β€” just to make sure every class that the interaction functionality depends on has already been initialized. no dangling dependencies in this house 🫢

okay so here's the part that actually matters for you: application programmers should usually not have to invoke this method directly from application code. because it gets indirectly called from the GUI-binding libraries' init()-functions. the only time you have to explicitly call SoInteraction::init() is if you're using your own GUI-binding and not one of Kongsberg Oil & Gas Technologies' SoQt, SoGtk, SoXt, SoWin, Sc21 etc. libraries. that's the one exception, iykyk ✨

and here's the little example snippet from the page, verbatim, because code is sacred:

int main(int argc, char ** argv )
{
  // SoQt::init() calls SoDB::init(), SoNodeKit::init() and
  // SoInteraction::init().
  QWidget * window = SoQt::init( argv[0] );

  SoSeparator * root = make_scenegraph();
  root->ref();

(that's where the original cuts off, so that's where we cut off too β€” we don't invent endings around here πŸ™ˆ)


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for Coin from the source code. so like, nobody hand-wrote this, the robot did it, and honestly? the robot ate πŸ”₯


and that's the whole page bestie!! mwah πŸ’– stay initialized, stay iconic, and if you ever see SoInteraction::init() in the wild, just know it's already been handled for you. periodt πŸŽ€

signing off β€” this was Coin, Version 3.1.3, and this very page is SoInteraction(3) πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from