---
name: "fields"
section: "3"
platform: "linux"
package: "libcoin80-doc"
version: "3.1.4~abc9f50-7"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/fields/3"
---

# fields(3)

## NAME

Field Classes -

### Classes

class **SoField**\
 *The* **SoField** *class is the top-level abstract base class for fields.*

Fields is the mechanism used throughout Coin for encapsulating basic data types to detect changes made to them, and to provide conversion, import and export facilities. " class **SoFieldData**\
 *The* **SoFieldData** *class is a container for a prototype set of fields.*

This class is instantiated once for each class of objects which use fields, and which needs to be able to import and export them. " class **SoMFBitMask**\
 *The* **SoMFBitMask** *class is a container for a set of bitmasks.*

This field is used where nodes, engines or other field containers needs to store multiple bitmasks with values from an enumerated set. " class **SoMFBool**\
 *The* **SoMFBool** *class is a container for SbBool values.*

This field is used where nodes, engines or other field containers needs to store multiple boolean on/off or TRUE/FALSE values. " class **SoMFColor**\
 *The* **SoMFColor** *class is a container for* **SbColor** *values.*

This field is used where nodes, engines or other field containers needs to store multiple color values (i.e. 'Red Green Blue' triplets). " class **SoMFColorRGBA**\
 *The* **SoMFColorRGBA** *class is a container for* **SbColor4f** *values.*

This field is used where nodes, engines or other field containers needs to store multiple color values (i.e. 'Red Green Blue' triplets). " class **SoMFDouble**\
 *The* **SoMFDouble** *class is a container for double float precision point values.*

This field is used where nodes, engines or other field containers needs to store a group of multiple floating point values. " class **SoMFEngine**\
 *The* **SoMFEngine** *class is a container for engines.*

This field container stores an array of pointers to engines. It takes care of the necessary functionality for handling copy, import and export operations. " class **SoMFEnum**\
 *The* **SoMFEnum** *class is a container for a set of enumerated values.*

This field is used where nodes, engines or other field containers needs to store values constrained to be from an enumerated set. " class **SoMFFloat**\
 *The* **SoMFFloat** *class is a container for floating point values.*

This field is used where nodes, engines or other field containers needs to store a group of multiple floating point values. " class **SoMField**\
 *The* **SoMField** *class is the base class for fields which can contain multiple values.*

All field types which may contain more than one member value inherits this class. **SoMField** is an abstract class. **"** class **SoMFInt32**\
 *The* **SoMFInt32** *class is a container for 32-bit integer values.*

**This field is used where nodes, engines or other field containers needs to store a group of multiple 32-bit integer values.** " class **SoMFMatrix**\
 *The* **SoMFMatrix** *class is a container for* **SbMatrix** *values.*

This field is used where nodes, engines or other field containers needs to store matrices. **"** class **SoMFName**\
 *The* **SoMFName** *class is a container for* **SbName** *values.*

**This field is used where nodes, engines or other field containers needs to store arrays of names.** " class **SoMFNode**\
 *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. **"** class **SoMFPath**\
 *The* **SoMFPath** *class is a container for paths.*

**This field container stores an array of pointers to paths. It takes care of the necessary functionality for handling copy, import and export operations.** " class **SoMFPlane**\
 *The* **SoMFPlane** *class is a container for* **SbPlane** *values.*

This field is used where nodes, engines or other field containers needs to store multiple 3D plane definitions. **"** class **SoMFRotation**\
 *The* **SoMFRotation** *class is a container for* **SbRotation** *values.*

**This field is used where nodes, engines or other field containers needs to store multiple rotation definitions.** " class **SoMFShort**\
 *The* **SoMFShort** *class is a container for short integer values.*

This field is used where nodes, engines or other field containers needs to store a group of multiple short integer values. **"** class **SoMFString**\
 *The* **SoMFString** *class is a container for* **SbString** *values.*

**This field is used where nodes, engines or other field containers needs to store arrays of strings.** " class **SoMFTime**\
 *The* **SoMFTime** *class is a container for* **SbTime** *values.*

This field is used where nodes, engines or other field containers needs to store multiple time representations. **"** class **SoMFUInt32**\
 *The* **SoMFUInt32** *class is a container for 32-bit unsigned integer values.*

**This field is used where nodes, engines or other field containers needs to store a group of multiple 32-bit unsigned integer values.** " class **SoMFUShort**\
 *The* **SoMFUShort** *class is a container for unsigned short integer values.*

This field supports application data sharing through a setValuesPointer() method. See **SoMField** documentation for information on how to use this function. **"** class **SoMFVec2b**\
 *The* **SoMFVec2b** *class is a container for* **SbVec2b** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with two elements.** " class **SoMFVec2d**\
 *The* **SoMFVec2d** *class is a container for* **SbVec2d** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with two elements. **"** class **SoMFVec2f**\
 *The* **SoMFVec2f** *class is a container for* **SbVec2f** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with two elements.** " class **SoMFVec2i32**\
 *The* **SoMFVec2i32** *class is a container for* **SbVec2i32** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with two elements. **"** class **SoMFVec2s**\
 *The* **SoMFVec2s** *class is a container for* **SbVec2s** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with two elements.** " class **SoMFVec3b**\
 *The* **SoMFVec3b** *class is a container for* **SbVec3b** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with three elements. **"** class **SoMFVec3d**\
 *The* **SoMFVec3d** *class is a container for* **SbVec3d** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with three elements.** " class **SoMFVec3f**\
 *The* **SoMFVec3f** *class is a container for* **SbVec3f** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with three elements. **"** class **SoMFVec3i32**\
 *The* **SoMFVec3i32** *class is a container for* **SbVec3i32** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with three elements.** " class **SoMFVec3s**\
 *The* **SoMFVec3s** *class is a container for* **SbVec3s** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with three elements. **"** class **SoMFVec4b**\
 *The* **SoMFVec4b** *class is a container for* **SbVec4b** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements.** " class **SoMFVec4d**\
 *The* **SoMFVec4d** *class is a container for* **SbVec4d** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements. **"** class **SoMFVec4f**\
 *The* **SoMFVec4f** *class is a container for* **SbVec4f** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements.** " class **SoMFVec4i32**\
 *The* **SoMFVec4i32** *class is a container for* **SbVec4i32** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements. **"** class **SoMFVec4s**\
 *The* **SoMFVec4s** *class is a container for* **SbVec4s** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements.** " class **SoMFVec4ub**\
 *The* **SoMFVec4ub** *class is a container for* **SbVec4ub** *vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements. **"** class **SoMFVec4ui32**\
 *The* **SoMFVec4ui32** *class is a container for* **SbVec4ui32** *vectors.*

**This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements.** " class **SoMFVec4us**\
 *The* **SoMFVec4us** *class is a container for SbVec4us vectors.*

This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements. **"** class **SoSFBitMask**\
 *The* **SoSFBitMask** *class is a container for a set of bit flags.*

**This field is used where nodes, engines or other field containers needs to store one particular set of bit flags from an enumerated set.** " class **SoSFBool**\
 *The* **SoSFBool** *class is a container for an SbBool value.*

This field is used where nodes, engines or other field containers needs to store a boolean on/off or TRUE/FALSE value, like for instance as the 'on' field of the **SoPointLight**, **SoSpotLight** and **SoDirectionalLight** node classes. **"** class **SoSFBox2d**\
 *The* **SoSFBox2d** *class is a container for an* **SbBox2d** *vector.*

**This field is used where nodes, engines or other field containers needs to store a box.** " class **SoSFBox2f**\
 *The* **SoSFBox2f** *class is a container for an* **SbBox2f** *vector.*

This field is used where nodes, engines or other field containers needs to store a box. **"** class **SoSFBox2i32**\
 *The* **SoSFBox2i32** *class is a container for an SbBox2i32 vector.*

**This field is used where nodes, engines or other field containers needs to store a box.** " class **SoSFBox2s**\
 *The* **SoSFBox2s** *class is a container for an* **SbBox2s** *vector.*

This field is used where nodes, engines or other field containers needs to store a box. **"** class **SoSFBox3d**\
 *The* **SoSFBox3d** *class is a container for an* **SbBox3d** *vector.*

