# SceneTransforms

engine/Source/Scene/SceneTransforms.js 16
Functions that do scene-dependent transforms between rendering-related coordinate systems.

### Methods

#### static Cesium.SceneTransforms.wgs84ToDrawingBufferCoordinates(scene, position, result) → Cartesian2|undefined
engine/Source/Scene/SceneTransforms.js 340

Transforms a position in world coordinates to drawing buffer coordinates. This may produce different results from SceneTransforms.wgs84ToWindowCoordinates when the browser zoom is not 100%, or on high-DPI displays.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.
`position` | Cartesian3 | The position in world (WGS84 or alternative ellipsoid) coordinates.
`result` | Cartesian2 | optional An optional object to return the input position transformed to window coordinates.

##### Returns:

The modified result parameter or a new Cartesian2 instance if one was not provided. This may be `undefined` if the input position is near the center of the ellipsoid.

##### Example:

    // Output the window position of longitude/latitude (0, 0) every time the mouse moves.
    const position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
    const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
    handler.setInputAction(function(movement) {
        console.log(Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, position));
    }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

#### static Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, position, result) → Cartesian2|undefined
engine/Source/Scene/SceneTransforms.js 75

Transforms a position in WGS84 coordinates to window coordinates. This is commonly used to place an HTML element at the same screen position as an object in the scene.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.
`position` | Cartesian3 | The position in WGS84 (world) coordinates.
`result` | Cartesian2 | optional An optional object to return the input position transformed to window coordinates.

##### Returns:

The modified result parameter or a new Cartesian2 instance if one was not provided. This may be `undefined` if the input position is near the center of the ellipsoid.

##### Example:

    // Output the window position of longitude/latitude (0, 0) every time the mouse moves.
    const scene = widget.scene;
    const ellipsoid = scene.ellipsoid;
    const position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
    const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
    handler.setInputAction(function(movement) {
        console.log(Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, position));
    }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

#### static Cesium.SceneTransforms.worldToDrawingBufferCoordinates(scene, position, result) → Cartesian2|undefined
engine/Source/Scene/SceneTransforms.js 310

Transforms a position in world coordinates to drawing buffer coordinates. This may produce different results from SceneTransforms.worldToWindowCoordinates when the browser zoom is not 100%, or on high-DPI displays.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.
`position` | Cartesian3 | The position in world (WGS84 or alternative ellipsoid) coordinates.
`result` | Cartesian2 | optional An optional object to return the input position transformed to window coordinates.

##### Returns:

The modified result parameter or a new Cartesian2 instance if one was not provided. This may be `undefined` if the input position is near the center of the ellipsoid.

##### Example:

    // Output the window position of longitude/latitude (0, 0) every time the mouse moves.
    const position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
    const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
    handler.setInputAction(function(movement) {
        console.log(Cesium.SceneTransforms.worldToDrawingBufferCoordinates(scene, position));
    }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

#### static Cesium.SceneTransforms.worldToWindowCoordinates(scene, position, result) → Cartesian2|undefined
engine/Source/Scene/SceneTransforms.js 47

Transforms a position in world (WGS84 or alternative ellipsoid) coordinates to window coordinates. This is commonly used to place an HTML element at the same screen position as an object in the scene.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.
`position` | Cartesian3 | The position in world (WGS84 or alternative ellipsoid) coordinates.
`result` | Cartesian2 | optional An optional object to return the input position transformed to window coordinates.

##### Returns:

The modified result parameter or a new Cartesian2 instance if one was not provided. This may be `undefined` if the input position is near the center of the ellipsoid.

##### Example:

    // Output the window position of longitude/latitude (0, 0) every time the mouse moves.
    const position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
    const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
    handler.setInputAction(function(movement) {
        console.log(Cesium.SceneTransforms.worldToWindowCoordinates(scene, position));
    }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

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