[API](/solutions/geotoolkit/geotoolkit_js/apis/readme) / [geotoolkit3d](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d) / [controller](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller) / [OrbitController](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller#orbitcontroller) / OrbitController

# Class: OrbitController

[controller](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller).[OrbitController](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller#orbitcontroller).OrbitController

A controller that emulates an 'Orbit' behavior.<br>
<br>
This controller let the user manipulate the camera position using mouse or touch input.<br>
<br>
This controller uses a 3D anchor point and will revolve around it (named lookAt).<br>
This anchor point can be changed either by user action (double click/tap) or programmatically.<br>
<br>
It will let the user rotate the camera on the 'horizontal' axis infinitely.<br>
But it prevents the user from rotate the camera on the vertical axis more than 0-180 degrees.<br>
So that the user cannot put the camera upside down.<br>
<br>
This controller also support 'zooming' by moving the camera forward or backward.<br>
<br>
To be used, it should be set on the Plot through the setOptions function.
<br>
Most of the behaviors can be configured either for speed or even to disable some actions through the setOptions.
<br>

**`See`**

- [AbstractGestureTool](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.tool.abstractgesturetool.abstractgesturetool) for input device support.
- [Plot](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot) for more details


## Hierarchy

- [`AbstractController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller)
↳ **`OrbitController`**
↳↳ [`FirstPersonController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.firstpersoncontroller.firstpersoncontroller)


## Table of contents

Constructors
- [new OrbitController(options)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller.md#new orbitcontroller(options))


Methods
| [dispose](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#dispose) | [getCamera](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#getcamera) | [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#getclassname) |
|  --- | --- | --- |
| [getName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#getname) | [getOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#getoptions) | [getPlot](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#getplot) |
| [hasEventListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#haseventlistener) | [isArmed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#isarmed) | [isDisposed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#isdisposed) |
| [isSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#issilent) | [isTouchEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#istouchevent) | [notify](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#notify) |
| [off](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#off) | [on](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#on) | [onContext](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#oncontext) |
| [onCursorMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#oncursormove) | [onDoubleClick](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ondoubleclick) | [onDoubleTap](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ondoubletap) |
| [onDrag](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ondrag) | [onDragEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ondragend) | [onDragStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ondragstart) |
| [onKey](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onkey) | [onKeyDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onkeydown) | [onKeyEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onkeyend) |
| [onKeyStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onkeystart) | [onKeyUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onkeyup) | [onMouseDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onmousedown) |
| [onMouseMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onmousemove) | [onMouseOut](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onmouseout) | [onMouseUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onmouseup) |
| [onMouseWheel](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onmousewheel) | [onPinch](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onpinch) | [onPinchEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onpinchend) |
| [onPinchStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onpinchstart) | [onSlide](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onslide) | [onSlideEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onslideend) |
| [onSlideStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onslidestart) | [onTap](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ontap) | [onTouchEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ontouchend) |
| [onTouchMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ontouchmove) | [onTouchStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#ontouchstart) | [onVisibilityChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onvisibilitychanged) |
| [onVisibilityGained](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onvisibilitygained) | [onVisibilityLost](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#onvisibilitylost) | [setOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#setoptions) |
| [setSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#setsilent) | [setup](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#setup) | [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller#getclassname-1) |


## Contents

Constructors
#### new OrbitController(options)

• **new OrbitController**(`options?`)

#### Parameters

| Name  | Type  |
|  --- | --- |
| `Optional` `options` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller#orbitcontroller#options) |


#### Overrides

AbstractController.constructor

Methods
#### dispose

▸ **dispose**(): `void`

Function to clean up the references from this tool.

#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[dispose](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#dispose)

#### getCamera

▸ **getCamera**(): `Camera`

Gets this controler Camera

#### Returns

`Camera`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[getCamera](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#getcamera)

#### getClassName

▸ **getClassName**(): `string`

#### Returns

`string`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#getclassname)

#### getName

▸ **getName**(): `string`

Returns the tool name.

#### Returns

`string`

The tool's name

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[getName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#getname)

#### getOptions

▸ **getOptions**(): [`OptionsOut`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller#orbitcontroller#optionsout)

Get orbit controller options

#### Returns

[`OptionsOut`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller#orbitcontroller#optionsout)

options

#### Overrides

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[getOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#getoptions)

#### getPlot

▸ **getPlot**(): [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot)

Get the plot of this Tool.

#### Returns

[`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.plot.plot)

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[getPlot](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#getplot)

#### hasEventListener

▸ **hasEventListener**(`type`, `callback?`): `boolean`

Check if a list of event listeners for this type contains this listener

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `string` | type of event or property |
| `Optional` `callback` | `Function` | to be called, if null, check if any callback is registered |


#### Returns

`boolean`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[hasEventListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#haseventlistener)

#### isArmed

▸ **isArmed**(): `boolean`

Return if this tool is 'armed'.<br>
The tool actions are disabled when not armed.<br>
A tool can either be armed at all time, or only when a specific key is pressed.
To set/unset the arming key, please see this tool option 'armingkey', via .setOptions().

#### Returns

`boolean`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[isArmed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#isarmed)

#### isDisposed

▸ **isDisposed**(): `boolean`

Returns whether this object has been disposed

#### Returns

`boolean`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[isDisposed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#isdisposed)

#### isSilent

▸ **isSilent**(): `boolean`

Return true if the event dispatcher doesn't notify any events

#### Returns

`boolean`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[isSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#issilent)

#### isTouchEvent

▸ **isTouchEvent**(`eventArgs`): `boolean`

return true if the event is a touch event and false otherwise.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | `Event` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | contains info of the event |


#### Returns

`boolean`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[isTouchEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#istouchevent)

#### notify

▸ **notify**<`E`&gt;(`type`, `source`, `args?`): [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

Notify listeners

#### Type parameters

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `E` | event types |
| `source` | [`AbstractTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.tool.abstracttool.abstracttool) | of the event |
| `Optional` `args` | [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#eventmap)[`E`] | arguments of the event |


#### Returns

[`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

this

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[notify](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#notify)

#### off

▸ **off**<`E`&gt;(`type?`, `callback?`): [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

Detach listener on event.
Calling .off() with no arguments removes all attached listeners.
Calling .off(type) with no callback removes all attached listeners for specific type.

#### Type parameters

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `type` | `E` | type of the event |
| `Optional` `callback` | (`eventType`: `E`, `sender`: [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller), `args`: [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#eventmap)[`E`]) => `void` | function to be called |


#### Returns

[`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

this

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[off](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#off)

#### on

▸ **on**<`E`&gt;(`type`, `callback`): [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

Attach listener on event that will be called whenever the specified event is delivered to the target
<p>
If the callback function is already in the list of event listeners for this target,
the function is not added a second time.
</p>
<p>
If a particular anonymous function is in the list of event listeners registered for a
certain target, and then later in the code, an identical anonymous function is given
in an "on" call, the second function will also be added to the list of
event listeners for that target.
</p>

#### Type parameters

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `E` | type of event or property |
| `callback` | (`eventType`: `E`, `sender`: [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller), `args`: [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#eventmap)[`E`]) => `void` | to be called |


#### Returns

[`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

this

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[on](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#on)

#### onContext

▸ **onContext**(`event`): `void`

Called when a 'context' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | `PointerEvent` | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onContext](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#oncontext)

#### onCursorMove

▸ **onCursorMove**(`event`): `void`

Called when a 'onCursorMove' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onCursorMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#oncursormove)

#### onDoubleClick

▸ **onDoubleClick**(`event`): `void`

Called when a 'doubleclick' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onDoubleClick](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ondoubleclick)

#### onDoubleTap

▸ **onDoubleTap**(`event`): `void`

Called when a 'onDoubleTap' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onDoubleTap](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ondoubletap)

#### onDrag

▸ **onDrag**(`event`): `void`

Called when a 'onDrag' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onDrag](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ondrag)

#### onDragEnd

▸ **onDragEnd**(`event`): `void`

Called when a 'onDragEnd' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onDragEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ondragend)

#### onDragStart

▸ **onDragStart**(`event`): `void`

Called when a 'onDragStart' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onDragStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ondragstart)

#### onKey

▸ **onKey**(`event`): `void`

Called when a 'onKey' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | `KeyboardEvent` | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onKey](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onkey)

#### onKeyDown

▸ **onKeyDown**(`event`): `void`

Called when a 'keydown' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | `KeyboardEvent` | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onKeyDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onkeydown)

#### onKeyEnd

▸ **onKeyEnd**(`event`): `void`

Called when a 'onKeyEnd' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | `KeyboardEvent` | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onKeyEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onkeyend)

#### onKeyStart

▸ **onKeyStart**(`event`): `void`

Called when a 'onKeyStart' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | `KeyboardEvent` | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onKeyStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onkeystart)

#### onKeyUp

▸ **onKeyUp**(`event`): `void`

Called when a 'keyup' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | `KeyboardEvent` | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onKeyUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onkeyup)

#### onMouseDown

▸ **onMouseDown**(`event`): `void`

Called when a 'mousedown' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onMouseDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onmousedown)

#### onMouseMove

▸ **onMouseMove**(`event`): `void`

Called when a 'mousemove' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onMouseMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onmousemove)

#### onMouseOut

▸ **onMouseOut**(`event`): `void`

Called when a 'mouseout' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onMouseOut](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onmouseout)

#### onMouseUp

▸ **onMouseUp**(`event`): `void`

Called when a 'mouseup' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onMouseUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onmouseup)

#### onMouseWheel

▸ **onMouseWheel**(`event`): `void`

Called when a 'mousewheel' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | `WheelEvent` | the native event with plot coordinates added |


#### Returns

`void`

#### Overrides

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onMouseWheel](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onmousewheel)

#### onPinch

▸ **onPinch**(`event`): `void`

Called when a 'onPinch' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`MovePointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractgesturetool#movepointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onPinch](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onpinch)

#### onPinchEnd

▸ **onPinchEnd**(`event`): `void`

Called when a 'onPinchEnd' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onPinchEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onpinchend)

#### onPinchStart

▸ **onPinchStart**(`event`): `void`

Called when a 'onPinchStart' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`MovePointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractgesturetool#movepointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onPinchStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onpinchstart)

#### onSlide

▸ **onSlide**(`event`): `void`

Called when a 'onSlide' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onSlide](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onslide)

#### onSlideEnd

▸ **onSlideEnd**(`event`): `void`

Called when a 'onSlideEnd' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onSlideEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onslideend)

#### onSlideStart

▸ **onSlideStart**(`event`): `void`

Called when a 'onSlideStart' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onSlideStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onslidestart)

#### onTap

▸ **onTap**(`event`): `void`

Called when a 'onTap' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onTap](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ontap)

#### onTouchEnd

▸ **onTouchEnd**(`event`): `void`

Called when a 'touchend' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onTouchEnd](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ontouchend)

#### onTouchMove

▸ **onTouchMove**(`event`): `void`

Called when a 'touchmove' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onTouchMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ontouchmove)

#### onTouchStart

▸ **onTouchStart**(`event`): `void`

Called when a 'touchstart' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onTouchStart](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#ontouchstart)

#### onVisibilityChanged

▸ **onVisibilityChanged**(`event`): `void`

Called when a 'onVisibilityChanged' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onVisibilityChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onvisibilitychanged)

#### onVisibilityGained

▸ **onVisibilityGained**(`event`): `void`

Called when a 'onVisibilityGained' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onVisibilityGained](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onvisibilitygained)

#### onVisibilityLost

▸ **onVisibilityLost**(`event`): `void`

Called when a 'onVisibilityLost' event has occurred

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `event` | [`CustomPointerEvent`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.tool#abstractdevicesupport#custompointerevent) | the native event with plot coordinates added |


#### Returns

`void`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[onVisibilityLost](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#onvisibilitylost)

#### setOptions

▸ **setOptions**(`options?`): [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

Set options, the given json will be merged with the object's state so that only the given options will be changed.<br>

#### Parameters

| Name  | Type  |
|  --- | --- |
| `Optional` `options` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit3d.controller#orbitcontroller#options) |


#### Returns

[`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

this

#### Overrides

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[setOptions](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#setoptions)

#### setSilent

▸ **setSilent**(`bool`): [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

Set silent mode

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `bool` | `boolean` | flag to enable silent mode |


#### Returns

[`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

this

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[setSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#setsilent)

#### setup

▸ **setup**(`deviceSupport`): [`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

This function allows tools to bind their events to the device support

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `deviceSupport` | [`AbstractDeviceSupport`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.tool.devicesupport.abstractdevicesupport.abstractdevicesupport) | the type of device we are attaching to |


#### Returns

[`OrbitController`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.orbitcontroller.orbitcontroller)

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[setup](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#setup)

#### getClassName

▸ `Static` **getClassName**(): `string`

#### Returns

`string`

#### Inherited from

[AbstractController](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit3d.controller.abstractcontroller.abstractcontroller#getclassname-1)