# CameraEventAggregator

#### new Cesium.CameraEventAggregator(canvas)
engine/Source/Scene/CameraEventAggregator.js 313

Aggregates input events. For example, suppose the following inputs are received between frames: left mouse button down, mouse move, mouse move, left mouse button up. These events will be aggregated into one event with a start and end position of the mouse.

Name | Type | Default | Description
--- | --- | --- | ---
`canvas` | HTMLCanvasElement | `document` | optional The element to handle events for.

##### See:

- ScreenSpaceEventHandler

### Members

#### anyButtonDown : boolean
engine/Source/Scene/CameraEventAggregator.js 373

Gets whether any mouse button is down, a touch has started, or the wheel has been moved.

#### currentMousePosition : Cartesian2
engine/Source/Scene/CameraEventAggregator.js 362

Gets the current mouse position.

### Methods

#### destroy()
engine/Source/Scene/CameraEventAggregator.js 571

Removes mouse listeners held by this object.
Once an object is destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception. Therefore, assign the return value (`undefined`) to the object as done in the example.

##### Throws:

- DeveloperError : This object was destroyed, i.e., destroy() was called.

##### Example:

    handler = handler && handler.destroy();

##### See:

- CameraEventAggregator#isDestroyed

#### getButtonPressTime(type, modifier) → Date
engine/Source/Scene/CameraEventAggregator.js 499

Gets the time the button was pressed or the touch was started.

Name | Type | Description
--- | --- | ---
`type` | CameraEventType | The camera event type.
`modifier` | KeyboardEventModifier | optional The keyboard modifier.

##### Returns:

The time the button was pressed or the touch was started.

#### getButtonReleaseTime(type, modifier) → Date
engine/Source/Scene/CameraEventAggregator.js 517

Gets the time the button was released or the touch was ended.

Name | Type | Description
--- | --- | ---
`type` | CameraEventType | The camera event type.
`modifier` | KeyboardEventModifier | optional The keyboard modifier.

##### Returns:

The time the button was released or the touch was ended.

#### getLastMovement(type, modifier) → object|undefined
engine/Source/Scene/CameraEventAggregator.js 433

Gets the start and end position of the last move event (not the aggregated event).

Name | Type | Description
--- | --- | ---
`type` | CameraEventType | The camera event type.
`modifier` | KeyboardEventModifier | optional The keyboard modifier.

##### Returns:

An object with two `Cartesian2` properties: `startPosition` and `endPosition` or `undefined`.

#### getMovement(type, modifier) → object
engine/Source/Scene/CameraEventAggregator.js 414

Gets the aggregated start and end position of the current event.

Name | Type | Description
--- | --- | ---
`type` | CameraEventType | The camera event type.
`modifier` | KeyboardEventModifier | optional The keyboard modifier.

##### Returns:

An object with two `Cartesian2` properties: `startPosition` and `endPosition`.

#### getStartMousePosition(type, modifier) → Cartesian2
engine/Source/Scene/CameraEventAggregator.js 474

Gets the mouse position that started the aggregation.

Name | Type | Description
--- | --- | ---
`type` | CameraEventType | The camera event type.
`modifier` | KeyboardEventModifier | optional The keyboard modifier.

##### Returns:

The mouse position.

#### isButtonDown(type, modifier) → boolean
engine/Source/Scene/CameraEventAggregator.js 456

Gets whether the mouse button is down or a touch has started.

Name | Type | Description
--- | --- | ---
`type` | CameraEventType | The camera event type.
`modifier` | KeyboardEventModifier | optional The keyboard modifier.

##### Returns:

Whether the mouse button is down or a touch has started.

#### isDestroyed() → boolean
engine/Source/Scene/CameraEventAggregator.js 552

Returns true if this object was destroyed; otherwise, false.
If this object was destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception.

##### Returns:

`true` if this object was destroyed; otherwise, `false`.

##### See:

- CameraEventAggregator#destroy

#### isMoving(type, modifier) → boolean
engine/Source/Scene/CameraEventAggregator.js 396

Gets if a mouse button down or touch has started and has been moved.

Name | Type | Description
--- | --- | ---
`type` | CameraEventType | The camera event type.
`modifier` | KeyboardEventModifier | optional The keyboard modifier.

##### Returns:

Returns `true` if a mouse button down or touch has started and has been moved; otherwise, `false`

#### reset()
engine/Source/Scene/CameraEventAggregator.js 534

Signals that all of the events have been handled and the aggregator should be reset to handle new events.

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.