Skip to content

@bloopjs/toodle


@bloopjs/toodle / scene/JumboQuadNode / JumboQuadNode

Class: JumboQuadNode

Defined in: scene/JumboQuadNode.ts:31

A node in the scene graph that renders a textured quad.

This is a base class and is fairly low level. You will probably want to interact with the wrapper class Toodle.Quad instead.

Extends

Constructors

Constructor

new JumboQuadNode(options, matrixPool): JumboQuadNode

Defined in: scene/JumboQuadNode.ts:35

Parameters

options

JumboQuadOptions

matrixPool

Pool<Float32Array<ArrayBufferLike>>

Returns

JumboQuadNode

Overrides

QuadNode.constructor

Properties

assetManager

assetManager: AssetManager

Defined in: scene/QuadNode.ts:33

Inherited from

QuadNode.assetManager


extra

extra: object

Defined in: scene/QuadNode.ts:264

atlasSize()

atlasSize: () => Size

Returns the size of the texture atlas in texels, by default this is 4096x4096

Returns

Size

cropRatio()

cropRatio: () => Size

Returns the crop ratio for the quad. This is the relative difference in size between the cropped and uncropped texture, and will be 1 if the quad has no transparent pixels or if it is loaded without cropping..

Returns

Size

setAtlasCoords()

setAtlasCoords: (value) => void

Sets the atlas coords for the quad. This is for advanced use cases and by default these are set automatically to reference the right texture atlas region.

Parameters
value

AtlasCoords

The new atlas coords.

Returns

void

Inherited from

QuadNode.extra


id

id: number

Defined in: scene/SceneNode.ts:19

Inherited from

QuadNode.id


label?

optional label: string

Defined in: scene/SceneNode.ts:20

Inherited from

QuadNode.label


nextId

static nextId: number = 1

Defined in: scene/SceneNode.ts:17

Inherited from

QuadNode.nextId

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

Inherited from

QuadNode.aspectRatio


atlasCoords

Get Signature

get atlasCoords(): AtlasCoords

Defined in: scene/JumboQuadNode.ts:80

The atlas coordinates for the quad. These determine the region in the texture atlas that is sampled for rendering in normalized uv space.

Returns

AtlasCoords

Overrides

QuadNode.atlasCoords


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

Inherited from

QuadNode.bottom


bounds

Get Signature

get bounds(): Bounds

Defined in: scene/SceneNode.ts:369

Get the bounds of the node in world space

Returns

Bounds

Inherited from

QuadNode.bounds


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

Inherited from

QuadNode.centerX


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

Inherited from

QuadNode.centerY


children

Get Signature

get children(): SceneNode[]

Defined in: scene/SceneNode.ts:141

The children of the node. Alias for SceneNode.kids.

Returns

SceneNode[]

Inherited from

QuadNode.children


color

Get Signature

get color(): Color

Defined in: scene/QuadNode.ts:128

The tint color of the quad. When drawing shapes, this will be the fill color. When drawing textures, this will be the color multiplier by default. You can also use this value in fragment shaders by referencing vertex.engine_tint

Returns

Color

Set Signature

set color(value): void

Defined in: scene/QuadNode.ts:132

Parameters
value

Color

Returns

void

Inherited from

QuadNode.color


cropOffset

Get Signature

get cropOffset(): Vec2

Defined in: scene/QuadNode.ts:234

The drawing offset of the texture. This can be used to offset the texture from the origin of the quad.

Returns

Vec2

Set Signature

set cropOffset(value): void

Defined in: scene/QuadNode.ts:242

The drawing offset of the texture. This can be used to offset the texture from the origin of the quad.

Parameters
value

Vec2

Returns

void

Inherited from

QuadNode.cropOffset


flipX

Get Signature

get flipX(): boolean

Defined in: scene/QuadNode.ts:194

Whether the image is mirrored horizontally.

true means the image is mirrored (equivalent to a scale.x of -1), false means it is not mirrored.

Returns

boolean

Set Signature

set flipX(value): void

Defined in: scene/QuadNode.ts:204

Sets whether the image is mirrored horizontally.

true mirrors the image (equivalent to a scale.x of -1), false restores normal orientation.

Parameters
value

boolean

Returns

void

Inherited from

QuadNode.flipX


flipY

Get Signature

get flipY(): boolean

Defined in: scene/QuadNode.ts:215

Whether the image is mirrored vertically.

true means the image is mirrored (equivalent to a scale.y of -1), false means it is not mirrored.

Returns

boolean

Set Signature

set flipY(value): void

Defined in: scene/QuadNode.ts:225

Sets whether the image is mirrored vertically.

