Class: VectorFieldVector
Defined in: src/mobjects/graphing/Vector.ts:49
VectorFieldVector - A mathematical vector represented as an arrow
Convenience class for working with vectors in mathematical contexts. Extends Arrow with additional methods for vector operations.
Example
// Create a vector pointing in the direction [1, 1, 0]
const v = new VectorFieldVector({
direction: [1, 1, 0]
});
// Create a vector at a specific position
const w = new VectorFieldVector({
direction: [2, 0, 0],
startPoint: [1, 1, 0]
});
// Create a capped vector for vector fields
const fieldVector = new VectorFieldVector({
direction: [10, 10, 0],
maxLength: 1.5 // Will be scaled down to length 1.5
});
Extends
Constructors
Constructor
new VectorFieldVector(
options):VectorFieldVector
Defined in: src/mobjects/graphing/Vector.ts:54
Parameters
options
Returns
VectorFieldVector
Overrides
Properties
__savedMobjectState
__savedMobjectState:
unknown=null
Defined in: src/core/Mobject.ts:121
JSON-serializable saved state (used by restoreState()).
Inherited from
_baseSubpathLengths?
protectedoptional_baseSubpathLengths:number[]
Defined in: src/core/VMobject.ts:40
Base subpath-length metadata (intrinsic topology, e.g. SVG compound paths).
Inherited from
_color
protected_color:string='#ffffff'
Defined in: src/core/Mobject.ts:84
Inherited from
_dirty
_dirty:
boolean=true
Defined in: src/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: src/core/Mobject.ts:99
When true, children skip the 2D z-layering offset in _syncToThree.
Inherited from
_fillMaterial
protected_fillMaterial:MeshBasicMaterial=null
Defined in: src/core/VMobjectRendering.ts:39
Three.js fill material
Inherited from
_geometryDirty
protected_geometryDirty:boolean=true
Defined in: src/core/VMobjectRendering.ts:42
Whether geometry needs rebuild (separate from material dirty)
Inherited from
_isVMobject
_isVMobject:
boolean=false
Defined in: src/core/Mobject.ts:114
Inherited from
_opacity
protected_opacity:number=1
Defined in: src/core/Mobject.ts:95
Inherited from
_points3D
protected_points3D:number[][] =[]
Defined in: src/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
_sceneFrameWidth
_sceneFrameWidth:
number=null
Defined in: src/core/VMobjectRendering.ts:78
Inherited from
_sceneRendererHeight
_sceneRendererHeight:
number=null
Defined in: src/core/VMobjectRendering.ts:77
Inherited from
_sceneRendererWidth
_sceneRendererWidth:
number=null
Defined in: src/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: src/core/VMobjectRendering.ts:36
Three.js stroke material (Line2 LineMaterial for thick strokes)
Inherited from
_style
protected_style:MobjectStyle
Defined in: src/core/Mobject.ts:100
Inherited from
_threeObject
_threeObject:
Object3D<Object3DEventMap> =null
Defined in: src/core/Mobject.ts:101
Inherited from
_transformSubpathLengths?
protectedoptional_transformSubpathLengths:number[]
Defined in: src/core/VMobject.ts:43
Transform-time override for subpath lengths (compound-path metadata).
Inherited from
Arrow._transformSubpathLengths
_visiblePointCount
protected_visiblePointCount:number=null
Defined in: src/core/VMobject.ts:37
Number of points visible (for Create animation)
Inherited from
children
children:
Mobject[] =[]
Defined in: src/core/Mobject.ts:79
Inherited from
createdAtBeginning
createdAtBeginning:
boolean=false
Defined in: src/core/Mobject.ts:83
Inherited from
fillOpacity
fillOpacity:
number=0
Defined in: src/core/Mobject.ts:97
Inherited from
id
readonlyid:string
Defined in: src/core/Mobject.ts:77
Inherited from
parent
parent:
Mobject=null
Defined in: src/core/Mobject.ts:78
Inherited from
position
position:
Vector3
Defined in: src/core/Mobject.ts:80
Inherited from
rotation
rotation:
Euler
Defined in: src/core/Mobject.ts:81
Inherited from
savedState
savedState:
Mobject=null
Defined in: src/core/Mobject.ts:117
Saved mobject copy (used by Restore animation). Set by saveState().
Inherited from
scaleVector
scaleVector:
Vector3
Defined in: src/core/Mobject.ts:82
Inherited from
strokeWidth
strokeWidth:
number=4
Defined in: src/core/Mobject.ts:96
Inherited from
targetCopy
targetCopy:
Mobject=null
Defined in: src/core/Mobject.ts:119
Target copy used by generateTarget() / MoveToTarget animation.
Inherited from
useStrokeMesh
useStrokeMesh:
boolean=false
Defined in: src/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: src/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: src/core/VMobjectRendering.ts:66
Inherited from
_rendererWidth
static_rendererWidth:number=800
Defined in: src/core/VMobjectRendering.ts:65
Renderer resolution for LineMaterial (set by Scene)
Inherited from
useShaderCurves
staticuseShaderCurves:boolean=false
Defined in: src/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: src/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: src/core/Mobject.ts:85
Returns
string
Set Signature
set color(
value):void
Defined in: src/core/Mobject.ts:88
Parameters
value
string
Returns
void
Inherited from
fillColor
Get Signature
get fillColor():
string
Defined in: src/core/Mobject.ts:210
Returns
string
Set Signature
set fillColor(
color):void
Defined in: src/core/Mobject.ts:214
Parameters
color
string
Returns
void
Inherited from
isDirty
Get Signature
get isDirty():
boolean
Defined in: src/core/Mobject.ts:935
Returns
boolean
Inherited from
length
Get Signature
get length():
number
Defined in: src/core/VGroup.ts:438
Get the number of vmobjects in this group.
Returns
number
Inherited from
numPoints
Get Signature
get numPoints():
number
Defined in: src/core/VMobject.ts:183
Get the number of points
Returns
number
Inherited from
opacity
Get Signature
get opacity():
number
Defined in: src/core/Mobject.ts:140
Returns
number
Set Signature
set opacity(
value):void
Defined in: src/core/Mobject.ts:144
Parameters
value
number
Returns
void
Inherited from
points
Get Signature
get points():
Point[]
Defined in: src/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: src/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: src/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: src/core/Mobject.ts:221
Returns
string
Set Signature
set strokeColor(
color):void
Defined in: src/core/Mobject.ts:225
Parameters
color
string
Returns
void
Inherited from
style
Get Signature
get style():
MobjectStyle
Defined in: src/core/Mobject.ts:148
Returns
Inherited from
submobjects
Get Signature
get submobjects():
Mobject[]
Defined in: src/core/Mobject.ts:162
Returns
Mobject[]
Inherited from
visiblePointCount
Get Signature
get visiblePointCount():
number
Defined in: src/core/VMobject.ts:190
Get the number of visible points (for Create animation)
Returns
number
Set Signature
set visiblePointCount(
count):void
Defined in: src/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: src/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
Arrow._applyFunctionAboutPoint
_buildEarcutFillGeometry()
protected_buildEarcutFillGeometry(points3D):BufferGeometry<NormalBufferAttributes,BufferGeometryEventMap>
Defined in: src/core/VMobjectRendering.ts:213
Parameters
points3D
number[][]
Returns
BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>
Inherited from
Arrow._buildEarcutFillGeometry
_createThreeObject()
protected_createThreeObject():Object3D
Defined in: src/core/VGroup.ts:418
Create the Three.js backing object for this VGroup. A VGroup is simply a THREE.Group that contains children.
Returns
Inherited from
_disposeRenderingResources()
protected_disposeRenderingResources():void
Defined in: src/core/VMobjectRendering.ts:627
Returns
void
Inherited from
Arrow._disposeRenderingResources
_flattenAsContainer()
protected_flattenAsContainer(worldMatrix):this
Defined in: src/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
Returns
this
Inherited from
_flattenAsMesh()
protected_flattenAsMesh(worldMatrix):this
Defined in: src/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
Returns
this
Inherited from
_getBoundingBox()
_getBoundingBox():
object
Defined in: src/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: src/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: src/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
_localToWorld()
protected_localToWorld(p):Vector3Tuple
Defined in: src/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: src/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: src/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: src/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
Returns
void
Inherited from
_ownMatrix()
_ownMatrix():
Matrix4
Defined in: src/core/Mobject.ts:969
This node's transform matrix in isolation — position, rotation, and scale composed together, with no ancestor contribution.
Returns
Post
this.parent === null => this._computeWorldMatrix() === this._computeOwnMatrix()
Post
this.parent !== null => this._computeWorldMatrix() === this.parent._computeWorldMatrix() * this._computeOwnMatrix()
Inherited from
_pointsToCurvePath()
Defined in: src/core/VMobjectRendering.ts:209
Returns
Inherited from
_pointsToShape()
protected_pointsToShape():Shape
Defined in: src/core/VMobjectRendering.ts:205
Returns
Inherited from
_root()
_root():
Mobject
Defined in: src/core/Mobject.ts:940
The topmost ancestor (the node with no parent).
Returns
Inherited from
_rotateAboutParentLocalPoint()
protected_rotateAboutParentLocalPoint(angle,axis,pivotLocal):void
Defined in: src/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
Arrow._rotateAboutParentLocalPoint
_setSceneContext()
_setSceneContext(
rendererWidth,rendererHeight,frameWidth):void
Defined in: src/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
_syncMaterialToThree()
protected_syncMaterialToThree():void
Defined in: src/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: src/core/Mobject.ts:870
Returns
void
Inherited from
_syncWorldMatrices()
_syncWorldMatrices():
Object3D
Defined in: src/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
Pre
!this.isEmpty()
Post
result.min <= result.max component-wise
Inherited from
_updateGeometry()
protected_updateGeometry(group):void
Defined in: src/core/VMobjectRendering.ts:257
Update the geometry within the Three.js group.
Parameters
group
Returns
void
Inherited from
_worldMatrix()
_worldMatrix():
Matrix4
Defined in: src/core/Mobject.ts:974
Returns
Inherited from
_worldToLocal()
protected_worldToLocal(p):Vector3Tuple
Defined in: src/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: src/core/VGroup.ts:454
Iterate over all vmobjects in the group.
Returns
Iterator<VMobject>
Inherited from
add()
add(...
mobjects):this
Defined in: src/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: src/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: src/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: src/core/Mobject.ts:1010
Parameters
updater
callOnAdd
boolean = false
Returns
this
Inherited from
addVector()
addVector(
other):this
Defined in: src/mobjects/graphing/Vector.ts:239
Add another vector to this one
Parameters
other
Vector3Tuple | VectorFieldVector
Returns
this
addVMobjects()
addVMobjects(...
vmobjects):this
Defined in: src/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: src/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: src/core/Mobject.ts:713
Parameters
target
direction
Returns
this
Inherited from
applyFunction()
applyFunction(
fn,options?):this
Defined in: src/core/Mobject.ts:1068
Parameters
fn
(point) => number[]
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
applyFunctionAboutPoint()
applyFunctionAboutPoint(
fn,aboutPoint):this
Defined in: src/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
applyMatrix()
applyMatrix(
matrix,options?):this
Defined in: src/core/Mobject.ts:1076
Parameters
matrix
number[][]
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
applyToFamily()
applyToFamily(
func):this
Defined in: src/core/Mobject.ts:998
Parameters
func
(mobject) => void
Returns
this
Inherited from
arrange()
arrange(
direction,buff,center):this
Defined in: src/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: src/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: src/core/Mobject.ts:592
Parameters
other
Returns
this
Inherited from
center()
center():
this
Defined in: src/core/Mobject.ts:772
Returns
this
Inherited from
centerPointsAroundPosition()
centerPointsAroundPosition():
this
Defined in: src/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
Arrow.centerPointsAroundPosition
clearPoints()
clearPoints():
this
Defined in: src/core/VMobject.ts:332
Clear all points
Returns
this
Inherited from
clearUpdaters()
clearUpdaters():
this
Defined in: src/core/Mobject.ts:1022
Returns
this
Inherited from
copy()
copy():
VectorFieldVector
Defined in: src/mobjects/graphing/Vector.ts:265
Copy this Arrow by cloning its actual shaft/tip children and rebinding the _shaft/_tip pointers to them, rather than rebuilding geometry from endpoint params via the constructor. This preserves per-child state (e.g. a recolored tip) that constructor params can't express.
Returns
VectorFieldVector
Post
result.children.length === 2 // shaft, tip
Post
result.getStart() === this.getStart() && result.getEnd() === this.getEnd()
Overrides
cross()
cross(
other):Vector3Tuple
Defined in: src/mobjects/graphing/Vector.ts:260
Compute the cross product with another vector
Parameters
other
Vector3Tuple | VectorFieldVector
Returns
disableChildZLayering()
disableChildZLayering():
this
Defined in: src/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: src/core/VMobject.ts:866
Clean up Three.js resources
Returns
void
Inherited from
dot()
dot(
other):number
Defined in: src/mobjects/graphing/Vector.ts:252
Compute the dot product with another vector
Parameters
other
Vector3Tuple | VectorFieldVector
Returns
number
filter()
filter(
fn):VGroup
Defined in: src/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: src/core/Mobject.ts:403
Parameters
axis
Vector3Tuple = ...
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
forEach()
forEach(
fn):this
Defined in: src/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: src/core/Mobject.ts:1091
Returns
Inherited from
get()
get(
index):VMobject
Defined in: src/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: src/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
getAngle()
getAngle():
number
Defined in: src/mobjects/geometry/Arrow.ts:481
Get the angle of the arrow in the XY plane (in radians, world-space).
Returns
number
Inherited from
getAngleXY()
getAngleXY():
number
Defined in: src/mobjects/graphing/Vector.ts:218
Get the angle of the vector in the XY plane (in radians)
Returns
number
getBottom()
getBottom():
Vector3Tuple
Defined in: src/core/Mobject.ts:751
Returns
Inherited from
getBoundingBox()
getBoundingBox():
object
Defined in: src/core/Mobject.ts:732
Returns
object
depth
depth:
number
height
height:
number
width
width:
number
Inherited from
getBounds()
getBounds():
object
Defined in: src/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: src/mobjects/geometry/Arrow.ts:407
Get the center point of the arrow in world coordinates.
Delegates to the VGroup world-bounds center: the old shaft-position shortcut ignored this Arrow's own group transform, so a shifted/scaled Arrow reported a stale center.
Returns
Inherited from
getCenterOfMass()
getCenterOfMass():
Vector3Tuple
Defined in: src/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: src/core/VGroup.ts:396
Get combined path points from all children.
Returns
number[][]
Combined array of points from all children
Inherited from
getDirection()
getDirection():
Vector3Tuple
Defined in: src/mobjects/graphing/Vector.ts:102
Get the direction vector
Returns
Overrides
getDisplayMeshes()
getDisplayMeshes():
Mesh<BufferGeometry<NormalBufferAttributes,BufferGeometryEventMap>,Material<MaterialEventMap> |Material<MaterialEventMap>[],Object3DEventMap>[]
Defined in: src/core/Mobject.ts:990
Returns
Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>[]
Inherited from
getDisplayMeshLength()
getDisplayMeshLength():
number
Defined in: src/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: src/core/Mobject.ts:745
Parameters
direction
Returns
Inherited from
getEffectiveSubpathLengths()
getEffectiveSubpathLengths():
number[]
Defined in: src/core/VMobject.ts:408
Get effective subpath lengths for rendering. Returns transform override if present, else base/subclass metadata.
Returns
number[]
Inherited from
Arrow.getEffectiveSubpathLengths
getEnd()
getEnd():
Vector3Tuple
Defined in: src/mobjects/geometry/Arrow.ts:389
Get the end point (tip of the arrow) in world coordinates.
Returns
Post
result === _localToWorld(_end)
Inherited from
getFamily()
getFamily():
Mobject[]
Defined in: src/core/Mobject.ts:1004
Returns
Mobject[]
Inherited from
getHeight()
getHeight():
number
Defined in: src/core/Mobject.ts:738
Returns
number
Inherited from
getLeft()
getLeft():
Vector3Tuple
Defined in: src/core/Mobject.ts:754
Returns
Inherited from
getLength()
getLength():
number
Defined in: src/mobjects/geometry/Arrow.ts:415
Get the length of the arrow (including tip), in world space.
Returns
number
Post
result === dist(getStart(), getEnd())
Inherited from
getLocalCenter()
getLocalCenter():
Vector3Tuple
Defined in: src/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: src/core/VGroup.ts:506
Local-space points aggregated from all VMobject children.
Returns
number[][]
Post
result === flatMap(vmobjectChildren, c => c.getLocalPoints())
Inherited from
getMagnitude()
getMagnitude():
number
Defined in: src/mobjects/graphing/Vector.ts:143
Get the magnitude (length) of the vector
Returns
number
getMaxLength()
getMaxLength():
number
Defined in: src/mobjects/graphing/Vector.ts:202
Get the maximum length constraint
Returns
number
getPoints()
getPoints():
number[][]
Defined in: src/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
getRight()
getRight():
Vector3Tuple
Defined in: src/core/Mobject.ts:757
Returns
Inherited from
getStart()
getStart():
Vector3Tuple
Defined in: src/mobjects/geometry/Arrow.ts:332
Get the start point in world coordinates.
Returns
Post
result === _localToWorld(_start)
Inherited from
getStartPoint()
getStartPoint():
Vector3Tuple
Defined in: src/mobjects/graphing/Vector.ts:186
Get the start point
Returns
getSubpathLengths()
getSubpathLengths():
number[]
Defined in: src/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: src/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
Arrow.getSubpathOrientationSign
getSubpathOrientationSigns()
getSubpathOrientationSigns(
lengths?): (-1|1)[]
Defined in: src/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
Arrow.getSubpathOrientationSigns
getThreeObject()
getThreeObject():
Object3D
Defined in: src/core/Mobject.ts:944
Returns
Inherited from
getTipLength()
getTipLength():
number
Defined in: src/mobjects/geometry/Arrow.ts:441
Get the tip length
Returns
number
Inherited from
getTipWidth()
getTipWidth():
number
Defined in: src/mobjects/geometry/Arrow.ts:457
Get the tip width
Returns
number
Inherited from
getTop()
getTop():
Vector3Tuple
Defined in: src/core/Mobject.ts:748
Returns
Inherited from
getUnitVector()
getUnitVector():
Vector3Tuple
Defined in: src/mobjects/graphing/Vector.ts:177
Get the unit vector (normalized direction)
Returns
Overrides
getUpdaters()
getUpdaters():
UpdaterFunction[]
Defined in: src/core/Mobject.ts:1029
Returns
Inherited from
getVisiblePointCount()
getVisiblePointCount():
number
Defined in: src/core/VMobject.ts:232
Get the visible point count (null means all points visible).
Returns
number
Inherited from
getVisiblePoints()
getVisiblePoints():
Point[]
Defined in: src/core/VMobject.ts:206
Get points that should be visible (for rendering) as 2D Points
Returns
Point[]
Inherited from
getVisiblePoints3D()
getVisiblePoints3D():
number[][]
Defined in: src/core/VMobject.ts:214
Get points that should be visible (for rendering) as 3D arrays
Returns
number[][]
Inherited from
getVisualLength()
getVisualLength():
number
Defined in: src/mobjects/graphing/Vector.ts:150
Get the visual length of the vector (may be capped by maxLength)
Returns
number
getWidth()
getWidth():
number
Defined in: src/core/Mobject.ts:735
Returns
number
Inherited from
hasUpdaters()
hasUpdaters():
boolean
Defined in: src/core/Mobject.ts:1026
Returns
boolean
Inherited from
interpolate()
interpolate(
target,alpha):this
Defined in: src/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: src/core/VGroup.ts:18
True when this VGroup (recursively) has no renderable geometry.
Returns
boolean
Inherited from
isTransformNormalized()
isTransformNormalized():
boolean
Defined in: src/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: src/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: src/core/VMobjectRendering.ts:180
Mark geometry as needing rebuild on next render.
Returns
void
Inherited from
moveCenterOfMassTo()
moveCenterOfMassTo(
target):this
Defined in: src/core/VMobject.ts:782
Parameters
target
Returns
this
Inherited from
moveTo()
moveTo(
target,alignedEdge?):this
Defined in: src/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: src/core/Mobject.ts:723
Parameters
target
alignedEdge?
Returns
this
Inherited from
nextTo()
nextTo(
target,direction,buff):this
Defined in: src/core/Mobject.ts:696
Parameters
target
direction
Vector3Tuple = RIGHT
buff
number = 0.25
Returns
this
Inherited from
normalizeTransform()
normalizeTransform():
this
Defined in: src/mobjects/geometry/Arrow.ts:429
Re-express the endpoint cache so getStart()/getEnd() stay world-invariant when normalization folds this group's deferred transform into the children.
_start/_end are in this group's local frame; capture their world positions before super bakes (and resets) the group transform, then map them back into the post-bake local frame. Mirrors Circle.normalizeTransform folding scale into _radius — without it, _start/_end would silently drift (as the old shaft-position/_originToStartLocal reconstruction did).
Returns
this
Inherited from
prepareForNonlinearTransform()
prepareForNonlinearTransform(
numPieces):this
Defined in: src/core/Mobject.ts:1084
Parameters
numPieces
number = 50
Returns
this
Inherited from
Arrow.prepareForNonlinearTransform
putStartAndEndOn()
putStartAndEndOn(
start,end):this
Defined in: src/mobjects/geometry/Arrow.ts:345
Set both start and end points in one canonical operation.
Conventions:
- Regenerates shaft/tip from delta every call.
- Does not mutate this VGroup's own position.
- Places shaft carrier at geometric midpoint.
- Places tip carrier at midpoint + shaftDelta/2 (forward along direction).
Parameters
start
end
Returns
this
Inherited from
reconstructTip()
reconstructTip():
void
Defined in: src/mobjects/geometry/Arrow.ts:493
Empty shell for Mobject.copy. The Arrow constructor eagerly builds shaft+tip, so we strip them: copy() clones the source's actual children (preserving per-child state like a recolored tip) and copy rebinds the _shaft/_tip pointers to them.
Returns
void
Post
result.children.length === 0
Inherited from
remove()
remove(...
mobjects):this
Defined in: src/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: src/core/Mobject.ts:1016
Parameters
updater
Returns
this
Inherited from
removeVMobjects()
removeVMobjects(...
vmobjects):this
Defined in: src/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: src/core/Mobject.ts:597
Parameters
target
stretch
boolean = false
Returns
this
Inherited from
restoreState()
restoreState():
boolean
Defined in: src/core/Mobject.ts:1101
Returns
boolean
Inherited from
rotate()
rotate(
angle,axisOrOptions?):this
Defined in: src/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: src/core/Mobject.ts:344
Parameters
angle
number
axis
Vector3Tuple = ...
Returns
this
Inherited from
saveState()
saveState():
this
Defined in: src/core/Mobject.ts:1096
Returns
this
Inherited from
scale()
scale(
factor,options?):this
Defined in: src/core/Mobject.ts:429
Parameters
factor
number | Vector3Tuple
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
scaleDirection()
scaleDirection(
factor):this
Defined in: src/mobjects/graphing/Vector.ts:227
Scale the direction vector by a factor Note: This method is named scaleDirection to avoid conflict with the inherited scaleVector property from Mobject.
Parameters
factor
number
Returns
this
setBaseSubpathLengths()
setBaseSubpathLengths(
lengths):void
Defined in: src/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: src/core/VGroup.ts:164
Set the color of all children.
Parameters
color
string
CSS color string
Returns
this
this for chaining
Inherited from
setDirection()
setDirection(
direction):this
Defined in: src/mobjects/graphing/Vector.ts:110
Set the direction vector
Parameters
direction
New direction as [x, y, z]
Returns
this
setEnd()
setEnd(
point):this
Defined in: src/mobjects/geometry/Arrow.ts:396
Parameters
point
Returns
this
Deprecated
Use putStartAndEndOn(start, end) for canonical endpoint updates.
Inherited from
setFill()
setFill(
color?,opacity?):this
Defined in: src/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: src/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
setMagnitude()
setMagnitude(
length):this
Defined in: src/mobjects/graphing/Vector.ts:158
Set the length of the vector (scales the direction)
Parameters
length
number
New length for the vector
Returns
this
setMaxLength()
setMaxLength(
maxLength):this
Defined in: src/mobjects/graphing/Vector.ts:209
Set the maximum length constraint
Parameters
maxLength
number
Returns
this
setPoints()
setPoints(
points):this
Defined in: src/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: src/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: src/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
setStart()
setStart(
point):this
Defined in: src/mobjects/geometry/Arrow.ts:381
Parameters
point
Returns
this
Deprecated
Use putStartAndEndOn(start, end) for canonical endpoint updates.
Inherited from
setStartPoint()
setStartPoint(
point):this
Defined in: src/mobjects/graphing/Vector.ts:193
Set the start point (keeps the same direction)
Parameters
point
Returns
this
setStroke()
setStroke(
color?,width?,opacity?):this
Defined in: src/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: src/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: src/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: src/core/Mobject.ts:152
Parameters
style
Partial<MobjectStyle>
Returns
this
Inherited from
setTipLength()
setTipLength(
value):this
Defined in: src/mobjects/geometry/Arrow.ts:448
Set the tip length
Parameters
value
number
Returns
this
Inherited from
setTipWidth()
setTipWidth(
value):this
Defined in: src/mobjects/geometry/Arrow.ts:464
Set the tip width
Parameters
value
number
Returns
this
Inherited from
setTransformSubpathLengths()
setTransformSubpathLengths(
lengths):void
Defined in: src/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
Arrow.setTransformSubpathLengths
setVisiblePointCount()
setVisiblePointCount(
count):void
Defined in: src/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: src/core/Mobject.ts:760
Parameters
x
number
Returns
this
Inherited from
setY()
setY(
y):this
Defined in: src/core/Mobject.ts:764
Parameters
y
number
Returns
this
Inherited from
setZ()
setZ(
z):this
Defined in: src/core/Mobject.ts:768
Parameters
z
number
Returns
this
Inherited from
shift()
shift(
delta):this
Defined in: src/core/Mobject.ts:234
Parameters
delta
Returns
this
Inherited from
stretch()
stretch(
factor,dim,options?):this
Defined in: src/core/Mobject.ts:461
Parameters
factor
number
dim
number
options?
aboutEdge?
aboutPoint?
Returns
this
Inherited from
toCorner()
toCorner(
direction,buff,frameDimensions?):this
Defined in: src/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: src/core/Mobject.ts:796
Parameters
direction
buff
number = 0.5
frameDimensions?
[number, number]
Returns
this
Inherited from
update()
update(
dt):void
Defined in: src/core/Mobject.ts:1033
Parameters
dt
number
Returns
void
Inherited from
_toLinewidth()
static_toLinewidth(this,strokeWidth):number
Defined in: src/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