Skip to main content

Scene

@physion/app / Exports / Scene

Class: Scene

Special node representing a scene

Hierarchy

Constructors

constructor

new Scene(): Scene

Upon construction the Scene will construct the following:

  • A new Viewport
  • background, middleground, foreground and app layers
  • A new physics world

Note that the middleground layer is the same as the Scene's main container. All the Scene's layers will be added as children to the Viewport The background, middleground and foreground layers are Scene specific (that is they can be modified by the Scene) while the app layer should be considered as an internal layer which is used by the application internally.

Returns

Scene

Overrides

Node.constructor

Properties

serverScene

serverScene: undefined | ISceneWithData


userData

userData: Record\<string, unknown>

Inherited from

Node.userData


EVT_CHILD_ADDED

Static Readonly EVT_CHILD_ADDED: "childAdded"

The name of the event that is emitted whenever a child is added to this node.

The argument supplied is the child that was just added to this node.

Inherited from

Node.EVT_CHILD_ADDED


EVT_CHILD_REMOVED

Static Readonly EVT_CHILD_REMOVED: "childRemoved"

The name of the event that is emitted whenever a child is removed from this node.

The argument supplied is the child that was just removed from this node.

Inherited from

Node.EVT_CHILD_REMOVED


EVT_CHILD_REORDERED

Static Readonly EVT_CHILD_REORDERED: "childReordered"

The name of the event that is emitted whenever a child of this node is reordered.

The arguments supplied are: (1) The child that was just reordered (2) the old index of the child and (3) the new index of the child.

Inherited from

Node.EVT_CHILD_REORDERED


EVT_NAME_CHANGED

Static Readonly EVT_NAME_CHANGED: "nameChanged"

The name of the event that is emitted whenever the name of this object changes.

The argument suplied is the new CoreObject.name of the object.

Inherited from

Node.EVT_NAME_CHANGED


EVT_PROPERTY_CHANGED

Static Readonly EVT_PROPERTY_CHANGED: "propertyChanged"

The name of the event that is emitted whenever a property of this object changes.

The arguments supplied are: (1) The name of the property that has changed and (2) the new value of that property.

Inherited from

Node.EVT_PROPERTY_CHANGED


EVT_TRANSFORM_CHANGED

Static Readonly EVT_TRANSFORM_CHANGED: "transformChanged"

The name of the event that is emitted whenever the x, y or angle properties of this Node are changed.

Note that this event is not emitted when x, y or angle properties are changed as a result of an update().

Inherited from

Node.EVT_TRANSFORM_CHANGED

Accessors

allowSleep

get allowSleep(): boolean

Returns

boolean

set allowSleep(v): void

Parameters

NameType
vboolean

Returns

void


alpha

get alpha(): number

Node's alpha

This value is between 0 (transparent) and 1.0 (opaque). This property can be considered as the "master" opacity of the node. Defaults to 1 (fully opaque)

Returns

number

Inherited from

Node.alpha

