Class: TexturedSurface
Defined in: mobjects/three-d/TexturedSurface.ts:89
TexturedSurface - Apply texture images to 3D parametric surfaces
Wraps a Surface3D and applies one or two textures using Three.js texture mapping. UV coordinates are derived from the surface's parametric (u, v) parameters, so the texture maps naturally to the surface shape.
Supports single-texture mode (one image mapped to the surface) and day/night mode (blending between two textures based on a light direction).
The surface is displayed immediately with a placeholder color; textures are applied asynchronously once loaded.
Example
// Single texture on a sphere
const sphere = SurfacePresets.sphere(2);
const earth = new TexturedSurface({
surface: sphere,
textureUrl: '/textures/earth_day.jpg',
});
// Day/night blending
const earthDayNight = new TexturedSurface({
surface: sphere,
textureUrl: '/textures/earth_day.jpg',
darkTextureUrl: '/textures/earth_night.jpg',
lightDirection: [1, 0.5, 0],
});
// Convenience factory
const globe = texturedSphere({
textureUrl: '/textures/earth_day.jpg',
radius: 2,
});
Extends
Constructors
Constructor
new TexturedSurface(
options):TexturedSurface
Defined in: mobjects/three-d/TexturedSurface.ts:123
Parameters
options
Returns
TexturedSurface
Overrides
Properties
__savedMobjectState
__savedMobjectState:
unknown=null
Defined in: core/Mobject.ts:82
JSON-serializable saved state (used by restoreState()).
Inherited from
_color
protected_color:string='#ffffff'
Defined in: core/Mobject.ts:57
Inherited from
_dirty
_dirty:
boolean=true
Defined in: core/Mobject.ts:75
Inherited from
_disableChildZLayering
protected_disableChildZLayering:boolean=false
Defined in: core/Mobject.ts:72
When true, children skip the 2D z-layering offset in _syncToThree.
Inherited from
Mobject._disableChildZLayering
_opacity
protected_opacity:number=1
Defined in: core/Mobject.ts:68
Inherited from
_style
protected_style:MobjectStyle
Defined in: core/Mobject.ts:73
Inherited from
_threeObject
_threeObject:
Object3D<Object3DEventMap> =null
Defined in: core/Mobject.ts:74
Inherited from
children
children:
Mobject[] =[]
Defined in: core/Mobject.ts:52
Inherited from
createdAtBeginning
createdAtBeginning:
boolean=false
Defined in: core/Mobject.ts:56
Inherited from
fillOpacity
fillOpacity:
number=0
Defined in: core/Mobject.ts:70
Inherited from
id
readonlyid:string
Defined in: core/Mobject.ts:50
Inherited from
parent
parent:
Mobject=null
Defined in: core/Mobject.ts:51
Inherited from
position
position:
Vector3
Defined in: core/Mobject.ts:53
Inherited from
rotation
rotation:
Euler
Defined in: core/Mobject.ts:54
Inherited from
savedState
savedState:
Mobject=null
Defined in: core/Mobject.ts:78
Saved mobject copy (used by Restore animation). Set by saveState().
Inherited from
scaleVector
scaleVector:
Vector3
Defined in: core/Mobject.ts:55
Inherited from
strokeWidth
strokeWidth:
number=4
Defined in: core/Mobject.ts:69
Inherited from
targetCopy
targetCopy:
Mobject=null
Defined in: core/Mobject.ts:80
Target copy used by generateTarget() / MoveToTarget animation.
Inherited from
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
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
isDirty
Get Signature
get isDirty():
boolean
Defined in: core/Mobject.ts:448
Returns
boolean
Inherited from
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
style
Get Signature
get style():
MobjectStyle
Defined in: core/Mobject.ts:109
Returns
Inherited from
submobjects
Get Signature
get submobjects():
Mobject[]
Defined in: core/Mobject.ts:123
Returns
Mobject[]
Inherited from
Methods
_createCopy()
protected_createCopy():TexturedSurface
Defined in: mobjects/three-d/TexturedSurface.ts:532
Create a copy of this TexturedSurface. Note: The copy will reload textures independently.
Returns
TexturedSurface
Overrides
_createThreeObject()
protected_createThreeObject():Object3D
Defined in: mobjects/three-d/TexturedSurface.ts:329
Build the Three.js mesh. Reuses the surface's parametric function to create geometry with proper UV mapping, and starts with a placeholder material until textures are loaded.
Returns
Object3D
Overrides
_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
_getEdgeInDirection()
_getEdgeInDirection(
direction):Vector3Tuple
Defined in: core/Mobject.ts:360
Parameters
direction
Returns
Inherited from
_markDirty()
_markDirty():
void
Defined in: core/Mobject.ts:438
Returns
void
Inherited from
_markDirtyUpward()
_markDirtyUpward():
void
Defined in: core/Mobject.ts:442
Returns
void
Inherited from
_syncMaterialToThree()
protected_syncMaterialToThree():void
Defined in: mobjects/three-d/TexturedSurface.ts:379
Sync material properties to the Three.js object
Returns
void
Overrides
_syncToThree()
_syncToThree():
void
Defined in: core/Mobject.ts:416
Returns
void
Inherited from
add()
add(...
mobjects):this
Defined in: core/Mobject.ts:247
Parameters
mobjects
...Mobject[]
Returns
this
Inherited from
addUpdater()
addUpdater(
updater,callOnAdd):this
Defined in: core/Mobject.ts:474
Parameters
updater
callOnAdd
boolean = false
Returns
this
Inherited from
alignTo()
alignTo(
target,direction):this
Defined in: core/Mobject.ts:345
Parameters
target
direction
Returns
this
Inherited from
applyFunction()
applyFunction(
fn):this
Defined in: core/Mobject.ts:504
Parameters
fn
(point) => number[]
Returns
this
Inherited from
applyToFamily()
applyToFamily(
func):this
Defined in: core/Mobject.ts:462
Parameters
func
(mobject) => void
Returns
this
Inherited from
become()
become(
other):this
Defined in: core/Mobject.ts:294
Parameters
other
Returns
this
Inherited from
center()
center():
this
Defined in: core/Mobject.ts:397
Returns
this
Inherited from
clearUpdaters()
clearUpdaters():
this
Defined in: core/Mobject.ts:486
Returns
this
Inherited from
copy()
copy():
Mobject
Defined in: core/Mobject.ts:276
Returns
Inherited from
dispose()
dispose():
void
Defined in: mobjects/three-d/TexturedSurface.ts:508
Dispose of loaded textures and materials to free GPU memory
Returns
void
Overrides
flip()
flip(
axis):this
Defined in: core/Mobject.ts:225
Parameters
axis
Vector3Tuple = ...
Returns
this
Inherited from
generateTarget()
generateTarget():
Mobject
Defined in: core/Mobject.ts:516
Returns
Inherited from
getBottom()
getBottom():
Vector3Tuple
Defined in: core/Mobject.ts:376
Returns
Inherited from
getBoundingBox()
getBoundingBox():
object
Defined in: core/Mobject.ts:363
Returns
object
depth
depth:
number
height
height:
number
width
width:
number
Inherited from
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
getCenter()
getCenter():
Vector3Tuple
Defined in: core/Mobject.ts:306
Returns
Inherited from
getEdge()
getEdge(
direction):Vector3Tuple
Defined in: core/Mobject.ts:370
Parameters
direction
Returns
Inherited from
getFamily()
getFamily():
Mobject[]
Defined in: core/Mobject.ts:468
Returns
Mobject[]
Inherited from
getLeft()
getLeft():
Vector3Tuple
Defined in: core/Mobject.ts:379
Returns
Inherited from
getLightDirection()
getLightDirection():
Vector3Tuple
Defined in: mobjects/three-d/TexturedSurface.ts:437
Get the light direction as a tuple
Returns
getRight()
getRight():
Vector3Tuple
Defined in: core/Mobject.ts:382
Returns
Inherited from
getSurface()
getSurface():
Surface3D
Defined in: mobjects/three-d/TexturedSurface.ts:407
Get the underlying parametric surface
Returns
getTextureOffset()
getTextureOffset(): [
number,number]
Defined in: mobjects/three-d/TexturedSurface.ts:485
Get the texture offset
Returns
[number, number]
getTextureRepeat()
getTextureRepeat(): [
number,number]
Defined in: mobjects/three-d/TexturedSurface.ts:461
Get the texture repeat
Returns
[number, number]
getTextureUrl()
getTextureUrl():
string
Defined in: mobjects/three-d/TexturedSurface.ts:414
Get the primary texture URL
Returns
string
getThreeObject()
getThreeObject():
Object3D
Defined in: core/Mobject.ts:452
Returns
Object3D
Inherited from
getTop()
getTop():
Vector3Tuple
Defined in: core/Mobject.ts:373
Returns
Inherited from
getUpdaters()
getUpdaters():
UpdaterFunction[]
Defined in: core/Mobject.ts:493
Returns
Inherited from
hasUpdaters()
hasUpdaters():
boolean
Defined in: core/Mobject.ts:490
Returns
boolean
Inherited from
isDoubleSided()
isDoubleSided():
boolean
Defined in: mobjects/three-d/TexturedSurface.ts:501
Get whether double-sided rendering is enabled
Returns
boolean
isTextureLoaded()
isTextureLoaded():
boolean
Defined in: mobjects/three-d/TexturedSurface.ts:421
Get whether textures have finished loading
Returns
boolean
moveTo()
moveTo(
target,alignedEdge?):this
Defined in: core/Mobject.ts:192
Parameters
target
alignedEdge?
Returns
this
Inherited from
moveToAligned()
moveToAligned(
target,alignedEdge?):this
Defined in: core/Mobject.ts:355
Parameters
target
alignedEdge?
Returns
this
Inherited from
nextTo()
nextTo(
target,direction,buff):this
Defined in: core/Mobject.ts:328
Parameters
target
direction
Vector3Tuple = RIGHT
buff
number = 0.25
Returns
this
Inherited from
prepareForNonlinearTransform()
prepareForNonlinearTransform(
numPieces):this
Defined in: core/Mobject.ts:509
Parameters
numPieces
number = 50
Returns
this
Inherited from
Mobject.prepareForNonlinearTransform
remove()
remove(...
mobjects):this
Defined in: core/Mobject.ts:260
Parameters
mobjects
...Mobject[]
Returns
this
Inherited from
removeUpdater()
removeUpdater(
updater):this
Defined in: core/Mobject.ts:480
Parameters
updater
Returns
this
Inherited from
replace()
replace(
target,stretch):this
Defined in: core/Mobject.ts:299
Parameters
target
stretch
boolean = false
Returns
this
Inherited from
restoreState()
restoreState():
boolean
Defined in: core/Mobject.ts:526
Returns
boolean
Inherited from
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
rotateAboutOrigin()
rotateAboutOrigin(
angle,axis):this
Defined in: core/Mobject.ts:221
Parameters
angle
number
axis
Vector3Tuple = ...
Returns
this
Inherited from
saveState()
saveState():
this
Defined in: core/Mobject.ts:521
Returns
this
Inherited from
scale()
scale(
factor):this
Defined in: core/Mobject.ts:233
Parameters
factor
number | Vector3Tuple
Returns
this
Inherited from
setColor()
setColor(
color):this
Defined in: core/Mobject.ts:127
Parameters
color
string
Returns
this
Inherited from
setDoubleSided()
setDoubleSided(
value):this
Defined in: mobjects/three-d/TexturedSurface.ts:492
Set whether to render both sides of the surface
Parameters
value
boolean
Returns
this
setFill()
setFill(
color?,opacity?):this
Defined in: core/Mobject.ts:165
Parameters
color?
string
opacity?
number
Returns
this
Inherited from
setFillOpacity()
setFillOpacity(
opacity):this
Defined in: core/Mobject.ts:155
Parameters
opacity
number
Returns
this
Inherited from
setLightDirection()
setLightDirection(
dir):this
Defined in: mobjects/three-d/TexturedSurface.ts:428
Set the light direction for day/night blending
Parameters
dir
Returns
this
setOpacity()
setOpacity(
opacity):this
Defined in: core/Mobject.ts:135
Parameters
opacity
number
Returns
this
Inherited from
setStrokeWidth()
setStrokeWidth(
width):this
Defined in: core/Mobject.ts:145
Parameters
width
number
Returns
this
Inherited from
setStyle()
setStyle(
style):this
Defined in: core/Mobject.ts:113
Parameters
style
Partial<MobjectStyle>
Returns
this
Inherited from
setTextureOffset()
setTextureOffset(
offset):this
Defined in: mobjects/three-d/TexturedSurface.ts:468
Set texture offset
Parameters
offset
[number, number]
Returns
this
setTextureRepeat()
setTextureRepeat(
repeat):this
Defined in: mobjects/three-d/TexturedSurface.ts:444
Set texture repeat
Parameters
repeat
[number, number]
Returns
this
setX()
setX(
x):this
Defined in: core/Mobject.ts:385
Parameters
x
number
Returns
this
Inherited from
setY()
setY(
y):this
Defined in: core/Mobject.ts:389
Parameters
y
number
Returns
this
Inherited from
setZ()
setZ(
z):this
Defined in: core/Mobject.ts:393
Parameters
z
number
Returns
this
Inherited from
shift()
shift(
delta):this
Defined in: core/Mobject.ts:184
Parameters
delta
Returns
this
Inherited from
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
toEdge()
toEdge(
direction,buff,frameDimensions?):this
Defined in: core/Mobject.ts:401
Parameters
direction
buff
number = 0.5
frameDimensions?
[number, number]
Returns
this
Inherited from
update()
update(
dt):void
Defined in: core/Mobject.ts:497
Parameters
dt
number
Returns
void