SOWWWINLINE(3iv)
π¦ SoWWWInline π¦
okay so welcome to SoWWWInline(3IV), bestie π this is the manual page for a node that is literally like "my children are on the internet, go get them" and honestly? iconic.
πΈ NAME πΈ
SoWWWInline β a node that refers to its children through a URL. yes, a URL. the whole vibe is remote children. no cap.
π INHERITS FROM π
SoBase > SoFieldContainer > SoNode > SoWWWInline
so she's a whole descendant of SoBase, through SoFieldContainer and SoNode, down to SoWWWInline herself. royal lineage fr fr π
β¨ SYNOPSIS β¨
first, the include, because you always need the include:
#include <Inventor/nodes/SoWWWInline.h>
then the callback typedef:
typedef void SoWWWInlineFetchURLCB(const SbString &url, void
*userData, SoWWWInline *node)
and then this enum, which is all about when the bounding box gets shown:
enum BboxVisibility {
SoWWWInline::NEVER Do not show bounding box
SoWWWInline::UNTIL_LOADED Show bounding box (if specified) until
data is loaded
SoWWWInline::ALWAYS Show bounding box along with data
}
so, translated for the girlies:
SoWWWInline::NEVERβ do not show the bounding box. not ever. she's hidden. πSoWWWInline::UNTIL_LOADEDβ show the bounding box (if one was specified) until the data is loaded, then it dips βοΈSoWWWInline::ALWAYSβ show the bounding box along with the data, forever, main character energy π
Fields from class SoWWWInline π
SoSFString name
SoSFVec3f bboxCenter
SoSFVec3f bboxSize
SoSFNode alternateRep
Methods from class SoWWWInline π«Ά
SoWWWInline()
static SoType getClassTypeId()
void setFullURLName(const SbString &url)
const SbString & getFullURLName()
SoGroup * copyChildren() const
void requestURLData()
SbBool isURLDataRequested() const
SbBool isURLDataHere() const
void cancelURLDataRequest()
void setChildData(SoNode *urlData)
SoNode * getChildData() const
static void setFetchURLCallBack(SoWWWInlineFetchURLCB *f, void
*userData)
static void setBoundingBoxVisibility(BboxVisibility b)
static BboxVisibility getBoundingBoxVisibility()
static void setBoundingBoxColor(SbColor &c)
static const SbColor & getBoundingBoxColor()
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
π DESCRIPTION π
so here's the tea, bestie: this node refers to its children through a URL (that's a Universal Resource Locator, iykyk). and the plot twist is that the node does not go get the data itself. the application is the one responsible for actually fetching data from the URL for an SoWWWInline node to display. so it's like, the node is pointing at the snack, but your app is the one walking to the fridge. periodt.
π FIELDS π
SoSFString nameβ specifies the URL that the application should fetch as child data for this node (e.g."http://bogus.com/homeWorld.wrl.gz"). yes bestie that example URL is literally in here and I love that for us.SoSFVec3f bboxCenterβ defines the center of the bounding box surrounding the URL child data.SoSFVec3f bboxSizeβ defines the size of the bounding box surrounding the URL child data.SoSFNode alternateRepβ specifies child data that can be used instead of fetching data from the URL. on read, if this field is set and there is no fetch URL callback registered, thealternateRepwill be used as the child data. otherwise, it is the application's responsibility to set the child data (seesetChildData()). so she's the backup plan, the understudy, the one who goes on when the URL doesn't show up π
π₯ METHODS π₯
SoWWWInline()
creates an inline node with default settings. brand new, default settings, fresh out the box β¨
static SoType getClassTypeId()
returns the type identifier for this class.
void setFullURLName(const SbString &url) / const SbString & getFullURLName()
okay so if the name field contains a relative URL (like "foo.wrl" instead of "http://bogus.com/foo.wrl"), the inline cannot resolve the URL reference β it just can't, bestie, it doesn't have the range. this method lets the application tell the anchor what its full URL should be. and getFullURLName() returns the fullURL that was set here, or, if it was not set, it returns the contents of the name field. fallback queen π
SoGroup * copyChildren() const
returns a copy of the hidden children as a Group. the children are set by the application through setChildData().
void requestURLData()
requests that URL data be fetched. this will invoke the application callback to actually fetch the data, and it can be called before the inline does this for itself (see setFetchURLCallBack()). so you can jump the queue, no problem π
SbBool isURLDataRequested() const / SbBool isURLDataHere() const
returns whether URL data has been requested, and whether that data is here β i.e. whether setChildData() has been called. it's giving "did you ask?" and "did it arrive?" π«Ά
void cancelURLDataRequest()
cancels the active URL data fetch request. not me calling it off π
void setChildData(SoNode *urlData) / SoNode * getChildData() const
set/get the child data that the inline should display. the application should set child data after it has fetched data for an inline node. so fetch first, then set. order matters, bestie.
static void setFetchURLCallBack(SoWWWInlineFetchURLCB *f, void *userData)
the application callbacks that get invoked when the inline needs its URL data fetched. this happens:
- the first time the inline is rendered, or
- if it needs to compute a bounding box and the
bboxSizefield is not set, or - when
requestURLData()is called.
three triggers, three reasons to be summoned πΈ
static void setBoundingBoxVisibility(BboxVisibility b) / static BboxVisibility getBoundingBoxVisibility()
this allows the application to specify when bounding boxes are displayed. the bounding box can be rendered along with the children (ALWAYS), only until the child data is loaded (UNTIL_LOADED), or not at all (NEVER). default is UNTIL_LOADED. π
static void setBoundingBoxColor(SbColor &c) / static const SbColor & getBoundingBoxColor()
this allows the application to specify the color of the bounding boxes displayed. customize her. slay.
π ACTION BEHAVIOR π
SoGLRenderActionβ this renders the child data if it has been set by the application. it will render a wireframe bounding box as specified by thebboxCenterandbboxSizefields, and the setting passed tosetBoundingBoxVisibility(). and if no fetch URL callback is set and thealternateRepis notNULL, thealternateRepwill be rendered until child data has been set. so the backup plan gets her moment on screen. we love to see it π
π§ FILE FORMAT/DEFAULTS π§
WWWInline {
name "<Undefined file>"
bboxCenter 0 0 0
bboxSize 0 0 0
alternateRep NULL
}
ngl bestie, defaultnameis literally"<Undefined file>"which is the most ominous placeholder text ever π that's just how it ships though.
π¦ SEE ALSO π¦
SoWWWAnchor, SoFile
and that's the whole page, bestie π this was the SoWWWInline(3IV) manual β and yeah, the footer at the very bottom is just SoWWWInline(3IV)() again, the same as the header, so there's no extra version number or date hiding down there for us. cute of her to keep it mysterious, honestly. go forth and fetch those URLs π«Άβ¨
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms