---
name: "SoSFBitMask"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SoSFBitMask"
---

# SoSFBitMask(3)

The SoSFBitMask class is a container for a set of bit flags.

## NAME

SoSFBitMask - The **SoSFBitMask** class is a container for a set of bit flags.

## SYNOPSIS

\#include \<Inventor/fields/SoSFBitMask.h\>

Inherits **SoSFEnum**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 virtual void **copyFrom** (const **SoField** &field)\
 const **SoSFBitMask** & **operator=** (const **SoSFBitMask** &field)\
 virtual SbBool **isSame** (const **SoField** &field) const\
 int **operator=** (int newvalue)\

Public Member Functions inherited from **SoSFEnum** const **SoSFEnum** & **operator=** (const **SoSFEnum** &field)\
 int **getValue** (void) const\
 void **setValue** (int newvalue)\
 int **operator=** (int newvalue)\
 int **operator==** (const **SoSFEnum** &field) const\
 int **operator!=** (const **SoSFEnum** &field) const\
 void **setValue** (const **SbName** name)\
 void **setEnums** (const int num, const int \*vals, const **SbName** \*names)\
 int **getNumEnums** (void) const\
 int **getEnum** (const int idx, **SbName** &name) const\

Public Member Functions inherited from **SoSField** virtual **~SoSField** ()\

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\
 virtual void **fixCopy** (SbBool copyconnections)\
 virtual SbBool **referencesCopy** (void) const\
 void **copyConnection** (const **SoField** \*fromfield)\
 virtual SbBool **read** (**SoInput** \*input, const **SbName** &name)\
 virtual void **write** (**SoOutput** \*out, const **SbName** &name) const\
 virtual void **countWriteRefs** (**SoOutput** \*out) 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 **SoSFEnum** static void \* **createInstance** (void)\
 static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\

Static Public Member Functions inherited from **SoSField** static void **initClass** (void)\
 static **SoType** **getClassTypeId** (void)\
 static void **atexit\_cleanup** (void)\

Static Public Member Functions inherited from **SoField** static void **initClass** (void)\
 static void **initClasses** (void)\
 static void **cleanupClass** (void)\
 static **SoType** **getClassTypeId** (void)\

### Additional Inherited Members

Public Types inherited from **SoField** enum **FieldType** { **NORMAL\_FIELD** = 0, **EVENTIN\_FIELD**, **EVENTOUT\_FIELD**, **EXPOSED\_FIELD** }\

Protected Member Functions inherited from **SoSFEnum** virtual SbBool **findEnumValue** (const **SbName** &name, int &val)\
 virtual SbBool **findEnumName** (int value, const **SbName** \*&name) const\

Protected Member Functions inherited from **SoSField** **SoSField** (void)\

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\
 virtual **SoNotRec** **createNotRec** (**SoBase** \*cont)\

Protected Attributes inherited from **SoSFEnum** int **value**\
 int **numEnums**\
 int \* **enumValues**\
 **SbName** \* **enumNames**\
 SbBool **legalValuesSet**\

## Detailed Description

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.

A field of this type stores its value to file as the symbolic names, rather than the actual integer bitmask. If more than one bit is set in the value when exporting, the bits are written like this: "(BITNAME\|BITNAME\|BITNAME\|...)".

**SoSFBitMask** instances are derived from **SoSFEnum** instances, and are initialized in the same way using the exact same enum-field-related macros.

**See also**

**SoMFBitMask**, **SoSFEnum**

## Member Function Documentation

### void \* SoSFBitMask::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.

### SoType SoSFBitMask::getClassTypeId (void ) \[static\]

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

### SoType SoSFBitMask::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.

Reimplemented from **SoSFEnum**.

### void SoSFBitMask::copyFrom (const SoField & f) \[virtual\]

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

Reimplemented from **SoSFEnum**.

### SbBool SoSFBitMask::isSame (const SoField & f) const \[virtual\]

Check for equal type and value(s).

Reimplemented from **SoSFEnum**.

### void SoSFBitMask::initClass (void ) \[static\]

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

## Author

Generated automatically by Doxygen for Coin from the source code.
