Skip to main content

Node

                            
                              
                                class 
                                Node
                                implements 
                                
                                  
                                    
                                      Promisable
                                      
                                        
                                          
                                            Node
                                          
                                        
                                      
                                    
                                  
                                
                              
                              

Extended by

  • Layout

Constructors

constructor

                            
                              
                                public 
                                new
                                Node
                                
                                  
                                    
                                      {...}
                                      : 
                                      NodeProps
                                    
                                  
                                
                                : 
                                Node
                              
                              

Parameters

Properties

absolutePosition

                            
                              
                                readonly 
                                public 
                                absolutePosition
                                : 
                                SimpleVector2Signal
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

A helper signal for operating on the position in world space.

Retrieving the position using this signal returns the position in worldspace. Similarly, setting the position using this signal transforms thenew value to local space.

If the new value is a function, the position of this node will becontinuously updated to always match the position returned by the function.This can be useful to "pin" the node in a specific place or to make itfollow another node's position.

Unlike position , this signal is not compound - it doesn't containseparate signals for the x and y components.


absoluteRotation

                            
                              
                                readonly 
                                public 
                                absoluteRotation
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      number
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

A helper signal for operating on the rotation in world space.

Retrieving the rotation using this signal returns the rotation in worldspace. Similarly, setting the rotation using this signal transforms thenew value to local space.

If the new value is a function, the rotation of this node will becontinuously updated to always match the rotation returned by the function.


absoluteScale

                            
                              
                                readonly 
                                public 
                                absoluteScale
                                : 
                                SimpleVector2Signal
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

A helper signal for operating on the scale in world space.

Retrieving the scale using this signal returns the scale in world space.Similarly, setting the scale using this signal transforms the new value tolocal space.

If the new value is a function, the scale of this node will be continuouslyupdated to always match the position returned by the function.

Unlike scale , this signal is not compound - it doesn't containseparate signals for the x and y components.


cache

                            
                              
                                readonly 
                                public 
                                cache
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      boolean
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

children

                            
                              
                                readonly 
                                public 
                                children
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      Node
                                      []
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

composite

                            
                              
                                readonly 
                                public 
                                composite
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      boolean
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

compositeOperation

                            
                              
                                readonly 
                                public 
                                compositeOperation
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      GlobalCompositeOperation
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

creationStack

                            
                              
                                readonly 
                                public 
                                creationStack
                                ?: 
                                string
                              
                              

filters

                            
                              
                                readonly 
                                public 
                                filters
                                : 
                                FiltersSignal
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

isClass

                            
                              
                                public 
                                isClass
                                : 
                                boolean
                              
                              

key

                            
                              
                                readonly 
                                public 
                                key
                                : 
                                string
                              
                              

opacity

                            
                              
                                readonly 
                                public 
                                opacity
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      number
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

parent

                            
                              
                                readonly 
                                public 
                                parent
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      
                                        
                                          
                                            null
                                          
                                          
                                            Node
                                          
                                        
                                      
                                    
                                    
                                      void
                                    
                                  
                                
                                 = 
                                ...
                              
                              

position

                            
                              
                                readonly 
                                public 
                                position
                                : 
                                Vector2Signal
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

Represents the position of this node in local space of its parent.

Examples


properties

                            
                              
                                readonly 
                                public 
                                properties
                                : 
                                Record
                                
                                  
                                    
                                      string
                                    
                                    
                                      PropertyMetadata
                                      
                                        
                                          
                                            any
                                          
                                        
                                      
                                    
                                  
                                
                                 = 
                                ...
                              
                              

rotation

                            
                              
                                readonly 
                                public 
                                rotation
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      number
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

Represents the rotation (in degrees) of this node relative to its parent.


scale

                            
                              
                                readonly 
                                public 
                                scale
                                : 
                                Vector2Signal
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

Represents the scale of this node in local space of its parent.

Examples


shadowBlur

                            
                              
                                readonly 
                                public 
                                shadowBlur
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      number
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

