SceneManager

SceneManager

Object responsible for scene content management.

Extends

Members

scene :Container

Container representing the whole scene.

Type:

sceneTree :string

Printable scene tree.

Type:
  • string

selection :SceneNode|null

Currently selected scene node. Is null if no node is selected.

Type:

Methods

(async) clearScene() → {Promise}

Clears the scene completely, removing every scene node apart from the scene itself and the container for image targets. Also removes any rooms.

Returns:

Promise that resolves when the scene is cleared.

Type
Promise

(async) clearSelection() → {Promise}

Deselects the currently selected object. Does nothing is nothing is selected.

Returns:

Promise that resolves when the object is deselected.

Type
Promise

(async) exportScene(sceneName, format) → {SceneExportResult}

Exports content of the current scene and saves it under the given filename in directory 'CustomFiles'.
If the filename doesn't end with the extension of type, the extension is automatically added to the filename.

Parameters:
Name Type Description
sceneName string

The sceneName used for saving the scene.

format string

The file type of the export (e.g. 'obj' or 'fbx' or 'usd')

Returns:

The scene export's result.

Type
SceneExportResult

findNodeById(id) → {SceneNode|null}

Searches the scene for a node by id.

Parameters:
Name Type Description
id string

unique id of the scene node

Returns:

scene node, if found; null otherwise.

Type
SceneNode | null

(async) getRayIntersections(origin, direction, featurePointRadius, hits) → {RayHits}

Casts a ray on the scene and gets the intersections.

Parameters:
Name Type Description
origin Vector3

Origin vector of the ray.

direction Vector3

Direction vector of the ray.

featurePointRadius int

Radius for feature point detection in mm.

hits Array.<('mesh'|'modelinstance'|'floor'|'featurepoint'|'realworldplane')>

Hit types to return. If not set, return all hits.

Returns:

The ray intersections with instances, the floor and feature points.

Type
RayHits

getSceneState(parent) → {Object}

Returns a serializable (JSON) representation of the whole scene, including the room description. Modifications of
the returned objects have no effect on the actual scene state.

Parameters:
Name Type Description
parent Container

parent of the scene state. Uses root scene node if nothing given or null.

Returns:

serializable representation of the scene.

Type
Object

(async) getSceneStateSafe(parent) → {Promise.<Object>}

Same as sceneManager.getSceneState, but returns a Promise that resolves with the scene state after all
scene updates have been made.

Parameters:
Name Type Description
parent Container

parent of the scene state. Uses root scene node if nothing given or null.

Returns:

Promise that resolves with serializable representation of the scene.

Type
Promise.<Object>

(async) insertContainer(insertionParams) → {Promise.<Container>}

Inserts a container into the scene according to given parameters.

Parameters:
Name Type Description
insertionParams ContainerInsertionParams

insertion parameters for the container

Returns:

Promise that resolves with the inserted container.

Type
Promise.<Container>

(async) insertModel(model, instanceProps, insertionParams) → {Promise.<(ModelInstance|Configuration)>}

Inserts a model into the scene according to given parameters.

Parameters:
Name Type Description
model Model

model to be inserted

instanceProps ModelInsertionParams

properties of the new instance

insertionParams Object

insertion setting for snapping

Returns:

Promise that resolves with the inserted instance of the model.

Type
Promise.<(ModelInstance|Configuration)>

(async) insertModels(bulkInsertionInfos, onProgress) → {Promise.<Array.<(ModelInstance|Configuration)>>}

Bulk insert a bunch of models at once for performance reasons.

Parameters:
Name Type Description
bulkInsertionInfos Array.<BulkInsertionInfo>

Insertion infos for bulk insertion.

onProgress function

Callback function for download progress between 0 and 100.

Returns:

Promise that resolves with the inserted instances of the models.

Type
Promise.<Array.<(ModelInstance|Configuration)>>

off(eventName, eventHandler)

Inherited From:
Parameters:
Name Type Description
eventName string
eventHandler function

on(eventName, eventHandler)

Inherited From:
Parameters:
Name Type Description
eventName string
eventHandler function

once(eventName, eventHandler)

Inherited From:
Parameters:
Name Type Description
eventName string
eventHandler function

(async) removeNode(node) → {Promise}

Removes given scene node. Attempting to remove the scene will throw an error.

Parameters:
Name Type Description
node SceneNode

scene node to be removed

Throws:

when attempting to remove the scene

Type
Error
Returns:

Promise that resolves when the object is removed.

Type
Promise

(async) select(node) → {Promise.<SceneNode>}

Selects the scene node. Selected nodes can be interacted with to change their pose.

Parameters:
Name Type Description
node SceneNode

scene node to be selected

Returns:

Promise that resolves when the object is selected.

Type
Promise.<SceneNode>

(async) setSceneState(newSceneState, parent) → {Promise}

Same as sceneManager.getSceneState, but returns a Promise that resolves with the scene state after all
scene updates have been made.

Parameters:
Name Type Description
newSceneState Object

scene state, obtained using sceneManager.getSceneState or sceneManager.getSceneStateSafe

parent Container

parent of the scene state. Overwrites root scene if not given or null.

Returns:

Promise that resolves once the scene is updated.

Type
Promise

(async) simulateTouchRay(screenX, screenY, featurePointRadius, hits) → {RayHits}

Simulates a touch on a screen coordinate.

Parameters:
Name Type Description
screenX number

Screen coordinate between 0 and 1 along the x-axis, starting with left side of the screen.

screenY number

Screen coordinate between 0 and 1 along the y-axis, starting with top of the screen.

featurePointRadius int

Radius for feature point detection in mm.

hits Array.<('mesh'|'modelinstance'|'floor'|'featurepoint'|'realworldplane')>

Hit types to return. If not set, return all hits.

Returns:

The ray intersections with instances, the floor and feature points.

Type
RayHits

(inner) _exportScene()

Outputs the scene tree to the console.

(inner) _insertModels(flagValue)

Set the moveBelowFloor flag for model and container insertions.

Parameters:
Name Type Description
flagValue boolean

(inner) _setSceneState(sceneState) → {Object}

Set the moveBelowFloor flag on all children according to current state.

Parameters:
Name Type Description
sceneState Object
Returns:

sceneState with moveBelowFloor flag set accordingly on all children.

Type
Object

Events

objectTouched

Event that is emitted when an scene node is touched

Parameters:
Name Type Description
node SceneNode

node that was touched

sceneObjectPoseChanged

Event that is emitted when an scene node is moved manually

Parameters:
Name Type Description
node SceneNode

node whose pose was changed

sceneStateUpdateDone

Event that is emitted when the scene has finished updating

sceneStateUpdateProgress

Event that is emitted when the scene is updated

Parameters:
Name Type Description
current Number

The index of the node currently updated.

total Number

The total amount of nodes to update.

selectionChanged

Event that is emitted when selection changes

Parameters:
Name Type Description
selection SceneNode | null

new selection