Skip to content

@simversus/yjvis


@simversus/yjvis / cax / CaxCamera

Class: CaxCamera

Defined in: cax/CaxCamera.ts:6

相机

Extends

Constructors

Constructor

new CaxCamera(scene): CaxCamera

Defined in: cax/CaxCamera.ts:16

构造函数

Parameters

scene

CaxScene

所属的 CaxScene 场景实例

Returns

CaxCamera

Overrides

Camera.constructor

Properties

_visible

_visible: boolean = true

Defined in: core/Transform.ts:51

是否可见

Inherited from

Camera._visible


aspect

aspect: number = 1

Defined in: cameras/Camera.ts:92

透视投影时的视图宽高比

Inherited from

Camera.aspect


bottom

bottom: number = -1

Defined in: cameras/Camera.ts:100

正交投影下边界

Inherited from

Camera.bottom


castShadow

castShadow: boolean = false

Defined in: core/Transform.ts:27

是否投射阴影

Inherited from

Camera.castShadow


children

children: Transform[] = []

Defined in: core/Transform.ts:57

子节点

Inherited from

Camera.children


classHierarchy

classHierarchy: ClassEnum[]

Defined in: core/baseObject.ts:19

继承链

Inherited from

Camera.classHierarchy


far

far: number = 1000

Defined in: cameras/Camera.ts:82

x轴视锥体远端面

Inherited from

Camera.far


fov

fov: number = 45

Defined in: cameras/Camera.ts:87

透视投影的视角

Inherited from

Camera.fov


id

readonly id: number

Defined in: core/Transform.ts:40

唯一序号

Inherited from

Camera.id


isPerspective

isPerspective: boolean = true

Defined in: cameras/Camera.ts:110

是否为透视投影

Inherited from

Camera.isPerspective


label?

optional label: string

Defined in: core/baseObject.ts:27

自定义标识

Inherited from

Camera.label


layerMask

layerMask: number = 0

Defined in: core/Transform.ts:139

层级掩码,用于控制不同层级对象的可见性或交互

Inherited from

Camera.layerMask


left

left: number = -1

Defined in: cameras/Camera.ts:94

正交投影左边界

Inherited from

Camera.left


lookAtTarget

lookAtTarget: Vec3

Defined in: cax/CaxCamera.ts:10

相机看向的中心


matrix

matrix: Mat4

Defined in: core/Transform.ts:71

本地变换矩阵 (相对于父节点)

Inherited from

Camera.matrix


modelViewMatrix

modelViewMatrix: Mat4

Defined in: core/Transform.ts:82

模型视图矩阵 (ModelMatrix * ViewMatrix) 用于着色器计算

Inherited from

Camera.modelViewMatrix


near

near: number = 0.1

Defined in: cameras/Camera.ts:77

相机视锥体近端面

Inherited from

Camera.near


normalMatrix

normalMatrix: Mat3

Defined in: core/Transform.ts:88

法线矩阵 (模型视图矩阵的逆转置矩阵的左上3x3部分) 用于变换法向量

Inherited from

Camera.normalMatrix


occlusionTest

occlusionTest: boolean = false

Defined in: core/Transform.ts:35

是否进行遮挡查询测试

Inherited from

Camera.occlusionTest


onAfterRender()?

optional onAfterRender: (node) => void

Defined in: core/Transform.ts:134

渲染后的回调

Parameters

node

Transform

Returns

void

Inherited from

Camera.onAfterRender


onBeforeRender()?

optional onBeforeRender: (node, scene?, camera?, geometry?, material?, group?) => void

Defined in: core/Transform.ts:122

渲染前的回调

Parameters

node

any

scene?

Scene

camera?

Camera

geometry?

BufferGeometry

material?

NodeMaterial

group?

any

Returns

void

Inherited from

Camera.onBeforeRender


parent?

optional parent: Transform

Defined in: core/Transform.ts:63

父节点

Inherited from

Camera.parent


position

position: Vec3

Defined in: core/Transform.ts:100

位置

Inherited from

Camera.position


projectionMatrix

projectionMatrix: Mat4

Defined in: cameras/Camera.ts:60

投影矩阵

Inherited from

Camera.projectionMatrix


projectionMatrixInverse

projectionMatrixInverse: Mat4

Defined in: cameras/Camera.ts:64

投影矩阵的逆矩阵

Inherited from

Camera.projectionMatrixInverse


quaternion

quaternion: Quat

Defined in: core/Transform.ts:112

旋转

Inherited from

Camera.quaternion


receiveShadow

receiveShadow: boolean = false

