@simversus/yjvis / cax / CaxScene
Class: CaxScene
Defined in: cax/CaxScene.ts:54
场景,渲染物体的容器
Extends
Scene
Constructors
Constructor
new CaxScene(
_p):CaxScene
Defined in: cax/CaxScene.ts:131
构造函数
Parameters
_p
SceneOption = ...
场景配置项
Returns
CaxScene
Overrides
Scene.constructor
Properties
_visible
_visible:
boolean=true
Defined in: core/Transform.ts:51
是否可见
Inherited from
Scene._visible
autoAdjustCameraClippingRange
autoAdjustCameraClippingRange:
boolean=true
Defined in: cax/CaxScene.ts:82
是否每次渲染自动调整相机剪切面
background?
optionalbackground:Number3|Node|Color|CubeTexture|DataTexture
Defined in: scene/Scene.ts:20
场景背景,可以是颜色、纹理或节点
Inherited from
Scene.background
backgroundBlurriness
backgroundBlurriness:
number=0
Defined in: scene/Scene.ts:45
背景模糊度 (0-1)
Inherited from
Scene.backgroundBlurriness
backgroundIntensity
backgroundIntensity:
number=1
Defined in: scene/Scene.ts:50
背景强度
Inherited from
Scene.backgroundIntensity
backgroundNode?
optionalbackgroundNode:Node
Defined in: scene/Scene.ts:40
背景节点
Inherited from
Scene.backgroundNode
backgroundRotation
backgroundRotation:
Euler
Defined in: scene/Scene.ts:55
背景旋转角度 (Euler)
Inherited from
Scene.backgroundRotation
camera
camera:
CaxCamera
Defined in: cax/CaxScene.ts:56
场景主相机
castShadow
castShadow:
boolean=false
Defined in: core/Transform.ts:27
是否投射阴影
Inherited from
Scene.castShadow
children
children:
Transform[] =[]
Defined in: core/Transform.ts:57
子节点
Inherited from
Scene.children
classHierarchy
classHierarchy:
ClassEnum[]
Defined in: core/baseObject.ts:19
继承链
Inherited from
Scene.classHierarchy
control
control:
CameraControlBase
Defined in: cax/CaxScene.ts:65
相机控制器
environment?
optionalenvironment:DataTexture
Defined in: scene/Scene.ts:25
环境贴图,用于基于图像的光照 (IBL)
Inherited from
Scene.environment
environmentNode?
optionalenvironmentNode:Node
Defined in: scene/Scene.ts:35
环境光节点
Inherited from
Scene.environmentNode
fogNode?
optionalfogNode:Node
Defined in: scene/Scene.ts:30
雾效节点
Inherited from
Scene.fogNode
id
readonlyid:number
Defined in: core/Transform.ts:40
唯一序号
Inherited from
Scene.id
interactor
interactor:
Interactor
Defined in: cax/CaxScene.ts:61
场景交互器
label?
optionallabel:string
Defined in: core/baseObject.ts:27
自定义标识
Inherited from
Scene.label
layerMask
layerMask:
number=0
Defined in: core/Transform.ts:139
层级掩码,用于控制不同层级对象的可见性或交互
Inherited from
Scene.layerMask
matrix
matrix:
Mat4
Defined in: core/Transform.ts:71
本地变换矩阵 (相对于父节点)
Inherited from
Scene.matrix
modelViewMatrix
modelViewMatrix:
Mat4
Defined in: core/Transform.ts:82
模型视图矩阵 (ModelMatrix * ViewMatrix) 用于着色器计算
Inherited from
Scene.modelViewMatrix
normalMatrix
normalMatrix:
Mat3
Defined in: core/Transform.ts:88
法线矩阵 (模型视图矩阵的逆转置矩阵的左上3x3部分) 用于变换法向量
Inherited from
Scene.normalMatrix
occlusionTest
occlusionTest:
boolean=false
Defined in: core/Transform.ts:35
是否进行遮挡查询测试
Inherited from
Scene.occlusionTest
onAfterRender()?
optionalonAfterRender: (node) =>void
Defined in: core/Transform.ts:134
渲染后的回调
Parameters
node
Transform
Returns
void
Inherited from
Scene.onAfterRender
onBeforeRender()?
optionalonBeforeRender: (node,scene?,camera?,geometry?,material?,group?) =>void
Defined in: core/Transform.ts:122
渲染前的回调
Parameters
node
any
scene?
Scene
camera?
geometry?
BufferGeometry
material?
NodeMaterial
group?
any
Returns
void
Inherited from
Scene.onBeforeRender
overrideMaterial?
optionaloverrideMaterial:NodeMaterial
Defined in: scene/Scene.ts:15
覆盖材质,如果设置,场景中所有物体将使用此材质渲染
Inherited from
Scene.overrideMaterial
parent?
optionalparent:Transform
Defined in: core/Transform.ts:63
父节点
Inherited from
Scene.parent
position
position:
Vec3
Defined in: core/Transform.ts:100
位置
Inherited from
Scene.position
quaternion
quaternion:
Quat
Defined in: core/Transform.ts:112
旋转
Inherited from
Scene.quaternion
receiveShadow
receiveShadow:
boolean=false
Defined in: core/Transform.ts:31
是否接收阴影
Inherited from
Scene.receiveShadow
renderer
renderer:
Renderer
Defined in: cax/CaxScene.ts:72
渲染器
renderOrder
renderOrder:
number=0
Defined in: core/Transform.ts:45
渲染顺序
Inherited from
Scene.renderOrder
rotation
rotation:
Euler
Defined in: core/Transform.ts:117
旋转信息的欧拉表达
Inherited from
Scene.rotation
scaling
scaling:
Vec3
Defined in: core/Transform.ts:106
缩放
Inherited from
Scene.scaling
up
up:
Vec3
Defined in: core/Transform.ts:94
上方向
Inherited from
Scene.up
userData
userData:
object={}
Defined in: core/baseObject.ts:23
用户自定义数据
Inherited from
Scene.userData
uuid
uuid:
string
Defined in: core/baseObject.ts:15
唯一标识符
Inherited from
Scene.uuid
worldMatrix
worldMatrix:
Mat4
Defined in: core/Transform.ts:76
世界变换矩阵 (相对于世界坐标系)
Inherited from
Scene.worldMatrix
Accessors
mtime
Get Signature
get mtime():
number
Defined in: core/baseObject.ts:56
获取对象的最后修改时间戳
Returns
number
Inherited from
renderArea
Get Signature
get renderArea():
Number4
Defined in: cax/CaxScene.ts:106
获取渲染区域 单位是设备物理像素值 Number4: [startPosition, endPosition, offsetX, offsetY]
Returns
Number4
Set Signature
set renderArea(
area):void
Defined in: cax/CaxScene.ts:123
设置渲染区域
Parameters
area
[x, y, width, height] 或返回该数组的函数
Number4 | () => Number4
Returns
void
visible
Get Signature
get visible():
boolean
Defined in: core/Transform.ts:170
获取可见性状态
Returns
boolean
Set Signature
set visible(
value):void
Defined in: core/Transform.ts:177
设置可见性状态
Parameters
value
boolean
Returns
void
Inherited from
Scene.visible
Methods
add()
add(...
nodes):void
Defined in: core/Transform.ts:358
添加子节点 会自动将子节点从原来的父节点移除
Parameters
nodes
...Transform[]
要添加的子节点列表
Returns
void
Inherited from
Scene.add
addEventListener()
addEventListener(
type,cb):void
Defined in: core/baseObject.ts:105
添加事件监听器
Parameters
type
string
事件类型字符串
cb
Function
事件触发时的回调函数
Returns
void
Inherited from
Scene.addEventListener
adjustCamera()
adjustCamera(
ratio,setBox?):void
Defined in: cax/CaxScene.ts:298
自动调整相机位置和视角以适应场景中的物体 会计算场景包围盒,将相机移动到合适的位置,使得物体尽可能充满视野
Parameters
ratio
number = 0.5
场景中物体在视口中的填充比例,范围 (0, 1],默认0.5
setBox?
可选的手动指定的包围盒,如果不提供则自动计算场景可见包围盒
Returns
void
adjustCameraClippingRange()
adjustCameraClippingRange(
setBox?):void
Defined in: cax/CaxScene.ts:349
自动调整相机的近远裁剪面 (near/far plane) 使得裁剪范围尽可能紧凑地包裹可见物体,提高深度缓冲精度
Parameters
setBox?
可选的手动指定的包围盒,如果提供则优先使用
Returns
void
changed()
changed():
void
Defined in: core/baseObject.ts:72
标记对象为已修改 更新修改时间戳并触发所有注册的变更回调
Returns
void
Inherited from
Scene.changed
clearBounds()
clearBounds():
void
Defined in: cax/CaxScene.ts:339
清除外部设置的包围盒,恢复自动计算
Returns
void
clone()
clone(
recursive?):CaxScene
Defined in: core/Transform.ts:406
克隆当前节点
Parameters
recursive?
boolean
是否递归克隆子节点,默认为 true
Returns
CaxScene
克隆后的新节点
Inherited from
Scene.clone
computeVisibleBounds()
computeVisibleBounds():
Box
Defined in: cax/CaxScene.ts:259
计算场景中所有可见物体的合围包围盒
Returns
计算得到的 Box 对象,如果没有可见物体则返回 null
copy()
copy(
source,recursive):CaxScene
Defined in: core/Transform.ts:417
从源节点复制属性
Parameters
source
this
源节点
recursive
boolean = true
是否递归复制子节点,默认为 true
Returns
CaxScene
this
Inherited from
Scene.copy
dfsSceneGraph()
dfsSceneGraph():
object
Defined in: cax/CaxScene.ts:209
深度优先遍历场景图,收集所有可见的模型和灯光
Returns
object
包含模型数组和灯光数组的对象
lights
lights:
Light[]
models
models:
Model[]
dispatchEvent()
dispatchEvent(
event):void
Defined in: core/baseObject.ts:126
分发事件 触发所有注册了该事件类型的监听器
Parameters
event
事件对象,包含 type 和可选的 data
data?
any
type
string
Returns
void
Inherited from
Scene.dispatchEvent
dispose()
dispose():
void
Defined in: cax/CaxScene.ts:199
销毁该对象 分发 dispose 事件,通知监听者对象即将被销毁
Returns
void
Overrides
Scene.dispose
getRotation()
getRotation():
Number3
Defined in: core/Transform.ts:208
获取欧拉角旋转信息 (数组形式)
Returns
Number3
[x, y, z] 旋转角度数组
Inherited from
Scene.getRotation
getWorldDirection()
getWorldDirection(
target):Vec3
Defined in: core/Transform.ts:343
获取节点在世界空间中的朝向
Parameters
target
Vec3 = ...
目标向量,用于存储结果
Returns
朝向向量
Inherited from
Scene.getWorldDirection
is()
is(
t):boolean
Defined in: core/baseObject.ts:65
检查对象是否属于指定的类类型
Parameters
t
ClassEnum
类类型枚举值
Returns
boolean
如果对象是该类型或继承自该类型,则返回 true
Inherited from
Scene.is
lookAt()
lookAt(
target):void
Defined in: core/Transform.ts:291
使节点看向指定目标点 (改变朝向)
Parameters
target
Vec3 = ...
目标点坐标 (Vec3)
Returns
void
Inherited from
Scene.lookAt
lookTo()
lookTo(
direction):void
Defined in: core/Transform.ts:304
使节点看向指定方向
Parameters
direction
方向向量 (Vec3)
Returns
void
Inherited from
Scene.lookTo
onChanged()
onChanged(
cb): () =>void
Defined in: core/baseObject.ts:90
注册对象变更回调 当对象发生改变(调用 changed 方法)时触发
Parameters
cb
Function
回调函数
Returns
取消注册该回调的函数
():
void
Returns
void
Inherited from
Scene.onChanged
recordCameraState()
recordCameraState(
ratio):object
Defined in: cax/CaxScene.ts:417
记录并计算适应当前场景的理想相机状态(位置和缩放) 不会实际修改当前相机的状态,而是返回计算结果
Parameters
ratio
number = 0.5
场景中物体在视口中的填充比例,默认0.5
Returns
object
包含理想相机位置和缩放比例的对象
parallelScale
parallelScale:
number
position
position:
Vec3
remove()
remove(...
nodes):void
Defined in: core/Transform.ts:372
移除子节点
Parameters
nodes
...Transform[]
要移除的子节点列表
Returns
void
Inherited from
Scene.remove
removeEventListener()
removeEventListener(
type,cb):void
Defined in: core/baseObject.ts:116
移除事件监听器
Parameters
type
string
事件类型字符串
cb
Function
要移除的回调函数
Returns
void
Inherited from
Scene.removeEventListener
render()
render(
rop):Promise<void>
Defined in: cax/CaxScene.ts:154
渲染场景
Parameters
rop
RenderOP = {}
渲染选项
Returns
Promise<void>
reSetCameraPosition()
reSetCameraPosition(
ratio):void
Defined in: cax/CaxScene.ts:396
重置相机位置,使其沿着当前视角方向移动,以适应场景中的物体 不会改变相机的朝向,只会改变位置
Parameters
ratio
number = 0.5
场景中物体在视口中的填充比例,默认0.5
Returns
void
rotate()
rotate(
param0):void
Defined in: core/Transform.ts:270
绕本地坐标系的 X, Y, Z 轴旋转及从欧拉角选择
Parameters
param0
包含 dx, dy, dz 的对象 (弧度)
dx?
number
dy?
number
dz?
number
Returns
void
Inherited from
Scene.rotate
rotateOnAxis()
rotateOnAxis(
axis,radian):void
Defined in: core/Transform.ts:251
绕本地坐标系的指定轴旋转
Parameters
axis
旋转轴 (Vec3)
radian
number
旋转角度 (弧度)
Returns
void
Inherited from
Scene.rotateOnAxis
rotateOnWorldAxis()
rotateOnWorldAxis(
axis,radian):void
Defined in: core/Transform.ts:261
绕世界坐标系的指定轴旋转
Parameters
axis
旋转轴 (Vec3)
radian
number
旋转角度 (弧度)
Returns
void
Inherited from
Scene.rotateOnWorldAxis
scale()
scale(
param0):void
Defined in: core/Transform.ts:280
缩放节点 (在现有缩放基础上累乘)
Parameters
param0
包含 dx, dy, dz 的对象
dx?
number
dy?
number
dz?
number
Returns
void
Inherited from
Scene.scale
setBounds()
setBounds(
box):void
Defined in: cax/CaxScene.ts:331
设置外部包围盒,避免重复计算
Parameters
box
包围盒,如果为 null 则清除外部设置的包围盒,恢复自动计算
Returns
void
setMatrix()
setMatrix(
m):void
Defined in: core/Transform.ts:190
设置节点的本地变换矩阵 会自动分解出 position, quaternion, scaling
Parameters
m
变换矩阵
Returns
void
Inherited from
Scene.setMatrix
setRotation()
setRotation(
x,y,z):void
Defined in: core/Transform.ts:218
设置旋转角度 (欧拉角)
Parameters
x
number
X轴旋转角度 (弧度),也可传入 Vec3
y
number = x
Y轴旋转角度 (弧度)
z
number = x
Z轴旋转角度 (弧度)
Returns
void
Inherited from
Scene.setRotation
toJSON()
toJSON():
any
Defined in: core/Transform.ts:393
序列化为 JSON 对象
Returns
any
包含位置、旋转和缩放的 JSON 对象
Inherited from
Scene.toJSON
translate()
translate(
param0):void
Defined in: core/Transform.ts:240
沿本地坐标系的 X, Y, Z 轴平移
Parameters
param0
包含 dx, dy, dz 的对象
dx?
number
dy?
number
dz?
number
Returns
void
Inherited from
Scene.translate
translateOnAxis()
translateOnAxis(
axis,distance):CaxScene
Defined in: core/Transform.ts:230
沿指定轴平移节点 轴是在本地坐标系下指定的,但移动方向受当前旋转影响
Parameters
axis
移动轴 (Vec3)
distance
number
移动距离
Returns
CaxScene
this
Inherited from
Scene.translateOnAxis
traverse()
traverse(
cb):void
Defined in: core/Transform.ts:199
遍历场景树,对当前节点及所有后代节点执行回调
Parameters
cb
(node) => void
回调函数,接收当前正在处理的节点作为参数
Returns
void
Inherited from
Scene.traverse
updateMatrix()
updateMatrix():
void
Defined in: core/Transform.ts:313
更新本地矩阵 根据当前的 position, quaternion, scaling 组合计算 matrix
Returns
void
Inherited from
Scene.updateMatrix
updateWorldMatrix()
updateWorldMatrix():
void
Defined in: cax/CaxScene.ts:186
更新场景中所有物体的世界矩阵,并准备渲染 会自动调整相机的近远裁剪面(如果开启)
Returns
void
Overrides
Scene.updateWorldMatrix
useOrbitControl()
useOrbitControl():
OrbitControl
Defined in: cax/CaxScene.ts:234
启用轨道控制器 (OrbitControl) 允许用户围绕焦点旋转、缩放和平移相机
Returns
OrbitControl 实例
useTrackBallControl()
useTrackBallControl():
TrackballControl
Defined in: cax/CaxScene.ts:247
启用轨迹球控制器 (TrackballControl) 允许用户自由旋转相机(无极轴限制)
Returns
TrackballControl
TrackballControl 实例
