SoMFNode(3IV)

SoMFNode (SoMNode) - multiple-value field containing any number of pointers to nodes

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoMFNode (SoMNode) - multiple-value field containing any number of
     pointers to nodes

INHERITS FROM
     SoField > SoMField > SoMFNode

SYNOPSIS
     #include <Inventor_c/fields/SoMFNode.h>

     typedef SoMFNode    SoMNode

          Functions from class SoMFNode:

     SoType              SoMNodeGetClassTypeId()
     void                SoMNodeGetTypeId(const SoMNode *this)
     SoNode *            SoMNodeGet(const SoMNode *this, int i)
     const SoNode * *    SoMNodeGetN(const SoMNode *this, int start)
     int                 SoMNodeFind(SoMNode *this, SoNode * targetValue,
                              SbBool addIfNotFound = FALSE)
     void                SoMNodeSetN(SoMNode *this, int start, int num, const
                              SoNode * *newValues)
     void                SoMNodeSet1(SoMNode *this, int index, SoNode *
                              newValue)
     void                SoMNodeSet(SoMNode *this, SoNode * newValue)
     int                 SoMNodeIsEq(const SoMNode *this, const SoMFNode *f)
     int                 SoMNodeIsNEq(const SoMNode *this, const SoMFNode *f)
     SoNode * *          SoMNodeStartEdit(SoMNode *this)
     void                SoMNodeFinishEdit(SoMNode *this)

          Functions from class SoMField:

     int                 SoMNodeGetNum(const SoMNode *this)
     void                SoMNodeSetNum(SoMNode *this, int num)
     void                SoMNodeDel(SoMNode *this, int start, int num = -1)
     void                SoMNodeInsertSpace(SoMNode *this, int start, int num)
     void                SoMNodeGet1(SoMNode *this, int index, SbString
                              *valueString)

          Functions from class SoField:

     void                SoMNodeSetIgnored(SoMNode *this, SbBool ignore)
     SbBool              SoMNodeIsIgnored(const SoMNode *this)
     SbBool              SoMNodeIsDflt(const SoMNode *this)
     SbBool              SoMNodeIsOfType(const SoMNode *this, SoType type)
     SbBool              SoMNodeSetFromStr(SoMNode *this, const char
                              *valueString)
     void                SoMNodeGetIntoStr(SoMNode *this, SbString
                              *valueString)
     void                SoMNodeTouch(SoMNode *this)
     SbBool              SoMNodeConnFromField(SoMNode *this, SoField
                              *fromField)
     SbBool              SoMNodeConnFrom(SoMNode *this, SoEngineOutput
                              *fromEngine)
     void                SoMNodeDisconn(SoMNode *this)
     SbBool              SoMNodeIsConn(const SoMNode *this)
     SbBool              SoMNodeIsConnFromField(const SoMNode *this)
     SbBool              SoMNodeGetConnField(const SoMNode *this, SoField
                              **writingField)
     SbBool              SoMNodeIsConnFromEngine(const SoMNode *this)
     SbBool              SoMNodeGetConnEngine(const SoMNode *this,
                              SoEngineOutput **engineOutput)
     void                SoMNodeEnableConn(SoMNode *this, SbBool flag)
     SbBool              SoMNodeIsConnEnabled(const SoMNode *this)
     int                 SoMNodeGetForwardConn(const SoMNode *this,
                              SoFieldList *list)
     SoFieldContainer *  SoMNodeGetContainer(const SoMNode *this)


DESCRIPTION
     This field maintains a set of pointers to SoNode instances, correctly
     maintaining their reference counts.

     SoMFNodes are written to file as one or more nodes. When more than one
     value is present, all of the values are enclosed in square brackets and
     separated by commas; for example:

          [ Cube { }, Sphere { radius 2.0 }, USE myTranslation ]



FUNCTIONS
     SoType              SoMNodeGetClassTypeId()
     void                SoMNodeGetTypeId(const SoMNode *this)
          Returns the type for this class or a particular object of this
          class.

     SoNode *            SoMNodeGet(const SoMNode *this, int i)
          Returns the i'th value of the field. Indexing past the end of the
          field (passing in i greater than getNum()) will return garbage.

     const SoNode * *    SoMNodeGetN(const SoMNode *this, int start)
          Returns a pointer into the array of values in the field, starting at
          index start. The values are read-only; see the
          startEditing()/finishEditing() methods for a way of modifying values
          in place.

     int                 SoMNodeFind(SoMNode *this, SoNode * targetValue,
                              SbBool addIfNotFound = FALSE)
          Finds the given value in the array and returns the index of that
          value in the array. If the value is not found, -1 is returned. If
          addIfNotFound is set, then targetValue is added to the end of the
          array (but -1 is still returned).

     void                SoMNodeSetN(SoMNode *this, int start, int num, const
                              SoNode * *newValues)
          Sets num values starting at index start to the values in newValues.
          The array will be automatically be made larger to accomodate the new
          values, if necessary.

     void                SoMNodeSet1(SoMNode *this, int index, SoNode *
                              newValue)
          Sets the index'th value in the array to newValue. The array will be
          automatically expanded, if necessary.

     void                SoMNodeSet(SoMNode *this, SoNode * newValue)
          Sets the first value in the array to newValue, and deletes the
          second and subsequent values.

     int                 SoMNodeIsEq(const SoMNode *this, const SoMFNode *f)
     int                 SoMNodeIsNEq(const SoMNode *this, const SoMFNode *f)
          Returns TRUE if all of the values of this field equal (do not equal)
          those of the given field. If the fields are different types FALSE
          will always be returned (even if one field is an SoMFFloat with one
          value of 1.0 and the other is an SoMFInt with a value of 1, for
          example).

     SoNode * *          SoMNodeStartEdit(SoMNode *this)
     void                SoMNodeFinishEdit(SoMNode *this)
          startEditing() returns a pointer to the internally-maintained array
          that can be modified. The values in the array may be changed, but
          values cannot be added or removed. It is illegal to call any other
          editing methods between StartEdit() and FinishEdit() (e.g. Set1(),
          Set(), etc).

          Fields, engines or sensors connected to this field and sensors are
          not notified that this field has changed until FinishEdit() is
          called. Calling FinishEdit() always sets the IsDflt flag to FALSE
          and informs engines and sensors that the field changed, even if none
          of the values actually were changed.