Coin: SoMFNode Class Reference

| Coin3D is Free Software, published under the BSD 3-clause license. | https://coin3d.github.io https://www.kongsberg.com/en/kogt/

SoMFNode Class Reference
Field Classes

The SoMFNode class is a container for nodes. More...

`#include <Inventor/fields/SoMFNode.h>`

Inheritance diagram for SoMFNode:

## Public Member Functions
virtual SoType | getTypeId (void) const
virtual void | copyFrom (const SoField &field)
const SoMFNode & | operator= (const SoMFNode &field)
virtual SbBool | isSame (const SoField &field) const
SoNode * | operator[] (const int idx) const
const SoNode ** | getValues (const int start) const
int | find (SoNode *value, SbBool addifnotfound=FALSE)
void | setValues (const int start, const int num, const SoNode **newvals)
void | set1Value (const int idx, SoNode *value)
void | setValue (SoNode *value)
SoNode * | operator= (SoNode *val)
SbBool | operator== (const SoMFNode &field) const
SbBool | operator!= (const SoMFNode &field) const
SoNode ** | startEditing (void)
void | finishEditing (void)
virtual void | fixCopy (SbBool copyconnections)
virtual SbBool | referencesCopy (void) const
void | addNode (SoNode *node)
void | insertNode (SoNode *node, int idx)
SoNode * | getNode (int idx) const
int | findNode (const SoNode *node) const
int | getNumNodes (void) const
void | removeNode (int index)
void | removeNode (SoNode *node)
void | removeAllNodes (void)
void | replaceNode (int idx, SoNode *newnode)
void | replaceNode (SoNode *oldnode, SoNode *newnode)
virtual void | deleteValues (int start, int num=-1)
virtual void | insertSpace (int start, int num)
Public Member Functions inherited from SoMField
virtual | ~SoMField ()
int | getNum (void) const
void | setNum (const int num)
SbBool | set1 (const int index, const char *const valuestring)
void | get1 (const int index, SbString &valuestring)
virtual void | enableDeleteValues (void)
virtual SbBool | isDeleteValuesEnabled (void) const
Public Member Functions inherited from SoField
virtual | ~SoField ()
void | setIgnored (SbBool ignore)
SbBool | isIgnored (void) const
void | setDefault (SbBool defaultVal)
SbBool | isDefault (void) const
SbBool | isOfType (const SoType type) const
void | enableConnection (SbBool flag)
SbBool | isConnectionEnabled (void) const
SbBool | connectFrom (SoEngineOutput *master, SbBool notnotify=FALSE, SbBool append=FALSE)
SbBool | appendConnection (SoEngineOutput *master, SbBool notnotify=FALSE)
void | disconnect (SoEngineOutput *engineoutput)
SbBool | isConnectedFromEngine (void) const
SbBool | getConnectedEngine (SoEngineOutput *&master) const
SbBool | connectFrom (SoField *master, SbBool notnotify=FALSE, SbBool append=FALSE)
SbBool | appendConnection (SoField *master, SbBool notnotify=FALSE)
void | disconnect (SoField *field)
SbBool | isConnectedFromField (void) const
SbBool | getConnectedField (SoField *&master) const
int | getNumConnections (void) const
int | getForwardConnections (SoFieldList &slavelist) const
int | getConnections (SoFieldList &masterlist) const
void | disconnect (void)
SbBool | isConnected (void) const
void | setContainer (SoFieldContainer *cont)
SoFieldContainer * | getContainer (void) const
SbBool | set (const char *valuestring)
void | get (SbString &valuestring)
SbBool | shouldWrite (void) const
virtual void | touch (void)
virtual void | startNotify (void)
virtual void | notify (SoNotList *nlist)
SbBool | enableNotify (SbBool on)
SbBool | isNotifyEnabled (void) const
void | addAuditor (void *f, SoNotRec::Type type)
void | removeAuditor (void *f, SoNotRec::Type type)
int | operator== (const SoField &f) const
int | operator!= (const SoField &f) const
virtual void | connectionStatusChanged (int numconnections)
SbBool | isReadOnly (void) const
void | copyConnection (const SoField *fromfield)
virtual SbBool | read (SoInput *input, const SbName &name)
virtual void | write (SoOutput *out, const SbName &name) const
void | setFieldType (int type)
int | getFieldType (void) const
SbBool | getDirty (void) const
void | setDirty (SbBool dirty)
void | evaluate (void) const

## Static Public Member Functions
static void * | createInstance (void)
static SoType | getClassTypeId (void)
static void | initClass (void)
Static Public Member Functions inherited from SoMField
static SoType | getClassTypeId (void)
static void | atexit_cleanup (void)
static void | initClass (void)
Static Public Member Functions inherited from SoField
static void | initClass (void)
static void | initClasses (void)
static void | cleanupClass (void)
static SoType | getClassTypeId (void)

## Protected Member Functions
virtual void | deleteAllValues (void)
virtual void | copyValue (int to, int from)
virtual int | fieldSizeof (void) const
virtual void * | valuesPtr (void)
virtual void | setValuesPtr (void *ptr)
virtual void | allocValues (int num)
Protected Member Functions inherited from SoMField
| SoMField (void)
virtual void | makeRoom (int newnum)
virtual SoNotRec | createNotRec (SoBase *container)
void | setChangedIndex (const int chgidx)
void | setChangedIndices (const int chgidx=-1, const int numchgind=0)
Protected Member Functions inherited from SoField
| SoField (void)
void | valueChanged (SbBool resetdefault=TRUE)
virtual void | evaluateConnection (void) const
virtual SbBool | readConnection (SoInput *in)
virtual void | writeConnection (SoOutput *out) const
SbBool | isDestructing (void) const

