Scene
@physion/app / Exports / Scene
Class: Scene
Special node representing a scene
Hierarchy
↳
Scene
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
Overrides
Properties
serverScene
• serverScene: undefined
| ISceneWithData
userData
• userData: Record
\<string
, unknown
>
Inherited from
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
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
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
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
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
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
Accessors
allowSleep
• get
allowSleep(): boolean
Returns
boolean
• set
allowSleep(v
): void
Parameters
Name | Type |
---|---|
v | boolean |
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
Name | Type |
---|---|
v | number |
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
Name | Type |
---|---|
v | number |
Returns
void
Inherited from
Node.angle
assetsLibrary
• get
assetsLibrary(): AssetsLibrary
Returns
AssetsLibrary
backgroundColor
• get
backgroundColor(): number
Returns
number
• set
backgroundColor(v
): void
Parameters
Name | Type |
---|---|
v | number |
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
Name | Type |
---|---|
v | boolean |
Returns
void
flags
• get
flags(): CoreObjectFlags
Returns
CoreObjectFlags
Inherited from
Node.flags
followedNodeId
• get
followedNodeId(): string
Returns
string
• set
followedNodeId(v
): void
Parameters
Name | Type |
---|---|
v | string |
Returns
void
gravityX
• get
gravityX(): number
Returns
number
• set
gravityX(v
): void
Parameters
Name | Type |
---|---|
v | number |
Returns
void
gravityY
• get
gravityY(): number
Returns
number
• set
gravityY(v
): void
Parameters
Name | Type |
---|---|
v | number |
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
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
Name | Type |
---|---|
v | string |
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
Name | Type |
---|---|
v | number |
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
Name | Type |
---|---|
v | number |
Returns
void
scripts
• get
scripts(): string
[]
Returns
string
[]
Inherited from
Node.scripts
• set
scripts(v
): void
Parameters
Name | Type |
---|---|
v | string [] |
Returns
void
Inherited from
Node.scripts
subStepping
• get
subStepping(): boolean
Returns
boolean
• set
subStepping(v
): void
Parameters
Name | Type |
---|---|
v | boolean |
Returns
void
timeStep
• get
timeStep(): number
Returns
number
• set
timeStep(v
): void
Parameters
Name | Type |
---|---|
v | number |
Returns
void
velocityIterations
• get
velocityIterations(): number
Returns
number
• set
velocityIterations(v
): void
Parameters
Name | Type |
---|---|
v | number |
Returns
void
viewport
• get
viewport(): Viewport
Returns
Viewport
viewportCenter
• get
viewportCenter(): IPoint
Returns
IPoint
• set
viewportCenter(v
): void
Parameters
Name | Type |
---|---|
v | IPoint |
Returns
void
viewportPluginsOptions
• get
viewportPluginsOptions(): any
Returns
any
• set
viewportPluginsOptions(v
): void
Parameters
Name | Type |
---|---|
v | any |
Returns
void
viewportZoom
• get
viewportZoom(): number
Returns
number
• set
viewportZoom(v
): void
Parameters
Name | Type |
---|---|
v | number |
Returns
void
warmStarting
• get
warmStarting(): boolean
Returns
boolean
• set
warmStarting(v
): void
Parameters
Name | Type |
---|---|
v | boolean |
Returns
void
x
• get
x(): number
Node's x position (in meters)
Returns
number
Inherited from
Node.x
• set
x(v
): void
Parameters
Name | Type |
---|---|
v | number |
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
Name | Type |
---|---|
v | number |
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
Name | Type | Description |
---|---|---|
child | Node | The child to be added to this node. |
Returns
boolean
True on success otherwise false.
Inherited from
addChildren
▸ addChildren(children
): void
Convenience method for adding multiple children to this node.
Parameters
Name | Type |
---|---|
children | Node [] |
Returns
void
Inherited from
canAddChild
▸ canAddChild(child
): boolean
Returns true if the given child can be added to this node
Parameters
Name | Type |
---|---|
child | Node |
Returns
boolean
Overrides
canRemoveChild
▸ canRemoveChild(child
): boolean
Returns true if the given child can be removed from this node
Parameters
Name | Type |
---|---|
child | Node |
Returns
boolean
Overrides
childIndex
▸ childIndex(child
): number
Returns the index of the given child (or -1 if child is not contained in thie node).
Parameters
Name | Type |
---|---|
child | Node |
Returns
number
Inherited from
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
A clone of this node.
Inherited from
containsChild
▸ containsChild(child
): boolean
Returns true if this node contains the given child
Parameters
Name | Type |
---|---|
child | Node |
Returns
boolean
Inherited from
destroy
▸ destroy(): void
Returns
void
Overrides
findAncestorByClassName
▸ findAncestorByClassName(className
): undefined
| Node
Parameters
Name | Type |
---|---|
className | string |
Returns
undefined
| Node
Inherited from
findChildById
▸ findChildById(id
): undefined
| Node
Finds and returns the child with the given id.
Parameters
Name | Type | Description |
---|---|---|
id | string | The 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
findChildByName
▸ findChildByName(name
): undefined
| Node
Finds and returns the first child node with the given name.
Parameters
Name | Type | Description |
---|---|---|
name | string | The 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
findDescendantById
▸ findDescendantById(id
): undefined
| Node
Finds and returns the descendant with the given id.
Parameters
Name | Type | Description |
---|---|---|
id | string | The 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
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
Name | Type | Description |
---|---|---|
id | string | The 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
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
fromScreen
▸ fromScreen(position
, from?
, skipUpdate?
): IPointData
Parameters
Name | Type |
---|---|
position | IPoint |
from? | Node |
skipUpdate? | boolean |
Returns
IPointData
Inherited from
getAncestors
▸ getAncestors(): Node
[]
Returns the ancestors of this node
Returns
Node
[]
Inherited from
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
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
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
- NodeB
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
Name | Type | Default value |
---|---|---|
reversed | boolean | false |
Returns
Node
[]
A list of this node's descendants
Inherited from
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
Name | Type |
---|---|
assetsLibrary | ISerializedAssetsLibrary |
Overrides
getFilteredDescendants
▸ getFilteredDescendants\<T
>(cls
): T
[]
Returns the descendants of this node that are instances of the class cls
Type parameters
Name | Type |
---|---|
T | extends Node |
Parameters
Name | Type |
---|---|
cls | Constructor \<T > |
Returns
T
[]
Inherited from
getFilteredDescendantsByClassName
▸ getFilteredDescendantsByClassName(className
): Node
[]
Returns the descendants of this node that are instances of the class className
Parameters
Name | Type |
---|---|
className | string |
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
getNodeScript
▸ getNodeScript(assetId
): undefined
| NodeScript
Returns the NodeScript that corresponds to the given asset id.
Parameters
Name | Type |
---|---|
assetId | string |
Returns
undefined
| NodeScript
Inherited from
getNodeScriptByClassName
▸ getNodeScriptByClassName(className
): undefined
| NodeScript
Returns the NodeScript that corresponds to the given class name.
Parameters
Name | Type |
---|---|
className | string |
Returns
undefined
| NodeScript
Inherited from
getNodeScripts
▸ getNodeScripts(): NodeScript
[]
Returns all NodeScripts of this Node.
Returns
NodeScript
[]
Inherited from
getPosition
▸ getPosition(): IPoint
Convenience method which returns the node's position as a x,y object
Returns
IPoint
Inherited from
getSceneBoundingRect
▸ getSceneBoundingRect(): Rectangle
Returns the bounding rect of this node in scene coordinates.
Returns
Rectangle
Inherited from
getScenePosition
▸ getScenePosition(): IPoint
Returns the Node's position in Scene coordinates.
Returns
IPoint
Inherited from
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
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
getSnapPoints
▸ getSnapPoints(snapMode
): ISnapPoint
[]
Snap Points
Parameters
Name | Type |
---|---|
snapMode | number |
Returns
ISnapPoint
[]
Inherited from
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
Name | Type | Default value | Description |
---|---|---|---|
minified | boolean | false | Whether to return a minified state or not |
Returns
any
Inherited from
getTransformedShape
▸ getTransformedShape(): Polygon
Returns the shape of this Node in scene coordinates.
Note that the returned shape might be empty.
Returns
Polygon
Inherited from
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
initNode
▸ initNode(x?
, y?
, angle?
): void
Convenience method for setting node's Node.x, Node.y and Node.angle
Parameters
Name | Type | Default value |
---|---|---|
x | number | 0 |
y | number | 0 |
angle | number | 0 |
Returns
void
Inherited from
insertChild
▸ insertChild(child
, index
): boolean
Parameters
Name | Type |
---|---|
child | Node |
index | number |
Returns
boolean
Inherited from
isDestroyed
▸ isDestroyed(): boolean
Returns true if this node has been destroyed via destroy(). A destroyed Node should not be used.
Returns
boolean
Inherited from
isSelected
▸ isSelected(): boolean
Returns true if this node is currently selected.
Returns
boolean
Inherited from
move
▸ move(d
): void
Moves this node by the given d.x, d.y
Parameters
Name | Type |
---|---|
d | IPoint |
Returns
void
Inherited from
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
Name | Type |
---|---|
T | extends Node = Node |
Parameters
Name | Type |
---|---|
p | IPoint |
cls | Constructor \<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
Name | Type |
---|---|
T | extends Node = Node |
Parameters
Name | Type |
---|---|
p | IPoint |
cls | Constructor \<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
Name | Type |
---|---|
T | extends Node = Node |
Parameters
Name | Type |
---|---|
p1 | IPoint |
p2 | IPoint |
cls | Constructor \<T > |
Returns
T
[]
removeAllChildren
▸ removeAllChildren(): void
Convenience method which removes all children of this node
Returns
void
Inherited from
removeChild
▸ removeChild(child
): boolean
Parameters
Name | Type |
---|---|
child | Node |
Returns
boolean
Inherited from
removeChildren
▸ removeChildren(children
): void
Convenience method for removing multiple children from this node.
Parameters
Name | Type |
---|---|
children | Node [] |
Returns
void
Inherited from
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
Name | Type | Description |
---|---|---|
child | Node | The child node to be moved |
newIndex | number | The new index where the child node will be moved |
Returns
boolean
true on success otherwise false
Inherited from
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
Name | Type |
---|---|
x | any |
Returns
boolean
Overrides
setFlag
▸ setFlag(flag
, on?
): void
Parameters
Name | Type | Default value |
---|---|---|
flag | CoreObjectFlags | undefined |
on | boolean | true |
Returns
void
Inherited from
setPosition
▸ setPosition(v
): void
Convenience method for setting the node's position to the given x,y
Parameters
Name | Type |
---|---|
v | IPoint |
Returns
void
Inherited from
setScenePosition
▸ setScenePosition(v
): void
Sets the Node's scene position.
Parameters
Name | Type |
---|---|
v | IPoint |
Returns
void
Inherited from
setState
▸ setState(state
, updateId?
): boolean
Sets the object's state
Parameters
Name | Type | Default value | Description |
---|---|---|---|
state | any | undefined | The state to be set |
updateId | boolean | true | Whether to also update the id property |
Returns
boolean
True on success otherwise false
Inherited from
testFlag
▸ testFlag(flag
): boolean
Parameters
Name | Type |
---|---|
flag | CoreObjectFlags |
Returns
boolean
Inherited from
toGlobal
▸ toGlobal(position
): Point
Parameters
Name | Type |
---|---|
position | IPoint |
Returns
Point
Inherited from
toLocal
▸ toLocal(position
): Point
Parameters
Name | Type |
---|---|
position | IPoint |
Returns
Point
Inherited from
toScreen
▸ toScreen(position
, skipUpdate?
): IPointData
Parameters
Name | Type |
---|---|
position | IPoint |
skipUpdate? | boolean |
Returns
IPointData
Inherited from
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
Name | Type | Description |
---|---|---|
delta | number | Not currently used |
Returns
void