shadowColor

                            
                              
                                readonly 
                                public 
                                shadowColor
                                : 
                                ColorSignal
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

shadowOffset

                            
                              
                                readonly 
                                public 
                                shadowOffset
                                : 
                                Vector2Signal
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

zIndex

                            
                              
                                readonly 
                                public 
                                zIndex
                                : 
                                SimpleSignal
                                
                                  
                                    
                                      number
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

Methods

[iterator]

                            
                              
                                public 
                                [iterator]
                                (): 
                                Generator
                                
                                  
                                    
                                      
                                        
                                          
                                            key
                                            : 
                                            string
                                          
                                          
                                            meta
                                            : 
                                            PropertyMetadata
                                            
                                              
                                                
                                                  any
                                                
                                              
                                            
                                          
                                          
                                            signal
                                            : 
                                            SimpleSignal
                                            
                                              
                                                
                                                  any
                                                
                                                
                                                  void
                                                
                                              
                                            
                                          
                                        
                                      
                                    
                                    
                                      void
                                    
                                    
                                      unknown
                                    
                                  
                                
                              
                              

absoluteOpacity

                            
                              
                                public 
                                absoluteOpacity
                                (): 
                                number
                              
                              

add

                            
                              
                                public 
                                add
                                
                                  
                                    
                                      node
                                      : 
                                      ComponentChildren
                                    
                                  
                                
                                : 
                                Node
                              
                              

Add the given node(s) as the children of this node.

The nodes will be appended at the end of the children list.

Examples

Parameters


applyState

                            
                              
                                public 
                                applyState
                                
                                  
                                    
                                      state
                                      : 
                                      NodeState
                                    
                                  
                                
                                : 
                                void
                              
                              

Apply the given state to the node, setting all matching signal values tothe provided values.

Parameters


cacheBBox

                            
                              
                                public 
                                cacheBBox
                                (): 
                                BBox
                              
                              

Get a bounding box for the contents rendered by this node as wellas its children.


clone

                            
                              
                                public 
                                clone
                                
                                  
                                    
                                      customProps
                                      : 
                                      NodeProps
                                       = 
                                      {}
                                    
                                  
                                
                                : 
                                Node
                              
                              

Create a copy of this node.

Parameters


compositeToLocal

                            
                              
                                public 
                                compositeToLocal
                                (): 
                                DOMMatrix
                              
                              

compositeToWorld

                            
                              
                                public 
                                compositeToWorld
                                (): 
                                DOMMatrix
                              
                              

A matrix mapping composite space to world space.

Certain effects such as blur and shadows ignore the current transformation.This matrix can be used to transform their parameters so that the effectappears relative to the closes composite root.


dispose

                            
                              
                                public 
                                dispose
                                (): 
                                void
                              
                              

Prepare this node to be disposed of.

This method is called automatically when a scene is refreshed. It willbe called even if the node is not currently attached to the tree.

The goal of this method is to clean any external references to allow thenode to be garbage collected.


drawOverlay

                            
                              
                                public 
                                drawOverlay
                                
                                  
                                    
                                      context
                                      : 
                                      CanvasRenderingContext2D
                                    
                                    
                                      matrix
                                      : 
                                      DOMMatrix
                                    
                                  
                                
                                : 
                                void
                              
                              

Draw an overlay for this node.

The overlay for the currently inspected node is displayed on top of thecanvas.

The provided context is in screen space. The local-to-screen matrix can beused to transform all shapes that need to be displayed.This approach allows to keep the line widths and gizmo sizes consistent,no matter how zoomed-in the view is.

Parameters


getState

                            
                              
                                public 
                                getState
                                (): 
                                NodeState
                              
                              

Return a snapshot of the node's current signal values.

This method will calculate the values of any reactive properties of thenode at the time the method is called.


hit

                            
                              
                                public 
                                hit
                                
                                  
                                    
                                      position
                                      : 
                                      Vector2
                                    
                                  
                                
                                : 
                                
                                  
                                    
                                      null
                                    
                                    
                                      Node
                                    
                                  
                                
                              
                              

Try to find a node intersecting the given position.