## Protected Attributes
SoNode ** | values
Protected Attributes inherited from SoMField
int | num
int | maxNum
SbBool | userDataIsUsed

## Additional Inherited Members
Public Types inherited from SoField
enum | FieldType { NORMAL_FIELD = 0 , EVENTIN_FIELD , EVENTOUT_FIELD , EXPOSED_FIELD }

## Detailed Description

The SoMFNode class is a container for nodes.

This field container stores an array of pointers to nodes. It takes care of the necessary functionality for handling copy, import and export operations.

Note that node pointers stored in field instances of this type may be `NULL` pointers.

See also
  SoNode, SoSFNode

## Member Function Documentation

## ◆ createInstance()

void * SoMFNode::createInstance | ( | void |  | ) |
| static

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Creates a new instance of the class type corresponding to the SoType object.

## ◆ getClassTypeId()

SoType SoMFNode::getClassTypeId | ( | void |  | ) |
| static

This static method returns the SoType object associated with objects of this class.

## ◆ getTypeId()

SoType SoMFNode::getTypeId | ( | void |  | ) | const
| virtual

Returns the type identification of an object derived from a class inheriting SoField. This is used for runtime type checking and "downward" casting.

Implements SoField.

## ◆ copyFrom()

void SoMFNode::copyFrom | ( | const SoField & | f | ) |
| virtual

Copy value(s) from f into this field. f must be of the same type as this field.

Implements SoField.

## ◆ isSame()

SbBool SoMFNode::isSame | ( | const SoField & | f | ) | const
| virtual

Check for equal type and value(s).

Implements SoField.

## ◆ deleteAllValues()

virtual void SoMFNode::deleteAllValues | ( | void |  | ) |
| protectedvirtual

Implements SoMField.

## ◆ copyValue()

virtual void SoMFNode::copyValue | ( | int | to,
|  | int | from )
| protectedvirtual

Implements SoMField.

## ◆ getValues()

const SoNode ** SoMFNode::getValues | ( | const int | start | ) | const
| inline

Returns a pointer to the values array.

## ◆ initClass()

void SoMFNode::initClass | ( | void |  | ) |
| static

Internal method called upon initialization of the library (from SoDB::init()) to set up the type system.

## ◆ fixCopy()

void SoMFNode::fixCopy | ( | SbBool | copyconnections | ) |
| virtual

This method is internally called after SoField::copyFrom() during scene graph copies, and should do the operations necessary for fixing up the field instance after it has gotten a new value.

The default method in the SoField superclass does nothing.

The application programmer should normally not need to consider this method, unless he constructs a complex field type which contains new references to container instances (i.e. nodes or engines). Overriding this method is then necessary to update the reference pointers, as they could have been duplicated during the copy operation.

Reimplemented from SoField.

## ◆ referencesCopy()

SbBool SoMFNode::referencesCopy | ( | void |  | ) | const
| virtual

Returns `TRUE` if this field has references to any containers in the scene graph which are also duplicated during the copy operation.

Note that this method only is valid to call during copy operations.

See also the note about the relevance of the fixCopy() method for application programmers, as it is applicable on this method as well.

Reimplemented from SoField.

## ◆ addNode()

void SoMFNode::addNode | ( | SoNode * | node | ) |

Adds a node at the end of the array.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ insertNode()

void SoMFNode::insertNode | ( | SoNode * | node,
|  | int | idx )

Inserts a node at index idx.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ getNode()

SoNode * SoMFNode::getNode | ( | int | idx | ) | const

Returns the node at index idx.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ findNode()

int SoMFNode::findNode | ( | const SoNode * | node | ) | const

Returns the index for the first instance of node in the field, or -1 if not found.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ getNumNodes()

int SoMFNode::getNumNodes | ( | void |  | ) | const

Returns the number of nodes in this field.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ removeNode() [1/2]

void SoMFNode::removeNode | ( | int | idx | ) |

Removes the node at index idx.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ removeNode() [2/2]

void SoMFNode::removeNode | ( | SoNode * | node | ) |

Removes the first instance of node in the field.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ removeAllNodes()

void SoMFNode::removeAllNodes | ( | void |  | ) |

Removes all nodes from the field.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ replaceNode() [1/2]

void SoMFNode::replaceNode | ( | int | idx,
|  | SoNode * | newnode )

Replaces the node at index idx with newnode.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ replaceNode() [2/2]

void SoMFNode::replaceNode | ( | SoNode * | oldnode,
|  | SoNode * | newnode )

Replaces the first instance of oldnode with newnode.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
  Coin 2.0

## ◆ deleteValues()

virtual void SoMFNode::deleteValues | ( | int | start,
|  | int | numarg = -1 )
| virtual

Remove value elements from index start up to and including index start + num - 1.

Elements with indices larger than the last deleted element will be moved downwards in the value array.

If num equals -1, delete from index start and to the end of the array.

Reimplemented from SoMField.

## ◆ insertSpace()

virtual void SoMFNode::insertSpace | ( | int | start,
|  | int | numarg )
| virtual

Insert num "slots" for new value elements from start. The elements already present from start will be moved "upward" in the extended array.

Reimplemented from SoMField.

The documentation for this class was generated from the following files:

- SoMFNode.h
- SoMFNode.cpp