Skip to main content

Class: Paragraph

Defined in: src/mobjects/text/Paragraph.ts:38

Paragraph - A text mobject with automatic word wrapping

Extends Text to add word wrapping functionality. Text is wrapped to fit within a specified width, with configurable alignment.

Example​

// Create a paragraph with max width
const para = new Paragraph({
text: 'This is a long paragraph that will automatically wrap to fit within the specified width.',
width: 4, // 4 world units
alignment: 'justify'
});

// Update width to trigger re-wrap
para.setWidth(3);

Extends​

Constructors​

Constructor​

new Paragraph(options): Paragraph

Defined in: src/mobjects/text/Paragraph.ts:43

Parameters​

options​

ParagraphOptions

Returns​

Paragraph

Overrides​

Text.constructor

Properties​

__savedMobjectState​

__savedMobjectState: unknown = null

Defined in: src/core/Mobject.ts:140

JSON-serializable saved state (used by restoreState()).

Inherited from​

Text.__savedMobjectState


_alignment​

protected _alignment: "center" | "left" | "right" | "justify"

Defined in: src/mobjects/text/Paragraph.ts:40


_blendMode​

protected _blendMode: BlendMode = 'normal'

Defined in: src/core/Mobject.ts:110

Current blend mode for this mobject's own materials (default normal).

Inherited from​

Text._blendMode


_blendModeActive​

protected _blendModeActive: boolean = false

Defined in: src/core/Mobject.ts:116

Whether a blend mode was ever set on this mobject. While false, the blend step in _syncToThree is skipped entirely, so unthemed/unblended mobjects never touch material blending state (keeps the default path exact).

Inherited from​

Text._blendModeActive


_canvas​

protected _canvas: HTMLCanvasElement = null

Defined in: src/mobjects/text/Text.ts:171

Off-screen canvas for text rendering

Inherited from​

Text._canvas


_canvasDirty​

protected _canvasDirty: boolean = true

Defined in: src/mobjects/text/Text.ts:155

Flag to track when canvas content needs re-rendering (text/color/font changes)

Inherited from​

Text._canvasDirty


_color​

protected _color: string = '#ffffff'

Defined in: src/core/Mobject.ts:95

Inherited from​

Text._color


_ctx​

protected _ctx: CanvasRenderingContext2D = null

Defined in: src/mobjects/text/Text.ts:172

Inherited from​

Text._ctx


_dirty​

_dirty: boolean = true

Defined in: src/core/Mobject.ts:132

THREE backing object needs re-sync from this node's transform/state.

Inv​

this._dirty || child._dirty === false // a clean node has a clean subtree

