---
name: "SoSFNode"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoSFNode/3iv"
---

# SoSFNode(3iv)

field containing a pointer to a node

## NAME

SoSFNode — field containing a pointer to a node

## INHERITS FROM

SoField \> SoSField \> SoSFNode

## SYNOPSIS

**#include \<Inventor/fields/SoSFNode.h\>**

Methods from class SoSFNode:

**static SoType**	**getClassTypeId()**\
 **virtual void**	**getTypeId() const**\
 **SoNode \***	**getValue() const**\
 **SoNode \***	**operator =(SoNode \* newValue)**\
 **void**	**setValue(SoNode \* newValue)**\
 **int**	**operator ==(const SoSFNode &f) const**\
 **int**	**operator !=(const SoSFNode &f) const**

Methods from class SoField:

**void**	**setIgnored(SbBool ignore)**\
 **SbBool**	**isIgnored() const**\
 **SbBool**	**isDefault() const**\
 **virtual SbBool**	**isOfType(SoType type) const**\
 **SbBool**	**set(const char \*valueString)**\
 **void**	**get(SbString &valueString)**\
 **void**	**touch()**\
 **SbBool**	**connectFrom(SoField \*fromField)**\
 **SbBool**	**connectFrom(SoEngineOutput \*fromEngine)**\
 **void**	**disconnect()**\
 **SbBool**	**isConnected() const**\
 **SbBool**	**isConnectedFromField() const**\
 **SbBool**	**getConnectedField(SoField \*&writingField) const**\
 **SbBool**	**isConnectedFromEngine() const**\
 **SbBool**	**getConnectedEngine(SoEngineOutput \*&engineOutput) const**\
 **void**	**enableConnection(SbBool flag)**\
 **SbBool**	**isConnectionEnabled() const**\
 **int**	**getForwardConnections(SoFieldList &list) const**\
 **SoFieldContainer \***	**getContainer() const**

## DESCRIPTION

**This field maintains a pointer to an SoNode** instance, correctly maintaining its reference count.

**SoSFNodes** are written to file as the node they are pointing to. For example:

```
mySoSFNodeField Cube {}
```

is an SoSFNode field named 'mySoSFNodeField', pointing to an SoCube node. If the node is used elsewhere, the regular DEF/USE instancing mechanism applies:

```
anotherSoSFNodeField USE topSeparator
```

is an SoSFNode field that points to a node named 'topSeparator' that was DEF'ed earlier in the scene.

## METHODS

**static SoType**	**getClassTypeId()**\
 **virtual void**	**getTypeId() const**\
 Returns the type for this class or a particular object of this class.

**SoNode \***	**getValue() const**\
 Returns this field's value.

**SoNode \***	**operator =(SoNode \* newValue)**\
 **void**	**setValue(SoNode \* newValue)**\
 Sets this field to **newValue**.

**int**	**operator ==(const SoSFNode &f) const**\
 **int**	**operator !=(const SoSFNode &f) const**\
 Returns TRUE if **f** is of the same type and has the same value as this field.

## SEE ALSO

**SoField, SoSField, SoMFNode, SoNode**
