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

# SoEvent(3)

The SoEvent class is the base class for all Coin events.

## NAME

SoEvent - The **SoEvent** class is the base class for all Coin events.

## SYNOPSIS

\#include \<Inventor/events/SoEvent.h\>

Inherited by **SoButtonEvent**, **SoLocation2Event**, and **SoMotion3Event**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 **SoEvent** (void)\
 virtual **~SoEvent** ()\
 SbBool **isOfType** (**SoType** type) const\
 void **setTime** (const **SbTime** t)\
 **SbTime** **getTime** (void) const\
 void **setPosition** (const **SbVec2s** &p)\
 const **SbVec2s** & **getPosition** (void) const\
 const **SbVec2s** & **getPosition** (const **SbViewportRegion** &vpRgn) const\
 const **SbVec2f** & **getNormalizedPosition** (const **SbViewportRegion** &vpRgn) const\
 void **setShiftDown** (SbBool isDown)\
 SbBool **wasShiftDown** (void) const\
 void **setCtrlDown** (SbBool isDown)\
 SbBool **wasCtrlDown** (void) const\
 void **setAltDown** (SbBool isDown)\
 SbBool **wasAltDown** (void) const\

### Static Public Member Functions

static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\

## Detailed Description

The **SoEvent** class is the base class for all Coin events.

Coin contains its own set of event classes, independent of the underlying window system.

Upon system specific events, a translation is done by the window specific device classes into one of the Coin event object classes listed below. The event is then typically sent by the render area to an **SoSceneManager** which will apply it to the scene graph through an **SoHandleEventAction**.

Events may be caught by the user by attaching an **SoEventCallback** node to the scene graph, or they can automatically be handled by a dragger or manipulator in the graph.

**See also**

**SoButtonEvent**, **SoKeyboardEvent**, **SoLocation2Event**, **SoMotion3Event**

**SoMouseButtonEvent**, **SoSpaceballButtonEvent**

**SoEventCallback**, **SoHandleEventAction**

## Constructor & Destructor Documentation

### SoEvent::SoEvent (void )

Constructor, will set all modifiers to "off" state.

### SoEvent::~SoEvent () \[virtual\]

Destructor.

## Member Function Documentation

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

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

### SoType SoEvent::getTypeId (void ) const \[virtual\]

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

Returns the actual type id of an instantiated object.

Reimplemented in **SoButtonEvent**, **SoKeyboardEvent**, **SoLocation2Event**, **SoMotion3Event**, **SoMouseButtonEvent**, and **SoSpaceballButtonEvent**.

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

Initialize **SoEvent** and all its known subclasses (i.e. all subclasses which are part of the standard classes in the Coin library).

This method is called from **SoDB::init()**, so it is very unlikely that you will have to call it explicitly.

### SbBool SoEvent::isOfType (SoType type) const

Returns TRUE if this object either has the same type as the given type parameter, or if type belongs to a superclass of ourselves.

### void SoEvent::setTime (const SbTime t)

From a system specific device object, set the time the event occurred.

**See also**

**getTime()**

### SbTime SoEvent::getTime (void ) const

Returns the time the event occurred.

**See also**

**getPosition()**, **wasShiftDown()**, **wasCtrlDown()**, **wasAltDown()**

### void SoEvent::setPosition (const SbVec2s & p)

From a system specific device object, set the mouse pointer position when the event occurred.

**See also**

**getPosition()**, **getNormalizedPosition()**

### const SbVec2s & SoEvent::getPosition (void ) const

Returns the mouse pointer position when the event occurred. The coordinates are given relative to the window coordinates.

**See also**

**getNormalizedPosition()**, **getTime()**, **wasShiftDown()**, **wasCtrlDown()**,

**wasAltDown()**

### const SbVec2s & SoEvent::getPosition (const SbViewportRegion & vpRgn) const

Returns the mouse pointer position when the event occurred. The coordinates are given relative to the viewport coordinates.

**See also**

**getNormalizedPosition()**, **getTime()**, **wasShiftDown()**, **wasCtrlDown()**,

**wasAltDown()**

### const SbVec2f & SoEvent::getNormalizedPosition (const SbViewportRegion & vpRgn) const

Returns the mouse pointer position when the event occurred. The coordinates are given relative to the viewport coordinates, normalized according to the size of the viewport.

**See also**

**getPosition()**, **getTime()**, **wasShiftDown()**, **wasCtrlDown()**, **wasAltDown()**

### void SoEvent::setShiftDown (SbBool isDown)

From a system specific device object, set the state of the Shift key(s) when the event occurred.

**See also**

**wasShiftDown()**, **setCtrlDown()**, **setAltDown()**

### SbBool SoEvent::wasShiftDown (void ) const

Returns state of Shift key(s) when the event occurred.

**See also**

**wasCtrlDown()**, **wasAltDown()**, **getPosition()**, **getTime()**

### void SoEvent::setCtrlDown (SbBool isDown)

From a system specific device object, set the state of the Ctrl key(s) when the event occurred.

**See also**

**wasCtrlDown()**, **setShiftDown()**, **setAltDown()**

### SbBool SoEvent::wasCtrlDown (void ) const

Returns state of Ctrl key(s) when the event occurred.

**See also**

**wasShiftDown()**, **wasAltDown()**, **getPosition()**, **getTime()**

### void SoEvent::setAltDown (SbBool isDown)

From a system specific device object, set the state of the Alt key(s) when the event occurred.

**See also**

**wasAltDown()**, **setCtrlDown()**, **setShiftDown()**

### SbBool SoEvent::wasAltDown (void ) const

Returns state of Alt key(s) when the event occurred.

**See also**

**wasShiftDown()**, **wasCtrlDown()**, **getPosition()**, **getTime()**

## Author

Generated automatically by Doxygen for Coin from the source code.