set alpha(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

Node.alpha


angle

get angle(): number

Node's angle (in degrees)

Returns

number

Inherited from

Node.angle

set angle(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

Node.angle


assetsLibrary

get assetsLibrary(): AssetsLibrary

Returns

AssetsLibrary


backgroundColor

get backgroundColor(): number

Returns

number

set backgroundColor(v): void

Parameters

NameType
vnumber

Returns

void


childCount

get childCount(): number

Returns the number of children this node contains.

Returns

number

Inherited from

Node.childCount


children

get children(): Node[]

Returns the children of this node.

Returns

Node[]

Inherited from

Node.children


continuousPhysics

get continuousPhysics(): boolean

Returns

boolean

set continuousPhysics(v): void

Parameters

NameType
vboolean

Returns

void


flags

get flags(): CoreObjectFlags

Returns

CoreObjectFlags

Inherited from

Node.flags


followedNodeId

get followedNodeId(): string

Returns

string

set followedNodeId(v): void

Parameters

NameType
vstring

Returns

void


gravityX

get gravityX(): number

Returns

number

set gravityX(v): void

Parameters

NameType
vnumber

Returns

void


gravityY

get gravityY(): number

Returns

number

set gravityY(v): void

Parameters

NameType
vnumber

Returns

void


groundBody

get groundBody(): b2Body

By default, the scene contains a "ground" body (useful for creating joints)

Returns

b2Body


id

get id(): string

Object's (unique) id

Note that the id of the object cannot be set (it is automatically assigned upon construction)

Returns

string

Inherited from

Node.id


layers

get layers(): ISceneLayers

Returns

ISceneLayers


layersArray

get layersArray(): SceneLayer[]

Returns

SceneLayer[]


metaObject

get metaObject(): MetaObject

Returns the MetaObject that describes this class

Returns

MetaObject

Overrides

Node.metaObject


name

get name(): string

The object's name

The object's name is a free text value which defaults to an empty string.

Note that when the name of the object changes, the CoreObject.EVT_NAME_CHANGED signal will be emitted.

Returns

string

Inherited from

Node.name

set name(v): void

Parameters

NameType
vstring

Returns

void

Inherited from

Node.name


parent

get parent(): undefined | Node

Returns the parent of this node (or undefined if this node has no parent).

Returns

undefined | Node

Inherited from

Node.parent


particleIterations

get particleIterations(): number

Returns

number

set particleIterations(v): void

Parameters

NameType
vnumber

Returns

void


particleSystem

get particleSystem(): b2ParticleSystem

Returns

b2ParticleSystem


physicsWorld

get physicsWorld(): b2World

Returns

b2World


positionIterations

get positionIterations(): number

Returns

number

set positionIterations(v): void

Parameters

NameType
vnumber

Returns

void


scripts

get scripts(): string[]

Returns

string[]

Inherited from

Node.scripts

set scripts(v): void

Parameters

NameType
vstring[]

Returns

void

Inherited from

Node.scripts


subStepping

get subStepping(): boolean

Returns

boolean

set subStepping(v): void

Parameters

NameType
vboolean

Returns

void


timeStep

get timeStep(): number

Returns

number

set timeStep(v): void

Parameters

NameType
vnumber

Returns

void


velocityIterations

get velocityIterations(): number

Returns

number

set velocityIterations(v): void

Parameters

NameType
vnumber

Returns

void


viewport

get viewport(): Viewport

Returns

Viewport


viewportCenter

get viewportCenter(): IPoint

Returns

IPoint

set viewportCenter(v): void

Parameters

NameType
vIPoint

Returns

void


viewportPluginsOptions

get viewportPluginsOptions(): any

Returns

any

set viewportPluginsOptions(v): void

Parameters

NameType
vany

Returns

void


viewportZoom

get viewportZoom(): number

Returns

number

set viewportZoom(v): void

Parameters

NameType
vnumber

Returns

void


warmStarting

get warmStarting(): boolean

Returns

boolean

set warmStarting(v): void

Parameters

NameType
vboolean

Returns

void


x

get x(): number

Node's x position (in meters)

Returns

number

Inherited from

Node.x

set x(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

Node.x


y

get y(): number

Node's y position (in meters)

Returns

number

Inherited from

Node.y

set y(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

Node.y

Methods

addChild

addChild(child): boolean

Adds the given child to this node.

If the given child is already contained in this node or it already has a Node.parent then this method will fail (false will be returned).

Otherwise the child will be added to this node and the Node.EVT_CHILD_ADDED signal will be emitted.

Parameters

NameTypeDescription
childNodeThe child to be added to this node.

Returns

boolean

True on success otherwise false.

Inherited from

Node.addChild


addChildren

addChildren(children): void

Convenience method for adding multiple children to this node.

Parameters

NameType
childrenNode[]

Returns

void

Inherited from

Node.addChildren


canAddChild

canAddChild(child): boolean

Returns true if the given child can be added to this node

Parameters

NameType
childNode

Returns

boolean

Overrides

Node.canAddChild


canRemoveChild

canRemoveChild(child): boolean

Returns true if the given child can be removed from this node

Parameters

NameType
childNode

Returns

boolean

Overrides

Node.canRemoveChild


childIndex

childIndex(child): number

Returns the index of the given child (or -1 if child is not contained in thie node).

Parameters

NameType
childNode

Returns

number

Inherited from

Node.childIndex


clone

clone(): Node

Creates and returns a clone of this node.

The clone returned will have the same property values as this node except from its CoreObject.id.

Returns

Node

A clone of this node.

Inherited from

Node.clone


containsChild

containsChild(child): boolean

Returns true if this node contains the given child

Parameters

NameType
childNode

Returns

boolean

Inherited from

Node.containsChild


destroy

destroy(): void

Returns

void

Overrides

Node.destroy


findAncestorByClassName

findAncestorByClassName(className): undefined | Node

Parameters

NameType
classNamestring

Returns

undefined | Node

Inherited from

Node.findAncestorByClassName


findChildById

findChildById(id): undefined | Node

Finds and returns the child with the given id.

Parameters

NameTypeDescription
idstringThe CoreObject.id of the child to search for.

Returns

undefined | Node

The child with the given id or undefined if no such child exists.

Inherited from

Node.findChildById


findChildByName

findChildByName(name): undefined | Node

Finds and returns the first child node with the given name.

Parameters

NameTypeDescription
namestringThe CoreObject.name of the child to search for.

Returns

undefined | Node

The first child with the given name or undefined if no such child exists.

Inherited from

Node.findChildByName


findDescendantById

findDescendantById(id): undefined | Node

Finds and returns the descendant with the given id.

Parameters

NameTypeDescription
idstringThe CoreObject.id of the descendant to search for.

Returns

undefined | Node

The descendant with the given id or undefined if no such descendant exists.

Inherited from

Node.findDescendantById


findSceneAssetById

findSceneAssetById(id): undefined | Asset

Finds and returns the asset specified by the given id. Note that the node needs to be parented to a Scene for this method to work.

Parameters

NameTypeDescription
idstringThe id of the asset to search for.

Returns

undefined | Asset

The matched Asset of undefined if no such asset exists in the scene.

Inherited from

Node.findSceneAssetById


findSceneNode

findSceneNode(): undefined | Node

Uses the Node.findAncestorByClassName to find the Scene that this node is added to. If this node has not yet been added to a scene then this method will return undefined.

Returns

undefined | Node

Inherited from

Node.findSceneNode


fromScreen

fromScreen(position, from?, skipUpdate?): IPointData

Parameters

NameType
positionIPoint
from?Node
skipUpdate?boolean

Returns

IPointData

Inherited from

Node.fromScreen


getAncestors

getAncestors(): Node[]

Returns the ancestors of this node

Returns

Node[]

Inherited from

Node.getAncestors


getAssetIds

getAssetIds(): string[]

Returns the ids of the assets that are used by this Node.

Returns

string[]

The ids of the assets that are used by this Node.

Inherited from

Node.getAssetIds


getBoundingRect

getBoundingRect(): Rectangle

Returns the bounding rectangle of this node in local coordinates.

The default implementation returns the local bounds of the underlying PIXI container but subclasses can re-implement this method to return their custom bounding rectangle.

Returns

Rectangle

Inherited from

Node.getBoundingRect


getDescendants

getDescendants(reversed?): Node[]

Returns the descendants of this node.

A descendant is node that has this node as an ancestor. Consider for example the following tree of nodes:

  • NodeA
    • NodeB
      • NodeD
      • NodeE
    • NodeC

If we ask for the descendants of NodeA we'll get back: [NodeB, NodeD, NodeE, NodeC]

If reversed is set to true then this method will return the reversed descendants. For the example above, that would be: [NodeC, NodeE, NodeD, NodeB, NodeA]. Note that the first item of the reversed descendants has the highest z-index.

Parameters

NameTypeDefault value
reversedbooleanfalse

Returns

Node[]

A list of this node's descendants

Inherited from

Node.getDescendants


getExtras

getExtras(): Object

Returns any extra data that this object needs to save during serialization.

In some cases an object might need to save some extra data without necessarily this extra data being part of its state (e.g. the AssetsLibrary of a Scene). In these cases subclasses can re-implement this method and return the data required.

The default implementation returns undefined meaning that no extra data needs to be saved during serialization.

Returns

Object

NameType
assetsLibraryISerializedAssetsLibrary

Overrides

Node.getExtras


getFilteredDescendants

getFilteredDescendants\<T>(cls): T[]

Returns the descendants of this node that are instances of the class cls

Type parameters

NameType
Textends Node

Parameters

NameType
clsConstructor\<T>

Returns

T[]

Inherited from

Node.getFilteredDescendants


getFilteredDescendantsByClassName

getFilteredDescendantsByClassName(className): Node[]

Returns the descendants of this node that are instances of the class className

Parameters

NameType
classNamestring

Returns

Node[]

Inherited from

Node.getFilteredDescendantsByClassName


getFollowedNode

getFollowedNode(): undefined | Node

Returns

undefined | Node


getLocalTransform

getLocalTransform(): Matrix

Returns a copy of this node's (local) transformation matrix.

Returns

Matrix

Inherited from

Node.getLocalTransform


getNodeScript

getNodeScript(assetId): undefined | NodeScript

Returns the NodeScript that corresponds to the given asset id.

Parameters

NameType
assetIdstring

Returns

undefined | NodeScript

Inherited from

Node.getNodeScript


getNodeScriptByClassName

getNodeScriptByClassName(className): undefined | NodeScript

Returns the NodeScript that corresponds to the given class name.

Parameters

NameType
classNamestring

Returns

undefined | NodeScript

Inherited from

Node.getNodeScriptByClassName


getNodeScripts

getNodeScripts(): NodeScript[]

Returns all NodeScripts of this Node.

Returns

NodeScript[]

Inherited from

Node.getNodeScripts


getPosition

getPosition(): IPoint

Convenience method which returns the node's position as a x,y object

Returns

IPoint

Inherited from

Node.getPosition


getSceneBoundingRect

getSceneBoundingRect(): Rectangle

Returns the bounding rect of this node in scene coordinates.

Returns

Rectangle

Inherited from

Node.getSceneBoundingRect


getScenePosition

getScenePosition(): IPoint

Returns the Node's position in Scene coordinates.

Returns

IPoint

Inherited from

Node.getScenePosition


getSceneTransform

getSceneTransform(): Matrix

Returns a copy of this node's scene transformation matrix. Use this matrix to map coordinates from this node's local coordinate system to the scene's coordinate system. To map coordinates from the scene, you must first invert the returned matrix.

Unlike getLocalTransform(), which returns only the local transformation, this function includes the node's (and any parents') position, and all the transfomation properties.

Returns

Matrix

Inherited from

Node.getSceneTransform


getShape

getShape(): Polygon

Returns the shape of this Node in local coordinates.

Note that the returned shape might be empty.

The shape of a Node is used for many things, including boolean operations and selection.

The default implementation calls getBoundingRect() to return a simple rectangular shape, but subclasses can reimplement this function to return a more accurate shape for non-rectangular items.

Returns

Polygon

Inherited from

Node.getShape


getSnapPoints

getSnapPoints(snapMode): ISnapPoint[]

Snap Points

Parameters

NameType
snapModenumber

Returns

ISnapPoint[]

Inherited from

Node.getSnapPoints


getState

getState(minified?): any

Returns this object's state

The object's state is an object containing key/value pairs corresponding to this object's properties. For example:

{
id: "Ssba4ch5ruok",
name: "Circle",
radius: 2,
// ...
}

To avoid including properties that are currently in their default value you can set minified = true when calling getState.

Note that read-only properties are not part of the object's state (with the exception of the id)

Parameters

NameTypeDefault valueDescription
minifiedbooleanfalseWhether to return a minified state or not

Returns

any

Inherited from

Node.getState


getTransformedShape

getTransformedShape(): Polygon

Returns the shape of this Node in scene coordinates.

Note that the returned shape might be empty.

Returns

Polygon

Inherited from

Node.getTransformedShape


index

index(): number

Returns the index of this Node relatively to its parent. If this Node has no parent then -1 is returned.

Returns

number

Inherited from

Node.index


initNode

initNode(x?, y?, angle?): void

Convenience method for setting node's Node.x, Node.y and Node.angle

Parameters

NameTypeDefault value
xnumber0
ynumber0
anglenumber0

Returns

void

Inherited from

Node.initNode


insertChild

insertChild(child, index): boolean

Parameters

NameType
childNode
indexnumber

Returns

boolean

Inherited from

Node.insertChild


isDestroyed

isDestroyed(): boolean

Returns true if this node has been destroyed via destroy(). A destroyed Node should not be used.

Returns

boolean

Inherited from

Node.isDestroyed


isSelected

isSelected(): boolean

Returns true if this node is currently selected.

Returns

boolean

Inherited from

Node.isSelected


move

move(d): void

Moves this node by the given d.x, d.y

Parameters

NameType
dIPoint

Returns

void

Inherited from

Node.move


nodeAtPoint

nodeAtPoint\<T>(p, cls?): undefined | T

Returns the top-most child node of the scene at the given point.

Uses nodesAtPoint internally

Type parameters

NameType
Textends Node = Node

Parameters

NameType
pIPoint
clsConstructor\<T>

Returns

undefined | T


nodesAtPoint

nodesAtPoint\<T>(p, cls?): T[]

Returns the child nodes of the scene at the given point.

Note that the nodes returned are in reverse order: first item in the list is the top-most item in the view.

Type parameters

NameType
Textends Node = Node

Parameters

NameType
pIPoint
clsConstructor\<T>

Returns

T[]


nodesInRect

nodesInRect\<T>(p1, p2, cls?): T[]

Returns the child nodes of the scene that are either inside or intersect with the rectangle defined by p1 and p2.

Note that if p1 is the upper left and p2 is the lower right corner of the rectangle then only nodes that are completely within then rectangle will be included (window selection). Otherwise, any node that intersects with the rectangle will be included (cross selection)

Note that the nodes returned are in reverse order: first item in the list is the top-most item in the view.

Type parameters

NameType
Textends Node = Node

Parameters

NameType
p1IPoint
p2IPoint
clsConstructor\<T>

Returns

T[]


removeAllChildren

removeAllChildren(): void

Convenience method which removes all children of this node

Returns

void

Inherited from

Node.removeAllChildren


removeChild

removeChild(child): boolean

Parameters

NameType
childNode

Returns

boolean

Inherited from

Node.removeChild


removeChildren

removeChildren(children): void

Convenience method for removing multiple children from this node.

Parameters

NameType
childrenNode[]

Returns

void

Inherited from

Node.removeChildren


reorderChild

reorderChild(child, newIndex): boolean

Moves a child node to a different position (order) among the other children If the operation is successul then the EVT_CHILD_REORDERED signal will be emitted

Parameters

NameTypeDescription
childNodeThe child node to be moved
newIndexnumberThe new index where the child node will be moved

Returns

boolean

true on success otherwise false

Inherited from

Node.reorderChild


setExtras

setExtras(x): boolean

Sets any extra data that this object needs during de-serialization.

Returns true on success, otherwise returns false.

The default implementation does nothing and returns true.

Parameters

NameType
xany

Returns

boolean

Overrides

Node.setExtras


setFlag

setFlag(flag, on?): void

Parameters

NameTypeDefault value
flagCoreObjectFlagsundefined
onbooleantrue

Returns

void

Inherited from

Node.setFlag


setPosition

setPosition(v): void

Convenience method for setting the node's position to the given x,y

Parameters

NameType
vIPoint

Returns

void

Inherited from

Node.setPosition


setScenePosition

setScenePosition(v): void

Sets the Node's scene position.

Parameters

NameType
vIPoint

Returns

void

Inherited from

Node.setScenePosition


setState

setState(state, updateId?): boolean

Sets the object's state

Parameters

NameTypeDefault valueDescription
stateanyundefinedThe state to be set
updateIdbooleantrueWhether to also update the id property

Returns

boolean

True on success otherwise false

Inherited from

Node.setState


testFlag

testFlag(flag): boolean

Parameters

NameType
flagCoreObjectFlags

Returns

boolean

Inherited from

Node.testFlag


toGlobal

toGlobal(position): Point

Parameters

NameType
positionIPoint

Returns

Point

Inherited from

Node.toGlobal


toLocal

toLocal(position): Point

Parameters

NameType
positionIPoint

Returns

Point

Inherited from

Node.toLocal


toScreen

toScreen(position, skipUpdate?): IPointData

Parameters

NameType
positionIPoint
skipUpdate?boolean

Returns

IPointData

Inherited from

Node.toScreen


update

update(delta): void

Updates this node.

The default update will do the following:

  • If this node has a script attached to it then it will call the script's update method
  • Call update for each child of this node.

Parameters

NameTypeDescription
deltanumberNot currently used

Returns

void

Overrides

Node.update