Skip to main content

Class: ParametricSurface

Defined in: mobjects/three-d/ParametricSurface.ts:52

ParametricSurface - Alias for Surface3D

This class is provided for compatibility and naming consistency with Manim's ParametricSurface class. It is functionally identical to Surface3D.

Example

// Create a mobius strip
const mobius = new ParametricSurface({
func: (u, v) => {
const theta = u * 2 * Math.PI;
const w = 2 * v - 1;
return [
(1 + w / 2 * Math.cos(theta / 2)) * Math.cos(theta),
(1 + w / 2 * Math.cos(theta / 2)) * Math.sin(theta),
w / 2 * Math.sin(theta / 2)
];
},
uRange: [0, 1],
vRange: [0, 1],
uResolution: 64,
vResolution: 16
});

// Create a Klein bottle segment
const klein = new ParametricSurface({
func: (u, v) => {
const a = 2;
const theta = u * Math.PI * 2;
const phi = v * Math.PI * 2;
const r = a * (1 - Math.cos(theta) / 2);
return [
r * Math.cos(theta),
r * Math.sin(theta),
Math.sin(phi)
];
}
});

Extends

Constructors

Constructor

new ParametricSurface(options): ParametricSurface

Defined in: mobjects/three-d/ParametricSurface.ts:53

Parameters

options

Surface3DOptions

Returns

ParametricSurface

Overrides

Surface3D.constructor

Properties

__savedMobjectState

__savedMobjectState: unknown = null

Defined in: core/Mobject.ts:82

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

Inherited from

Surface3D.__savedMobjectState


_centerPoint

protected _centerPoint: Vector3Tuple

Defined in: mobjects/three-d/Surface3D.ts:76

Inherited from

Surface3D._centerPoint


_checkerboardColors?

protected optional _checkerboardColors: [string, string]

Defined in: mobjects/three-d/Surface3D.ts:77

Inherited from

Surface3D._checkerboardColors


_color

protected _color: string = '#ffffff'

Defined in: core/Mobject.ts:57

Inherited from

Surface3D._color


_dirty

_dirty: boolean = true

Defined in: core/Mobject.ts:75

Inherited from

Surface3D._dirty


_disableChildZLayering

protected _disableChildZLayering: boolean = false

Defined in: core/Mobject.ts:72

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

Inherited from

Surface3D._disableChildZLayering


_doubleSided

protected _doubleSided: boolean

Defined in: mobjects/three-d/Surface3D.ts:75

Inherited from

Surface3D._doubleSided


_func()

protected _func: (u, v) => Vector3Tuple

Defined in: mobjects/three-d/Surface3D.ts:69

Parameters

u

number

v

number

Returns

Vector3Tuple

Inherited from

Surface3D._func


_opacity

protected _opacity: number = 1

Defined in: core/Mobject.ts:68

Inherited from

Surface3D._opacity


_style

protected _style: MobjectStyle

Defined in: core/Mobject.ts:73

Inherited from

Surface3D._style


_threeObject

_threeObject: Object3D<Object3DEventMap> = null

Defined in: core/Mobject.ts:74

Inherited from

Surface3D._threeObject


_uRange

protected _uRange: [number, number]

Defined in: mobjects/three-d/Surface3D.ts:70

Inherited from

Surface3D._uRange


_uResolution

protected _uResolution: number

Defined in: mobjects/three-d/Surface3D.ts:72

Inherited from

Surface3D._uResolution


_vRange

protected _vRange: [number, number]

Defined in: mobjects/three-d/Surface3D.ts:71

Inherited from

Surface3D._vRange


_vResolution

protected _vResolution: number

Defined in: mobjects/three-d/Surface3D.ts:73

Inherited from

Surface3D._vResolution


_wireframe

protected _wireframe: boolean

Defined in: mobjects/three-d/Surface3D.ts:74

Inherited from

Surface3D._wireframe


children

children: Mobject[] = []

Defined in: core/Mobject.ts:52

Inherited from

Surface3D.children


createdAtBeginning

createdAtBeginning: boolean = false

Defined in: core/Mobject.ts:56

Inherited from

Surface3D.createdAtBeginning


fillOpacity

fillOpacity: number = 0

Defined in: core/Mobject.ts:70

Inherited from

Surface3D.fillOpacity


id

readonly id: string

Defined in: core/Mobject.ts:50

Inherited from

Surface3D.id


parent

parent: Mobject = null

Defined in: core/Mobject.ts:51

Inherited from

Surface3D.parent


position

position: Vector3

Defined in: core/Mobject.ts:53

Inherited from

Surface3D.position


rotation

rotation: Euler

Defined in: core/Mobject.ts:54

Inherited from

Surface3D.rotation


savedState

savedState: Mobject = null

Defined in: core/Mobject.ts:78

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

Inherited from

Surface3D.savedState


scaleVector

scaleVector: Vector3

Defined in: core/Mobject.ts:55

Inherited from

Surface3D.scaleVector


strokeWidth

strokeWidth: number = 4

Defined in: core/Mobject.ts:69

Inherited from

Surface3D.strokeWidth


targetCopy

targetCopy: Mobject = null

Defined in: core/Mobject.ts:80

Target copy used by generateTarget() / MoveToTarget animation.

Inherited from

Surface3D.targetCopy

Accessors

color

Get Signature

get color(): string

Defined in: core/Mobject.ts:58

Returns

string

Set Signature

set color(value): void

Defined in: core/Mobject.ts:61

Parameters
value

string

Returns

void

Inherited from

Surface3D.color


fillColor

Get Signature

get fillColor(): string

Defined in: core/Mobject.ts:171

Returns

string

Set Signature

set fillColor(color): void

Defined in: core/Mobject.ts:175

Parameters
color

string

Returns

void

Inherited from

Surface3D.fillColor


isDirty

Get Signature

get isDirty(): boolean

Defined in: core/Mobject.ts:448

Returns

boolean

Inherited from

Surface3D.isDirty


opacity

Get Signature

get opacity(): number

Defined in: core/Mobject.ts:101

Returns

number

Set Signature

set opacity(value): void

Defined in: core/Mobject.ts:105

Parameters
value

number

Returns

void

Inherited from

Surface3D.opacity


style

Get Signature

get style(): MobjectStyle

Defined in: core/Mobject.ts:109

Returns

MobjectStyle

Inherited from

Surface3D.style


submobjects

Get Signature

get submobjects(): Mobject[]

Defined in: core/Mobject.ts:123

Returns

Mobject[]

Inherited from

Surface3D.submobjects

Methods

_createCopy()

protected _createCopy(): ParametricSurface

Defined in: mobjects/three-d/ParametricSurface.ts:60

Create a copy of this ParametricSurface

Returns

ParametricSurface

Overrides

Surface3D._createCopy


_createThreeObject()

protected _createThreeObject(): Object3D

Defined in: mobjects/three-d/Surface3D.ts:117

Create the Three.js parametric surface mesh

Returns

Object3D

Inherited from

Surface3D._createThreeObject


_getBoundingBox()

_getBoundingBox(): object

Defined in: core/Mobject.ts:367

Returns

object

depth

depth: number

height

height: number

width

width: number

Deprecated

Use getBoundingBox() instead.

Inherited from

Surface3D._getBoundingBox


_getEdgeInDirection()

_getEdgeInDirection(direction): Vector3Tuple

Defined in: core/Mobject.ts:360

Parameters

direction

Vector3Tuple

Returns

Vector3Tuple

Inherited from

Surface3D._getEdgeInDirection


_markDirty()

_markDirty(): void

Defined in: core/Mobject.ts:438

Returns

void

Inherited from

Surface3D._markDirty


_markDirtyUpward()

_markDirtyUpward(): void

Defined in: core/Mobject.ts:442

Returns

void

Inherited from

Surface3D._markDirtyUpward


_syncMaterialToThree()

protected _syncMaterialToThree(): void

Defined in: mobjects/three-d/Surface3D.ts:193

Sync material properties to Three.js object

Returns

void

Inherited from

Surface3D._syncMaterialToThree


_syncToThree()

_syncToThree(): void

Defined in: core/Mobject.ts:416

Returns

void

Inherited from

Surface3D._syncToThree


_updateGeometry()

protected _updateGeometry(): void

Defined in: mobjects/three-d/Surface3D.ts:213

Update the geometry with current function and parameters

