Skip to main content

Class: MarkupText

Defined in: mobjects/text/MarkupText.ts:630

MarkupText - A text mobject with Pango-like XML markup support

Supports rich inline formatting via XML tags modelled after Pango markup (the same format used by Python manim's MarkupText).

Example

// Bold and italic
const text = new MarkupText({
text: '<b>Bold</b> and <i>Italic</i> text'
});

// Colored text with span
const colored = new MarkupText({
text: '<span foreground="red">Red</span> and <span color="#00ff00">Green</span>'
});

// Nested formatting
const nested = new MarkupText({
text: '<b><i>Bold Italic</i></b> with <u>underline</u>'
});

// Complex span attributes
const complex = new MarkupText({
text: '<span font_family="Courier" font_size="24" color="yellow" weight="bold">Custom</span> text'
});

// Superscript and subscript
const math = new MarkupText({
text: 'x<sup>2</sup> + y<sub>i</sub>'
});

// Size variations
const sizes = new MarkupText({
text: '<big>Big</big> Normal <small>Small</small>'
});

// Strikethrough
const strike = new MarkupText({
text: '<s>deleted</s> replaced'
});

Also supports the legacy Markdown-style syntax (bold, italic, code) for backward compatibility when no XML tags are detected.

Extends

Constructors

Constructor

new MarkupText(options): MarkupText

Defined in: mobjects/text/MarkupText.ts:637

Parameters

options

TextOptions

Returns

MarkupText

Overrides

Text.constructor

Properties

__savedMobjectState

__savedMobjectState: unknown = null

Defined in: core/Mobject.ts:121

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

Inherited from

Text.__savedMobjectState


_canvas

protected _canvas: HTMLCanvasElement = null

Defined in: mobjects/text/Text.ts:140

Off-screen canvas for text rendering

Inherited from

Text._canvas


_canvasDirty

protected _canvasDirty: boolean = true

Defined in: mobjects/text/Text.ts:129

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

Inherited from

Text._canvasDirty


_codeFontFamily

protected _codeFontFamily: string = 'monospace'

Defined in: mobjects/text/MarkupText.ts:635

Code / monospace font family


_color

protected _color: string = '#ffffff'

Defined in: core/Mobject.ts:84

Inherited from

Text._color


_ctx

protected _ctx: CanvasRenderingContext2D = null

Defined in: mobjects/text/Text.ts:141

Inherited from

Text._ctx


_dirty

_dirty: boolean = true

Defined in: core/Mobject.ts:113

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: core/Mobject.ts:99

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

Inherited from

Text._disableChildZLayering


_fontFamily

protected _fontFamily: string

Defined in: mobjects/text/Text.ts:125

Inherited from

Text._fontFamily


_fontSize

protected _fontSize: number

Defined in: mobjects/text/Text.ts:124

Inherited from

Text._fontSize


_fontStyle

protected _fontStyle: string

Defined in: mobjects/text/Text.ts:127

Inherited from

Text._fontStyle


_fontUrl?

protected optional _fontUrl: string

Defined in: mobjects/text/Text.ts:135

Optional font URL for glyph vector extraction

Inherited from

Text._fontUrl


_fontWeight

protected _fontWeight: string | number

Defined in: mobjects/text/Text.ts:126

Inherited from

Text._fontWeight


_glyphGroup

protected _glyphGroup: TextGlyphGroup = null

Defined in: mobjects/text/Text.ts:137

Cached glyph group (created lazily by loadGlyphs)

Inherited from

Text._glyphGroup


_isVMobject

_isVMobject: boolean = false

Defined in: core/Mobject.ts:114

Inherited from

Text._isVMobject


_letterSpacing

protected _letterSpacing: number

Defined in: mobjects/text/Text.ts:131

Inherited from

Text._letterSpacing


_lineHeight

protected _lineHeight: number

Defined in: mobjects/text/Text.ts:130

Inherited from

Text._lineHeight


_mesh

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

Defined in: mobjects/text/Text.ts:147

Plane mesh for displaying the texture

Inherited from

Text._mesh


_opacity

protected _opacity: number = 1

Defined in: core/Mobject.ts:95

Inherited from

Text._opacity


_style

protected _style: MobjectStyle

Defined in: core/Mobject.ts:100

Inherited from

Text._style


_styledSegments

protected _styledSegments: StyledTextSegment[] = []

Defined in: mobjects/text/MarkupText.ts:632

Parsed styled text segments


_text

protected _text: string

Defined in: mobjects/text/Text.ts:123

Inherited from

Text._text


_textAlign

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

Defined in: mobjects/text/Text.ts:132

Inherited from

Text._textAlign


_texture

protected _texture: Texture<unknown, TextureEventMap> = null

Defined in: mobjects/text/Text.ts:144

Three.js texture from canvas

Inherited from

Text._texture


_threeObject

_threeObject: Object3D<Object3DEventMap> = null

Defined in: core/Mobject.ts:101

Inherited from

Text._threeObject


_worldHeight

protected _worldHeight: number = 0

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

Inherited from

Text._worldHeight


_worldWidth

protected _worldWidth: number = 0

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

Cached dimensions in world units

Inherited from

Text._worldWidth


children

children: Mobject[] = []

Defined in: core/Mobject.ts:79

Inherited from

Text.children


createdAtBeginning

createdAtBeginning: boolean = false

Defined in: core/Mobject.ts:83

Inherited from

Text.createdAtBeginning


fillOpacity

fillOpacity: number = 0

Defined in: core/Mobject.ts:97

Inherited from

Text.fillOpacity


id

readonly id: string

Defined in: core/Mobject.ts:77

Inherited from

Text.id


parent

parent: Mobject = null

Defined in: core/Mobject.ts:78

Inherited from

Text.parent


position

position: Vector3

Defined in: core/Mobject.ts:80

Inherited from

Text.position


rotation

rotation: Euler

Defined in: core/Mobject.ts:81

Inherited from

Text.rotation


savedState

savedState: Mobject = null

Defined in: core/Mobject.ts:117

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

Inherited from

Text.savedState


scaleVector

scaleVector: Vector3

Defined in: core/Mobject.ts:82

Inherited from

Text.scaleVector


strokeWidth

strokeWidth: number = 4

Defined in: core/Mobject.ts:96

Inherited from

Text.strokeWidth


targetCopy

targetCopy: Mobject = null

Defined in: core/Mobject.ts:119

Target copy used by generateTarget() / MoveToTarget animation.

Inherited from

Text.targetCopy

Accessors

animate

Get Signature

get animate(): AnimateProxy

Defined in: core/Mobject.ts:789

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: core/Mobject.ts:85

Returns

string

Set Signature

set color(value): void

Defined in: core/Mobject.ts:88

Parameters
value

string

Returns

void

Inherited from

Text.color


fillColor

Get Signature

get fillColor(): string

Defined in: core/Mobject.ts:210

Returns

string

Set Signature

set fillColor(color): void

Defined in: core/Mobject.ts:214

Parameters
color

string

Returns

void

Inherited from

Text.fillColor


isDirty

Get Signature

get isDirty(): boolean

Defined in: core/Mobject.ts:935

Returns

boolean

Inherited from

Text.isDirty


opacity

Get Signature

get opacity(): number

Defined in: core/Mobject.ts:140

Returns

number

Set Signature

set opacity(value): void

Defined in: core/Mobject.ts:144

Parameters
value

number

Returns

void

Inherited from

Text.opacity


strokeColor

Get Signature

get strokeColor(): string

Defined in: core/Mobject.ts:221

Returns

string

Set Signature

set strokeColor(color): void

Defined in: core/Mobject.ts:225

Parameters
color

string

Returns

void

Inherited from

Text.strokeColor


style

Get Signature

get style(): MobjectStyle

Defined in: core/Mobject.ts:148

Returns

MobjectStyle

Inherited from

Text.style


submobjects

Get Signature

get submobjects(): Mobject[]

Defined in: core/Mobject.ts:162

Returns

Mobject[]

Inherited from

Text.submobjects

Methods

_applyFunctionAboutPoint()

protected _applyFunctionAboutPoint(_fn, _aboutPoint): void

Defined in: core/Mobject.ts:1063

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: mobjects/text/Text.ts:285

Build the CSS font string

Returns

string

Inherited from

Text._buildFontString


_buildStyledFontString()

protected _buildStyledFontString(seg): string

Defined in: mobjects/text/MarkupText.ts:842

Build a CSS font string for a styled segment.

Parameters

seg

StyledTextSegment

Returns

string


_carryVisualSizeTo()

protected _carryVisualSizeTo(copy): void

Defined in: mobjects/text/Text.ts:693

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: mobjects/text/Text.ts:474

Create the Three.js backing object

Returns

Object3D

Inherited from

Text._createThreeObject


_drawTextWithLetterSpacing()

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

Defined in: mobjects/text/Text.ts:414

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: core/Mobject.ts:848

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: core/Mobject.ts:863

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: core/Mobject.ts:742

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: core/Mobject.ts:729

Parameters

direction

Vector3Tuple

Returns

Vector3Tuple

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

Inherited from

Text._getEdgeInDirection


_getPlainText()

protected _getPlainText(): string

Defined in: mobjects/text/MarkupText.ts:861

Get plain text without markup for compatibility

Returns

string


_handoffTextureMap()

protected _handoffTextureMap(material, nextTexture, previousTexture): void

Defined in: 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: mobjects/text/Text.ts:193

Initialize the off-screen canvas

Returns

void

Inherited from

Text._initCanvas


_localToWorld()

protected _localToWorld(p): Vector3Tuple

Defined in: core/Mobject.ts:387

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: core/Mobject.ts:920

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: core/Mobject.ts:931

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


_maxFontSizeInLine()

protected _maxFontSizeInLine(segments): number

Defined in: mobjects/text/MarkupText.ts:912

Get the maximum effective font size in a line (for line height calculation).

Parameters

segments

StyledTextSegment[]

Returns

number


_measureStyledLineWidth()

protected _measureStyledLineWidth(segments): number

Defined in: mobjects/text/MarkupText.ts:897

Measure the pixel width of a line of styled segments (after RESOLUTION_SCALE).

Parameters

segments

StyledTextSegment[]

Returns

number


_measureText()

protected _measureText(): object

Defined in: mobjects/text/MarkupText.ts:925

Split text into lines and measure dimensions

Returns

object

Object with lines array and canvas dimensions

height

height: number

lines

lines: string[]

width

width: number

Overrides

Text._measureText


_normalizeChildrenInto()

protected _normalizeChildrenInto(worldMatrix): void

Defined in: core/Mobject.ts:836

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: core/Mobject.ts:969

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


_parseLegacyMarkup()

protected _parseLegacyMarkup(text): void

Defined in: mobjects/text/MarkupText.ts:743

Legacy Markdown-style parsing (bold, italic, code) for backward compatibility.

Parameters

text

string

Returns

void


_parseMarkup()

protected _parseMarkup(): void

Defined in: mobjects/text/MarkupText.ts:697

Parse the markup text into styled segments.

If the text contains Pango-like XML tags, use the XML parser. Otherwise fall back to legacy Markdown-style parsing for backward compat.

Returns

void


_parsePangoMarkup()

protected _parsePangoMarkup(text): void

Defined in: mobjects/text/MarkupText.ts:715

Parse Pango-like XML markup

Parameters

text

string

Returns

void


_renderToCanvas()

protected _renderToCanvas(): void

Defined in: mobjects/text/MarkupText.ts:963

Render text to the off-screen canvas

Returns

void

Overrides

Text._renderToCanvas


_resolveSegmentFontSize()

protected _resolveSegmentFontSize(seg): number

Defined in: mobjects/text/MarkupText.ts:834

Resolve a styled segment's effective font size (in CSS pixels, before RESOLUTION_SCALE).

Parameters

seg

StyledTextSegment

Returns

number


_root()

_root(): Mobject

Defined in: core/Mobject.ts:940

The topmost ancestor (the node with no parent).

Returns

Mobject

Inherited from

Text._root


_rotateAboutParentLocalPoint()

protected _rotateAboutParentLocalPoint(angle, axis, pivotLocal): void

Defined in: core/Mobject.ts:356

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


_splitStyledSegmentsByLine()

protected _splitStyledSegmentsByLine(): StyledTextSegment[][]

Defined in: mobjects/text/MarkupText.ts:868

Split styled segments by newlines into lines of segments.

Returns

StyledTextSegment[][]


_syncMaterialToThree()

protected _syncMaterialToThree(): void

Defined in: mobjects/text/Text.ts:577

Sync material properties to Three.js

Returns

void

Inherited from

Text._syncMaterialToThree


_syncToThree()

_syncToThree(): void

Defined in: core/Mobject.ts:870

Returns

void

Inherited from

Text._syncToThree


_syncWorldMatrices()

_syncWorldMatrices(): Object3D

Defined in: core/Mobject.ts:661

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: mobjects/text/Text.ts:461

Update the mesh geometry to match new dimensions

Returns

void

Inherited from

Text._updateMesh


_worldMatrix()

_worldMatrix(): Matrix4

Defined in: core/Mobject.ts:974

Returns

Matrix4

Inherited from

Text._worldMatrix


_worldToLocal()

protected _worldToLocal(p): Vector3Tuple

Defined in: core/Mobject.ts:397

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


add()

add(...mobjects): this

Defined in: core/Mobject.ts:481

Parameters

mobjects

...Mobject[]

Returns

this

Inherited from

Text.add


addUpdater()

addUpdater(updater, callOnAdd): this

Defined in: core/Mobject.ts:1010

Parameters

updater

UpdaterFunction

callOnAdd

boolean = false

Returns

this

Inherited from

Text.addUpdater


alignTo()

alignTo(target, direction): this

Defined in: core/Mobject.ts:713

Parameters

target

Mobject | Vector3Tuple

direction

Vector3Tuple

Returns

this

Inherited from

Text.alignTo


applyContentFrom()

applyContentFrom(other): void

Defined in: mobjects/text/Text.ts:551

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: core/Mobject.ts:1068

Parameters

fn

(point) => number[]

options?
aboutEdge?

Vector3Tuple

aboutPoint?

Vector3Tuple

Returns

this

Inherited from

Text.applyFunction


applyFunctionAboutPoint()

applyFunctionAboutPoint(fn, aboutPoint): this

Defined in: core/Mobject.ts:1047

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: core/Mobject.ts:1076

Parameters

matrix

number[][]

options?
aboutEdge?

Vector3Tuple

aboutPoint?

Vector3Tuple

Returns

this

Inherited from

Text.applyMatrix


applyTextureFrom()

applyTextureFrom(other): void

Defined in: mobjects/text/Text.ts:525

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

Parameters

other

TexturedMobject

Returns

void

Inherited from

Text.applyTextureFrom


applyToFamily()

applyToFamily(func): this

Defined in: core/Mobject.ts:998

Parameters

func

(mobject) => void

Returns

this

Inherited from

Text.applyToFamily


applyVisualSize()

applyVisualSize(width, height): void

Defined in: mobjects/text/Text.ts:559

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: core/Mobject.ts:592

Parameters

other

Mobject

Returns

this

Inherited from

Text.become


center()

center(): this

Defined in: core/Mobject.ts:772

Returns

this

Inherited from

Text.center


clearUpdaters()

clearUpdaters(): this

Defined in: core/Mobject.ts:1022

Returns

this

Inherited from

Text.clearUpdaters


copy()

copy(): MarkupText

Defined in: mobjects/text/MarkupText.ts:1097

Create a copy of this Text mobject

Returns

MarkupText

Overrides

Text.copy


disableChildZLayering()

disableChildZLayering(): this

Defined in: core/Mobject.ts:905

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: mobjects/text/Text.ts:708

Clean up Three.js and canvas resources

Returns

void

Inherited from

Text.dispose


flip()

flip(axis, options?): this

Defined in: core/Mobject.ts:403

Parameters

axis

Vector3Tuple = ...

options?
aboutEdge?

Vector3Tuple

aboutPoint?

Vector3Tuple

Returns

this

Inherited from

Text.flip


generateTarget()

generateTarget(): Mobject

Defined in: core/Mobject.ts:1091

Returns

Mobject

Inherited from

Text.generateTarget


getBottom()

getBottom(): Vector3Tuple

Defined in: core/Mobject.ts:751

Returns

Vector3Tuple

Inherited from

Text.getBottom


getBoundingBox()

getBoundingBox(): object

Defined in: core/Mobject.ts:732

Returns

object

depth

depth: number

height

height: number

width

width: number

Inherited from

Text.getBoundingBox


getBounds()

getBounds(): object

Defined in: core/Mobject.ts:679

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: mobjects/text/Text.ts:651

Get the center of this text mobject

Returns

Vector3Tuple

Inherited from

Text.getCenter


getCodeFontFamily()

getCodeFontFamily(): string

Defined in: mobjects/text/MarkupText.ts:662

Get the code font family

Returns

string


getDisplayMeshes()

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

Defined in: mobjects/text/Text.ts:513

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: mobjects/text/Text.ts:509

Return how many display meshes this textured mobject contributes.

Returns

number

Inherited from

Text.getDisplayMeshLength


getEdge()

getEdge(direction): Vector3Tuple

Defined in: core/Mobject.ts:745

Parameters

direction

Vector3Tuple

Returns

Vector3Tuple

Inherited from

Text.getEdge


getFamily()

getFamily(): Mobject[]

Defined in: core/Mobject.ts:1004

Returns

Mobject[]

Inherited from

Text.getFamily


getFontFamily()

getFontFamily(): string

Defined in: mobjects/text/Text.ts:250

Get the current font family

Returns

string

Inherited from

Text.getFontFamily


getFontSize()

getFontSize(): number

Defined in: mobjects/text/Text.ts:229

Get the current font size

Returns

number

Inherited from

Text.getFontSize


getGlyphGroup()

getGlyphGroup(): TextGlyphGroup

Defined in: mobjects/text/Text.ts:594

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

Returns

TextGlyphGroup

Inherited from

Text.getGlyphGroup


getHeight()

getHeight(): number

Defined in: mobjects/text/Text.ts:278

Get text height in world units

Returns

number

Inherited from

Text.getHeight


getLeft()

getLeft(): Vector3Tuple

Defined in: core/Mobject.ts:754

Returns

Vector3Tuple

Inherited from

Text.getLeft


getLocalCenter()

getLocalCenter(): Vector3Tuple

Defined in: core/Mobject.ts:643

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


getRight()

getRight(): Vector3Tuple

Defined in: core/Mobject.ts:757

Returns

Vector3Tuple

Inherited from

Text.getRight


getStyledSegments()

getStyledSegments(): readonly StyledTextSegment[]

Defined in: mobjects/text/MarkupText.ts:683

Get the parsed styled segments (useful for inspection / testing)

Returns

readonly StyledTextSegment[]


getText()

getText(): string

Defined in: mobjects/text/Text.ts:208

Get the current text content

Returns

string

Inherited from

Text.getText


getTextureMesh()

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

Defined in: mobjects/text/Text.ts:644

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: core/Mobject.ts:944

Returns

Object3D

Inherited from

Text.getThreeObject


getTop()

getTop(): Vector3Tuple

Defined in: core/Mobject.ts:748

Returns

Vector3Tuple

Inherited from

Text.getTop


getUpdaters()

getUpdaters(): UpdaterFunction[]

Defined in: core/Mobject.ts:1029

Returns

UpdaterFunction[]

Inherited from

Text.getUpdaters


getWidth()

getWidth(): number

Defined in: mobjects/text/Text.ts:271

Get text width in world units

Returns

number

Inherited from

Text.getWidth


hasUpdaters()

hasUpdaters(): boolean

Defined in: core/Mobject.ts:1026

Returns

boolean

Inherited from

Text.hasUpdaters


isEmpty()

isEmpty(): boolean

Defined in: core/Mobject.ts:611

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: core/Mobject.ts:517

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: mobjects/text/Text.ts:607

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


moveTo()

moveTo(target, alignedEdge?): this

Defined in: core/Mobject.ts:256

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

Mobject | Vector3Tuple

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: core/Mobject.ts:723

Parameters

target

Mobject | Vector3Tuple

alignedEdge?

Vector3Tuple

Returns

this

Inherited from

Text.moveToAligned


nextTo()

nextTo(target, direction, buff): this

Defined in: core/Mobject.ts:696

Parameters

target

Mobject | Vector3Tuple

direction

Vector3Tuple = RIGHT

buff

number = 0.25

Returns

this

Inherited from

Text.nextTo


normalizeTransform()

normalizeTransform(worldMatrix): this

Defined in: 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: core/Mobject.ts:1084

Parameters

numPieces

number = 50

Returns

this

Inherited from

Text.prepareForNonlinearTransform


remove()

remove(...mobjects): this

Defined in: core/Mobject.ts:496

Parameters

mobjects

...Mobject[]

Returns

this

Inherited from

Text.remove


removeUpdater()

removeUpdater(updater): this

Defined in: core/Mobject.ts:1016

Parameters

updater

UpdaterFunction

Returns

this

Inherited from

Text.removeUpdater


replace()

replace(target, stretch): this

Defined in: core/Mobject.ts:597

Parameters

target

Mobject

stretch

boolean = false

Returns

this

Inherited from

Text.replace


restoreState()

restoreState(): boolean

Defined in: core/Mobject.ts:1101

Returns

boolean

Inherited from

Text.restoreState


rotate()

rotate(angle, axisOrOptions?): this

Defined in: core/Mobject.ts:306

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: core/Mobject.ts:344

Parameters

angle

number

axis

Vector3Tuple = ...

Returns

this

Inherited from

Text.rotateAboutOrigin


saveState()

saveState(): this

Defined in: core/Mobject.ts:1096

Returns

this

Inherited from

Text.saveState


scale()

scale(factor, options?): this

Defined in: core/Mobject.ts:429

Parameters

factor

number | Vector3Tuple

options?
aboutEdge?

Vector3Tuple

aboutPoint?

Vector3Tuple

Returns

this

Inherited from

Text.scale


setCodeFontFamily()

setCodeFontFamily(family): this

Defined in: mobjects/text/MarkupText.ts:671

Set the code font family

Parameters

family

string

CSS font family for code / tt text

Returns

this

this for chaining


setColor()

setColor(color): this

Defined in: core/Mobject.ts:166

Parameters

color

string

Returns

this

Inherited from

Text.setColor


setFill()

setFill(color?, opacity?): this

Defined in: core/Mobject.ts:204

Parameters

color?

string

opacity?

number

Returns

this

Inherited from

Text.setFill


setFillOpacity()

setFillOpacity(opacity): this

Defined in: core/Mobject.ts:194

Parameters

opacity

number

Returns

this

Inherited from

Text.setFillOpacity


setFontFamily()

setFontFamily(family): this

Defined in: mobjects/text/Text.ts:259

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: mobjects/text/Text.ts:238

Set font size and re-render

Parameters

size

number

Font size in points

Returns

this

this for chaining

Inherited from

Text.setFontSize


setStrokeOpacity()

setStrokeOpacity(opacity): this

Defined in: core/Mobject.ts:174

Parameters

opacity

number

Returns

this

Inherited from

Text.setStrokeOpacity


setStrokeWidth()

setStrokeWidth(width): this

Defined in: core/Mobject.ts:184

Parameters

width

number

Returns

this

Inherited from

Text.setStrokeWidth


setStyle()

setStyle(style): this

Defined in: core/Mobject.ts:152

Parameters

style

Partial<MobjectStyle>

Returns

this

Inherited from

Text.setStyle


setText()

setText(text): this

Defined in: mobjects/text/MarkupText.ts:650

Set new text content and re-parse markup

Parameters

text

string

Returns

this

Overrides

Text.setText


setX()

setX(x): this

Defined in: core/Mobject.ts:760

Parameters

x

number

Returns

this

Inherited from

Text.setX


setY()

setY(y): this

Defined in: core/Mobject.ts:764

Parameters

y

number

Returns

this

Inherited from

Text.setY


setZ()

setZ(z): this

Defined in: core/Mobject.ts:768

Parameters

z

number

Returns

this

Inherited from

Text.setZ


shift()

shift(delta): this

Defined in: core/Mobject.ts:234

Parameters

delta

Vector3Tuple

Returns

this

Inherited from

Text.shift


stretch()

stretch(factor, dim, options?): this

Defined in: core/Mobject.ts:461

Parameters

factor

number

dim

number

options?
aboutEdge?

Vector3Tuple

aboutPoint?

Vector3Tuple

Returns

this

Inherited from

Text.stretch


toCorner()

toCorner(direction, buff, frameDimensions?): this

Defined in: core/Mobject.ts:801

Parameters

direction

Vector3Tuple = ...

buff

number = 0.5

frameDimensions?

[number, number]

Returns

this

Inherited from

Text.toCorner


toEdge()

toEdge(direction, buff, frameDimensions?): this

Defined in: core/Mobject.ts:796

Parameters

direction

Vector3Tuple

buff

number = 0.5

frameDimensions?

[number, number]

Returns

this

Inherited from

Text.toEdge


update()

update(dt): void

Defined in: core/Mobject.ts:1033

Parameters

dt

number

Returns

void

Inherited from

Text.update