.TH "SoSelection" 3 "Tue Dec 26 2023 17:59:22" "Version 4.0.2" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoSelection \- The \fBSoSelection\fP class manages a list of selected nodes\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoSeparator\fP\&. .PP Inherited by \fBSoExtSelection\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBPolicy\fP { \fBSINGLE\fP, \fBTOGGLE\fP, \fBSHIFT\fP, \fBDISABLE\fP }" .br .in -1c Public Types inherited from \fBSoSeparator\fP .in +1c .ti -1c .RI "enum \fBCacheEnabled\fP { \fBOFF\fP, \fBON\fP, \fBAUTO\fP }" .br .in -1c Public Types inherited from \fBSoNode\fP .in +1c .ti -1c .RI "enum \fBNodeType\fP { \fBINVENTOR\fP = 0x0000, \fBVRML1\fP = 0x0001, \fBVRML2\fP = 0x0002, \fBINVENTOR_1\fP = 0x0004, \fBINVENTOR_2_0\fP = 0x0008, \fBINVENTOR_2_1\fP = 0x0010, \fBINVENTOR_2_5\fP = 0x0020, \fBINVENTOR_2_6\fP = 0x0040, \fBCOIN_1_0\fP = 0x0080, \fBCOIN_2_0\fP = 0x0100, \fBEXTENSION\fP = 0x0200, \fBCOIN_2_2\fP = 0x0400, \fBCOIN_2_3\fP = 0x0800, \fBCOIN_2_4\fP = 0x1000, \fBINVENTOR_5_0\fP = 0x2000, \fBCOIN_2_5\fP = 0x4000, \fBCOIN_3_0\fP = 0x8000, \fBINVENTOR_6_0\fP = 0x10000, \fBCOIN_4_0\fP = 0x20000 }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBvirtual\fP \fBSoType\fP \fBgetTypeId\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBSoSelection\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBSoSelection\fP (\fBconst\fP int \fBnChildren\fP)" .br .ti -1c .RI "\fBvoid\fP \fBselect\fP (\fBconst\fP \fBSoPath\fP *path)" .br .ti -1c .RI "\fBvoid\fP \fBselect\fP (\fBSoNode\fP *node)" .br .ti -1c .RI "\fBvoid\fP \fBdeselect\fP (\fBconst\fP \fBSoPath\fP *path)" .br .ti -1c .RI "\fBvoid\fP \fBdeselect\fP (\fBconst\fP int \fBwhich\fP)" .br .ti -1c .RI "\fBvoid\fP \fBdeselect\fP (\fBSoNode\fP *node)" .br .ti -1c .RI "\fBvoid\fP \fBtoggle\fP (\fBconst\fP \fBSoPath\fP *path)" .br .ti -1c .RI "\fBvoid\fP \fBtoggle\fP (\fBSoNode\fP *node)" .br .ti -1c .RI "SbBool \fBisSelected\fP (\fBconst\fP \fBSoPath\fP *path) \fBconst\fP" .br .ti -1c .RI "SbBool \fBisSelected\fP (\fBSoNode\fP *node) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBdeselectAll\fP (\fBvoid\fP)" .br .ti -1c .RI "int \fBgetNumSelected\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBconst\fP \fBSoPathList\fP * \fBgetList\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBSoPath\fP * \fBgetPath\fP (\fBconst\fP int index) \fBconst\fP" .br .ti -1c .RI "\fBSoPath\fP * \fBoperator[]\fP (\fBconst\fP int \fBi\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBaddSelectionCallback\fP (SoSelectionPathCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBremoveSelectionCallback\fP (SoSelectionPathCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBaddDeselectionCallback\fP (SoSelectionPathCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBremoveDeselectionCallback\fP (SoSelectionPathCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBaddStartCallback\fP (SoSelectionClassCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBremoveStartCallback\fP (SoSelectionClassCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBaddFinishCallback\fP (SoSelectionClassCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBremoveFinishCallback\fP (SoSelectionClassCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBsetPickFilterCallback\fP (SoSelectionPickCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP, \fBconst\fP SbBool \fBcallOnlyIfSelectable\fP=TRUE)" .br .ti -1c .RI "\fBvoid\fP \fBsetPickMatching\fP (\fBconst\fP SbBool \fBpickMatching\fP)" .br .ti -1c .RI "SbBool \fBisPickMatching\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBgetPickMatching\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBaddChangeCallback\fP (SoSelectionClassCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .ti -1c .RI "\fBvoid\fP \fBremoveChangeCallback\fP (SoSelectionClassCB *f, \fBvoid\fP *\fBuserData\fP=\fBNULL\fP)" .br .in -1c Public Member Functions inherited from \fBSoSeparator\fP .in +1c .ti -1c .RI "\fBSoSeparator\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBSoSeparator\fP (\fBconst\fP int \fBnchildren\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBdoAction\fP (\fBSoAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBGLRender\fP (\fBSoGLRenderAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBGLRenderBelowPath\fP (\fBSoGLRenderAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBGLRenderInPath\fP (\fBSoGLRenderAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBGLRenderOffPath\fP (\fBSoGLRenderAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBcallback\fP (\fBSoCallbackAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBgetBoundingBox\fP (\fBSoGetBoundingBoxAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBgetMatrix\fP (\fBSoGetMatrixAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBrayPick\fP (\fBSoRayPickAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBsearch\fP (\fBSoSearchAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBgetPrimitiveCount\fP (\fBSoGetPrimitiveCountAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBaudioRender\fP (\fBSoAudioRenderAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBnotify\fP (\fBSoNotList\fP *\fBnl\fP)" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBaffectsState\fP (\fBvoid\fP) \fBconst\fP" .br .in -1c Public Member Functions inherited from \fBSoGroup\fP .in +1c .ti -1c .RI "\fBSoGroup\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBSoGroup\fP (int \fBnchildren\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBaddChild\fP (\fBSoNode\fP *node)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBinsertChild\fP (\fBSoNode\fP *\fBchild\fP, int \fBnewchildindex\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBSoNode\fP * \fBgetChild\fP (int index) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP int \fBfindChild\fP (\fBconst\fP \fBSoNode\fP *node) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP int \fBgetNumChildren\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBremoveChild\fP (int \fBchildindex\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBremoveChild\fP (\fBSoNode\fP *\fBchild\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBremoveAllChildren\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBreplaceChild\fP (int index, \fBSoNode\fP *\fBnewchild\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBreplaceChild\fP (\fBSoNode\fP *\fBoldchild\fP, \fBSoNode\fP *\fBnewchild\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBpick\fP (\fBSoPickAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBwrite\fP (\fBSoWriteAction\fP *action)" .br .ti -1c .RI "\fBvirtual\fP \fBSoChildList\fP * \fBgetChildren\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBaddWriteReference\fP (\fBSoOutput\fP *\fBout\fP, SbBool \fBisfromfield\fP=FALSE)" .br .in -1c Public Member Functions inherited from \fBSoNode\fP .in +1c .ti -1c .RI "\fBvoid\fP \fBsetOverride\fP (\fBconst\fP SbBool state)" .br .ti -1c .RI "SbBool \fBisOverride\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBsetNodeType\fP (\fBconst\fP \fBNodeType\fP type)" .br .ti -1c .RI "\fBNodeType\fP \fBgetNodeType\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoNode\fP * \fBcopy\fP (SbBool \fBcopyconnections\fP=FALSE) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBgrabEventsSetup\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBgrabEventsCleanup\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBstartNotify\fP (\fBvoid\fP)" .br .ti -1c .RI "SbUniqueId \fBgetNodeId\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBwriteInstance\fP (\fBSoOutput\fP *\fBout\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBSoNode\fP * \fBaddToCopyDict\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoFieldContainer\fP * \fBcopyThroughConnection\fP (\fBvoid\fP) \fBconst\fP" .br .in -1c Public Member Functions inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "\fBvoid\fP \fBsetToDefaults\fP (\fBvoid\fP)" .br .ti -1c .RI "SbBool \fBhasDefaultValues\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBfieldsAreEqual\fP (\fBconst\fP \fBSoFieldContainer\fP *container) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBcopyFieldValues\fP (\fBconst\fP \fBSoFieldContainer\fP *container, SbBool \fBcopyconnections\fP=FALSE)" .br .ti -1c .RI "SbBool \fBset\fP (\fBconst\fP char *\fBconst\fP fielddata)" .br .ti -1c .RI "\fBvoid\fP \fBget\fP (\fBSbString\fP &fielddata)" .br .ti -1c .RI "\fBvirtual\fP int \fBgetFields\fP (\fBSoFieldList\fP &\fBl\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP int \fBgetAllFields\fP (\fBSoFieldList\fP &\fBl\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoField\fP * \fBgetField\fP (\fBconst\fP \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoField\fP * \fBgetEventIn\fP (\fBconst\fP \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoField\fP * \fBgetEventOut\fP (\fBconst\fP \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "SbBool \fBgetFieldName\fP (\fBconst\fP \fBSoField\fP *\fBconst\fP \fBfield\fP, \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "SbBool \fBenableNotify\fP (\fBconst\fP SbBool \fBflag\fP)" .br .ti -1c .RI "SbBool \fBisNotifyEnabled\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBset\fP (\fBconst\fP char *fielddata, \fBSoInput\fP *input)" .br .ti -1c .RI "\fBvoid\fP \fBget\fP (\fBSbString\fP &fielddata, \fBSoOutput\fP *\fBout\fP)" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBvalidateNewFieldValue\fP (\fBSoField\fP *\fBfield\fP, \fBvoid\fP *\fBnewval\fP)" .br .ti -1c .RI "SbBool \fBgetIsBuiltIn\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBgetFieldsMemorySize\fP (size_t &\fBmanaged\fP, size_t &\fBunmanaged\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBsetUserData\fP (\fBvoid\fP *userdata) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP * \fBgetUserData\fP (\fBvoid\fP) \fBconst\fP" .br .in -1c Public Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBvoid\fP \fBref\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBunref\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBunrefNoDelete\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "int32_t \fBgetRefCount\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBtouch\fP (\fBvoid\fP)" .br .ti -1c .RI "SbBool \fBisOfType\fP (\fBSoType\fP type) \fBconst\fP" .br .RI "Returns \fCTRUE\fP if the type of this object is either of the same type or inherited from \fItype\fP\&. " .ti -1c .RI "\fBvirtual\fP \fBSbName\fP \fBgetName\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBsetName\fP (\fBconst\fP \fBSbName\fP &\fBnewname\fP)" .br .ti -1c .RI "\fBvoid\fP \fBaddAuditor\fP (\fBvoid\fP *\fBconst\fP \fBauditor\fP, \fBconst\fP \fBSoNotRec::Type\fP type)" .br .ti -1c .RI "\fBvoid\fP \fBremoveAuditor\fP (\fBvoid\fP *\fBconst\fP \fBauditor\fP, \fBconst\fP \fBSoNotRec::Type\fP type)" .br .ti -1c .RI "\fBconst\fP \fBSoAuditorList\fP & \fBgetAuditors\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBshouldWrite\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvoid\fP \fBassertAlive\fP (\fBvoid\fP) \fBconst\fP" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .in -1c Static Public Member Functions inherited from \fBSoSeparator\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsetNumRenderCaches\fP (\fBconst\fP int \fBhowmany\fP)" .br .ti -1c .RI "\fBstatic\fP int \fBgetNumRenderCaches\fP (\fBvoid\fP)" .br .in -1c Static Public Member Functions inherited from \fBSoGroup\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .in -1c Static Public Member Functions inherited from \fBSoNode\fP .in +1c .ti -1c .RI "\fBstatic\fP uint32_t \fBgetCompatibilityTypes\fP (\fBconst\fP \fBSoType\fP &nodetype)" .br .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBSoNode\fP * \fBgetByName\fP (\fBconst\fP \fBSbName\fP &name)" .br .ti -1c .RI "\fBstatic\fP int \fBgetByName\fP (\fBconst\fP \fBSbName\fP &name, \fBSoNodeList\fP &\fBl\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClasses\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP SbUniqueId \fBgetNextNodeId\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP int \fBgetActionMethodIndex\fP (\fBconst\fP \fBSoType\fP type)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBgetBoundingBoxS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBGLRenderS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBcallbackS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBgetMatrixS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBhandleEventS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBpickS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBrayPickS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsearchS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBwriteS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBaudioRenderS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBgetPrimitiveCountS\fP (\fBSoAction\fP *action, \fBSoNode\fP *node)" .br .in -1c Static Public Member Functions inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .RI "This static method returns the \fBSoType\fP object associated with objects of this class\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBcleanupClass\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitCopyDict\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBaddCopy\fP (\fBconst\fP \fBSoFieldContainer\fP *\fBorig\fP, \fBconst\fP \fBSoFieldContainer\fP *copy)" .br .ti -1c .RI "\fBstatic\fP \fBSoFieldContainer\fP * \fBcheckCopy\fP (\fBconst\fP \fBSoFieldContainer\fP *\fBorig\fP)" .br .ti -1c .RI "\fBstatic\fP \fBSoFieldContainer\fP * \fBfindCopy\fP (\fBconst\fP \fBSoFieldContainer\fP *\fBorig\fP, \fBconst\fP SbBool \fBcopyconnections\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBcopyDone\fP (\fBvoid\fP)" .br .in -1c Static Public Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .RI "This static method returns the \fBSoType\fP object associated with objects of this class\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBaddName\fP (\fBSoBase\fP *\fBconst\fP base, \fBconst\fP char *\fBconst\fP name)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBremoveName\fP (\fBSoBase\fP *\fBconst\fP base, \fBconst\fP char *\fBconst\fP name)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBincrementCurrentWriteCounter\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBdecrementCurrentWriteCounter\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBSoBase\fP * \fBgetNamedBase\fP (\fBconst\fP \fBSbName\fP &name, \fBSoType\fP type)" .br .ti -1c .RI "\fBstatic\fP int \fBgetNamedBases\fP (\fBconst\fP \fBSbName\fP &name, \fBSoBaseList\fP &\fBbaselist\fP, \fBSoType\fP type)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBread\fP (\fBSoInput\fP *input, \fBSoBase\fP *&base, \fBSoType\fP \fBexpectedtype\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsetInstancePrefix\fP (\fBconst\fP \fBSbString\fP &c)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsetTraceRefs\fP (SbBool \fBtrace\fP)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBgetTraceRefs\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBconnectRoute\fP (\fBSoInput\fP *input, \fBconst\fP \fBSbName\fP &\fBfromnodename\fP, \fBconst\fP \fBSbName\fP &\fBfromfieldname\fP, \fBconst\fP \fBSbName\fP &\fBtonodename\fP, \fBconst\fP \fBSbName\fP &\fBtofieldname\fP)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBreadRoute\fP (\fBSoInput\fP *input)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoSFEnum\fP \fBpolicy\fP" .br .in -1c Public Attributes inherited from \fBSoSeparator\fP .in +1c .ti -1c .RI "\fBSoSFEnum\fP \fBrenderCaching\fP" .br .ti -1c .RI "\fBSoSFEnum\fP \fBboundingBoxCaching\fP" .br .ti -1c .RI "\fBSoSFEnum\fP \fBrenderCulling\fP" .br .ti -1c .RI "\fBSoSFEnum\fP \fBpickCulling\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBvirtual\fP \fBconst\fP \fBSoFieldData\fP * \fBgetFieldData\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fB~SoSelection\fP ()" .br .ti -1c .RI "\fBvoid\fP \fBinvokeSelectionPolicy\fP (\fBSoPath\fP *path, SbBool \fBshiftDown\fP)" .br .ti -1c .RI "\fBvoid\fP \fBperformSingleSelection\fP (\fBSoPath\fP *path)" .br .ti -1c .RI "\fBvoid\fP \fBperformToggleSelection\fP (\fBSoPath\fP *path)" .br .ti -1c .RI "\fBSoPath\fP * \fBcopyFromThis\fP (\fBconst\fP \fBSoPath\fP *path) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBaddPath\fP (\fBSoPath\fP *path)" .br .ti -1c .RI "\fBvoid\fP \fBremovePath\fP (\fBconst\fP int \fBwhich\fP)" .br .ti -1c .RI "int \fBfindPath\fP (\fBconst\fP \fBSoPath\fP *path) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBhandleEvent\fP (\fBSoHandleEventAction\fP *action)" .br .in -1c Protected Member Functions inherited from \fBSoSeparator\fP .in +1c .ti -1c .RI "\fBvirtual\fP \fB~SoSeparator\fP ()" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBcullTest\fP (\fBSoState\fP *state)" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBcullTest\fP (\fBSoGLRenderAction\fP *action, int &\fBcullresults\fP)" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBreadInstance\fP (\fBSoInput\fP *\fBin\fP, \fBunsigned\fP short flags)" .br .in -1c Protected Member Functions inherited from \fBSoGroup\fP .in +1c .ti -1c .RI "\fBvirtual\fP \fB~SoGroup\fP ()" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBreadChildren\fP (\fBSoInput\fP *\fBin\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBcopyContents\fP (\fBconst\fP \fBSoFieldContainer\fP *from, SbBool \fBcopyconnections\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBSoNotRec\fP \fBcreateNotRec\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvoid\fP \fBsetOperation\fP (\fBconst\fP \fBSoNotRec::OperationType\fP \fBopType\fP=SoNotRec::UNSPECIFIED, \fBconst\fP \fBSoNode\fP *\fBcc\fP=\fBNULL\fP, \fBconst\fP \fBSoNode\fP *\fBpc\fP=\fBNULL\fP, \fBconst\fP int \fBci\fP=\-1)" .br .in -1c Protected Member Functions inherited from \fBSoNode\fP .in +1c .ti -1c .RI "\fBSoNode\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fB~SoNode\fP ()" .br .in -1c Protected Member Functions inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "\fBSoFieldContainer\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fB~SoFieldContainer\fP ()" .br .in -1c Protected Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBSoBase\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fB~SoBase\fP ()" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBdestroy\fP (\fBvoid\fP)" .br .ti -1c .RI "SbBool \fBhasMultipleWriteRefs\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBwriteHeader\fP (\fBSoOutput\fP *\fBout\fP, SbBool \fBisgroup\fP, SbBool \fBisengine\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBwriteFooter\fP (\fBSoOutput\fP *\fBout\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBconst\fP char * \fBgetFileFormatName\fP (\fBvoid\fP) \fBconst\fP" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (\fBvoid\fP)" .br .in -1c Static Protected Member Functions inherited from \fBSoSeparator\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (\fBvoid\fP)" .br .in -1c Static Protected Member Functions inherited from \fBSoGroup\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (\fBvoid\fP)" .br .in -1c Static Protected Member Functions inherited from \fBSoNode\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsetNextActionMethodIndex\fP (int index)" .br .ti -1c .RI "\fBstatic\fP int \fBgetNextActionMethodIndex\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBincNextActionMethodIndex\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsetCompatibilityTypes\fP (\fBconst\fP \fBSoType\fP &nodetype, \fBconst\fP uint32_t \fBbitmask\fP)" .br .in -1c Static Protected Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBstatic\fP uint32_t \fBgetCurrentWriteCounter\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBstaticDataLock\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBstaticDataUnlock\fP (\fBvoid\fP)" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBSoPathList\fP \fBselectionList\fP" .br .ti -1c .RI "\fBSoCallbackList\fP * \fBselCBList\fP" .br .ti -1c .RI "\fBSoCallbackList\fP * \fBdeselCBList\fP" .br .ti -1c .RI "\fBSoCallbackList\fP * \fBstartCBList\fP" .br .ti -1c .RI "\fBSoCallbackList\fP * \fBfinishCBList\fP" .br .ti -1c .RI "SoSelectionPickCB * \fBpickCBFunc\fP" .br .ti -1c .RI "\fBvoid\fP * \fBpickCBData\fP" .br .ti -1c .RI "SbBool \fBcallPickCBOnlyIfSelectable\fP" .br .ti -1c .RI "\fBSoCallbackList\fP * \fBchangeCBList\fP" .br .ti -1c .RI "\fBSoPath\fP * \fBmouseDownPickPath\fP" .br .ti -1c .RI "SbBool \fBpickMatching\fP" .br .in -1c Protected Attributes inherited from \fBSoGroup\fP .in +1c .ti -1c .RI "\fBSoChildList\fP * \fBchildren\fP" .br .in -1c Protected Attributes inherited from \fBSoNode\fP .in +1c .ti -1c .RI "SbUniqueId \fBuniqueId\fP" .br .in -1c Protected Attributes inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "SbBool \fBisBuiltIn\fP" .br .in -1c .SS "Additional Inherited Members" Protected Types inherited from \fBSoBase\fP .in +1c .ti -1c .RI "enum \fBBaseFlags\fP { \fBIS_ENGINE\fP = 0x01, \fBIS_GROUP\fP = 0x02 }" .br .in -1c Static Protected Attributes inherited from \fBSoNode\fP .in +1c .ti -1c .RI "\fBstatic\fP SbUniqueId \fBnextUniqueId\fP = 1" .br .ti -1c .RI "\fBstatic\fP int \fBnextActionMethodIndex\fP = 0" .br .in -1c .SH "Detailed Description" .PP The \fBSoSelection\fP class manages a list of selected nodes\&. Inserting an \fBSoSelection\fP node in your scene graph enables you to let the user 'pick' with the left mouse button to select/deselect objects below the \fBSoSelection\fP node\&. .PP Using an \fBSoBoxHighlightRenderAction\fP or an \fBSoLineHighlightRenderAction\fP to render scene graphs containing \fBSoSelection\fP nodes provides a convenient way of providing visual feedback about the selections to the application user\&. .PP Beware that one common faulty assumption which is made about the node is that the scene will automatically be re-rendered whenever the user is picking objects\&. This is not the case, the application programmer must himself schedule a redraw\&. A straightforward way to accomplish this is to \fBSoNode::touch()\fP the \fBSoSelection\fP node in the selection / deselection callback\&. .PP A 'skeleton' for basic use of \fBSoSelection\fP nodes is given below: .PP .PP .nf extern SoSeparator * make_scenegraph( void ); static SoSelection * selection = NULL; // Callback function triggered for selection / deselection\&. void made_selection( void * userdata, SoPath * path ) { (void)fprintf( stdout, "%sselected %s\\n", userdata == (void *)1L ? "" : "de", path\->getTail()\->getTypeId()\&.getName()\&.getString() ); selection\->touch(); // to redraw } // ************************************************************************* // Print a quick instructions notice on stdout\&. void show_instructions( void ) { (void)fprintf( stdout, "\\nThis example program demonstrates the use of the SoSelection node type\&.\\n" ); (void)fprintf( stdout, "\\nQuick instructions:\\n\\n" ); (void)fprintf( stdout, " * pick with left mouse button\\n" ); (void)fprintf( stdout, " * hold SHIFT to select multiple objects\\n" ); (void)fprintf( stdout, " * hit ESC to toggle back and forth to view mode\\n" ); (void)fprintf( stdout, "\\n" ); } // ************************************************************************* int main( int argc, char ** argv ) { QWidget * window = SoQt::init( argv[0] ); show_instructions(); selection = new SoSelection; selection\->policy = SoSelection::SHIFT; selection\->ref(); selection\->addChild( make_scenegraph() ); selection\->addSelectionCallback( made_selection, (void *)1L ); selection\->addDeselectionCallback( made_selection, (void *)0L ); SoQtExaminerViewer * examinerviewer = new SoQtExaminerViewer( window ); examinerviewer\->setSceneGraph( selection ); examinerviewer\->setGLRenderAction( new SoBoxHighlightRenderAction ); examinerviewer\->setViewing( FALSE ); examinerviewer\->show(); SoQt::show( window ); SoQt::mainLoop(); delete examinerviewer; selection\->unref(); return 0; } .fi .PP .PP This node is not initialized in \fBSoDB::init()\fP, since it is part of the interaction kit 'add-on'\&. Before using this node, you should therefore call \fBSoInteraction::init()\fP\&. If you're using one of the standard GUI-toolkits (SoXt / SoQt / SoWin) \fBSoInteraction::init()\fP will be called for you from the So[Xt|Qt|Win]::init() method and you don't have to worry about it\&. .PP With regard to using multiple \fBSoSelection\fP nodes at the same time in the same scene graph: this is possible, but it is not straightforward\&. The standard viewers provided by SoQt, SoWin, et al\&., will only snoop on one \fBSoSelection\fP node (part of the legacy API from SGI's InventorXt), so selection changes on the others don't trigger redraws\&. You don't necessarily see what's happening in other words\&. You'll have to hook up manually and trigger redraws yourself\&. .PP Also be aware that when having multiple \fBSoSelection\fP nodes in the scene graph active at the same time, the \fBSoHandleEventAction\fP traversals that you intend for selection-change on one \fBSoSelection\fP node will also affect all the other \fBSoSelection\fP nodes in the scene -- usually deselecting everything below them since you will be clicking outside the selectable objects\&. You'll therefore also have to manually override that behaviour, if you want selection change on one \fBSoSelection\fP node to not affect the others\&. .PP \fBFILE FORMAT/DEFAULTS:\fP .PP .nf Selection { renderCaching AUTO boundingBoxCaching AUTO renderCulling AUTO pickCulling AUTO policy SHIFT } .fi .PP .SH "Member Enumeration Documentation" .PP .SS "\fBenum\fP \fBSoSelection::Policy\fP" Enum for different pick policies\&. .PP \fBEnumerator\fP .in +1c .TP \fB\fISINGLE \fP\fP Only one object can be selected at any time\&. When the user picks a new object, the previous selection will be unselected\&. If the user picks on nothing, the current selection will be unselected\&. .PP Note that if a new selection matches one already present in the selection list, neither a deselect nor a select notification callback will be made about that selection path\&. .TP \fB\fITOGGLE \fP\fP Picking an object toggles its selection state\&. .TP \fB\fISHIFT \fP\fP Same as SINGLE, but when shift key is pressed the selection policy will be changed to TOGGLE\&. .TP \fB\fIDISABLE \fP\fP Disables selection handling\&. .SH "Constructor & Destructor Documentation" .PP .SS "SoSelection::SoSelection (\fBvoid\fP)" Default constructor\&. .SS "SoSelection::SoSelection (\fBconst\fP int nChildren)" Constructor\&. .PP The argument should be the approximate number of children which is expected to be inserted below this node\&. The number need not be exact, as it is only used as a hint for better memory resource allocation\&. .SS "SoSelection::~SoSelection ()\fC [protected]\fP, \fC [virtual]\fP" Destructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoSelection::getClassTypeId (\fBvoid\fP)\fC [static]\fP" This static method returns the \fBSoType\fP object associated with objects of this class\&. .br .SS "\fBSoType\fP SoSelection::getTypeId (\fBvoid\fP) const\fC [virtual]\fP" Returns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for runtime type checking and 'downward' casting\&. .br .PP Reimplemented from \fBSoSeparator\fP\&. .PP Reimplemented in \fBSoExtSelection\fP\&. .SS "\fBconst\fP \fBSoFieldData\fP ** SoSelection::getFieldDataPtr (\fBvoid\fP)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br Returns the \fBSoFieldData\fP class which holds information about fields in this node\&. .br .SS "\fBconst\fP \fBSoFieldData\fP * SoSelection::getFieldData (\fBvoid\fP) const\fC [protected]\fP, \fC [virtual]\fP" Returns a pointer to the class-wide field data storage object for this instance\&. If no fields are present, returns \fCNULL\fP\&. .PP Reimplemented from \fBSoSeparator\fP\&. .PP Reimplemented in \fBSoExtSelection\fP\&. .SS "\fBvoid\fP SoSelection::select (\fBconst\fP \fBSoPath\fP * path)" Adds \fIpath\fP to the list of selected objects\&. .SS "\fBvoid\fP SoSelection::select (\fBSoNode\fP * node)" Adds \fInode\fP to the list of selected objects\&. The scene graph below the selection node will be searched, and the path to \fInode\fP will be added if found\&. .SS "\fBvoid\fP SoSelection::deselect (\fBconst\fP \fBSoPath\fP * path)" Remove \fIpath\fP from the list of selected objects\&. .SS "\fBvoid\fP SoSelection::deselect (\fBconst\fP int which)" Remove objects \fIwhich\fP from the list of selected objects\&. .SS "\fBvoid\fP SoSelection::deselect (\fBSoNode\fP * node)" Remove \fInode\fP from the list of selected objects\&. The scene graph below the selection node will be searched, and the path to \fInode\fP will be removed if found\&. .SS "\fBvoid\fP SoSelection::toggle (\fBconst\fP \fBSoPath\fP * path)" If \fIpath\fP is not already selected, add \fIpath\fP to the list of selected objects\&. Otherwise remove \fIpath\fP from the list of selected objects\&. .SS "\fBvoid\fP SoSelection::toggle (\fBSoNode\fP * node)" If \fInode\fP is not already selected, add \fIpath\fP to the list of selected objects\&. Otherwise remove \fInode\fP from the list of selected objects\&. .SS "SbBool SoSelection::isSelected (\fBconst\fP \fBSoPath\fP * path) const" Return \fITRUE\fP if \fIpath\fP is in the list of selected objects\&. .SS "SbBool SoSelection::isSelected (\fBSoNode\fP * node) const" Return \fITRUE\fP if the path to \fInode\fP is in the list of selected objects\&. .SS "\fBvoid\fP SoSelection::deselectAll (\fBvoid\fP)" Clears the selection list\&. .SS "int SoSelection::getNumSelected (\fBvoid\fP) const" Returns the number of selected objects\&. .SS "\fBconst\fP \fBSoPathList\fP * SoSelection::getList (\fBvoid\fP) const" Returns the list of selected objects\&. .SS "\fBSoPath\fP * SoSelection::getPath (\fBconst\fP int index) const" Returns the \fIindex'th\fP selected objects\&. .SS "\fBSoPath\fP * SoSelection::operator[] (\fBconst\fP int i) const" Operator for accessing selected objects\&. .SS "\fBvoid\fP SoSelection::addSelectionCallback (SoSelectionPathCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Adds a callback which will be called every time an object is selected\&. .PP \fBSee also\fP .RS 4 \fBremoveSelectionCallback()\fP .RE .PP .SS "\fBvoid\fP SoSelection::removeSelectionCallback (SoSelectionPathCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Removes one of the selection callbacks\&. .PP \fBSee also\fP .RS 4 \fBaddSelectionCallback()\fP .RE .PP .SS "\fBvoid\fP SoSelection::addDeselectionCallback (SoSelectionPathCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Adds a callback which will be called every time an object is deselected\&. .PP \fBSee also\fP .RS 4 \fBremoveDeselectionCallback()\fP .RE .PP .SS "\fBvoid\fP SoSelection::removeDeselectionCallback (SoSelectionPathCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Removes one of the deselection callbacks\&. .PP \fBSee also\fP .RS 4 addDeselctionCallback() .RE .PP .SS "\fBvoid\fP SoSelection::addStartCallback (SoSelectionClassCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Adds a callback which will be invoked when the user starts an interactive change to the list of selected objects\&. .PP This callback is useful for storing the old selection list for undo/redo functionality\&. .PP \fBSee also\fP .RS 4 \fBaddFinishCallback()\fP .RE .PP .SS "\fBvoid\fP SoSelection::removeStartCallback (SoSelectionClassCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Removes \fIf\fP from the list of start callbacks\&. .PP \fBSee also\fP .RS 4 \fBaddStartCallback()\fP .RE .PP .SS "\fBvoid\fP SoSelection::addFinishCallback (SoSelectionClassCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Adds a callback which will be invoked when the user has finished an interactive change to the list of selected objects\&. .PP \fBSee also\fP .RS 4 \fBaddStartCallback()\fP .RE .PP .SS "\fBvoid\fP SoSelection::removeFinishCallback (SoSelectionClassCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" Removes \fIf\fP from the list of finish callbacks\&. .PP \fBSee also\fP .RS 4 \fBaddFinishCallback()\fP .RE .PP .SS "\fBvoid\fP SoSelection::setPickFilterCallback (SoSelectionPickCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP, \fBconst\fP SbBool callOnlyIfSelectable = \fCTRUE\fP)" Sets the pick filter callback\&. This callback will be called when a path is about to be added to or removed from the list of selected objects\&. The callback function should return a replacement path that should be used instead of the picked path\&. The returned path will be ref'ed, copied, and then unref'ed again by the \fBSoSelection\fP node\&. .PP If no callback is set (the default), the picked path will be used for selecting/deselecting\&. .PP Possible return values from the callback: .PP .PD 0 .IP "\(bu" 2 NULL: simulate that nothing was picked\&. This will clear the selection for the SINGLE policy\&. The handle event action will be halted\&. .IP "\(bu" 2 A path: the path will be selected/deselected\&. The handle event action will be halted\&. .IP "\(bu" 2 A path containing only the selection node: as NULL, but action will not be halted\&. .IP "\(bu" 2 An empty path or a path not containing the selection node: the pick will be ignored\&. .PP .PP if \fIcallOnlyIfSelectable\fP is \fCTRUE\fP, the callback will only be called if the selection node is in the picked path\&. .br .SS "\fBvoid\fP SoSelection::setPickMatching (\fBconst\fP SbBool pickmatchflag)" When \fIpickmatchflag\fP is \fCTRUE\fP (the default), the mouse button release pick must match the mouse button press pick before object is selected/deselected\&. .PP This flag should normally not be of interest to application programmers\&. .SS "SbBool SoSelection::isPickMatching (\fBvoid\fP) const" Returns \fITRUE\fP if pick matching is enabled\&. .PP \fBSee also\fP .RS 4 \fBsetPickMatching()\fP .RE .PP .SS "SbBool SoSelection::getPickMatching (\fBvoid\fP) const" Returns \fITRUE\fP if pick matching is enabled\&. .PP \fBSee also\fP .RS 4 \fBsetPickMatching()\fP .RE .PP .SS "\fBvoid\fP SoSelection::addChangeCallback (SoSelectionClassCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br \&. Used by render area to receive notification when the selection list changes\&. .SS "\fBvoid\fP SoSelection::removeChangeCallback (SoSelectionClassCB * f, \fBvoid\fP * userData = \fC\fBNULL\fP\fP)" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br Used by render area to receive notification when the selection list changes\&. .SS "\fBvoid\fP SoSelection::invokeSelectionPolicy (\fBSoPath\fP * path, SbBool shiftdown)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBvoid\fP SoSelection::performSingleSelection (\fBSoPath\fP * path)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBvoid\fP SoSelection::performToggleSelection (\fBSoPath\fP * path)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBSoPath\fP * SoSelection::copyFromThis (\fBconst\fP \fBSoPath\fP * path) const\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBvoid\fP SoSelection::addPath (\fBSoPath\fP * path)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBvoid\fP SoSelection::removePath (\fBconst\fP int which)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "int SoSelection::findPath (\fBconst\fP \fBSoPath\fP * path) const\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBvoid\fP SoSelection::handleEvent (\fBSoHandleEventAction\fP * action)\fC [protected]\fP, \fC [virtual]\fP" Action method for \fBSoHandleEventAction\fP\&. .PP Inspects the event data from \fIaction\fP, and processes it if it is something which this node should react to\&. .PP Nodes influencing relevant state variables for how event handling is done also override this method\&. .PP Reimplemented from \fBSoSeparator\fP\&. .PP Reimplemented in \fBSoExtSelection\fP\&. .SH "Member Data Documentation" .PP .SS "\fBSoSFEnum\fP SoSelection::policy" Field for selection policy\&. Default value is SHIFT\&. .SS "\fBSoPathList\fP SoSelection::selectionList\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBSoCallbackList\fP * SoSelection::selCBList\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBSoCallbackList\fP * SoSelection::deselCBList\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBSoCallbackList\fP * SoSelection::startCBList\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBSoCallbackList\fP * SoSelection::finishCBList\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "SoSelectionPickCB * SoSelection::pickCBFunc\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBvoid\fP * SoSelection::pickCBData\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "SbBool SoSelection::callPickCBOnlyIfSelectable\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBSoCallbackList\fP * SoSelection::changeCBList\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "\fBSoPath\fP * SoSelection::mouseDownPickPath\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SS "SbBool SoSelection::pickMatching\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.