true mirrors the image (equivalent to a scale.y of -1), false restores normal orientation.

Parameters
value

boolean

Returns

void

Inherited from

QuadNode.flipY


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

Inherited from

QuadNode.hasExplicitLayer


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

Inherited from

QuadNode.isActive


isCircle

Get Signature

get isCircle(): boolean

Defined in: scene/QuadNode.ts:260

Whether this quad is rendering a circle.

Returns

boolean

Inherited from

QuadNode.isCircle


isPrimitive

Get Signature

get isPrimitive(): boolean

Defined in: scene/QuadNode.ts:253

Whether this quad is rendering a primitive shape like a line or a circle/rect.

Returns

boolean

Inherited from

QuadNode.isPrimitive


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

Inherited from

QuadNode.key


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:

ts
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[]

Inherited from

QuadNode.kids


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

Inherited from

QuadNode.layer


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

Inherited from

QuadNode.left


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

Inherited from

QuadNode.matrix


matrixWithSize

Get Signature

get matrixWithSize(): Float32Array<ArrayBufferLike>

Defined in: scene/QuadNode.ts:156

This is the final model matrix used to render the quad, which may differ from the matrix passed down to the node's children. Properties like flipX and flipY or size are applied here but not inherited by children.

Returns

Float32Array<ArrayBufferLike>

Inherited from

QuadNode.matrixWithSize


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

Inherited from

QuadNode.parent


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

Point

Set Signature

set position(value): void

Defined in: scene/SceneNode.ts:171

Parameters
value

Point

Returns

void

Inherited from

QuadNode.position


region

Get Signature

get region(): TexelRegion

Defined in: scene/QuadNode.ts:180

A subregion of the texture to render. This is useful for rendering a single sprite from a spritesheet for instance. It defaults to the full texture.

Returns

TexelRegion

Inherited from

QuadNode.region


renderComponent

Get Signature

get renderComponent(): null | RenderComponent

Defined in: scene/SceneNode.ts:343

Returns

null | RenderComponent

Inherited from

QuadNode.renderComponent


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

Inherited from

QuadNode.right


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

Inherited from

QuadNode.rotation


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

Inherited from

QuadNode.rotationRadians


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

Vec2

Set Signature

set scale(value): void

Defined in: scene/SceneNode.ts:240

Parameters
value

number | Vec2

Returns

void

Inherited from

QuadNode.scale


size

Get Signature

get size(): Size

Defined in: scene/QuadNode.ts:139

The size of the quad. See https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/quad-size-scale.html

Returns

Size

Set Signature

set size(val): void

Defined in: scene/QuadNode.ts:147

The size of the node. See https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/quad-size-scale.html

Parameters
val

Size

Returns

void

Inherited from

QuadNode.size


textureId

Get Signature

get textureId(): string

Defined in: scene/QuadNode.ts:246

Returns

string

Inherited from

QuadNode.textureId


tiles

Get Signature

get tiles(): Required<JumboTileOptions>[]

Defined in: scene/JumboQuadNode.ts:84

Returns

Required<JumboTileOptions>[]


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

Inherited from

QuadNode.top


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

Transform

Inherited from

QuadNode.transform


writeInstance

Get Signature

get writeInstance(): undefined | (array, offset) => void

Defined in: scene/QuadNode.ts:184

Returns

undefined | (array, offset) => void

Inherited from

QuadNode.writeInstance


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

Inherited from

QuadNode.x


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

Inherited from

QuadNode.y

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

Inherited from

QuadNode.add


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

ts
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();

Inherited from

QuadNode.delete


getTileMatrix()

getTileMatrix(tile): Float32Array<ArrayBufferLike>

Defined in: scene/JumboQuadNode.ts:88

Parameters

tile

JumboTileDef

Returns

Float32Array<ArrayBufferLike>


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

ts
const parent = toodle.Node();
const child = toodle.Quad();
const grandchild = toodle.Quad();

parent.add(child);
child.add(grandchild);

parent.remove(child);

Inherited from

QuadNode.remove


setBounds()

setBounds(bounds): JumboQuadNode

Defined in: scene/SceneNode.ts:405

Set the bounds of the node in world space.

Parameters

bounds

Partial<Bounds>

Returns

JumboQuadNode

Inherited from

QuadNode.setBounds


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

Inherited from

QuadNode.setDirty


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

ts
const node = new Node();
const json = JSON.stringify(node); // calls toJSON()
console.log(json)

Inherited from

QuadNode.toJSON


parse()

static parse(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

ts
const node = new Node();
const json = JSON.stringify(node);
const clonedNode = Node.parse(json);

Inherited from

QuadNode.parse