Parameters

  • position : Vector2

    The searched position.


insert

                            
                              
                                public 
                                insert
                                
                                  
                                    
                                      node
                                      : 
                                      ComponentChildren
                                    
                                    
                                      index
                                      : 
                                      number
                                       = 
                                      0
                                    
                                  
                                
                                : 
                                Node
                              
                              

Insert the given node(s) at the specified index in the children list.

Examples

Parameters


instantiate

                            
                              
                                public 
                                instantiate
                                
                                  
                                    
                                      props
                                      : 
                                      NodeProps
                                       = 
                                      {}
                                    
                                  
                                
                                : 
                                Node
                              
                              

Create an instance of this node's class.

Parameters

  • props : NodeProps = {}

    Properties to pass to the constructor.


localToParent

                            
                              
                                public 
                                localToParent
                                (): 
                                DOMMatrix
                              
                              

Get the local-to-parent matrix for this node.

This matrix transforms vectors from local space of this node to local spaceof this node's parent.


localToWorld

                            
                              
                                public 
                                localToWorld
                                (): 
                                DOMMatrix
                              
                              

Get the local-to-world matrix for this node.

This matrix transforms vectors from local space of this node to worldspace.

Examples


move

                            
                              
                                public 
                                move
                                
                                  
                                    
                                      by
                                      : 
                                      number
                                       = 
                                      1
                                    
                                  
                                
                                : 
                                Node
                              
                              

Rearrange this node in relation to its siblings.

Children are rendered starting from the beginning of the children list.We can change the rendering order by rearranging said list.

A positive by arguments move the node up (it will be rendered on top ofthe elements it has passed). Negative values move it down.

Parameters

  • by : number = 1

    Number of places by which the node should be moved.


moveAbove

                            
                              
                                public 
                                moveAbove
                                
                                  
                                    
                                      node
                                      : 
                                      Node
                                    
                                    
                                      directlyAbove
                                      : 
                                      boolean
                                       = 
                                      false
                                    
                                  
                                
                                : 
                                Node
                              
                              

Move the node above the provided node in the parent's layout.

The node will be moved above the provided node and from then on will berendered on top of it. By default, if the node is already positionedhigher than the sibling node, it will not get moved.

Parameters

  • node : Node

    The sibling node below which to move.

  • directlyAbove : boolean = false

    Whether the node should be positioned directly above thesibling. When true, will move the node even if it isalready positioned above the sibling.


moveBelow

                            
                              
                                public 
                                moveBelow
                                
                                  
                                    
                                      node
                                      : 
                                      Node
                                    
                                    
                                      directlyBelow
                                      : 
                                      boolean
                                       = 
                                      false
                                    
                                  
                                
                                : 
                                Node
                              
                              

Move the node below the provided node in the parent's layout.

The node will be moved below the provided node and from then on will berendered below it. By default, if the node is already positioned lower thanthe sibling node, it will not get moved.

Parameters

  • node : Node

    The sibling node below which to move.

  • directlyBelow : boolean = false

    Whether the node should be positioned directly belowthe sibling. When true, will move the node even ifit is already positioned below the sibling.


moveDown

                            
                              
                                public 
                                moveDown
                                (): 
                                Node
                              
                              

Move the node down in relation to its siblings.

The node will exchange places with the sibling right below it (if any) andfrom then on will be rendered under it.


moveTo

                            
                              
                                public 
                                moveTo
                                
                                  
                                    
                                      index
                                      : 
                                      number
                                    
                                  
                                
                                : 
                                Node
                              
                              

Move the node to the provided position relative to its siblings.

If the node is getting moved to a lower position, it will be placed belowthe sibling that's currently at the provided index (if any).If the node is getting moved to a higher position, it will be placed abovethe sibling that's currently at the provided index (if any).

Parameters

  • index : number

    The index to move the node to.


moveToBottom

                            
                              
                                public 
                                moveToBottom
                                (): 
                                Node
                              
                              

Move the node to the bottom in relation to its siblings.

