# CameraEventAggregator

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

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 417

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

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

Gets the current mouse position.

### Methods

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

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 543

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 561

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 477

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 458

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 518

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 500

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 596

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 440

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 578

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.