'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SoNodekitCatalog(3IV) .SH NAME SoNodekitCatalog \(em nodekit catalog class .SH INHERITS FROM SoNodekitCatalog .SH SYNOPSIS .ps -1 \*(Cr#include .sp \*(Cr#define SO_CATALOG_NAME_NOT_FOUND -1 .br \*(Cr#define SO_CATALOG_THIS_PART_NUM 0 .sp .in 1i \f1Methods from class SoNodekitCatalog: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbinitClass\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetNumEntries\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPartNumber\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetName\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetType\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetType\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetDefaultType\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetDefaultType\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisNullByDefault\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisNullByDefault\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisLeaf\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisLeaf\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentName\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentName\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentPartNumber\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentPartNumber\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingName\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingName\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingPartNumber\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingPartNumber\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisList\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisList\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListContainerType\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListContainerType\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SoTypeList & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListItemTypes\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SoTypeList & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListItemTypes\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisPublic\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisPublic\*(Cr(const SbName &theName) const .sp .SH DESCRIPTION This class describes the parts and structure of a nodekit. Each class of nodekit has one \*(CbSoNodekitCatalog\f1 (a static variable for the class). Internally, the catalog contains one entry for each "part" in the nodekit's \&structure. Users can query the catalog for information about each entry in the catalog. This information can be obtained either by part name (an \*(CbSbName\f1 unique for the part within the catalog) or by part number \&(an index into an array of parts). .sp Note that, although the catalog for a nodekit class may contain many entries, each instance of that class is not initially created with all of these parts intact. Rather, \&each instance of the class has its own parts list which keeps track of which parts the user has created. The nodekit uses the catalog as a guide in creating new nodes as its descendants; the standard \*(CbaddChild()\f1, \*(CbremoveChild()\f1 \&and other \*(CbSoGroup\f1 methods are protected, so that users must create descendants indirectly by asking the nodekit to get and/or set the different "parts" in the catalog. .sp The first entry in any \*(CbSoNodekitCatalog\f1 corresponds to \&the nodekit itself. Its \*(CrpartName\f1 is "this" and its \*(CrpartNumber\f1 is 0. All other parts in the catalog are described relative to "this." .SH METHODS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crstatic void .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbinitClass\*(Cr() .br .in 1i \f1Initializes this object. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetNumEntries\*(Cr() const .br .in 1i \f1Returns number of entries in the catalog. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPartNumber\*(Cr(const SbName &theName) const .br .in 1i \f1Given the name of a part, returns its part number in the catalog. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetName\*(Cr(int thePartNumber) const .br .in 1i \f1Given the part number of a part, returns its name in the catalog. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetType\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetType\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetDefaultType\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetDefaultType\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisNullByDefault\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisNullByDefault\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisLeaf\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisLeaf\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentName\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentName\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentPartNumber\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetParentPartNumber\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingName\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbName & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingName\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingPartNumber\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetRightSiblingPartNumber\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisList\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisList\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListContainerType\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoType .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListContainerType\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SoTypeList & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListItemTypes\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SoTypeList & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetListItemTypes\*(Cr(const SbName &theName) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisPublic\*(Cr(int thePartNumber) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisPublic\*(Cr(const SbName &theName) const .br .in 1i \f1A full set of methods for finding out all parameters in the catalog, given either the part name or the part number. .sp .in 0.5i .SH SEE ALSO \*(CbSoAppearanceKit, SoBaseKit, SoCameraKit, SoLightKit, SoNodeKit, SoNodeKitDetail, SoNodeKitListPart, SoNodeKitPath, SoSceneKit, SoSeparatorKit, SoShapeKit, SoWrapperKit