---
name: "SoListenerPositionElement"
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/SoListenerPositionElement"
---

# SoListenerPositionElement(3)

The SoListenerPositionElement holds the position of the current listener.

## NAME

SoListenerPositionElement - The **SoListenerPositionElement** holds the position of the current listener.

## SYNOPSIS

\#include \<Inventor/elements/SoListenerPositionElement.h\>

Inherits **SoReplacedElement**.

### Public Member Functions

virtual void **init** (**SoState** \*state)\
 virtual void **print** (FILE \*file) const\
 Prints contents of element (not implemented).

Public Member Functions inherited from **SoReplacedElement** virtual SbBool **matches** (const **SoElement** \*element) const\
 virtual **SoElement** \* **copyMatchInfo** () const\
 SbUniqueId **getNodeId** () const\

Public Member Functions inherited from **SoElement** const **SoType** **getTypeId** (void) const\
 int **getStackIndex** (void) const\
 virtual void **push** (**SoState** \*state)\
 virtual void **pop** (**SoState** \*state, const **SoElement** \*prevTopElement)\
 void **setDepth** (const int **depth**)\
 int **getDepth** (void) const\
 virtual **~SoElement** ()\

### Static Public Member Functions

static **SoType** **getClassTypeId** (void)\
 static int **getClassStackIndex** (void)\
 static void \* **createInstance** (void)\
 static void **initClass** (void)\
 static void **set** (**SoState** \*const state, **SoNode** \*const node, const **SbVec3f** &**position**, SbBool setbylistener)\
 static const **SbVec3f** & **get** (**SoState** \*const state)\
 Returns the current listener position.  static SbBool **isSetByListener** (**SoState** \*const state)\

Static Public Member Functions inherited from **SoReplacedElement** static **SoType** **getClassTypeId** (void)\
 static int **getClassStackIndex** (void)\
 static void **initClass** (void)\

Static Public Member Functions inherited from **SoElement** static void **initClass** (void)\
 static **SoType** **getClassTypeId** (void)\
 static int **getClassStackIndex** (void)\
 static void **initElements** (void)\
 static int **getNumStackIndices** (void)\
 static **SoType** **getIdFromStackIndex** (const int **stackIndex**)\

### Protected Member Functions

virtual **~SoListenerPositionElement** ()\

Protected Member Functions inherited from **SoReplacedElement** virtual **~SoReplacedElement** ()\

Protected Member Functions inherited from **SoElement** **SoElement** (void)\
 void **capture** (**SoState** \*const state) const\
 virtual void **captureThis** (**SoState** \*state) const\
 void **setTypeId** (const **SoType** **typeId**)\
 void **setStackIndex** (const int index)\
 **SoElement** \* **getNextInStack** (void) const\
 **SoElement** \* **getNextFree** (void) const\

### Protected Attributes

**SbVec3f** **position**\
 SbBool **setbylistener**\

Protected Attributes inherited from **SoReplacedElement** SbUniqueId **nodeId**\

Protected Attributes inherited from **SoElement** **SoType** **typeId**\
 int **stackIndex**\
 int **depth**\

### Additional Inherited Members

Static Protected Member Functions inherited from **SoReplacedElement** static **SoElement** \* **getElement** (**SoState** \*const state, const int **stackIndex**, **SoNode** \*const node)\

Static Protected Member Functions inherited from **SoElement** static **SoElement** \* **getElement** (**SoState** \*const state, const int **stackIndex**)\
 static const **SoElement** \* **getConstElement** (**SoState** \*const state, const int **stackIndex**)\
 static int **createStackIndex** (const **SoType** id)\

Static Protected Attributes inherited from **SoElement** static int **classStackIndex**\
 static **SoTypeList** \* **stackToType**\

## Detailed Description

The **SoListenerPositionElement** holds the position of the current listener.

This position is set by **SoListener** nodes and **SoCamera** Nodes during audio rendering. When a **SoListener** is visited by the **SoAudioRenderAction**, it will add a new **SoListenerPositionElement** to the state, holding its position and with the setbylistener flag set. When a **SoCamera** is visited by **SoAudioRenderAction**, it will add a new **SoListenerPositionElement** only if there are no previous elements with the setbylistener flag set.

The **SoListenerPositionElement** is used when the **SoVRMLSound** nodes render themselves.

Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.\

**Since**

Coin 2.0

## Constructor & Destructor Documentation

### SoListenerPositionElement::~SoListenerPositionElement (void ) \[protected\], \[virtual\]

Destructor.

## Member Function Documentation

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

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

### int SoListenerPositionElement::getClassStackIndex (void ) \[static\]

This static method returns the state stack index for the class.

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

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

Initialize relevant common data for all instances, like the type system.

### void SoListenerPositionElement::init (SoState \* state) \[virtual\]

Initializes the element to its default value. The default value for the position is (0.0, 0.0, 0.0) and the default value for the setByListener flag is FALSE.

Reimplemented from **SoReplacedElement**.

### void SoListenerPositionElement::set (SoState \*const state, SoNode \*const node, const SbVec3f & position, SbBool setbylistener) \[static\]

Sets the current listener position, and indicates if it was set by a **SoListener** node or a **SoCamera** node.

### SbBool SoListenerPositionElement::isSetByListener (SoState \*const state) \[static\]

Returns TRUE if the position was set by a **SoListener** node, and FALSE if it was set by a **SoCamera** node

### void SoListenerPositionElement::print (FILE \* file) const \[virtual\]

Prints contents of element (not implemented).

Reimplemented from **SoReplacedElement**.

## Member Data Documentation

### SbVec3f SoListenerPositionElement::position \[protected\]

The position of the listener in world space. Can be set by the **SoListener** class or the **SoCamera** class.

## Author

Generated automatically by Doxygen for Coin from the source code.