Defined in: core/Transform.ts:31

是否接收阴影

Inherited from

Camera.receiveShadow


renderOrder

renderOrder: number = 0

Defined in: core/Transform.ts:45

渲染顺序

Inherited from

Camera.renderOrder


right: number = 1

Defined in: cameras/Camera.ts:96

正交投影右边界

Inherited from

Camera.right


rotation

rotation: Euler

Defined in: core/Transform.ts:117

旋转信息的欧拉表达

Inherited from

Camera.rotation


scaling

scaling: Vec3

Defined in: core/Transform.ts:106

缩放

Inherited from

Camera.scaling


scene

scene: CaxScene

Defined in: cax/CaxCamera.ts:16

所属的 CaxScene 场景实例


top

top: number = 1

Defined in: cameras/Camera.ts:98

正交投影上边界

Inherited from

Camera.top


up

up: Vec3

Defined in: core/Transform.ts:94

上方向

Inherited from

Camera.up


userData

userData: object = {}

Defined in: core/baseObject.ts:23

用户自定义数据

Inherited from

Camera.userData


uuid

uuid: string

Defined in: core/baseObject.ts:15

唯一标识符

Inherited from

Camera.uuid


viewMatrix

viewMatrix: Mat4

Defined in: cameras/Camera.ts:68

视图矩阵

Inherited from

Camera.viewMatrix


VPmatrix

VPmatrix: Mat4

Defined in: cameras/Camera.ts:72

投影视图矩阵

Inherited from

Camera.VPmatrix


worldMatrix

worldMatrix: Mat4

Defined in: core/Transform.ts:76

世界变换矩阵 (相对于世界坐标系)

Inherited from

Camera.worldMatrix


zoom

zoom: number = 1

Defined in: cameras/Camera.ts:105

平行投影时的缩放系数

Inherited from

Camera.zoom

Accessors

_renderSize

Get Signature

get _renderSize(): Number2

Defined in: cax/CaxCamera.ts:60

获取渲染区域的大小 [width, height]

Returns

Number2

Overrides

Camera._renderSize


h

Get Signature

get h(): number

Defined in: cameras/Camera.ts:131

获取相机的高度 (正交投影)

Returns

number

Set Signature

set h(value): void

Defined in: cameras/Camera.ts:138

设置相机的高度 (正交投影),会自动更新 top 和 bottom

Parameters
value

number

Returns

void

Inherited from

Camera.h


minViewSize

Get Signature

get minViewSize(): number

Defined in: cax/CaxCamera.ts:37

获取视图的最小边长

Returns

number

Set Signature

set minViewSize(size): void

Defined in: cax/CaxCamera.ts:24

平行投影下,设置视图的最小边长,自动计算并设置相机的宽度和高度

Parameters
size

number

Returns

void


mtime

Get Signature

get mtime(): number

Defined in: core/baseObject.ts:56

获取对象的最后修改时间戳

Returns

number

Inherited from

PixelData.mtime


parallelScale

Get Signature

get parallelScale(): number

Defined in: cax/CaxCamera.ts:45

平行投影下, 世界空间中的长度 / 视图中的长度

Returns

number

Set Signature

set parallelScale(value): void

Defined in: cax/CaxCamera.ts:52

设置平行投影下, 世界空间中的长度 / 视图中的长度,会修改相机的zoom

Parameters
value

number

Returns

void

Overrides

Camera.parallelScale


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

Camera.visible


w

Get Signature

get w(): number

Defined in: cameras/Camera.ts:115

获取相机的宽度 (正交投影)

Returns

number

Set Signature

set w(value): void

Defined in: cameras/Camera.ts:122

设置相机的宽度 (正交投影),会自动更新 left 和 right

Parameters
value

number

Returns

void

Inherited from

Camera.w

Methods

add()

add(...nodes): void

Defined in: core/Transform.ts:358

添加子节点 会自动将子节点从原来的父节点移除

Parameters

nodes

...Transform[]

要添加的子节点列表

Returns

void

Inherited from

Camera.add


addEventListener()

addEventListener(type, cb): void

Defined in: core/baseObject.ts:105

添加事件监听器

Parameters

type

string

事件类型字符串

cb

Function

事件触发时的回调函数

Returns

void

Inherited from

Camera.addEventListener


changed()

changed(): void

Defined in: core/baseObject.ts:72

标记对象为已修改 更新修改时间戳并触发所有注册的变更回调

Returns

void

Inherited from

Camera.changed


clone()

clone(): this

Defined in: cameras/Camera.ts:288