**This field is used where nodes, engines or other field containers needs to store a box.** " class **SoSFBox3f**\
 *The* **SoSFBox3f** *class is a container for an* **SbBox3f** *vector.*

This field is used where nodes, engines or other field containers needs to store a box. **"** class **SoSFBox3i32**\
 *The* **SoSFBox3i32** *class is a container for an SbBox3i32 vector.*

**This field is used where nodes, engines or other field containers needs to store a box.** " class **SoSFBox3s**\
 *The* **SoSFBox3s** *class is a container for an* **SbBox3s** *vector.*

This field is used where nodes, engines or other field containers needs to store a box. **"** class **SoSFColor**\
 *The* **SoSFColor** *class is a container for an* **SbColor** *value.*

**This field is used where nodes, engines or other field containers needs to store a single color value (i.e. Red + Green + Blue).** " class **SoSFColorRGBA**\
 *The* **SoSFColorRGBA** *class is a container for an* **SbColor4f** *value.*

This field is used where nodes, engines or other field containers needs to store a single color value (i.e. Red + Green + Blue + Alpha). **"** class **SoSFDouble**\
 *The* **SoSFDouble** *class is a container for a double precision floating point value.*

**This field is used where nodes, engines or other field containers needs to store a single floating point value.** " class **SoSFEngine**\
 *The* **SoSFEngine** *class is a container for a single engine.*

This field container stores a pointer to a Coin engine. It takes care of the necessary functionality for handling copy, import and export operations. **"** class **SoSFEnum**\
 *The* **SoSFEnum** *class is a container for an enum value.*

**This field is used where nodes, engines or other field containers needs to store one particular value out of an enumerated set.** " class **SoSFFloat**\
 *The* **SoSFFloat** *class is a container for a floating point value.*

This field is used where nodes, engines or other field containers needs to store a single floating point value. **"** class **SoSField**\
 *The* **SoSField** *class is the base class for fields which contains only a single value.*

**All field types which should always contain only a single member value inherits this class. SoSField is an abstract class. "** class **SoSFImage3**\
 *The* **SoSFImage3** *class is used to store 3D (volume) images.*

**The SoSFImage3 class provides storage for inline 3D image maps. 3D images in Coin are mainly used for 3D texture mapping support. "** class **SoSFImage**\
 *The* **SoSFImage** *class is used to store pixel images.*

**The SoSFImage class provides storage for inline 2D image maps. Images in Coin are mainly used for texture mapping support. "** class **SoSFInt32**\
 *The* **SoSFInt32** *class is a container for a 32-bit integer value.*

**This field is used where nodes, engines or other field containers needs to store a single 32-bit integer value. "** class **SoSFMatrix**\
 *The* **SoSFMatrix** *class is a container for an* **SbMatrix***.*

**This field is used where nodes, engines or other field containers needs to store a 4x4 matrix. "** class **SoSFName**\
 *The* **SoSFName** *class is a container for an* **SbName***.*

**This field is used where nodes, engines or other field containers needs to store a single name string. "** class **SoSFNode**\
 *The* **SoSFNode** *class is a container for a single node.*

**This field container stores a pointer to a Coin node. It takes care of the necessary functionality for handling copy, import and export operations. "** class **SoSFPath**\
 *The* **SoSFPath** *class is a container for a single path.*

**This field container stores a pointer to a Coin path. It takes care of the necessary functionality for handling copy, import and export operations. "** class **SoSFPlane**\
 *The* **SoSFPlane** *class is a container for an* **SbPlane** *value.*

**This field is used where nodes, engines or other field containers needs to store a single definition of a 3D plane. "** class **SoSFRotation**\
 *The* **SoSFRotation** *class is a container for an* **SbRotation***.*

**This field is used where nodes, engines or other field containers needs to store a single rotation definition. "** class **SoSFShort**\
 *The* **SoSFShort** *class is a container for a short integer value.*

**This field is used where nodes, engines or other field containers needs to store a single short integer value. "** class **SoSFString**\
 *The* **SoSFString** *class is a container for an* **SbString***.*