Returns

void

Inherited from

Surface3D._updateGeometry


add()

add(...mobjects): this

Defined in: core/Mobject.ts:247

Parameters

mobjects

...Mobject[]

Returns

this

Inherited from

Surface3D.add


addUpdater()

addUpdater(updater, callOnAdd): this

Defined in: core/Mobject.ts:474

Parameters

updater

UpdaterFunction

callOnAdd

boolean = false

Returns

this

Inherited from

Surface3D.addUpdater


alignTo()

alignTo(target, direction): this

Defined in: core/Mobject.ts:345

Parameters

target

Mobject | Vector3Tuple

direction

Vector3Tuple

Returns

this

Inherited from

Surface3D.alignTo


applyFunction()

applyFunction(fn): this

Defined in: core/Mobject.ts:504

Parameters

fn

(point) => number[]

Returns

this

Inherited from

Surface3D.applyFunction


applyToFamily()

applyToFamily(func): this

Defined in: core/Mobject.ts:462

Parameters

func

(mobject) => void

Returns

this

Inherited from

Surface3D.applyToFamily


become()

become(other): this

Defined in: core/Mobject.ts:294

Parameters

other

Mobject

Returns

this

Inherited from

Surface3D.become


center()

center(): this

Defined in: core/Mobject.ts:397

Returns

this

Inherited from

Surface3D.center


clearUpdaters()

clearUpdaters(): this

Defined in: core/Mobject.ts:486

Returns

this

Inherited from

Surface3D.clearUpdaters


copy()

copy(): Mobject

Defined in: core/Mobject.ts:276

Returns

Mobject

Inherited from

Surface3D.copy


dispose()

dispose(): void

Defined in: core/Mobject.ts:532

Returns

void

Inherited from

Surface3D.dispose


evaluate()

evaluate(u, v): Vector3Tuple

Defined in: mobjects/three-d/Surface3D.ts:386

Evaluate the surface at given parameters

Parameters

u

number

U parameter

v

number

V parameter

Returns

Vector3Tuple

Inherited from

Surface3D.evaluate


flip()

flip(axis): this

Defined in: core/Mobject.ts:225

Parameters

axis

Vector3Tuple = ...

Returns

this

Inherited from

Surface3D.flip


generateTarget()

generateTarget(): Mobject

Defined in: core/Mobject.ts:516

Returns

Mobject

Inherited from

Surface3D.generateTarget


getBottom()

getBottom(): Vector3Tuple

Defined in: core/Mobject.ts:376

Returns

Vector3Tuple

Inherited from

Surface3D.getBottom


getBoundingBox()

getBoundingBox(): object

Defined in: core/Mobject.ts:363

Returns

object

depth

depth: number

height

height: number

width

width: number

Inherited from

Surface3D.getBoundingBox


getBounds()

getBounds(): object

Defined in: core/Mobject.ts:310

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

Inherited from

Surface3D.getBounds


getCenter()

getCenter(): Vector3Tuple

Defined in: core/Mobject.ts:306

Returns

Vector3Tuple

Inherited from

Surface3D.getCenter


getEdge()

getEdge(direction): Vector3Tuple

Defined in: core/Mobject.ts:370

Parameters

direction

Vector3Tuple

Returns

Vector3Tuple

Inherited from

Surface3D.getEdge


getFamily()

getFamily(): Mobject[]

Defined in: core/Mobject.ts:468

Returns

Mobject[]

Inherited from

Surface3D.getFamily


getFunc()

getFunc(): (u, v) => Vector3Tuple

Defined in: mobjects/three-d/Surface3D.ts:272

Get the parametric function

Returns

(u, v): Vector3Tuple

Parameters
u

number

v

number

Returns

Vector3Tuple

Inherited from

Surface3D.getFunc


getLeft()

getLeft(): Vector3Tuple

Defined in: core/Mobject.ts:379

Returns

Vector3Tuple

Inherited from

Surface3D.getLeft


getRight()

getRight(): Vector3Tuple

Defined in: core/Mobject.ts:382

Returns

Vector3Tuple

Inherited from

Surface3D.getRight


getThreeObject()

getThreeObject(): Object3D

Defined in: core/Mobject.ts:452

Returns

