@bloopjs/toodle / scene/SceneNode / SceneNode
Class: SceneNode
Defined in: scene/SceneNode.ts:16
A node in the scene graph.
This is a base class and is fairly low level. You will probably want to interact with the wrapper classes ['Node'] or ['Quad'] instead.
Extended by
Constructors
Constructor
new SceneNode(
opts?):SceneNode
Defined in: scene/SceneNode.ts:36
Parameters
opts?
Returns
SceneNode
Properties
id
id:
number
Defined in: scene/SceneNode.ts:19
label?
optionallabel:string
Defined in: scene/SceneNode.ts:20
nextId
staticnextId:number=1
Defined in: scene/SceneNode.ts:17
Accessors
aspectRatio
Get Signature
get aspectRatio():
number
Defined in: scene/SceneNode.ts:265
The aspect ratio of the node. If the node has no defined size, the aspect ratio will be 1.
Returns
number
bottom
Set Signature
set bottom(
value):void
Defined in: scene/SceneNode.ts:426
Set the bottom edge of the node in world space.
Parameters
value
number
Returns
void
bounds
Get Signature
get bounds():
Bounds
Defined in: scene/SceneNode.ts:369
Get the bounds of the node in world space
Returns
centerX
Set Signature
set centerX(
value):void
Defined in: scene/SceneNode.ts:447
Set the center x of the node in world space.
Parameters
value
number
Returns
void
centerY
Set Signature
set centerY(
value):void
Defined in: scene/SceneNode.ts:454
Set the center y of the node in world space.
Parameters
value
number
Returns
void
children
Get Signature
get children():
SceneNode[]
Defined in: scene/SceneNode.ts:141
The children of the node. Alias for SceneNode.kids.
Returns
SceneNode[]
hasExplicitLayer
Get Signature
get hasExplicitLayer():
boolean
Defined in: scene/SceneNode.ts:334
Returns true if the node has an explicit layer set.
If the node does not have an explicit layer but one of its ancestors does, its layer will be inherited from its parent.
Returns
boolean
isActive
Get Signature
get isActive():
boolean
Defined in: scene/SceneNode.ts:280
isActive is a boolean that determines if the node is active. If a node is not active, it will not be drawn. If any of a node's ancestors are not active, the node will not be active.
Returns
boolean
Set Signature
set isActive(
value):void
Defined in: scene/SceneNode.ts:295
Parameters
value
boolean
Returns
void
key
Get Signature
get key():
string
Defined in: scene/SceneNode.ts:160
Returns the key of the node as set when the node was created.
This key can be used to reference the node from an external lookup system.
Returns
string
kids
Get Signature
get kids():
SceneNode[]
Defined in: scene/SceneNode.ts:134
Returns an array of the node's immediate kids.
Note that these will be returned with a SceneNode type, but can be narrowed if you know the type of them,
for eg:
for (const kid of node.kids) {
if (kid instanceof Scene.QuadNode) {
console.log(kid.color)
}
if (kid instanceof Text.TextNode) {
console.log(kid.text)
}
}Returns
SceneNode[]
layer
Get Signature
get layer():
number
Defined in: scene/SceneNode.ts:305
Nodes are batched for drawing based on their layer. Each layer will submit a separate draw call. Nodes with the same layer will be drawn in the order they are drawn with toodle.Draw Nodes with a higher layer will be drawn on top of nodes with a lower layer.
Returns
number
Set Signature
set layer(
value):void
Defined in: scene/SceneNode.ts:338
Parameters
value
number
Returns
void
left
Set Signature
set left(
value):void
Defined in: scene/SceneNode.ts:419
Set the left edge of the node in world space.
Parameters
value
number
Returns
void
matrix
Get Signature
get matrix():
Float32Array
Defined in: scene/SceneNode.ts:352
This is the model matrix of the node. See https://webgpufundamentals.org/webgpu/lessons/webgpu-matrix-math.html for more information.
Do not edit this matrix directly as it is derived from the node's transform and will be overwritten.
Returns
Float32Array
parent
Get Signature
get parent():
null|SceneNode
Defined in: scene/SceneNode.ts:167
Returns the parent node. See https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/transforms.html
Returns
null | SceneNode
position
Get Signature
get position():
Point
Defined in: scene/SceneNode.ts:179
Position of the node in local space. For world space, use SceneNode.bounds.
Returns
Set Signature
set position(
value):void
Defined in: scene/SceneNode.ts:171
Parameters
value
Returns
void
renderComponent
Get Signature
get renderComponent():
null|RenderComponent
Defined in: scene/SceneNode.ts:343
Returns
null | RenderComponent
right
Set Signature
set right(
value):void
Defined in: scene/SceneNode.ts:440
Set the right edge of the node in world space.
Parameters
value
number
Returns
void
rotation
Get Signature
get rotation():
number
Defined in: scene/SceneNode.ts:216
The rotation of the node in degrees. For radians, see SceneNode.rotationRadians.
Returns
number
Set Signature
set rotation(
value):void
Defined in: scene/SceneNode.ts:207
Parameters
value
number
Returns
void
rotationRadians
Get Signature
get rotationRadians():
number
Defined in: scene/SceneNode.ts:224
The rotation of the node in radians. For degrees, see SceneNode.rotation.
Returns
number
Set Signature
set rotationRadians(
value):void
Defined in: scene/SceneNode.ts:228
Parameters
value
number
Returns
void
scale
Get Signature
get scale():
Vec2
Defined in: scene/SceneNode.ts:236
The scale of the node. See https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/quad-size-scale.html
Returns
Set Signature
set scale(
value):void
Defined in: scene/SceneNode.ts:240
Parameters
value
number | Vec2
Returns
void
size
Get Signature
get size():
null|Size
Defined in: scene/SceneNode.ts:257
Returns
null | Size
Set Signature
set size(
value):void
Defined in: scene/SceneNode.ts:252
The size of the node. See https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/quad-size-scale.html
Parameters
value
null | Size
Returns
void
top
Set Signature
set top(
value):void
Defined in: scene/SceneNode.ts:433
Set the top edge of the node in world space.
Parameters
value
number
Returns
void
transform
Get Signature
get transform():
Transform
Defined in: scene/SceneNode.ts:151
Returns a reference to the node's transform.
Do not edit this transform directly as it won't invalidate cache's correctly. Instead, use convenience properties SceneNode.position, SceneNode.scale, and SceneNode.rotation.
Returns
x
Get Signature
get x():
number
Defined in: scene/SceneNode.ts:191
The local x coordinate of the node.
Returns
number
Set Signature
set x(
value):void
Defined in: scene/SceneNode.ts:183
Parameters
value
number
Returns
void
y
Get Signature
get y():
number
Defined in: scene/SceneNode.ts:203
The local y coordinate of the node.
Returns
number
Set Signature
set y(
value):void
Defined in: scene/SceneNode.ts:195
Parameters
value
number
Returns
void
Methods
add()
add<
T>(kid,index?):T
Defined in: scene/SceneNode.ts:105
Add a child node and return the child node with this node set as its parent.
Type Parameters
T
T extends SceneNode
Parameters
kid
T
index?
number
Returns
T
delete()
delete():
void
Defined in: scene/SceneNode.ts:475
Removes references to this node and all of its children.
Call this to remove a node from a parent's tree and before garbage collection to prevent a node from being retained.
Returns
void
Example
const parent = toodle.Node();
const child = toodle.Quad();
const grandchild = toodle.Quad();
parent.add(child);
child.add(grandchild);
// Will delete `child` and `grandchild`
child.delete();remove()
remove(
kid):void
Defined in: scene/SceneNode.ts:503
Remove any child node from this node. Warns if the child is not found.
The node will still exist as an orphaned node and can still be passed to toodle.Draw or added to another parent.
Alternatively, calling node.delete() on the child will remove it and set it to inactive.
Parameters
kid
SceneNode
Returns
void
Example
const parent = toodle.Node();
const child = toodle.Quad();
const grandchild = toodle.Quad();
parent.add(child);
child.add(grandchild);
parent.remove(child);setBounds()
setBounds(
bounds):SceneNode
Defined in: scene/SceneNode.ts:405
Set the bounds of the node in world space.
Parameters
bounds
Partial<Bounds>
Returns
SceneNode
setDirty()
setDirty():
void
Defined in: scene/SceneNode.ts:534
This marks the node as dirty, invalidating its cache and causing its matrix to be recalculated. This should not be necessary to call directly, but is available for advanced use cases.
Returns
void
toJSON()
toJSON():
object
Defined in: scene/SceneNode.ts:565
This method usually is not called directly. It will be called automatically by JSON.stringify,
see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#description
and SceneNode.parse.
Returns
object
id
id:
number
isActive
isActive:
boolean
kids
kids:
SceneNode[]
label
label:
undefined|string
layer
layer:
null|number
render
render:
null|RenderComponent
transform
transform:
Transform
Example
const node = new Node();
const json = JSON.stringify(node); // calls toJSON()
console.log(json)parse()
staticparse(json):SceneNode
Defined in: scene/SceneNode.ts:549
Parse a node and its descendants from a JSON string. Can be used for deserialization from a file or other source.
Parameters
json
string
Returns
SceneNode
Example
const node = new Node();
const json = JSON.stringify(node);
const clonedNode = Node.parse(json);