克隆当前相机实例

Returns

this

返回克隆后的相机实例,类型为this

Inherited from

Camera.clone


copy()

copy(camera): CaxCamera

Defined in: cameras/Camera.ts:268

复制另一个相机的属性

Parameters

camera

Camera

Returns

CaxCamera

Inherited from

Camera.copy


dispatchEvent()

dispatchEvent(event): void

Defined in: core/baseObject.ts:126

分发事件 触发所有注册了该事件类型的监听器

Parameters

event

事件对象,包含 type 和可选的 data

data?

any

type

string

Returns

void

Inherited from

Camera.dispatchEvent


dispose()

dispose(): void

Defined in: core/baseObject.ts:80

销毁该对象 分发 dispose 事件,通知监听者对象即将被销毁

Returns

void

Inherited from

Camera.dispose


getRotation()

getRotation(): Number3

Defined in: core/Transform.ts:208

获取欧拉角旋转信息 (数组形式)

Returns

Number3

[x, y, z] 旋转角度数组

Inherited from

Camera.getRotation


getScalingForAdjustCamera()

getScalingForAdjustCamera(worldPosition, maxSize, ratio, isMinSide): number

Defined in: cameras/Camera.ts:254

获取一个模型的缩放适应视图的缩放系数, ratio = model / view

Parameters

worldPosition

Vec3

maxSize

number

ratio

number = 1

isMinSide

boolean = true

Returns

number

Inherited from

Camera.getScalingForAdjustCamera


getWorldDirection()

getWorldDirection(): Vec3

Defined in: cameras/Camera.ts:176

获取世界空间下的朝向

Returns

Vec3

Inherited from

Camera.getWorldDirection


getZdepthAndZoomWhenMatchViewSize()

getZdepthAndZoomWhenMatchViewSize(maxSizeOfModel, isMinSide): object

Defined in: cameras/Camera.ts:239

一个物体渲染最大边 等于 视图指定边 时的相机zdepth/zoom

Parameters

maxSizeOfModel

number

模型的最大边(作为宽边)

isMinSide

boolean = true

Returns

object

zdepth

zdepth: number

zoom

zoom: number

Inherited from

Camera.getZdepthAndZoomWhenMatchViewSize


is()

is(t): boolean

Defined in: core/baseObject.ts:65

检查对象是否属于指定的类类型

Parameters

t

ClassEnum

类类型枚举值

Returns

boolean

如果对象是该类型或继承自该类型,则返回 true

Inherited from

Camera.is


lookAt()

lookAt(target): void

Defined in: core/Transform.ts:291

使节点看向指定目标点 (改变朝向)

Parameters

target

Vec3 = ...

目标点坐标 (Vec3)

Returns

void

Inherited from

Camera.lookAt


lookTo()

lookTo(direction): void

Defined in: core/Transform.ts:304

使节点看向指定方向

Parameters

direction

Vec3

方向向量 (Vec3)

Returns

void

Inherited from

Camera.lookTo


onChanged()

onChanged(cb): () => void

Defined in: core/baseObject.ts:90

注册对象变更回调 当对象发生改变(调用 changed 方法)时触发

Parameters

cb

Function

回调函数

Returns

取消注册该回调的函数

(): void

Returns

void

Inherited from

Camera.onChanged


pixelToWorld()

pixelToWorld(v): void

Defined in: cax/CaxCamera.ts:127

像素坐标转换为世界坐标 (假设 z=0 在 NDC 空间,具体深度取决于反投影逻辑)

Parameters

v

Number2

像素坐标 [x, y]

Returns

void


project()

project(v): Vec3

Defined in: cameras/Camera.ts:184

投影,世界坐标 -> ndc

Parameters

v

Vec3

Returns

Vec3

Inherited from

Camera.project


remove()

remove(...nodes): void

Defined in: core/Transform.ts:372

移除子节点

Parameters

nodes

...Transform[]

要移除的子节点列表

Returns

void

Inherited from

Camera.remove


removeEventListener()

removeEventListener(type, cb): void

Defined in: core/baseObject.ts:116

移除事件监听器

Parameters

type

string

事件类型字符串

cb

Function

要移除的回调函数

Returns

void

Inherited from

Camera.removeEventListener


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

Camera.rotate


rotateOnAxis()

rotateOnAxis(axis, radian): void

Defined in: core/Transform.ts:251

绕本地坐标系的指定轴旋转

Parameters

axis

Vec3

旋转轴 (Vec3)

radian

number

旋转角度 (弧度)

Returns

void

Inherited from