Object3D

Inherited from

Surface3D.getThreeObject


getTop()

getTop(): Vector3Tuple

Defined in: core/Mobject.ts:373

Returns

Vector3Tuple

Inherited from

Surface3D.getTop


getUpdaters()

getUpdaters(): UpdaterFunction[]

Defined in: core/Mobject.ts:493

Returns

UpdaterFunction[]

Inherited from

Surface3D.getUpdaters


getURange()

getURange(): [number, number]

Defined in: mobjects/three-d/Surface3D.ts:288

Get the U parameter range

Returns

[number, number]

Inherited from

Surface3D.getURange


getUResolution()

getUResolution(): number

Defined in: mobjects/three-d/Surface3D.ts:320

Get the U resolution

Returns

number

Inherited from

Surface3D.getUResolution


getVRange()

getVRange(): [number, number]

Defined in: mobjects/three-d/Surface3D.ts:304

Get the V parameter range

Returns

[number, number]

Inherited from

Surface3D.getVRange


getVResolution()

getVResolution(): number

Defined in: mobjects/three-d/Surface3D.ts:336

Get the V resolution

Returns

number

Inherited from

Surface3D.getVResolution


hasUpdaters()

hasUpdaters(): boolean

Defined in: core/Mobject.ts:490

Returns

boolean

Inherited from

Surface3D.hasUpdaters


isDoubleSided()

isDoubleSided(): boolean

Defined in: mobjects/three-d/Surface3D.ts:368

Get whether double-sided rendering is enabled

Returns

boolean

Inherited from

Surface3D.isDoubleSided


isWireframe()

isWireframe(): boolean

Defined in: mobjects/three-d/Surface3D.ts:352

Get whether wireframe mode is enabled

Returns

boolean

Inherited from

Surface3D.isWireframe


moveTo()

moveTo(target, alignedEdge?): this

Defined in: core/Mobject.ts:192

Parameters

target

Mobject | Vector3Tuple

alignedEdge?

Vector3Tuple

Returns

this

Inherited from

Surface3D.moveTo


moveToAligned()

moveToAligned(target, alignedEdge?): this

Defined in: core/Mobject.ts:355

Parameters

target

Mobject | Vector3Tuple

alignedEdge?

Vector3Tuple

Returns

this

Inherited from

Surface3D.moveToAligned


nextTo()

nextTo(target, direction, buff): this

Defined in: core/Mobject.ts:328

Parameters

target

Mobject | Vector3Tuple

direction

Vector3Tuple = RIGHT

buff

number = 0.25

Returns

this

Inherited from

Surface3D.nextTo


prepareForNonlinearTransform()

prepareForNonlinearTransform(numPieces): this

Defined in: core/Mobject.ts:509

Parameters

numPieces

number = 50

Returns

this

Inherited from

Surface3D.prepareForNonlinearTransform


remove()

remove(...mobjects): this

Defined in: core/Mobject.ts:260

Parameters

mobjects

...Mobject[]

Returns

this

Inherited from

Surface3D.remove


removeUpdater()

removeUpdater(updater): this

Defined in: core/Mobject.ts:480

Parameters

updater

UpdaterFunction

Returns

this

Inherited from

Surface3D.removeUpdater


replace()

replace(target, stretch): this

Defined in: core/Mobject.ts:299

Parameters

target

Mobject

stretch

boolean = false

Returns

this

Inherited from

Surface3D.replace


restoreState()

restoreState(): boolean

Defined in: core/Mobject.ts:526

Returns

boolean

Inherited from

Surface3D.restoreState


rotate()

rotate(angle, axisOrOptions?): this

Defined in: core/Mobject.ts:213

Rotate the mobject around an axis. Delegates to rotateMobject for the heavy lifting.

Parameters

angle

number

axisOrOptions?

Vector3Tuple | { aboutPoint?: Vector3Tuple; axis?: Vector3Tuple; }

Returns

this

Inherited from

Surface3D.rotate


rotateAboutOrigin()

rotateAboutOrigin(angle, axis): this

Defined in: core/Mobject.ts:221

Parameters

angle

number

axis

Vector3Tuple = ...

Returns

this

Inherited from

Surface3D.rotateAboutOrigin


saveState()

