.TH "SoSelectOne" 3 "Thu May 29 2014" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoSelectOne \- .PP The \fBSoSelectOne\fP class is used to select one value from a set of values\&. .PP The output field will be the index'th value of the input multivalue field\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoEngine\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fBSoType\fP \fBgetTypeId\fP (void) const " .br .RI "\fIReturns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. \fP" .ti -1c .RI "virtual const \fBSoFieldData\fP * \fBgetFieldData\fP (void) const " .br .ti -1c .RI "virtual const \fBSoEngineOutputData\fP * \fBgetOutputData\fP (void) const " .br .ti -1c .RI "\fBSoSelectOne\fP (\fBSoType\fP inputtype)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .ti -1c .RI "static void * \fBcreateInstance\fP (void)" .br .ti -1c .RI "static void \fBinitClass\fP (void)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoSFInt32\fP \fBindex\fP" .br .ti -1c .RI "\fBSoMField\fP * \fBinput\fP" .br .ti -1c .RI "\fBSoEngineOutput\fP * \fBoutput\fP" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static const \fBSoFieldData\fP ** \fBgetInputDataPtr\fP (void)" .br .ti -1c .RI "static const \fBSoEngineOutputData\fP ** \fBgetOutputDataPtr\fP (void)" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoSelectOne\fP class is used to select one value from a set of values\&. .PP The output field will be the index'th value of the input multivalue field\&. Note that this engine's output field deviates a little from the 'standard' output mechanism of the majority of engine classes: the \fBSoSelectOne::output\fP is not a permanent \fBSoEngineOutput\fP instance, but a \fIpointer\fP to a \fBSoEngineOutput\fP instance\&. The reason for this is that it is necessary to allocate the output field dynamically to make it match what the \fBSoSelectOne::input\fP is connected to since the type of the \fBSoSelectOne::output\fP always should be the same as the type of the \fBSoSelectOne::input\fP\&. .PP The file format for this field is a bit special\&. Note the leading type specification, which is not necessary for most other field types: .PP .PP .nf SelectOne { type [...fields...] } .fi .PP .SH "Constructor & Destructor Documentation" .PP .SS "SoSelectOne::SoSelectOne (\fBSoType\fPinputtype)" Constructor\&. Sets the type of the input field\&. The input field must be of type \fBSoMField\fP\&. .SH "Member Function Documentation" .PP .SS "virtual \fBSoType\fP SoSelectOne::getTypeId (void) const\fC [virtual]\fP" .PP Returns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. Usage example: .PP .PP .nf void foo(SoNode * node) { if (node->getTypeId() == SoFile::getClassTypeId()) { SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type } } .fi .PP .PP For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in \fIall\fP subclasses\&. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance \fBInventor/nodes/SoSubNode\&.h\fP (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine\&.h (for engine classes) and so on\&. .PP For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups\&. .PP Implements \fBSoBase\fP\&. .SS "virtual const \fBSoFieldData\fP* SoSelectOne::getFieldData (void) const\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 \fBSoFieldContainer\fP\&. .SS "virtual const \fBSoEngineOutputData\fP* SoSelectOne::getOutputData (void) const\fC [virtual]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .PP Implements \fBSoEngine\fP\&. .SH "Member Data Documentation" .PP .SS "\fBSoSFInt32\fP SoSelectOne::index" Index of the value from the input field which will be put on the output\&. .SS "\fBSoMField\fP * SoSelectOne::input" The multivalue input field which we will select a single value from for our output\&. .SS "\fBSoEngineOutput\fP * SoSelectOne::output" (\fBSoSField\fP) This is the singlevalue field output containing the index'th value of \fBSoSelectOne::input\fP\&. .PP The type of the field will of course match the type of the input field, i\&.e\&. if \fBSoSelectOne::input\fP is an \fBSoMFFloat\fP, \fBSoSelectOne::output\fP will be an \fBSoSFFloat\fP etc\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.