**This field is used where nodes, engines or other field containers needs to store a single string. "** class **SoSFTime**\
 *The* **SoSFTime** *class is a container for an* **SbTime** *value.*

**This field is used where nodes, engines or other field containers needs to store a single time representation. "** class **SoSFTrigger**\
 *The* **SoSFTrigger** *class is the 'void' class used for detecting field changes.*

**Connect this field to a master field (or engine output) to detect when the master field changes its value. "** class **SoSFUInt32**\
 *The* **SoSFUInt32** *class is a container for a 32-bit unsigned integer value.*

**This field is used where nodes, engines or other field containers needs to store a single 32-bit unsigned integer value. "** class **SoSFUShort**\
 *The* **SoSFUShort** *class is a container for a unsigned short integer value.*

**This field is used where nodes, engines or other field containers needs to store a single short unsigned integer value. "** class **SoSFVec2b**\
 *The* **SoSFVec2b** *class is a container for an* **SbVec2b** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with two elements. "** class **SoSFVec2d**\
 *The* **SoSFVec2d** *class is a container for an* **SbVec2d** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with two elements. "** class **SoSFVec2f**\
 *The* **SoSFVec2f** *class is a container for an* **SbVec2f** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with two elements. "** class **SoSFVec2i32**\
 *The* **SoSFVec2i32** *class is a container for an* **SbVec2i32** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with two elements. "** class **SoSFVec2s**\
 *The* **SoSFVec2s** *class is a container for an* **SbVec2s** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with two elements. "** class **SoSFVec3b**\
 *The* **SoSFVec3b** *class is a container for an* **SbVec3b** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with three elements. "** class **SoSFVec3d**\
 *The* **SoSFVec3d** *class is a container for an* **SbVec3d** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with three elements. "** class **SoSFVec3f**\
 *The* **SoSFVec3f** *class is a container for an* **SbVec3f** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with three elements. "** class **SoSFVec3i32**\
 *The* **SoSFVec3i32** *class is a container for an* **SbVec3i32** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with three elements. "** class **SoSFVec3s**\
 *The* **SoSFVec3s** *class is a container for an* **SbVec3s** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with three elements. "** class **SoSFVec4b**\
 *The* **SoSFVec4b** *class is a container for an* **SbVec4b** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoSFVec4d**\
 *The* **SoSFVec4d** *class is a container for an* **SbVec4d** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoSFVec4f**\
 *The* **SoSFVec4f** *class is a container for an* **SbVec4f** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoSFVec4i32**\
 *The* **SoSFVec4i32** *class is a container for an* **SbVec4i32** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoSFVec4s**\
 *The* **SoSFVec4s** *class is a container for an* **SbVec4s** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoSFVec4ub**\
 *The* **SoSFVec4ub** *class is a container for an* **SbVec4ub** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoSFVec4ui32**\
 *The* **SoSFVec4ui32** *class is a container for an* **SbVec4ui32** *vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoSFVec4us**\
 *The* **SoSFVec4us** *class is a container for an SbVec4us vector.*

**This field is used where nodes, engines or other field containers needs to store a single vector with four elements. "** class **SoFieldList**\
 *The* **SoFieldList** *class is a container for pointers to* **SoField** *objects.*

## Detailed Description

**The fields are the data containers in the scene graph. Nodes and engines all use fields to store their public data.**

**Fields can be inter-connected, causing changes at one location in a scene graph to cause other parts of the scene graph to automatically also get updated. Direct field-to-field connections will cause values to get duplicated, while field connections together with engines can create complex networks for such updating that include mathematical computations and logical operations. Field connections are uni-directional, but setting up a connection in both directions will cause a bi-directional connection.**

**Fields are first divided into two groups; 'single fields' and 'multi** **fields'. Single-fields contain just one value, while multi-fields can contain many values or even none at all.**

**Besides fields that are part of nodes, you also have 'global fields'. The 'realtime' field is one such field.**

**The fields in VRML97 nodes have additional semantics. Some are 'event\_in' and some are 'event\_out', listening for events or triggering events. 'event\_in' events should not be read from, and 'event\_out' fields should not be written to.**

## Author

**Generated automatically by Doxygen for Coin from the source code.**