saveState(): this

Defined in: core/Mobject.ts:521

Returns

this

Inherited from

Surface3D.saveState


scale()

scale(factor): this

Defined in: core/Mobject.ts:233

Parameters

factor

number | Vector3Tuple

Returns

this

Inherited from

Surface3D.scale


setColor()

setColor(color): this

Defined in: core/Mobject.ts:127

Parameters

color

string

Returns

this

Inherited from

Surface3D.setColor


setDoubleSided()

setDoubleSided(value): this

Defined in: mobjects/three-d/Surface3D.ts:375

Set double-sided rendering

Parameters

value

boolean

Returns

this

Inherited from

Surface3D.setDoubleSided


setFill()

setFill(color?, opacity?): this

Defined in: core/Mobject.ts:165

Parameters

color?

string

opacity?

number

Returns

this

Inherited from

Surface3D.setFill


setFillOpacity()

setFillOpacity(opacity): this

Defined in: core/Mobject.ts:155

Parameters

opacity

number

Returns

this

Inherited from

Surface3D.setFillOpacity


setFunc()

setFunc(func): this

Defined in: mobjects/three-d/Surface3D.ts:279

Set the parametric function

Parameters

func

(u, v) => Vector3Tuple

Returns

this

Inherited from

Surface3D.setFunc


setOpacity()

setOpacity(opacity): this

Defined in: core/Mobject.ts:135

Parameters

opacity

number

Returns

this

Inherited from

Surface3D.setOpacity


setStrokeWidth()

setStrokeWidth(width): this

Defined in: core/Mobject.ts:145

Parameters

width

number

Returns

this

Inherited from

Surface3D.setStrokeWidth


setStyle()

setStyle(style): this

Defined in: core/Mobject.ts:113

Parameters

style

Partial<MobjectStyle>

Returns

this

Inherited from

Surface3D.setStyle


setURange()

setURange(range): this

Defined in: mobjects/three-d/Surface3D.ts:295

Set the U parameter range

Parameters

range

[number, number]

Returns

this

Inherited from

Surface3D.setURange


setUResolution()

setUResolution(value): this

Defined in: mobjects/three-d/Surface3D.ts:327

Set the U resolution

Parameters

value

number

Returns

this

Inherited from

Surface3D.setUResolution


setVRange()

setVRange(range): this

Defined in: mobjects/three-d/Surface3D.ts:311

Set the V parameter range

Parameters

range

[number, number]

Returns

this

Inherited from

Surface3D.setVRange


setVResolution()

setVResolution(value): this

Defined in: mobjects/three-d/Surface3D.ts:343

Set the V resolution

Parameters

value

number

Returns

this

Inherited from

Surface3D.setVResolution


setWireframe()

setWireframe(value): this

Defined in: mobjects/three-d/Surface3D.ts:359

Set wireframe mode

Parameters

value

boolean

Returns

this

Inherited from

Surface3D.setWireframe


setX()

setX(x): this

Defined in: core/Mobject.ts:385

Parameters

x

number

Returns

this

Inherited from

Surface3D.setX


setY()

setY(y): this

Defined in: core/Mobject.ts:389

Parameters

y

number

Returns

this

Inherited from

Surface3D.setY


setZ()

setZ(z): this

Defined in: core/Mobject.ts:393

Parameters

z

number

Returns

this

Inherited from

Surface3D.setZ


shift()

shift(delta): this

Defined in: core/Mobject.ts:184

Parameters

delta

Vector3Tuple

Returns

this

Inherited from

Surface3D.shift


toCorner()

toCorner(direction, buff, frameDimensions?): this

Defined in: core/Mobject.ts:406

Parameters

direction

Vector3Tuple = ...

buff

number = 0.5

frameDimensions?

[number, number]

Returns

this

Inherited from

Surface3D.toCorner


toEdge()

toEdge(direction, buff, frameDimensions?): this

Defined in: core/Mobject.ts:401

Parameters

direction

Vector3Tuple

buff

number = 0.5

frameDimensions?

[number, number]

Returns

this

Inherited from

Surface3D.toEdge


update()

update(dt): void

Defined in: core/Mobject.ts:497

Parameters

dt

number

Returns

void

Inherited from

Surface3D.update