This invariant is what makes the early-return in _syncToThree() and the root-sync in _syncWorldMatrices() correct. It holds because _markDirty() always propagates upward. Marking a node dirty WITHOUT marking its ancestors (e.g. reverting _markDirty to self-only) silently breaks it: a clean ancestor will short-circuit the sync and never reach the dirty descendant, leaving stale world coordinates (issue #251).

Inherited from​

Text._dirty


_disableChildZLayering​

protected _disableChildZLayering: boolean = false

Defined in: src/core/Mobject.ts:118

When true, children skip the 2D z-layering offset in _syncToThree.

Inherited from​

Text._disableChildZLayering


_fontFamily​

protected _fontFamily: string

Defined in: src/mobjects/text/Text.ts:151

Inherited from​

Text._fontFamily


_fontSize​

protected _fontSize: number

Defined in: src/mobjects/text/Text.ts:150

Inherited from​

Text._fontSize


_fontStyle​

protected _fontStyle: string

Defined in: src/mobjects/text/Text.ts:153

Inherited from​

Text._fontStyle


_fontUrl?​

protected optional _fontUrl: string

Defined in: src/mobjects/text/Text.ts:161

Optional font URL for glyph vector extraction

Inherited from​

Text._fontUrl


_fontWeight​

protected _fontWeight: string | number

Defined in: src/mobjects/text/Text.ts:152

Inherited from​

Text._fontWeight


_glyphGroup​

protected _glyphGroup: TextGlyphGroup = null

Defined in: src/mobjects/text/Text.ts:168

Cached glyph group (created lazily by loadGlyphs)

Inherited from​

Text._glyphGroup


_gradient​

protected _gradient: string[] = null

Defined in: src/mobjects/text/Text.ts:166

Linear color gradient (2+ colors), or null when the fill is flat.

Inherited from​

Text._gradient


_isVMobject​

_isVMobject: boolean = false

Defined in: src/core/Mobject.ts:133

Inherited from​

Text._isVMobject


_letterSpacing​

protected _letterSpacing: number

Defined in: src/mobjects/text/Text.ts:157

Inherited from​

Text._letterSpacing


_lineHeight​

protected _lineHeight: number

Defined in: src/mobjects/text/Text.ts:156

Inherited from​

Text._lineHeight


_maxWidth​

protected _maxWidth: number

Defined in: src/mobjects/text/Paragraph.ts:39


_mesh​

protected _mesh: Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap> = null

Defined in: src/mobjects/text/Text.ts:178

Plane mesh for displaying the texture

Inherited from​

Text._mesh


_opacity​

protected _opacity: number = 1

Defined in: src/core/Mobject.ts:106

Inherited from​

Text._opacity


_style​

protected _style: MobjectStyle

Defined in: src/core/Mobject.ts:119

Inherited from​

Text._style


_styleMaps​

protected _styleMaps: TextStyleMaps = {}

Defined in: src/mobjects/text/Text.ts:164

Per-substring style maps (t2c/t2w/t2s). Empty when no styling requested.

Inherited from​

Text._styleMaps


_text​

protected _text: string

Defined in: src/mobjects/text/Text.ts:149

Inherited from​

Text._text


_textAlign​

protected _textAlign: "center" | "left" | "right"

Defined in: src/mobjects/text/Text.ts:158

Inherited from​

Text._textAlign


_texture​

protected _texture: Texture<unknown, TextureEventMap> = null

Defined in: src/mobjects/text/Text.ts:175

Three.js texture from canvas

Inherited from​

Text._texture


_threeObject​

_threeObject: Object3D<Object3DEventMap> = null

Defined in: src/core/Mobject.ts:120

Inherited from​

Text._threeObject


_worldHeight​

protected _worldHeight: number = 0

Defined in: src/mobjects/text/Text.ts:182

Inherited from​

Text._worldHeight


_worldWidth​

protected _worldWidth: number = 0

Defined in: src/mobjects/text/Text.ts:181

Cached dimensions in world units

Inherited from​

Text._worldWidth


_wrappedLines​

protected _wrappedLines: string[] = []

Defined in: src/mobjects/text/Paragraph.ts:41


children​

children: Mobject[] = []

Defined in: src/core/Mobject.ts:90

Inherited from​

Text.children


createdAtBeginning​

createdAtBeginning: boolean = false

Defined in: src/core/Mobject.ts:94

Inherited from​

Text.createdAtBeginning


fillOpacity​

fillOpacity: number = 0

Defined in: src/core/Mobject.ts:108

Inherited from​

Text.fillOpacity


id​

readonly id: string

Defined in: src/core/Mobject.ts:81

Inherited from​

Text.id


parent​

parent: Mobject = null

Defined in: src/core/Mobject.ts:89

Inherited from​

Text.parent


position​

position: Vector3

Defined in: src/core/Mobject.ts:91

Inherited from​

Text.position


rotation​

rotation: Euler

Defined in: src/core/Mobject.ts:92

Inherited from​

Text.rotation


savedState​

savedState: Mobject = null

Defined in: src/core/Mobject.ts:136

Saved mobject copy (used by Restore animation). Set by saveState().

Inherited from​

Text.savedState


scaleVector​

scaleVector: Vector3

Defined in: src/core/Mobject.ts:93

Inherited from​

Text.scaleVector


strokeWidth​

strokeWidth: number = 4

Defined in: src/core/Mobject.ts:107

Inherited from​

Text.strokeWidth


targetCopy​

targetCopy: Mobject = null

Defined in: src/core/Mobject.ts:138

Target copy used by generateTarget() / MoveToTarget animation.

Inherited from​

Text.targetCopy

Accessors​

animate​

Get Signature​

get animate(): AnimateProxy

Defined in: src/core/Mobject.ts:961

Returns an AnimateProxy that records method calls. Pass the proxy to scene.play() to animate from the current state to the state after all recorded calls are applied.

Example​
scene.play(circle.animate.shift([2, 0, 0]));
scene.play(circle.animate.setColor('#ff0000').scale(2));
Returns​

AnimateProxy

Inherited from​

Text.animate


color​

Get Signature​

get color(): string

Defined in: src/core/Mobject.ts:96

Returns​

string

Set Signature​

set color(value): void

Defined in: src/core/Mobject.ts:99

Parameters​
value​

string

Returns​

void

Inherited from​

Text.color


fillColor​

Get Signature​

get fillColor(): string

Defined in: src/core/Mobject.ts:316

Returns​

string

Set Signature​

set fillColor(color): void

Defined in: src/core/Mobject.ts:320

Parameters​
color​

string

Returns​

void

Inherited from​

Text.fillColor


isDirty​

Get Signature​

get isDirty(): boolean

Defined in: src/core/Mobject.ts:1108

Returns​

boolean

Inherited from​

Text.isDirty


opacity​

Get Signature​

get opacity(): number

Defined in: src/core/Mobject.ts:186

Returns​

number

Set Signature​

set opacity(value): void

Defined in: src/core/Mobject.ts:190

Parameters​
value​

number

Returns​

void

Inherited from​

Text.opacity


strokeColor​

Get Signature​

get strokeColor(): string

Defined in: src/core/Mobject.ts:327

Returns​

string

Set Signature​

set strokeColor(color): void

Defined in: src/core/Mobject.ts:331

Parameters​
color​

string

Returns​

void

Inherited from​

Text.strokeColor


style​

Get Signature​

get style(): MobjectStyle

Defined in: src/core/Mobject.ts:194

Returns​

MobjectStyle

Inherited from​

Text.style


submobjects​

Get Signature​

get submobjects(): Mobject[]

Defined in: src/core/Mobject.ts:208

Returns​

Mobject[]

Inherited from​

Text.submobjects


userId​

Get Signature​

get userId(): string

Defined in: src/core/Mobject.ts:169

The user-defined string identifier, or undefined if none was set. Distinct from the internal id uuid. Look a mobject up by this value with Scene.getMobject.

Returns​

string

Inherited from​

Text.userId

Methods​

_applyBlendModeToThree()​

protected _applyBlendModeToThree(): void

Defined in: src/core/Mobject.ts:254

Apply the current blend mode to this node's own three.js materials.

Traverses this mobject's backing object but stops at any submobject's backing object, so each family member owns its own materials (a child with a different blend mode is not clobbered by its parent's traversal).

Returns​

void

Inherited from​

Text._applyBlendModeToThree


_applyFunctionAboutPoint()​

protected _applyFunctionAboutPoint(_fn, _aboutPoint): void

Defined in: src/core/Mobject.ts:1236

Per-node hook called by applyFunctionAboutPoint.

Parameters​

_fn​

(pts) => number[][]

_aboutPoint​

number[]

Returns​

void

Pre​

fn(pts).length === pts.length

Post​

getPoints()[i] === fn(old.getPoints())[i]

Note​

no-op in base Mobject; override in subclasses with own points

Inherited from​

Text._applyFunctionAboutPoint


_buildFontString()​

protected _buildFontString(): string

Defined in: src/mobjects/text/Text.ts:349

Build the CSS font string

Returns​

string

Inherited from​

Text._buildFontString


_carryVisualSizeTo()​

protected _carryVisualSizeTo(copy): void

Defined in: src/mobjects/text/Text.ts:825

Copy this Text's persistent visual-size state onto a freshly-constructed copy.

A subclass _createCopy rebuilds the copy from text+fontSize, so its constructor re-measures from scratch. If the source had its size adjusted via applyVisualSize (e.g. during a shape morph), the copy would otherwise lose it. This builds the copy's mesh first (so _createThreeObject's canvas render recomputes the size before we overwrite it), then applies the source's persistent size to the geometry. (The transform scaleVector is copied separately by _copyBaseAttributesInto.)

Robust whether or not the source was resized: for an unmodified Text this just re-copies the already-equal size, a no-op. Shared by MarkupText/Paragraph, which override _createCopy without calling super.

Parameters​

copy​

Text

Returns​

void

Inherited from​

Text._carryVisualSizeTo


_createThreeObject()​

protected _createThreeObject(): Object3D

Defined in: src/mobjects/text/Text.ts:604

Create the Three.js backing object

Returns​

Object3D

Inherited from​

Text._createThreeObject


_drawJustifiedLine()​

protected _drawJustifiedLine(line, startX, endX, y): void

Defined in: src/mobjects/text/Paragraph.ts:279

Draw a line with justified spacing

Parameters​

line​

string

startX​

number

endX​

number

y​

number

Returns​

void


_drawTextWithLetterSpacing()​

protected _drawTextWithLetterSpacing(text, startX, y, _fontSize): void

Defined in: src/mobjects/text/Text.ts:487

Draw text with custom letter spacing

Parameters​

text​

string

startX​

number

y​

number

_fontSize​

number

Returns​

void

Inherited from​

Text._drawTextWithLetterSpacing


_flattenAsContainer()​

protected _flattenAsContainer(worldMatrix): this

Defined in: src/core/Mobject.ts:1020

Flatten a node whose geometry is fully described by its children (or which has no own geometry): recurse into children, then reset own transform to identity. The transform is not lost — it was folded into the descendants via the composed worldMatrix.

Parameters​

worldMatrix​

Matrix4

Returns​

this

Inherited from​

Text._flattenAsContainer


_flattenAsMesh()​

protected _flattenAsMesh(worldMatrix): this

Defined in: src/core/Mobject.ts:1035

Flatten a Three.js-mesh node that cannot bake geometry into points: absolutize by setting the local transform equal to worldMatrix, so it renders correctly once its (now identity) ancestors collapse. A mesh is a flattening barrier — its descendants stay relative to it.

Parameters​

worldMatrix​

Matrix4

Returns​

this

Inherited from​

Text._flattenAsMesh


_getBoundingBox()​

_getBoundingBox(): object

Defined in: src/core/Mobject.ts:853

Returns​

object

depth​

depth: number

height​

height: number

width​

width: number

Deprecated​

Use getBoundingBox() instead.

Inherited from​

Text._getBoundingBox


_getEdgeInDirection()​

_getEdgeInDirection(direction): Vector3Tuple

Defined in: src/core/Mobject.ts:837

Parameters​

direction​

Vector3Tuple

Returns​

Vector3Tuple

World-space edge position (center + half-bounding-box offset).

Inherited from​

Text._getEdgeInDirection


_handoffTextureMap()​

protected _handoffTextureMap(material, nextTexture, previousTexture): void

Defined in: src/core/TexturedMobject.ts:57

Sets material.map, marks material dirty, and disposes previous texture when replaced.

Parameters​

material​

MeshBasicMaterial

nextTexture​

Texture<unknown, TextureEventMap>

previousTexture​

Texture<unknown, TextureEventMap>

Returns​

void

Inherited from​

Text._handoffTextureMap


_initCanvas()​

protected _initCanvas(): void

Defined in: src/mobjects/text/Text.ts:230

Initialize the off-screen canvas

Returns​

void

Inherited from​

Text._initCanvas


_isNewParagraph()​

protected _isNewParagraph(lines, currentIndex): boolean

Defined in: src/mobjects/text/Paragraph.ts:271

Check if the next line starts a new paragraph (empty line or explicit break)

Parameters​

lines​

string[]

currentIndex​

number

Returns​

boolean


_localToWorld()​

protected _localToWorld(p): Vector3Tuple

Defined in: src/core/Mobject.ts:493

LOCAL point -> WORLD (the frame this node's points live in; this node's own transform IS applied).

Parameters​

p​

Vector3Tuple

Returns​

Vector3Tuple

Post​

result === this._worldMatrix() * p

Inherited from​

Text._localToWorld


_markDirty()​

_markDirty(): void

Defined in: src/core/Mobject.ts:1093

Mark this node's render/transform state stale and propagate the flag to the root. World-space geometry of any node depends on its ancestors' transforms, so a change anywhere must invalidate the whole ancestor chain; the invariant "a clean node has a clean subtree" then lets _syncToThree()/root-sync skip untouched branches safely.

Returns​

void

Post​

this._dirty && (this.parent => this.parent._dirty)

Inherited from​

Text._markDirty


_markDirtyUpward()​

_markDirtyUpward(): void

Defined in: src/core/Mobject.ts:1104

Alias for _markDirty. Retained as the single override point for subclasses (e.g. VMobject) that must also invalidate baked geometry when a mutation propagates upward; transform-only changes call _markDirty() directly.

Returns​

void

Inherited from​

Text._markDirtyUpward


_measureStyledText()​

protected _measureStyledText(): object

Defined in: src/mobjects/text/Text.ts:550

Measure styled (t2c/t2w/t2s) text via the shared styled-run layout helper.

Returns​

object

height​

height: number

lines​

lines: string[]

width​

width: number

Inherited from​

Text._measureStyledText


_measureText()​

protected _measureText(): object

Defined in: src/mobjects/text/Paragraph.ts:153

Override measure text to use wrapped lines

Returns​

object

height​

height: number

lines​

lines: string[]

width​

width: number

Overrides​

Text._measureText


_normalizeChildrenInto()​

protected _normalizeChildrenInto(worldMatrix): void

Defined in: src/core/Mobject.ts:1008

Recurse normalizeTransform into children, composing each child's own matrix onto worldMatrix so every descendant flattens into the same frame.

Parameters​

worldMatrix​

Matrix4

Returns​

void

Inherited from​

Text._normalizeChildrenInto


_ownMatrix()​

_ownMatrix(): Matrix4

Defined in: src/core/Mobject.ts:1142

This node's transform matrix in isolation — position, rotation, and scale composed together, with no ancestor contribution.

Returns​

Matrix4

Post​

this.parent === null => this._computeWorldMatrix() === this._computeOwnMatrix()

Post​

this.parent !== null => this._computeWorldMatrix() === this.parent._computeWorldMatrix() * this._computeOwnMatrix()

Inherited from​

Text._ownMatrix


_renderStyledToCanvas()​

protected _renderStyledToCanvas(): void

Defined in: src/mobjects/text/Text.ts:561

Render styled (t2c/t2w/t2s) text through the shared styled-run renderer, then store the resulting world-space size.

Returns​

void

Inherited from​

Text._renderStyledToCanvas


_renderToCanvas()​

protected _renderToCanvas(): void

Defined in: src/mobjects/text/Paragraph.ts:193

Render text to canvas with justification support

Returns​

void

Overrides​

Text._renderToCanvas


_root()​

_root(): Mobject

Defined in: src/core/Mobject.ts:1113

The topmost ancestor (the node with no parent).

Returns​

Mobject

Inherited from​

Text._root


_rotateAboutParentLocalPoint()​

protected _rotateAboutParentLocalPoint(angle, axis, pivotLocal): void

Defined in: src/core/Mobject.ts:462

Rotate about a pivot expressed in this node's PARENT-local frame (the same frame as this.position). No world-space conversion is done.

Parameters​

angle​

number

axis​

Vector3Tuple

pivotLocal​

Vector3Tuple

Returns​

void

Pre​

pivotLocal is in the same frame as this.position (parent-local)

Post​

the parent-local pivot point is fixed; this.position rotates about it

Post​

this.rotation === old.rotation composed with the requested rotation

Inherited from​

Text._rotateAboutParentLocalPoint


_styledTextParams()​

protected _styledTextParams(): StyledTextParams

Defined in: src/mobjects/text/Text.ts:532

Collect the style and layout fields the styled canvas path needs.

Returns​

StyledTextParams

Inherited from​

Text._styledTextParams


_syncMaterialToThree()​

protected _syncMaterialToThree(): void

Defined in: src/mobjects/text/Text.ts:705

Sync material properties to Three.js

Returns​

void

Inherited from​

Text._syncMaterialToThree


_syncToThree()​

_syncToThree(): void

Defined in: src/core/Mobject.ts:1042

Returns​

void

Inherited from​

Text._syncToThree


_syncWorldMatrices()​

_syncWorldMatrices(): Object3D

Defined in: src/core/Mobject.ts:769

Refresh the THREE world matrices so a geometry query reads current transforms, and return the backing object. World coordinates depend on every ancestor's transform, so we sync from the root (the dirty invariant — see _markDirty — lets the recursion skip clean subtrees). _syncToThree only copies locals onto the THREE objects; setFromObject won't walk up to refresh matrixWorld, so we flush ancestors (true) and descendants (true) here. Shared by getBounds() and getBoundingBox() so both stay consistent.

Returns​

Object3D

Pre​

!this.isEmpty()

Post​

result.min <= result.max component-wise

Inherited from​

Text._syncWorldMatrices


_updateMesh()​

protected _updateMesh(): void

Defined in: src/mobjects/text/Text.ts:586

Update the mesh geometry to match new dimensions

Returns​

void

Inherited from​

Text._updateMesh


_usesStyledPath()​

protected _usesStyledPath(): boolean

Defined in: src/mobjects/text/Text.ts:286

True when this Text renders through the styled-run canvas path: either a per-substring style map (t2c/t2w/t2s) or an active color gradient is set. Plain Text with none of these keeps the original flat render path.

Returns​

boolean

Inherited from​

Text._usesStyledPath


_worldMatrix()​

_worldMatrix(): Matrix4

Defined in: src/core/Mobject.ts:1147

Returns​

Matrix4

Inherited from​

Text._worldMatrix


_worldToLocal()​

protected _worldToLocal(p): Vector3Tuple

Defined in: src/core/Mobject.ts:503

WORLD point -> this node's LOCAL frame. Inverse of _localToWorld.

Parameters​

p​

Vector3Tuple

Returns​

Vector3Tuple

Post​

result === this._worldMatrix().invert() * p

Inherited from​

Text._worldToLocal


_wrapText()​

protected _wrapText(): string[]

Defined in: src/mobjects/text/Paragraph.ts:105

Wrap text to fit within max width

Returns​

string[]

Array of wrapped lines


add()​

add(...mobjects): this

Defined in: src/core/Mobject.ts:587

Parameters​

mobjects​

...Mobject[]

Returns​

this

Inherited from​

Text.add


addUpdater()​

addUpdater(updater, callOnAdd): this

Defined in: src/core/Mobject.ts:1183

Parameters​

updater​

UpdaterFunction

callOnAdd​

boolean = false

Returns​

this

Inherited from​

Text.addUpdater


alignTo()​

alignTo(target, direction): this

Defined in: src/core/Mobject.ts:821

Parameters​

target​

Vector3Tuple | Mobject

direction​

Vector3Tuple

Returns​

this

Inherited from​

Text.alignTo


applyContentFrom()​

applyContentFrom(other): void

Defined in: src/mobjects/text/Text.ts:679

Copy class-authoritative content metadata from another textured mobject so that future sync cycles and API reads (e.g. getText()) reflect the target's content.

Parameters​

other​

TexturedMobject

Returns​

void

Inherited from​

Text.applyContentFrom


applyFunction()​

applyFunction(fn, options?): this

Defined in: src/core/Mobject.ts:1241

Parameters​

fn​

(point) => number[]

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

Text.applyFunction


applyFunctionAboutPoint()​

applyFunctionAboutPoint(fn, aboutPoint): this

Defined in: src/core/Mobject.ts:1220

Apply a function to every descendant's world-space points, about a given point. Recurses the family and delegates to _applyFunctionAboutPoint on each node.

Parameters​

fn​

(pts) => number[][]

aboutPoint​

number[] = ...

Returns​

this

Pre​

fn(pts).length === pts.length

Post​

m.getPoints()[i] === old.m.getPoints().map(p => fn([p - aboutPoint]) + aboutPoint)[i] // for every descendant m

Inherited from​

Text.applyFunctionAboutPoint


applyMatrix()​

applyMatrix(matrix, options?): this

Defined in: src/core/Mobject.ts:1249

Parameters​

matrix​

number[][]

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

Text.applyMatrix


applyTextureFrom()​

applyTextureFrom(other): void

Defined in: src/mobjects/text/Text.ts:653

Copy texture/material-relevant state from another textured mobject.

Parameters​

other​

TexturedMobject

Returns​

void

Inherited from​

Text.applyTextureFrom


applyToFamily()​

applyToFamily(func): this

Defined in: src/core/Mobject.ts:1171

Parameters​

func​

(mobject) => void

Returns​

this

Inherited from​

Text.applyToFamily


applyVisualSize()​

applyVisualSize(width, height): void

Defined in: src/mobjects/text/Text.ts:687

Update class-authoritative visual size state so later sync cycles do not revert display dimensions set during transform finish.

Parameters​

width​

number

height​

number

Returns​

void

Inherited from​

Text.applyVisualSize


become()​

become(other): this

Defined in: src/core/Mobject.ts:700

Parameters​

other​

Mobject

Returns​

this

Inherited from​

Text.become


center()​

center(): this

Defined in: src/core/Mobject.ts:883

Returns​

this

Inherited from​

Text.center


clearUpdaters()​

clearUpdaters(): this

Defined in: src/core/Mobject.ts:1195

Returns​

this

Inherited from​

Text.clearUpdaters


copy()​

copy(): Paragraph

Defined in: src/mobjects/text/Paragraph.ts:332

Create a copy of this Paragraph mobject

Returns​

Paragraph

Overrides​

Text.copy


disableChildZLayering()​

disableChildZLayering(): this

Defined in: src/core/Mobject.ts:1078

Disable the 2D draw-order z-layering offset (idx * 0.01 per non-first child, applied in _syncToThree) for this node and its whole subtree.

The offset is a flat-2D hack that fakes paint order by nudging later siblings toward the camera. Under a 3D perspective camera with real depth sorting it instead corrupts geometry: a group's children drift along world-z proportionally to their index (issue #465). ThreeDScene calls this on every added mobject so 3D scenes opt out. Because the offset is gated on the parent's flag, setting it on a container also covers children added later.

Returns​

this

Inherited from​

Text.disableChildZLayering


dispose()​

dispose(): void

Defined in: src/mobjects/text/Text.ts:840

Clean up Three.js and canvas resources

Returns​

void

Inherited from​

Text.dispose


flip()​

flip(axis, options?): this

Defined in: src/core/Mobject.ts:509

Parameters​

axis​

Vector3Tuple = ...

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

Text.flip


generateTarget()​

generateTarget(): Mobject

Defined in: src/core/Mobject.ts:1264

Returns​

Mobject

Inherited from​

Text.generateTarget


getAlignment()​

getAlignment(): "center" | "left" | "right" | "justify"

Defined in: src/mobjects/text/Paragraph.ts:83

Get the paragraph alignment

Returns​

"center" | "left" | "right" | "justify"


getBlendMode()​

getBlendMode(): BlendMode

Defined in: src/core/Mobject.ts:243

The current blend mode of this mobject.

Returns​

BlendMode

Inherited from​

Text.getBlendMode


getBottom()​

getBottom(): Vector3Tuple

Defined in: src/core/Mobject.ts:862

Returns​

Vector3Tuple

Inherited from​

Text.getBottom


getBoundingBox()​

getBoundingBox(): object

Defined in: src/core/Mobject.ts:840

Returns​

object

depth​

depth: number

height​

height: number

width​

width: number

Inherited from​

Text.getBoundingBox


getBounds()​

getBounds(): object

Defined in: src/core/Mobject.ts:787

World-space axis-aligned bounding box.

Uses Box3.setFromObject() via the Three.js subtree. This works for all standard geometry types without a renderer. VMobject overrides this with point math because Line2's LineGeometry is incompatible with Box3.setFromObject() — see PointBounds.ts for the full explanation.

Returns​

object

max​

max: object

max.x​

x: number

max.y​

y: number

max.z​

z: number

min​

min: object

min.x​

x: number

min.y​

y: number

min.z​

z: number

Pre​

!this.isEmpty()

Post​

result.min <= result.max component-wise

Inherited from​

Text.getBounds


getCenter()​

getCenter(): Vector3Tuple

Defined in: src/mobjects/text/Text.ts:779

Get the center of this text mobject

Returns​

Vector3Tuple

Inherited from​

Text.getCenter


getDepth()​

getDepth(): number

Defined in: src/core/Mobject.ts:849

Returns​

number

Inherited from​

Text.getDepth


getDisplayMeshes()​

getDisplayMeshes(): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>[]

Defined in: src/mobjects/text/Text.ts:641

Return the meshes that visually represent this mobject. Textured morph code can use this for strict single-mesh validation.

Returns​

Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>[]

Inherited from​

Text.getDisplayMeshes


getDisplayMeshLength()​

getDisplayMeshLength(): number

Defined in: src/mobjects/text/Text.ts:637

Return how many display meshes this textured mobject contributes.

Returns​

number

Inherited from​

Text.getDisplayMeshLength


getEdge()​

getEdge(direction): Vector3Tuple

Defined in: src/core/Mobject.ts:856

Parameters​

direction​

Vector3Tuple

Returns​

Vector3Tuple

Inherited from​

Text.getEdge


getFamily()​

getFamily(): Mobject[]

Defined in: src/core/Mobject.ts:1177

Returns​

Mobject[]

Inherited from​

Text.getFamily


getFontFamily()​

getFontFamily(): string

Defined in: src/mobjects/text/Text.ts:314

Get the current font family

Returns​

string

Inherited from​

Text.getFontFamily


getFontSize()​

getFontSize(): number

Defined in: src/mobjects/text/Text.ts:293

Get the current font size

Returns​

number

Inherited from​

Text.getFontSize


getGlyphGroup()​

getGlyphGroup(): TextGlyphGroup

Defined in: src/mobjects/text/Text.ts:722

Get the cached TextGlyphGroup (null until loadGlyphs() resolves).

Returns​

TextGlyphGroup

Inherited from​

Text.getGlyphGroup


getGradient()​

getGradient(): string[]

Defined in: src/mobjects/text/Text.ts:277

Get the configured linear gradient colors, or null when the fill is flat. Returns a copy so callers cannot mutate the internal state.

Returns​

string[]

Inherited from​

Text.getGradient


getHeight()​

getHeight(): number

Defined in: src/mobjects/text/Text.ts:342

Get text height in world units

Returns​

number

Inherited from​

Text.getHeight


getLeft()​

getLeft(): Vector3Tuple

Defined in: src/core/Mobject.ts:865

Returns​

Vector3Tuple

Inherited from​

Text.getLeft


getLocalCenter()​

getLocalCenter(): Vector3Tuple

Defined in: src/core/Mobject.ts:751

Get center in this mobject's parent coordinate frame.

Includes this node's own local transform, excludes ancestor transforms.

Returns​

Vector3Tuple

Post​

this.parent === null => result === this.getCenter()

Post​

this.parent !== null => result === parent._computeWorldMatrix().invert() * this.getCenter()

Inherited from​

Text.getLocalCenter


getMaxWidth()​

getMaxWidth(): number

Defined in: src/mobjects/text/Paragraph.ts:63

Get the maximum width for text wrapping

Returns​

number


getRight()​

getRight(): Vector3Tuple

Defined in: src/core/Mobject.ts:868

Returns​

Vector3Tuple

Inherited from​

Text.getRight


getStyledTextLines()​

getStyledTextLines(): TextStyleRun[][]

Defined in: src/mobjects/text/Text.ts:269

Get the per-substring style layout model: lines of styled runs.

This is the testable model behind t2c/t2w/t2s. A run's null fields fall back to the Text base color/weight/style at render time.

Returns​

TextStyleRun[][]

Inherited from​

Text.getStyledTextLines


getText()​

getText(): string

Defined in: src/mobjects/text/Text.ts:245

Get the current text content

Returns​

string

Inherited from​

Text.getText


getTextureMesh()​

getTextureMesh(): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>

Defined in: src/mobjects/text/Text.ts:772

Get the texture mesh (for animation cross-fade access).

Returns​

Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>

Inherited from​

Text.getTextureMesh


getThreeObject()​

getThreeObject(): Object3D

Defined in: src/core/Mobject.ts:1117

Returns​

Object3D

Inherited from​

Text.getThreeObject


getTop()​

getTop(): Vector3Tuple

Defined in: src/core/Mobject.ts:859

Returns​

Vector3Tuple

Inherited from​

Text.getTop


getUpdaters()​

getUpdaters(): UpdaterFunction[]

Defined in: src/core/Mobject.ts:1202

Returns​

UpdaterFunction[]

Inherited from​

Text.getUpdaters


getWidth()​

getWidth(): number

Defined in: src/mobjects/text/Text.ts:335

Get text width in world units

Returns​

number

Inherited from​

Text.getWidth


hasUpdaters()​

hasUpdaters(): boolean

Defined in: src/core/Mobject.ts:1199

Returns​

boolean

Inherited from​

Text.hasUpdaters


isEmpty()​

isEmpty(): boolean

Defined in: src/core/Mobject.ts:719

Whether this mobject has no renderable geometry. Base default is conservative: non-empty unless specialized subclasses decide otherwise.

Returns​

boolean

Inherited from​

Text.isEmpty


isTransformNormalized()​

isTransformNormalized(): boolean

Defined in: src/core/Mobject.ts:623

Check if this mobject's transform is normalized (rotation=0, scale=1).

Returns​

boolean

Post​

result === (rotation.x==0 && rotation.y==0 && rotation.z==0 && scaleVector===[1,1,1])

Inherited from​

Text.isTransformNormalized


loadGlyphs()​

loadGlyphs(options?): Promise<TextGlyphGroup>

Defined in: src/mobjects/text/Text.ts:735

Lazily create a TextGlyphGroup from the font file at _fontUrl. Returns null if no fontUrl was provided.

Parameters​

options?​
skeletonOptions?​

SkeletonizeOptions

Fine-tuning options for the skeletonization algorithm (grid resolution, smoothing, etc.).

useSkeletonStroke?​

boolean

When true, each glyph computes its skeleton (medial axis) for center-line stroke animation. Default: false.

Returns​

Promise<TextGlyphGroup>

Inherited from​

Text.loadGlyphs


matchDepth()​

matchDepth(mob): this

Defined in: src/core/Mobject.ts:932

Scale uniformly so the depth matches mob's depth.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

Text.matchDepth


matchHeight()​

matchHeight(mob): this

Defined in: src/core/Mobject.ts:928

Scale uniformly so the height matches mob's height.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

Text.matchHeight


matchWidth()​

matchWidth(mob): this

Defined in: src/core/Mobject.ts:924

Scale uniformly so the width matches mob's width.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

Text.matchWidth


matchX()​

matchX(mob): this

Defined in: src/core/Mobject.ts:936

Shift so the center x-coordinate matches mob's.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

Text.matchX


matchY()​

matchY(mob): this

Defined in: src/core/Mobject.ts:940

Shift so the center y-coordinate matches mob's.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

Text.matchY


matchZ()​

matchZ(mob): this

Defined in: src/core/Mobject.ts:944

Shift so the center z-coordinate matches mob's.

Parameters​

mob​

Mobject

Returns​

this

Inherited from​

Text.matchZ


moveTo()​

moveTo(target, alignedEdge?): this

Defined in: src/core/Mobject.ts:362

Move to target position in world space.

Computes the delta from the current world-space center, converts it into this node's parent-local frame (the frame shift()/position live in), and applies it so the world-space center lands on the target. The parent-local conversion is what makes this correct when the node is parented under a scaled/rotated parent — a raw world delta fed to shift() would be scaled/rotated by the parent. For an unparented node the conversion is the identity, so behavior is unchanged.

Parameters​

target​

Vector3Tuple | Mobject

alignedEdge?​

Vector3Tuple

Returns​

this

Post​

result world center === target (within the parent's representable frame)

Pre​

!this.isEmpty() if needed (e.g., VGroup).

Inherited from​

Text.moveTo


moveToAligned()​

moveToAligned(target, alignedEdge?): this

Defined in: src/core/Mobject.ts:831

Parameters​

target​

Vector3Tuple | Mobject

alignedEdge?​

Vector3Tuple

Returns​

this

Inherited from​

Text.moveToAligned


nextTo()​

nextTo(target, direction, buff): this

Defined in: src/core/Mobject.ts:804

Parameters​

target​

Vector3Tuple | Mobject

direction​

Vector3Tuple = RIGHT

buff​

number = 0.25

Returns​

this

Inherited from​

Text.nextTo


normalizeTransform()​

normalizeTransform(worldMatrix): this

Defined in: src/core/TexturedMobject.ts:50

Flatten a textured leaf. Its geometry is a Three.js display mesh, not bakeable points, so — like Mobject3D — it absolutizes rather than resetting to identity: the local transform is set equal to the incoming world matrix and re-applied to the mesh on every _syncToThree. Keeping the scale on scaleVector (instead of folding it into the plane size and resetting, as #417 had to) is inherently durable across async load / canvas re-render, since those rebuild the geometry but not the Mobject transform.

Parameters​

worldMatrix​

Matrix4 = ...

Returns​

this

Post​

old.getBounds() === this.getBounds() // world geometry preserved

Inherited from​

Text.normalizeTransform


prepareForNonlinearTransform()​

prepareForNonlinearTransform(numPieces): this

Defined in: src/core/Mobject.ts:1257

Parameters​

numPieces​

number = 50

Returns​

this

Inherited from​

Text.prepareForNonlinearTransform


remove()​

remove(...mobjects): this

Defined in: src/core/Mobject.ts:602

Parameters​

mobjects​

...Mobject[]

Returns​

this

Inherited from​

Text.remove


removeUpdater()​

removeUpdater(updater): this

Defined in: src/core/Mobject.ts:1189

Parameters​

updater​

UpdaterFunction

Returns​

this

Inherited from​

Text.removeUpdater


replace()​

replace(target, stretch): this

Defined in: src/core/Mobject.ts:705

Parameters​

target​

Mobject

stretch​

boolean = false

Returns​

this

Inherited from​

Text.replace


restoreState()​

restoreState(): boolean

Defined in: src/core/Mobject.ts:1274

Returns​

boolean

Inherited from​

Text.restoreState


rotate()​

rotate(angle, axisOrOptions?): this

Defined in: src/core/Mobject.ts:412

Rotate the mobject by angle around an axis. Accepts aboutPoint or aboutEdge to specify the rotation center.

Parameters​

angle​

number

axisOrOptions?​

Vector3Tuple | AxisOrOptions

Returns​

this

Inherited from​

Text.rotate


rotateAboutOrigin()​

rotateAboutOrigin(angle, axis): this

Defined in: src/core/Mobject.ts:450

Parameters​

angle​

number

axis​

Vector3Tuple = ...

Returns​

this

Inherited from​

Text.rotateAboutOrigin


saveState()​

saveState(): this

Defined in: src/core/Mobject.ts:1269

Returns​

this

Inherited from​

Text.saveState


scale()​

scale(factor, options?): this

Defined in: src/core/Mobject.ts:535

Parameters​

factor​

number | Vector3Tuple

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

Text.scale


scaleToFitDepth()​

scaleToFitDepth(depth): this

Defined in: src/core/Mobject.ts:906

Scale uniformly so the depth becomes depth.

Parameters​

depth​

number

Returns​

this

Inherited from​

Text.scaleToFitDepth


scaleToFitHeight()​

scaleToFitHeight(height): this

Defined in: src/core/Mobject.ts:900

Scale uniformly so the height becomes height.

Parameters​

height​

number

Returns​

this

Inherited from​

Text.scaleToFitHeight


scaleToFitWidth()​

scaleToFitWidth(width): this

Defined in: src/core/Mobject.ts:894

Scale uniformly so the width becomes width.

Parameters​

width​

number

Returns​

this

Inherited from​

Text.scaleToFitWidth


setAlignment()​

setAlignment(alignment): this

Defined in: src/mobjects/text/Paragraph.ts:92

Set paragraph alignment

Parameters​

alignment​

Text alignment

"center" | "left" | "right" | "justify"

Returns​

this

this for chaining


setBlendMode()​

setBlendMode(mode): this

Defined in: src/core/Mobject.ts:233

Set the blend mode for this mobject and its whole family.

The mode flows through to every three.js material of this mobject and its submobjects on the next sync. The default is 'normal' (standard alpha blending), which matches three.js's own default, so output is unchanged until a non-default mode is set.

Parameters​

mode​

BlendMode

One of normal, additive, multiply, subtractive, screen.

Returns​

this

this for chaining.

Inherited from​

Text.setBlendMode


setColor()​

setColor(color): this

Defined in: src/core/Mobject.ts:212

Parameters​

color​

string

Returns​

this

Inherited from​

Text.setColor


setDepth()​

setDepth(depth): this

Defined in: src/core/Mobject.ts:920

CE set_depth (stretch=false default): alias of scaleToFitDepth.

Parameters​

depth​

number

Returns​

this

Inherited from​

Text.setDepth


setFill()​

setFill(color?, opacity?): this

Defined in: src/core/Mobject.ts:310

Parameters​

color?​

string

opacity?​

number

Returns​

this

Inherited from​

Text.setFill


setFillOpacity()​

setFillOpacity(opacity): this

Defined in: src/core/Mobject.ts:300

Parameters​

opacity​

number

Returns​

this

Inherited from​

Text.setFillOpacity


setFontFamily()​

setFontFamily(family): this

Defined in: src/mobjects/text/Text.ts:323

Set font family and re-render

Parameters​

family​

string

CSS font family string

Returns​

this

this for chaining

Inherited from​

Text.setFontFamily


setFontSize()​

setFontSize(size): this

Defined in: src/mobjects/text/Text.ts:302

Set font size and re-render

Parameters​

size​

number

Font size in points

Returns​

this

this for chaining

Inherited from​

Text.setFontSize


setHeight()​

setHeight(height): this

Defined in: src/core/Mobject.ts:916

CE set_height (stretch=false default): alias of scaleToFitHeight.

Parameters​

height​

number

Returns​

this

Inherited from​

Text.setHeight


setStrokeOpacity()​

setStrokeOpacity(opacity): this

Defined in: src/core/Mobject.ts:280

Parameters​

opacity​

number

Returns​

this

Inherited from​

Text.setStrokeOpacity


setStrokeWidth()​

setStrokeWidth(width): this

Defined in: src/core/Mobject.ts:290

Parameters​

width​

number

Returns​

this

Inherited from​

Text.setStrokeWidth


setStyle()​

setStyle(style): this

Defined in: src/core/Mobject.ts:198

Parameters​

style​

Partial<MobjectStyle>

Returns​

this

Inherited from​

Text.setStyle


setText()​

setText(text): this

Defined in: src/mobjects/text/Text.ts:254

Set new text content and re-render

Parameters​

text​

string

New text to display

Returns​

this

this for chaining

Inherited from​

Text.setText


setUserId()​

setUserId(userId): this

Defined in: src/core/Mobject.ts:179

Set the user-defined string identifier used by Scene.getMobject. Chainable, so it fits factory and loop code: factory().setUserId('row-3'). The value need not be unique; the lookup returns the first match.

Parameters​

userId​

string

The identifier to assign

Returns​

this

Inherited from​

Text.setUserId


setWidth()​

setWidth(width): this

Defined in: src/mobjects/text/Paragraph.ts:72

Set maximum width and trigger re-wrap

Parameters​

width​

number

Maximum width in world units

Returns​

this

this for chaining

Overrides​

Text.setWidth


setX()​

setX(x): this

Defined in: src/core/Mobject.ts:871

Parameters​

x​

number

Returns​

this

Inherited from​

Text.setX


setY()​

setY(y): this

Defined in: src/core/Mobject.ts:875

Parameters​

y​

number

Returns​

this

Inherited from​

Text.setY


setZ()​

setZ(z): this

Defined in: src/core/Mobject.ts:879

Parameters​

z​

number

Returns​

this

Inherited from​

Text.setZ


shift()​

shift(delta): this

Defined in: src/core/Mobject.ts:340

Parameters​

delta​

Vector3Tuple

Returns​

this

Inherited from​

Text.shift


stretch()​

stretch(factor, dim, options?): this

Defined in: src/core/Mobject.ts:567

Parameters​

factor​

number

dim​

number

options?​
aboutEdge?​

Vector3Tuple

aboutPoint?​

Vector3Tuple

Returns​

this

Inherited from​

Text.stretch


toCorner()​

toCorner(direction, buff, frameDimensions?): this

Defined in: src/core/Mobject.ts:973

Parameters​

direction​

Vector3Tuple = ...

buff​

number = 0.5

frameDimensions?​

[number, number]

Returns​

this

Inherited from​

Text.toCorner


toEdge()​

toEdge(direction, buff, frameDimensions?): this

Defined in: src/core/Mobject.ts:968

Parameters​

direction​

Vector3Tuple

buff​

number = 0.5

frameDimensions?​

[number, number]

Returns​

this

Inherited from​

Text.toEdge


update()​

update(dt): void

Defined in: src/core/Mobject.ts:1206

Parameters​

dt​

number

Returns​

void

Inherited from​

Text.update