Class: MathTex
Defined in: mobjects/text/MathTex.ts:47
VGroup is a specialized group for VMobjects. Operations apply to all children, and paths can be combined.
Extends
Extended by
Constructors
Constructor
new MathTex(
options):MathTex
Defined in: mobjects/text/MathTex.ts:67
Parameters
options
Returns
MathTex
Overrides
Properties
__savedMobjectState
__savedMobjectState:
unknown=null
Defined in: core/Mobject.ts:121
JSON-serializable saved state (used by restoreState()).
Inherited from
_baseSubpathLengths?
protectedoptional_baseSubpathLengths:number[]
Defined in: core/VMobject.ts:40
Base subpath-length metadata (intrinsic topology, e.g. SVG compound paths).
Inherited from
_color
protected_color:string
Defined in: mobjects/text/MathTex.ts:51
Overrides
_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
_disableChildZLayering
protected_disableChildZLayering:boolean=false
Defined in: core/Mobject.ts:99
When true, children skip the 2D z-layering offset in _syncToThree.
Inherited from
_displayMode
protected_displayMode:boolean
Defined in: mobjects/text/MathTex.ts:50
_fillMaterial
protected_fillMaterial:MeshBasicMaterial=null
Defined in: core/VMobjectRendering.ts:39
Three.js fill material
Inherited from
_fontSize
protected_fontSize:number
Defined in: mobjects/text/MathTex.ts:49
_geometryDirty
protected_geometryDirty:boolean=true
Defined in: core/VMobjectRendering.ts:42
Whether geometry needs rebuild (separate from material dirty)
Inherited from
_isMultiPart
protected_isMultiPart:boolean=false
Defined in: mobjects/text/MathTex.ts:59
Whether this is a multi-part MathTex (created from string[])
_isVMobject
_isVMobject:
boolean=false
Defined in: core/Mobject.ts:114
Inherited from
_latex
protected_latex:string
Defined in: mobjects/text/MathTex.ts:48
_macros
protected_macros:Record<string,string>
Defined in: mobjects/text/MathTex.ts:55
_opacity
protected_opacity:number=1
Defined in: core/Mobject.ts:95
Inherited from
_parts
protected_parts:VGroup[] =[]
Defined in: mobjects/text/MathTex.ts:61
Child part groups (only when _isMultiPart is true)
_points3D
protected_points3D:number[][] =[]
Defined in: core/VMobject.ts:34
Array of cubic Bezier control points in 3D. Each point is [x, y, z]. Stored as: [anchor1, handle1, handle2, anchor2, handle3, handle4, anchor3, ...]
Inherited from
_renderError
protected_renderError:Error=null
Defined in: mobjects/text/MathTex.ts:65
Error from rendering, if any
_renderPromise
protected_renderPromise:Promise<void> =null
Defined in: mobjects/text/MathTex.ts:63
Promise that resolves when rendering is complete
_sceneFrameWidth
_sceneFrameWidth:
number=null
Defined in: core/VMobjectRendering.ts:78
Inherited from
_sceneRendererHeight
_sceneRendererHeight:
number=null
Defined in: core/VMobjectRendering.ts:77
Inherited from
_sceneRendererWidth
_sceneRendererWidth:
number=null
Defined in: core/VMobjectRendering.ts:76
Per-instance renderer context (set by Scene when VMobject is added). When non-null these override the class-level statics so that multiple Scene instances do not corrupt each other's stroke-width calculations.
Inherited from
_strokeMaterial
protected_strokeMaterial:LineMaterial=null
Defined in: core/VMobjectRendering.ts:36
Three.js stroke material (Line2 LineMaterial for thick strokes)
Inherited from
_style
protected_style:MobjectStyle
Defined in: core/Mobject.ts:100
Inherited from
_svgFillOpacity
protected_svgFillOpacity:number
Defined in: mobjects/text/MathTex.ts:53
_svgStrokeWidth
protected_svgStrokeWidth:number
Defined in: mobjects/text/MathTex.ts:52
_svgViewBoxWidth
protected_svgViewBoxWidth:number=1000
Defined in: mobjects/text/MathTex.ts:56
_targetHeight
protected_targetHeight:number
Defined in: mobjects/text/MathTex.ts:54
_threeObject
_threeObject:
Object3D<Object3DEventMap> =null
Defined in: core/Mobject.ts:101
Inherited from
_transformSubpathLengths?
protectedoptional_transformSubpathLengths:number[]
Defined in: core/VMobject.ts:43
Transform-time override for subpath lengths (compound-path metadata).
Inherited from
VGroup._transformSubpathLengths
_visiblePointCount
protected_visiblePointCount:number=null
Defined in: core/VMobject.ts:37
Number of points visible (for Create animation)
Inherited from
children
children:
Mobject[] =[]
Defined in: core/Mobject.ts:79
Inherited from
createdAtBeginning
createdAtBeginning:
boolean=false
Defined in: core/Mobject.ts:83
Inherited from
fillOpacity
fillOpacity:
number=0
Defined in: core/Mobject.ts:97
Inherited from
id
readonlyid:string
Defined in: core/Mobject.ts:77
Inherited from
parent
parent:
Mobject=null
Defined in: core/Mobject.ts:78
Inherited from
position
position:
Vector3
Defined in: core/Mobject.ts:80
Inherited from
rotation
rotation:
Euler
Defined in: core/Mobject.ts:81
Inherited from
savedState
savedState:
Mobject=null
Defined in: core/Mobject.ts:117
Saved mobject copy (used by Restore animation). Set by saveState().
Inherited from
scaleVector
scaleVector:
Vector3
Defined in: core/Mobject.ts:82
Inherited from
strokeWidth
strokeWidth:
number=4
Defined in: core/Mobject.ts:96
Inherited from
targetCopy
targetCopy:
Mobject=null
Defined in: core/Mobject.ts:119
Target copy used by generateTarget() / MoveToTarget animation.
Inherited from
useStrokeMesh
useStrokeMesh:
boolean=false
Defined in: core/VMobjectRendering.ts:146
When true, render stroke as a mesh ring with miter-joined corners instead of Line2 for closed paths.
Inherited from
_frameWidth
static_frameWidth:number=14
Defined in: core/VMobjectRendering.ts:69
Camera frame width in world units (set by Scene, for stroke width conversion)
Inherited from
_rendererHeight
static_rendererHeight:number=450
Defined in: core/VMobjectRendering.ts:66
Inherited from
_rendererWidth
static_rendererWidth:number=800
Defined in: core/VMobjectRendering.ts:65
Renderer resolution for LineMaterial (set by Scene)
Inherited from
useShaderCurves
staticuseShaderCurves:boolean=false
Defined in: core/VMobjectRendering.ts:131
When true, VMobjects use GPU Bezier SDF shaders for stroke rendering instead of the default Line2/LineMaterial approach.
Inherited from
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
Inherited from
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
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
isDirty
Get Signature
get isDirty():
boolean
Defined in: core/Mobject.ts:935
Returns
boolean
Inherited from
length
Get Signature
get length():
number
Defined in: core/VGroup.ts:438
Get the number of vmobjects in this group.
Returns
number
Inherited from
numPoints
Get Signature
get numPoints():
number
Defined in: core/VMobject.ts:183
Get the number of points
Returns
number
Inherited from
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
points
Get Signature
get points():
Point[]
Defined in: core/VGroup.ts:491
Get all points from the VGroup as a flat array (override VMobject). Returns combined points from all children.
Returns
Point[]
Inherited from
shaderCurves
Get Signature
get shaderCurves():
boolean
Defined in: core/VMobjectRendering.ts:168
Check whether this instance should use shader-based Bezier curve rendering.
Returns
boolean
Set Signature
set shaderCurves(
value):void
Defined in: core/VMobjectRendering.ts:173
Enable or disable shader-based Bezier rendering for this instance.
Parameters
value
boolean
Returns
void
Inherited from
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
style
Get Signature
get style():
MobjectStyle
Defined in: core/Mobject.ts:148
Returns
Inherited from
submobjects
Get Signature
get submobjects():
Mobject[]
Defined in: core/Mobject.ts:162
Returns
Mobject[]
Inherited from
visiblePointCount
Get Signature
get visiblePointCount():
number
Defined in: core/VMobject.ts:190
Get the number of visible points (for Create animation)
Returns
number
Set Signature
set visiblePointCount(
count):void
Defined in: core/VMobject.ts:197
Set the number of visible points (for Create animation)
Parameters
count
number
Returns
void
Inherited from
Methods
_applyFunctionAboutPoint()
protected_applyFunctionAboutPoint(fn,aboutPoint):void
Defined in: core/VMobject.ts:155
Parameters
fn
(pts) => number[][]
aboutPoint
number[]
Returns
void
Pre
fn(pts).length === pts.length
Post
getPoints()[i] === fn(old.getPoints().map(p => p - aboutPoint))[i] + aboutPoint
Inherited from
VGroup._applyFunctionAboutPoint
_buildEarcutFillGeometry()
protected_buildEarcutFillGeometry(points3D):BufferGeometry<NormalBufferAttributes,BufferGeometryEventMap>
Defined in: core/VMobjectRendering.ts:213
Parameters
points3D
number[][]
Returns
BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>
Inherited from
VGroup._buildEarcutFillGeometry
_consumePendingScale()
protected_consumePendingScale():void
Defined in: mobjects/text/MathTex.ts:349
Bake any pending parent scaleVector (e.g. from a pre-render scale())
into descendant geometry so post-render shift/moveTo operate in the
same coordinate frame as the rendered glyphs. Without this step the
parent's Three.js scale would silently multiply any later child-frame
translations, producing a mismatch between getCenter() and the
rendered position. See issue #324.
Returns
void
_createThreeObject()
protected_createThreeObject():Object3D
Defined in: core/VGroup.ts:418
Create the Three.js backing object for this VGroup. A VGroup is simply a THREE.Group that contains children.
Returns
Object3D
Inherited from
_disposeRenderingResources()
protected_disposeRenderingResources():void
Defined in: core/VMobjectRendering.ts:627
Returns
void
Inherited from
VGroup._disposeRenderingResources
_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
_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
_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
_getEdgeInDirection()
_getEdgeInDirection(
direction):Vector3Tuple
Defined in: core/Mobject.ts:729
Parameters
direction
Returns
World-space edge position (center + half-bounding-box offset).
Inherited from
_interpolatePointList3D()
protected_interpolatePointList3D(points,targetCount):number[][]
Defined in: core/VMobject.ts:626
Interpolate a 3D point list to have a specific number of points.
Delegates to the bezier-aware resamplePointList3D so that valid cubic
Bezier chains are densified by de Casteljau subdivision rather than
piecewise-linear interpolation. Linear lerp on cubic control points
silently produces invalid handles (handle = midpoint of two adjacent
controls), which renders as flat polygonal segments mid-Transform.
Parameters
points
number[][]
targetCount
number
Returns
number[][]
Inherited from
VGroup._interpolatePointList3D
_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
Returns
Post
result === this._worldMatrix() * p
Inherited from
_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
_markDirtyUpward()
_markDirtyUpward():
void
Defined in: core/VMobjectRendering.ts:189
VMobject-level upward dirty propagation must also mark geometry dirty. This keeps geometry invalidation centralized for point/curve mutations.
Returns
void
Inherited from
_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
_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
_pointsToCurvePath()
protected_pointsToCurvePath():CurvePath<Vector3>
Defined in: core/VMobjectRendering.ts:209
Returns
CurvePath<Vector3>
Inherited from
_pointsToShape()
protected_pointsToShape():Shape
Defined in: core/VMobjectRendering.ts:205
Returns
Shape
Inherited from
_render()
protected_render():Promise<void>
Defined in: mobjects/text/MathTex.ts:220
Render the LaTeX to VMobject paths.
Returns
Promise<void>
_restyleChildren()
protected_restyleChildren(group):void
Defined in: mobjects/text/MathTex.ts:259
Restyle all VMobject children for solid glyph rendering.
Parameters
group
Returns
void
_root()
_root():
Mobject
Defined in: core/Mobject.ts:940
The topmost ancestor (the node with no parent).
Returns
Inherited from
_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
pivotLocal
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
VGroup._rotateAboutParentLocalPoint
_scaleToTarget()
protected_scaleToTarget():void
Defined in: mobjects/text/MathTex.ts:289
Scale and center the assembled paths by transforming point data directly.
Unit flow:
- MathJax path coordinates arrive in font units (~1000 units per em).
- Convert font-size points to world units via DEFAULT_FONT_SIZE_PT baseline.
- Convert MathJax units to em by dividing by MATHJAX_SVG_UNITS_PER_EM.
This keeps MathTex aligned with Text/MathTexImage behavior at 48pt.
Returns
void
_setSceneContext()
_setSceneContext(
rendererWidth,rendererHeight,frameWidth):void
Defined in: core/VMobjectRendering.ts:109
Set per-instance scene context for multi-scene support. Called by Scene when a VMobject is added or the scene is resized.
Parameters
rendererWidth
number
rendererHeight
number
frameWidth
number
Returns
void
Inherited from
_startRender()
protected_startRender():void
Defined in: mobjects/text/MathTex.ts:206
Start the async rendering process.
Returns
void
_syncMaterialToThree()
protected_syncMaterialToThree():void
Defined in: core/VGroup.ts:412
VGroup is a container — it has no stroke/fill materials of its own. The parent VMobjectRendering._syncMaterialToThree() would attempt to rebuild geometry using null materials, causing a "material is null" crash (#206). Children sync their own materials independently.
Returns
void
Inherited from
_syncToThree()
_syncToThree():
void
Defined in: core/Mobject.ts:870
Returns
void
Inherited from
_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
_updateGeometry()
protected_updateGeometry(group):void
Defined in: core/VMobjectRendering.ts:257
Update the geometry within the Three.js group.
Parameters
group
Group
Returns
void
Inherited from
_worldMatrix()
_worldMatrix():
Matrix4
Defined in: core/Mobject.ts:974
Returns
Matrix4
Inherited from
_worldToLocal()
protected_worldToLocal(p):Vector3Tuple
Defined in: core/Mobject.ts:397
WORLD point -> this node's LOCAL frame. Inverse of _localToWorld.
Parameters
p
Returns
Post
result === this._worldMatrix().invert() * p
Inherited from
[iterator]()
[iterator]():
Iterator<VMobject>
Defined in: core/VGroup.ts:454
Iterate over all vmobjects in the group.
Returns
Iterator<VMobject>
Inherited from
add()
add(...
mobjects):this
Defined in: core/VGroup.ts:82
Add mobjects to this group (override from Mobject).
Parameters
mobjects
...Mobject[]
Mobjects to add
Returns
this
this for chaining
Inherited from
addPoints()
addPoints(...
points):this
Defined in: core/VMobject.ts:243
Add points to this VMobject using 2D Point objects
Parameters
points
...Point[]
Returns
this
Inherited from
addPointsAsCorners()
addPointsAsCorners(
corners):this
Defined in: core/VMobject.ts:298
Add straight line segments from the last point to each corner. Each corner creates a new cubic Bezier segment with linear handles. Matches Manim's add_points_as_corners.
Parameters
corners
number[][]
Array of [x, y, z] corner points to connect to
Returns
this
this for chaining
Inherited from
addUpdater()
addUpdater(
updater,callOnAdd):this
Defined in: core/Mobject.ts:1010
Parameters
updater
callOnAdd
boolean = false
Returns
this
Inherited from
addVMobjects()
addVMobjects(...
vmobjects):this
Defined in: core/VGroup.ts:64
Add VMobjects to this group. Accepts VMobjects or arrays of VMobjects.
Parameters
vmobjects
VMobjects to add
Returns
this
this for chaining
Inherited from
alignPoints()
alignPoints(
target):void
Defined in: core/VMobject.ts:515
Align points between this VMobject and a target so they have the same count, consistent winding, and optimal rotation for smooth morphing.
Parameters
target
The target VMobject to align with
Returns
void
Inherited from
alignTo()
alignTo(
target,direction):this
Defined in: core/Mobject.ts:713
Parameters
target
direction
Returns
this
Inherited from
applyFunction()
applyFunction(
fn,options?):this
Defined in: core/Mobject.ts:1068
Parameters
fn
(point) => number[]
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
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
VGroup.applyFunctionAboutPoint
applyMatrix()
applyMatrix(
matrix,options?):this
Defined in: core/Mobject.ts:1076
Parameters
matrix
number[][]
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
applyToFamily()
applyToFamily(
func):this
Defined in: core/Mobject.ts:998
Parameters
func
(mobject) => void
Returns
this
Inherited from
arrange()
arrange(
direction,buff,center):this
Defined in: core/VGroup.ts:263
Arrange children in a row or column with specified spacing.
Parameters
direction
Vector3Tuple = RIGHT
Direction to arrange (e.g., RIGHT for row, DOWN for column)
buff
number = 0.25
Buffer/spacing between children, default 0.25
center
boolean = true
Whether to center the arrangement at the group's position, default true
Returns
this
this for chaining
Inherited from
arrangeInGrid()
arrangeInGrid(
rows?,cols?,buffX?,buffY?):this
Defined in: core/VGroup.ts:341
Arrange children in a grid layout.
Parameters
rows?
number
Number of rows (if not specified, auto-calculated)
cols?
number
Number of columns (if not specified, auto-calculated)
buffX?
number = 0.25
Horizontal buffer between elements, default 0.25
buffY?
number = 0.25
Vertical buffer between elements, default 0.25
Returns
this
this for chaining
Inherited from
become()
become(
other):this
Defined in: core/Mobject.ts:592
Parameters
other
Returns
this
Inherited from
center()
center():
this
Defined in: core/Mobject.ts:772
Returns
this
Inherited from
centerPointsAroundPosition()
centerPointsAroundPosition():
this
Defined in: core/VMobject.ts:830
Centers local geometry around the origin and updates position accordingly.
This scans all descendant VMobject points (not only this._points3D), so container-style VMobjects (e.g. MathTex/SVGMobject/CurvesAsSubmobjects) are also centered correctly.
Returns
this
this for chaining
Inherited from
VGroup.centerPointsAroundPosition
clearPoints()
clearPoints():
this
Defined in: core/VMobject.ts:332
Clear all points
Returns
this
Inherited from
clearUpdaters()
clearUpdaters():
this
Defined in: core/Mobject.ts:1022
Returns
this
Inherited from
copy()
copy():
MathTex
Defined in: mobjects/text/MathTex.ts:485
Copy this VMobject, preserving point data state after morphs/transforms.
For subclasses (Circle, Square, etc.): constructors regenerate points from parameters (radius, sideLength, ...). After a Transform animation has morphed the data, the regenerated points no longer match the visual state. Subclasses must override copy(), build a new instance with their constructor params, call _copyBaseAttributesInto, and then overwrite _points3D with the current state.
For direct VMobject (rare): just builds and copies.
Returns
MathTex
Overrides
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
dispose()
dispose():
void
Defined in: core/VMobject.ts:866
Clean up Three.js resources
Returns
void
Inherited from
filter()
filter(
fn):VGroup
Defined in: core/VGroup.ts:482
Filter vmobjects in the group.
Parameters
fn
(vmobject, index) => boolean
Filter predicate
Returns
New VGroup with filtered vmobjects
Inherited from
flip()
flip(
axis,options?):this
Defined in: core/Mobject.ts:403
Parameters
axis
Vector3Tuple = ...
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
forEach()
forEach(
fn):this
Defined in: core/VGroup.ts:463
Apply a function to each vmobject in the group.
Parameters
fn
(vmobject, index) => void
Function to apply
Returns
this
this for chaining
Inherited from
generateTarget()
generateTarget():
Mobject
Defined in: core/Mobject.ts:1091
Returns
Inherited from
get()
get(
index):VMobject
Defined in: core/VGroup.ts:447
Get a vmobject by index.
Parameters
index
number
Index of the vmobject
Returns
The vmobject at the given index, or undefined
Inherited from
getAllPoints()
getAllPoints():
number[][]
Defined in: core/VGroup.ts:515
World-space points from this VGroup and all VMobject descendants.
Returns
number[][]
Post
result === flatMap(allVMobjectDescendants, c => c.getPoints())
Inherited from
getBottom()
getBottom():
Vector3Tuple
Defined in: core/Mobject.ts:751
Returns
Inherited from
getBoundingBox()
getBoundingBox():
object
Defined in: core/Mobject.ts:732
Returns
object
depth
depth:
number
height
height:
number
width
width:
number
Inherited from
getBounds()
getBounds():
object
Defined in: core/VMobject.ts:707
World-space bounding box computed from bezier control points.
Overrides Mobject.getBounds() to avoid Box3.setFromObject(), which does not work for Line2 geometries. 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
getCenter()
getCenter():
Vector3Tuple
Defined in: mobjects/text/MathTex.ts:166
World-space center. Unlike the base VGroup, an empty (not-yet-rendered)
MathTex falls back to its world-space origin instead of throwing: MathTex is
built lazily, so scale()/moveTo() (which read getCenter() for their
default anchor) are routinely called before the SVG geometry exists.
Returns
Overrides
getCenterOfMass()
getCenterOfMass():
Vector3Tuple
Defined in: core/VMobject.ts:765
Get center of mass in world coordinates by averaging all world-space points.
Unlike getCenter (which uses bbox midpoint), this is the true centroid — equal to getCenter() only when points are symmetrically distributed.
Returns
Inherited from
getCombinedPoints()
getCombinedPoints():
number[][]
Defined in: core/VGroup.ts:396
Get combined path points from all children.
Returns
number[][]
Combined array of points from all children
Inherited from
getDisplayMeshes()
getDisplayMeshes():
Mesh<BufferGeometry<NormalBufferAttributes,BufferGeometryEventMap>,Material<MaterialEventMap> |Material<MaterialEventMap>[],Object3DEventMap>[]
Defined in: core/Mobject.ts:990
Returns
Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>[]
Inherited from
getDisplayMeshLength()
getDisplayMeshLength():
number
Defined in: core/Mobject.ts:986
Number of visible display meshes this mobject contributes when rendered. Used for Transform eligibility checks without forcing Three.js object creation.
Returns
number
Inherited from
getEdge()
getEdge(
direction):Vector3Tuple
Defined in: core/Mobject.ts:745
Parameters
direction
Returns
Inherited from
getEffectiveSubpathLengths()
getEffectiveSubpathLengths():
number[]
Defined in: core/VMobject.ts:408
Get effective subpath lengths for rendering. Returns transform override if present, else base/subclass metadata.
Returns
number[]
Inherited from
VGroup.getEffectiveSubpathLengths
getFamily()
getFamily():
Mobject[]
Defined in: core/Mobject.ts:1004
Returns
Mobject[]
Inherited from
getHeight()
getHeight():
number
Defined in: core/Mobject.ts:738
Returns
number
Inherited from
getLatex()
getLatex():
string
Defined in: mobjects/text/MathTex.ts:148
Get the LaTeX string.
Returns
string
getLeft()
getLeft():
Vector3Tuple
Defined in: core/Mobject.ts:754
Returns
Inherited from
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
Post
this.parent === null => result === this.getCenter()
Post
this.parent !== null => result === parent._computeWorldMatrix().invert() * this.getCenter()
Inherited from
getLocalPoints()
getLocalPoints():
number[][]
Defined in: core/VGroup.ts:506
Local-space points aggregated from all VMobject children.
Returns
number[][]
Post
result === flatMap(vmobjectChildren, c => c.getLocalPoints())
Inherited from
getPart()
getPart(
index):VGroup
Defined in: mobjects/text/MathTex.ts:128
Get a sub-part of a multi-part expression. Only available when created with a string array. Returns a VGroup with setColor() support.
Parameters
index
number
Returns
getPartCount()
getPartCount():
number
Defined in: mobjects/text/MathTex.ts:141
Get the number of parts.
Returns
number
getPoints()
getPoints():
number[][]
Defined in: core/VMobject.ts:124
Own points in world coordinates (full ancestor S/R/T chain; render-only z-layering offset excluded). Children's points are not included — use getAllPoints for the full subtree.
Returns
number[][]
Post
result[i] === worldMatrix * _points3D[i]
Post
this.parent === null => result === getLocalPoints()
Inherited from
getRenderError()
getRenderError():
Error
Defined in: mobjects/text/MathTex.ts:156
Get the render error, if any. Returns null if rendering succeeded or is still in progress.
Returns
Error
getRight()
getRight():
Vector3Tuple
Defined in: core/Mobject.ts:757
Returns
Inherited from
getSubpathLengths()
getSubpathLengths():
number[]
Defined in: core/VMobject.ts:386
Get base subpath lengths (intrinsic topology metadata). Subclasses may override this to compute dynamic metadata.
Returns
number[]
Inherited from
getSubpathOrientationSign()
getSubpathOrientationSign(
index):-1|1
Defined in: core/VMobject.ts:448
Get orientation sign for a specific subpath index: +1 (CCW) or -1 (CW).
Parameters
index
number
Returns
-1 | 1
Inherited from
VGroup.getSubpathOrientationSign
getSubpathOrientationSigns()
getSubpathOrientationSigns(
lengths?): (-1|1)[]
Defined in: core/VMobject.ts:419
Get orientation sign for each subpath: +1 (CCW) or -1 (CW). Returns undefined when subpath metadata is missing or inconsistent.
Parameters
lengths?
number[]
Returns
(-1 | 1)[]
Inherited from
VGroup.getSubpathOrientationSigns
getThreeObject()
getThreeObject():
Object3D
Defined in: core/Mobject.ts:944
Returns
Object3D
Inherited from
getTop()
getTop():
Vector3Tuple
Defined in: core/Mobject.ts:748
Returns
Inherited from
getUnitVector()
getUnitVector():
Vector3Tuple
Defined in: core/VMobject.ts:679
Get the unit vector from the first to the last point of this VMobject, accounting for the object's current rotation transform.
Returns
Inherited from
getUpdaters()
getUpdaters():
UpdaterFunction[]
Defined in: core/Mobject.ts:1029
Returns
Inherited from
getVisiblePointCount()
getVisiblePointCount():
number
Defined in: core/VMobject.ts:232
Get the visible point count (null means all points visible).
Returns
number
Inherited from
getVisiblePoints()
getVisiblePoints():
Point[]
Defined in: core/VMobject.ts:206
Get points that should be visible (for rendering) as 2D Points
Returns
Point[]
Inherited from
getVisiblePoints3D()
getVisiblePoints3D():
number[][]
Defined in: core/VMobject.ts:214
Get points that should be visible (for rendering) as 3D arrays
Returns
number[][]
Inherited from
getWidth()
getWidth():
number
Defined in: core/Mobject.ts:735
Returns
number
Inherited from
hasUpdaters()
hasUpdaters():
boolean
Defined in: core/Mobject.ts:1026
Returns
boolean
Inherited from
interpolate()
interpolate(
target,alpha):this
Defined in: core/VMobject.ts:468
Interpolate this VMobject towards a target VMobject
Parameters
target
The target VMobject to interpolate towards
alpha
number
Progress from 0 (this) to 1 (target)
Returns
this
this for chaining
Inherited from
isEmpty()
isEmpty():
boolean
Defined in: core/VGroup.ts:18
True when this VGroup (recursively) has no renderable geometry.
Returns
boolean
Inherited from
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
map()
map<
T>(fn):T[]
Defined in: core/VGroup.ts:473
Map over all vmobjects in the group.
Type Parameters
T
T
Parameters
fn
(vmobject, index) => T
Mapping function
Returns
T[]
Array of mapped values
Inherited from
markGeometryDirty()
markGeometryDirty():
void
Defined in: core/VMobjectRendering.ts:180
Mark geometry as needing rebuild on next render.
Returns
void
Inherited from
moveCenterOfMassTo()
moveCenterOfMassTo(
target):this
Defined in: core/VMobject.ts:782
Parameters
target
Returns
this
Inherited from
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
alignedEdge?
Returns
this
Post
result world center === target (within the parent's representable frame)
Pre
!this.isEmpty() if needed (e.g., VGroup).
Inherited from
moveToAligned()
moveToAligned(
target,alignedEdge?):this
Defined in: core/Mobject.ts:723
Parameters
target
alignedEdge?
Returns
this
Inherited from
nextTo()
nextTo(
target,direction,buff):this
Defined in: core/Mobject.ts:696
Parameters
target
direction
Vector3Tuple = RIGHT
buff
number = 0.25
Returns
this
Inherited from
normalizeTransform()
normalizeTransform(
worldMatrix):this
Defined in: core/VMobject.ts:351
Flatten this VMobject into absolute coordinates: bake worldMatrix into
_points3D (translation, rotation and scale together — one matrix, no
inverse), reset the local transform to identity, and recurse into children.
Seeds with this node's own matrix when called with no argument, so the bake preserves world appearance whether or not there are ancestors.
Parameters
worldMatrix
Matrix4 = ...
Returns
this
Post
!this.isEmpty() => old.getPoints()[i] === this.getPoints()[i] // world geometry preserved
Post
this._computeOwnMatrix() === Identity
Inherited from
prepareForNonlinearTransform()
prepareForNonlinearTransform(
numPieces):this
Defined in: core/Mobject.ts:1084
Parameters
numPieces
number = 50
Returns
this
Inherited from
VGroup.prepareForNonlinearTransform
remove()
remove(...
mobjects):this
Defined in: core/VGroup.ts:143
Remove mobjects from this group (override from Mobject).
Parameters
mobjects
...Mobject[]
Mobjects to remove
Returns
this
this for chaining
Inherited from
removeUpdater()
removeUpdater(
updater):this
Defined in: core/Mobject.ts:1016
Parameters
updater
Returns
this
Inherited from
removeVMobjects()
removeVMobjects(...
vmobjects):this
Defined in: core/VGroup.ts:122
Remove VMobjects from this group.
Parameters
vmobjects
...VMobject[]
VMobjects to remove
Returns
this
this for chaining
Inherited from
replace()
replace(
target,stretch):this
Defined in: core/Mobject.ts:597
Parameters
target
stretch
boolean = false
Returns
this
Inherited from
restoreState()
restoreState():
boolean
Defined in: core/Mobject.ts:1101
Returns
boolean
Inherited from
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
rotateAboutOrigin()
rotateAboutOrigin(
angle,axis):this
Defined in: core/Mobject.ts:344
Parameters
angle
number
axis
Vector3Tuple = ...
Returns
this
Inherited from
saveState()
saveState():
this
Defined in: core/Mobject.ts:1096
Returns
this
Inherited from
scale()
scale(
factor,options?):this
Defined in: core/Mobject.ts:429
Parameters
factor
number | Vector3Tuple
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
setBaseSubpathLengths()
setBaseSubpathLengths(
lengths):void
Defined in: core/VMobject.ts:377
Set base subpath-length metadata for this VMobject. Represents intrinsic topology (e.g. outer contour + holes from SVG parsing).
Parameters
lengths
number[]
Returns
void
Inherited from
setColor()
setColor(
color):this
Defined in: mobjects/text/MathTex.ts:177
Override setColor to propagate to all VMobject children (fill + stroke).
Parameters
color
string
Returns
this
Overrides
setFill()
setFill(
color?,opacity?):this
Defined in: core/VGroup.ts:218
Set the fill color of all children.
Parameters
color?
string
CSS color string
opacity?
number
Returns
this
this for chaining
Inherited from
setFillOpacity()
setFillOpacity(
opacity):this
Defined in: core/VGroup.ts:203
Set the fill opacity of all children.
Parameters
opacity
number
Fill opacity (0-1)
Returns
this
this for chaining
Inherited from
setPoints()
setPoints(
points):this
Defined in: core/VGroup.ts:540
Distribute a flat point array back onto the children.
A VGroup stores no geometry of its own — getLocalPoints aggregates the
children. The inherited VMobject.setPoints would write to the container's
unused _points3D, so a read-modify-write (Homotopy, ApplyPointwiseFunction,
ApplyWave, …) on a VGroup would be a silent no-op. This override partitions the
array in the same order getCombinedPoints concatenated it and assigns each slice
to its child, so the round-trip actually moves the children.
Parameters
points
number[][] | Point[]
Returns
this
Pre
points.length === sum over VMobject children of child.getLocalPoints().length
Post
for each child i: child.getLocalPoints() === the i-th slice of points
Inherited from
setPoints3D()
setPoints3D(
points):this
Defined in: core/VMobject.ts:103
Set the points defining this VMobject using 3D arrays (alias for setPoints with number[][])
Parameters
points
number[][]
Array of [x, y, z] control points for cubic Bezier curves
Returns
this
this for chaining
Inherited from
setPointsAsCorners()
setPointsAsCorners(
corners):this
Defined in: core/VMobject.ts:257
Set the points to form straight line segments between corner points. Each pair of consecutive corners becomes a cubic Bezier with linear handles. Matches Manim's set_points_as_corners.
Parameters
corners
number[][]
Array of [x, y, z] corner points
Returns
this
this for chaining
Inherited from
setStroke()
setStroke(
color?,width?,opacity?):this
Defined in: core/VGroup.ts:239
Set the stroke of all children.
Parameters
color?
string
CSS color string
width?
number
Stroke width in pixels
opacity?
number
Stroke opacity (0-1)
Returns
this
this for chaining
Inherited from
setStrokeOpacity()
setStrokeOpacity(
opacity):this
Defined in: core/VGroup.ts:177
Set the opacity of all children.
Parameters
opacity
number
Opacity value (0-1)
Returns
this
this for chaining
Inherited from
setStrokeWidth()
setStrokeWidth(
width):this
Defined in: core/VGroup.ts:190
Set the stroke width of all children.
Parameters
width
number
Stroke width in pixels
Returns
this
this for chaining
Inherited from
setStyle()
setStyle(
style):this
Defined in: core/Mobject.ts:152
Parameters
style
Partial<MobjectStyle>
Returns
this
Inherited from
setTransformSubpathLengths()
setTransformSubpathLengths(
lengths):void
Defined in: core/VMobject.ts:395
Set transform-time subpath lengths override. Used by Transform animations to preserve compound-path structure.
Parameters
lengths
number[]
Array of subpath lengths, or undefined to clear
Returns
void
Inherited from
VGroup.setTransformSubpathLengths
setVisiblePointCount()
setVisiblePointCount(
count):void
Defined in: core/VMobject.ts:223
Set visible point count for progressive creation animations. Use null to show all points.
Parameters
count
number
Returns
void
Inherited from
setX()
setX(
x):this
Defined in: core/Mobject.ts:760
Parameters
x
number
Returns
this
Inherited from
setY()
setY(
y):this
Defined in: core/Mobject.ts:764
Parameters
y
number
Returns
this
Inherited from
setZ()
setZ(
z):this
Defined in: core/Mobject.ts:768
Parameters
z
number
Returns
this
Inherited from
shift()
shift(
delta):this
Defined in: core/Mobject.ts:234
Parameters
delta
Returns
this
Inherited from
stretch()
stretch(
factor,dim,options?):this
Defined in: core/Mobject.ts:461
Parameters
factor
number
dim
number
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
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
toEdge()
toEdge(
direction,buff,frameDimensions?):this
Defined in: core/Mobject.ts:796
Parameters
direction
buff
number = 0.5
frameDimensions?
[number, number]
Returns
this
Inherited from
update()
update(
dt):void
Defined in: core/Mobject.ts:1033
Parameters
dt
number
Returns
void
Inherited from
waitForRender()
waitForRender():
Promise<void>
Defined in: mobjects/text/MathTex.ts:114
Wait for the LaTeX to finish rendering.
Returns
Promise<void>
_toLinewidth()
static_toLinewidth(this,strokeWidth):number
Defined in: core/VMobjectRendering.ts:123
Convert Manim-compatible strokeWidth to LineMaterial linewidth in pixels. Python Manim uses cairo_line_width_multiple=0.01, so: linewidth_px = strokeWidth * 0.01 * (rendererWidth / frameWidth)
NOTE: This static method uses class-level statics. For multi-scene correctness, internal code should use the instance method _computeLinewidth().
Parameters
this
typeof VMobjectRendering
strokeWidth
number
Returns
number