Camera.rotateOnAxis


rotateOnWorldAxis()

rotateOnWorldAxis(axis, radian): void

Defined in: core/Transform.ts:261

绕世界坐标系的指定轴旋转

Parameters

axis

Vec3

旋转轴 (Vec3)

radian

number

旋转角度 (弧度)

Returns

void

Inherited from

Camera.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

Camera.scale


setMatrix()

setMatrix(m): void

Defined in: core/Transform.ts:190

设置节点的本地变换矩阵 会自动分解出 position, quaternion, scaling

Parameters

m

Mat4

变换矩阵

Returns

void

Inherited from

Camera.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

Camera.setRotation


setSize()

setSize(w, h): void

Defined in: cax/CaxCamera.ts:78

窗口变化时,重新设置相机参数,平行投影时,改变相机的w和aspect,保持h不变

Parameters

w

number = ...

渲染窗口宽度

h

number = ...

渲染窗口高度

Returns

void


toJSON()

toJSON(): object

Defined in: cameras/Camera.ts:292

序列化为 JSON 对象

Returns

object

包含位置、旋转和缩放的 JSON 对象

_parentClass

_parentClass: any

aspect

aspect: number

far

far: number

fov

fov: number

h

h: number

isPerspective

isPerspective: boolean

near

near: number

up

up: number[] | TypedArray

w

w: number

zoom

zoom: number

Inherited from

Camera.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

Camera.translate


translateOnAxis()

translateOnAxis(axis, distance): CaxCamera

Defined in: core/Transform.ts:230

沿指定轴平移节点 轴是在本地坐标系下指定的,但移动方向受当前旋转影响

Parameters

axis

Vec3

移动轴 (Vec3)

distance

number

移动距离

Returns

CaxCamera

this

Inherited from

Camera.translateOnAxis


traverse()

traverse(cb): void

Defined in: core/Transform.ts:199

遍历场景树,对当前节点及所有后代节点执行回调

Parameters

cb

(node) => void

回调函数,接收当前正在处理的节点作为参数

Returns

void

Inherited from

Camera.traverse


unproject()

unproject(v): Vec3

Defined in: cameras/Camera.ts:194

逆投影,ndc -> 世界坐标

Parameters

v

Vec3

Returns

Vec3

Inherited from

Camera.unproject


updateMatrix()

updateMatrix(): void

Defined in: core/Transform.ts:313

更新本地矩阵 根据当前的 position, quaternion, scaling 组合计算 matrix

Returns

void

Inherited from

Camera.updateMatrix


updateProjectionMC()

updateProjectionMC(isPerspective?): void

Defined in: cameras/Camera.ts:213

更新投影矩阵

Parameters

isPerspective?

boolean

是否使用透视投影

Returns

void

Inherited from

Camera.updateProjectionMC


updateWorldMatrix()

updateWorldMatrix(updateParant, updateChildren): void

Defined in: cameras/Camera.ts:203

重载更新矩阵函数

Parameters

updateParant

boolean = false

updateChildren

boolean = true

Returns

void

Inherited from

Camera.updateWorldMatrix


worldToCSSPixel()

worldToCSSPixel(v): Number2

Defined in: cax/CaxCamera.ts:101

世界坐标转换为 CSS 像素坐标 (左上角为原点) 默认是左下角需统一转换到左上角

Parameters

v

Vec3

世界坐标点

Returns

Number2

[x, y] 像素坐标


worldToScreen()

worldToScreen(v): object

Defined in: cax/CaxCamera.ts:88

世界坐标转换为(DOM)屏幕像素坐标 (左上角为原点)

Parameters

v

Vec3

世界坐标点

Returns

object

包含 left 和 top 的对象

left

left: number

top

top: number


createOrthographicCamera()

static createOrthographicCamera(left, right, top, bottom, near, far): Camera

Defined in: cameras/Camera.ts:24

创建正交相机

Parameters

left

number = -1

左边界

right

number = 1

右边界

top

number = 1

上边界

bottom

number = -1

下边界

near

number = 0.1

近裁剪面

far

number = 2000

远裁剪面

Returns

Camera

Inherited from

Camera.createOrthographicCamera


createPerspectiveCamera()

static createPerspectiveCamera(fov, aspect, near, far): Camera

Defined in: cameras/Camera.ts:47

创建透视相机

Parameters

fov

number = 50

视场角 (Field of View)

aspect

number = 1

宽高比

near

number = 0.1

近裁剪面

far

number = 2000

远裁剪面

Returns

Camera

Inherited from

Camera.createPerspectiveCamera