The node will be placed at the beginning of the children list and from thenon will be rendered below all of its siblings.


moveToTop

                            
                              
                                public 
                                moveToTop
                                (): 
                                Node
                              
                              

Move the node to the top in relation to its siblings.

The node will be placed at the end of the children list and from then onwill be rendered on top of all of its siblings.


moveUp

                            
                              
                                public 
                                moveUp
                                (): 
                                Node
                              
                              

Move the node up in relation to its siblings.

The node will exchange places with the sibling right above it (if any) andfrom then on will be rendered on top of it.


reactiveClone

                            
                              
                                public 
                                reactiveClone
                                
                                  
                                    
                                      customProps
                                      : 
                                      NodeProps
                                       = 
                                      {}
                                    
                                  
                                
                                : 
                                Node
                              
                              

Create a reactive copy of this node.

A reactive copy has all its properties dynamically updated to match thesource node.

Parameters


remove

                            
                              
                                public 
                                remove
                                (): 
                                Node
                              
                              

Remove this node from the tree.


removeChildren

                            
                              
                                public 
                                removeChildren
                                (): 
                                void
                              
                              

Remove all children of this node.


render

                            
                              
                                public 
                                render
                                
                                  
                                    
                                      context
                                      : 
                                      CanvasRenderingContext2D
                                    
                                  
                                
                                : 
                                void
                              
                              

Render this node onto the given canvas.

Parameters


reparent

                            
                              
                                public 
                                reparent
                                
                                  
                                    
                                      newParent
                                      : 
                                      Node
                                    
                                  
                                
                                : 
                                void
                              
                              

Change the parent of this node while keeping the absolute transform.

After performing this operation, the node will stay in the same placevisually, but its parent will be changed.

Parameters

  • newParent : Node

    The new parent of this node.


restore

                            
                              
                                public 
                                restore
                                
                                  
                                    
                                      duration
                                      : 
                                      number
                                    
                                    
                                      timing
                                      : 
                                      TimingFunction
                                       = 
                                      easeInOutCubic
                                    
                                  
                                
                                : 
                                
                                  
                                    
                                      undefined
                                    
                                    
                                      ThreadGenerator
                                    
                                  
                                
                              
                              

Restore the node to its last saved state.

This method can be used together with the save method to restore anode to a previously saved state. Restoring a node to a previous stateremoves that state from the state stack.

Examples

Parameters

  • duration : number

    The duration of the transition

  • timing : TimingFunction = easeInOutCubic

    The timing function to use for the transition


save

                            
                              
                                public 
                                save
                                (): 
                                void
                              
                              

Push a snapshot of the node's current state onto the node's state stack.

This method can be used together with the restore method to save anode's current state and later restore it. It is possible to store morethan one state by calling save method multiple times.


snapshotClone

                            
                              
                                public 
                                snapshotClone
                                
                                  
                                    
                                      customProps
                                      : 
                                      NodeProps
                                       = 
                                      {}
                                    
                                  
                                
                                : 
                                Node
                              
                              

Create a copy of this node.

Unlike clone , a snapshot clone calculates any reactive propertiesat the moment of cloning and passes the raw values to the copy.

Parameters


toPromise

                            
                              
                                public 
                                toPromise
                                (): 
                                Promise
                                
                                  
                                    
                                      Node
                                    
                                  
                                
                              
                              

Wait for any asynchronous resources that this node or its children have.

Certain resources like images are always loaded asynchronously.Awaiting this method makes sure that all such resources are done loadingbefore continuing the animation.


view

                            
                              
                                public 
                                view
                                (): 
                                View2D
                              
                              

worldToLocal

                            
                              
                                public 
                                worldToLocal
                                (): 
                                DOMMatrix
                              
                              

Get the world-to-local matrix for this node.

This matrix transforms vectors from world space to local space of thisnode.

Examples


worldToParent

                            
                              
                                public 
                                worldToParent
                                (): 
                                DOMMatrix
                              
                              

Get the world-to-parent matrix for this node.

This matrix transforms vectors from world space to local space of thisnode's parent.