SONODEKITLISTPART(3iv)
π SoNodeKitListPart β the manual page, but make it make sense π
okay bestie, gather round, because today we're talking about SoNodeKitListPart(3IV) β yes, section 3IV of the manual, she's a real one. This is the group node that's a little bit extra: it's got opinions about who gets to be its child. π
β¨ NAME β¨
SoNodeKitListPart β group node with restricted children
like a group node but with a bouncer at the door πͺπ
πΈ INHERITS FROM πΈ
SoBase > SoFieldContainer > SoNode > SoNodeKitListPart
so she's got the whole family tree behind her, no cap π«Ά
π¦ SYNOPSIS π¦
#include <Inventor/nodekits/SoNodeKitListPart.h>
Methods from class SoNodeKitListPart:
SoNodeKitListPart()
SoType getContainerType() const
void setContainerType(SoType newContainerType )
const SoTypeList & getChildTypes() const
void addChildType(SoType typeToAdd )
SbBool isTypePermitted(SoType typeToCheck ) const
SbBool isChildPermitted(const SoNode *child ) const
void containerSet(const char *fieldDataString )
void lockTypes()
SbBool isTypeLocked() const
void addChild(SoNode *child )
void insertChild(SoNode *child, int childIndex )
SoNode * getChild(int index ) const
int findChild(SoNode *child) const
int getNumChildren() const
void removeChild(int index)
void removeChild(SoNode *child)
void replaceChild(int index, SoNode *newChild)
void replaceChild(SoNode *oldChild, SoNode *newChild)
static SoType getClassTypeId()
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 π
okay so this node class is literally SoGroup's cooler cousin, except she has rules. She specifies restrictions on the type of children she allows. The nodekits use her to restrict child types inside list parts β go read the reference page for SoBaseKit if you want the full lore, iykyk π
By default? Any kind of child may be added. Everybody welcome, the party's open π But the methods of this class let you restrict the type of allowable children, and also let you lock down the types so that this type list may no longer be altered. Once the velvet rope goes up, it stays up.
Inside the SoNodeKitListPart there's a container node, and that container in turn contains the children. The container node is a hidden child (sneaky, mysterious, main character energy π), and the type of node used may be set with setContainerType(). In this way you can make the nodekitlist behave like a group, a separator, or any other subclass of group. The container is not accessible, and that's on purpose β it's so that the nodekitlist may retain control over what kinds of children are added. Control freak? Maybe. Iconic? Absolutely. β¨
π METHODS π
SoNodeKitListPart()
- Constructor. π£
SoType getContainerType() const
void setContainerType(SoType newContainerType )
- Gets and sets the type of node used as the container. it's giving "choose your own container" π«
const SoTypeList & getChildTypes() const
- Returns the permitted child node types. By default, any type of node is permitted, so the list contains one entry of type
SoNode. very inclusive of her π
void addChildType(SoType typeToAdd )
- Permits the node type
typeToAddas a child. The first time theaddChildType()method is called, the default ofSoNodeis overridden and only the newtypeToAddis permitted. In subsequent calls toaddChildType(), thetypeToAddis added to the existing types. so like, first one resets the guest list, after that you're just adding names βοΈ
SbBool isTypePermitted(SoType typeToCheck ) const
- Returns whether a node of type
typeToCheckmay be added as a child. vibe check at the door πͺ
SbBool isChildPermitted(const SoNode *child ) const
- Returns whether the node
childmay be added to this list. This will returnTRUEif the type ofchildis one of the permissible child types. (capital-TTRUE, bestie, she's old school like that)
void containerSet(const char *fieldDataString )
- Sends a string to the
set()method on the container node. This is how you can set the value of a switch node if the container node is anSoSwitch, for example. passing notes directly to the container π¨
void lockTypes()
- This function permanently locks the permitted child types and the container type permanently. Calls to
setContainerType()andaddChildType()will have no effect after this function is called. π¨ like, permanently permanently. no takebacks, no undos, periodt.
SbBool isTypeLocked() const
- Returns whether the permitted child types and the container type are locked (i.e. cannot be changed). See
lockTypes(). π
void addChild(SoNode *child )
void insertChild(SoNode *child, int childIndex )
SoNode * getChild(int index ) const
int findChild(SoNode *child) const
int getNumChildren() const
void removeChild(int index)
void removeChild(SoNode *child)
void replaceChild(int index, SoNode *newChild)
void replaceChild(SoNode *oldChild, SoNode *newChild)
- These are the functions used to edit the children. They parallel those of
SoGroup, except that they always check the child types against those which are permissible. SeeSoGroupfor details. same moves asSoGroup, but with a clipboard and a checklist πβ¨
static SoType getClassTypeId()
- Returns type identifier for this class. the ID card πͺͺ
π FILE FORMAT/DEFAULTS π
NodeKitListPart {
containerTypeName "Group"
childTypeNames ""
containerNode NULL
}
look at those defaults. "Group", empty child type names, and a whole NULL container. starting fresh, no baggage π
β SEE ALSO β
SoBaseKit, SoNodeKit, SoNodeKitDetail, SoNodeKitPath, SoNodekitCatalog, SoSceneKit, SoSeparatorKit, SoShapeKit, SoWrapperKit
the whole friend group, go say hi ππ«Ά
okay that's the whole page, no skips, no summarising, every flag and signature intact π― and just so you know where this came from: this was SoNodeKitListPart(3IV)() β that's the source/version and the date stamp, straight off the bottom of the page. go forth and restrict some children, bestie, you got this πππ¦
π¦ 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