Skip to content

@simversus/yjvis


@simversus/yjvis / cax / Model

Class: Model

Defined in: cax/Model.ts:10

模型,代表一个可渲染对象

Extends

Constructors

Constructor

new Model(p): Model

Defined in: cax/Model.ts:116

Parameters

p

Partial<{ material?: NodeMaterial; modelData: ModelData; }> = {}

Returns

Model

Overrides

RenderableObject.constructor

Properties

_instanceColors

_instanceColors: Color[]

Defined in: cax/Model.ts:33

每个实例的颜色, 颜色的个数需要匹配上实例的数量,若无法匹配,则会使用默认颜色[0,0,0]


_pointRepresentation

_pointRepresentation: PointRepresentation = PointRepresentation.geometry

Defined in: cax/Model.ts:25

点云渲染类型


_renderEntities

protected _renderEntities: Record<RenderEntityType, RenderEntity>

Defined in: cax/RenderableObject.ts:68

渲染实体集合 按照类型 (点/线/面/阴影等) 划分的实际渲染对象

Inherited from

RenderableObject._renderEntities


_visible

_visible: boolean = true

Defined in: core/Transform.ts:51

是否可见

Inherited from

RenderableObject._visible


castShadow

castShadow: boolean = false

Defined in: core/Transform.ts:27

是否投射阴影

Inherited from

RenderableObject.castShadow


children

children: Transform[] = []

Defined in: core/Transform.ts:57

子节点

Inherited from

RenderableObject.children


classHierarchy

classHierarchy: ClassEnum[]

Defined in: core/baseObject.ts:19

继承链

Inherited from

RenderableObject.classHierarchy


glyph

glyph: boolean = false

Defined in: cax/Model.ts:36

表示它是个矢量


glyphMapName

glyphMapName: string = ''

Defined in: cax/Model.ts:42

矢量的计算参数,用于计算矢量的箭头数量及方向


glyphUniform

glyphUniform: boolean = false

Defined in: cax/Model.ts:39

矢量是否均匀


id

readonly id: number

Defined in: core/Transform.ts:40

唯一序号

Inherited from

RenderableObject.id


isModel

isModel: boolean = true

Defined in: cax/Model.ts:14


label?

optional label: string

Defined in: core/baseObject.ts:27

自定义标识

Inherited from

RenderableObject.label


layerMask

layerMask: number = 0

Defined in: core/Transform.ts:139

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

Inherited from

RenderableObject.layerMask


material

material: NodeMaterial | Line2NodeMaterial

Defined in: cax/RenderableObject.ts:23

材质对象 如果渲染实体 (RenderEntity) 设置了自身的材质属性,将不再从此处获取全局材质

Inherited from

RenderableObject.material


matrix

matrix: Mat4

Defined in: core/Transform.ts:71

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

Inherited from

RenderableObject.matrix


modelData

modelData: ModelData

Defined in: cax/RenderableObject.ts:35

模型原始数据 存储顶点、索引等几何信息

Inherited from

RenderableObject.modelData


modelId

modelId: string | number

Defined in: cax/RenderableObject.ts:41

模型的外部标识 Id 默认为 UUID,方便外部系统引用

Inherited from

RenderableObject.modelId


modelViewMatrix

modelViewMatrix: Mat4

Defined in: core/Transform.ts:82

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

Inherited from

RenderableObject.modelViewMatrix


normalMatrix

normalMatrix: Mat3

Defined in: core/Transform.ts:88

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

Inherited from

RenderableObject.normalMatrix


occlusionTest

occlusionTest: boolean = false

Defined in: core/Transform.ts:35

是否进行遮挡查询测试

Inherited from

RenderableObject.occlusionTest


onAfterRender()?

optional onAfterRender: (node) => void

Defined in: core/Transform.ts:134

渲染后的回调

Parameters

node

Transform

Returns

void

Inherited from

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

RenderableObject.onBeforeRender


parent?

optional parent: Transform

Defined in: core/Transform.ts:63

父节点

Inherited from

RenderableObject.parent


particleData

particleData: ModelData

Defined in: cax/Model.ts:19

粒子数据/点云数据/点数据


particleGeometry

particleGeometry: ModelData

Defined in: cax/Model.ts:22

实例几何的渲染数据


pickable

pickable: boolean = true

Defined in: cax/RenderableObject.ts:71

是否允许拾取/交互

Inherited from

RenderableObject.pickable


position

position: Vec3

Defined in: core/Transform.ts:100

位置

Inherited from

RenderableObject.position


quaternion

quaternion: Quat

Defined in: core/Transform.ts:112

旋转

Inherited from

RenderableObject.quaternion


receiveShadow

receiveShadow: boolean = false

Defined in: core/Transform.ts:31

是否接收阴影

Inherited from

RenderableObject.receiveShadow


renderOrder

renderOrder: number = 0

Defined in: cax/RenderableObject.ts:47

渲染排序权重 数值越小越先渲染,默认为 0

Inherited from

RenderableObject.renderOrder


representation

representation: Representation = Representation.faceAlineApoint

Defined in: cax/RenderableObject.ts:62

模型的表现形式(渲染模式) 例如:面渲染、线渲染、点渲染或其组合

Inherited from

RenderableObject.representation


rotation

rotation: Euler

Defined in: core/Transform.ts:117

旋转信息的欧拉表达

Inherited from

RenderableObject.rotation


scaleFactor

scaleFactor: number = 1

Defined in: cax/Model.ts:28

对于粒子渲染的缩放因子


scaling

scaling: Vec3

Defined in: core/Transform.ts:106

缩放

Inherited from

RenderableObject.scaling


type

type: MeshType = MeshType.mesh

Defined in: cax/Model.ts:12

标注当前渲染对象的几何类型

Overrides

RenderableObject.type


up

up: Vec3

Defined in: core/Transform.ts:94

上方向

Inherited from

RenderableObject.up


userData

userData: object = {}

Defined in: core/baseObject.ts:23

用户自定义数据

Inherited from

RenderableObject.userData


uuid

uuid: string

Defined in: core/baseObject.ts:15

唯一标识符

Inherited from

RenderableObject.uuid


worldMatrix

worldMatrix: Mat4

Defined in: core/Transform.ts:76

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

Inherited from

RenderableObject.worldMatrix

Accessors

instanceColors

Get Signature

get instanceColors(): Color[]

Defined in: cax/Model.ts:78

Returns

Color[]


instanceGeometry

Set Signature

set instanceGeometry(data): void

Defined in: cax/Model.ts:74

Parameters
data

ModelData

Returns

void


isParticle

Get Signature

get isParticle(): boolean

Defined in: cax/Model.ts:99

Returns

boolean


lodData

Get Signature

get lodData(): ModelData[]

Defined in: cax/RenderableObject.ts:96

获取模型的 LOD (多细节层次) 数据列表

Returns

ModelData[]

Inherited from

RenderableObject.lodData


mtime

Get Signature

get mtime(): number

Defined in: core/baseObject.ts:56

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

Returns

number

Inherited from

PixelData.mtime


pointRepresentation

Get Signature

get pointRepresentation(): PointRepresentation

Defined in: cax/Model.ts:103

Returns

PointRepresentation

Set Signature

set pointRepresentation(value): void

Defined in: cax/Model.ts:107

Parameters
value

PointRepresentation

Returns

void


renderEntities

Get Signature

get renderEntities(): Readonly<Record<RenderEntityType, RenderEntity>>

Defined in: cax/RenderableObject.ts:82

获取渲染实体映射表 (只读)

Returns

Readonly<Record<RenderEntityType, RenderEntity>>

Set Signature

set renderEntities(value): void

Defined in: cax/RenderableObject.ts:89

设置渲染实体映射表

Parameters
value

Record<RenderEntityType, RenderEntity>

Returns

void

Inherited from

RenderableObject.renderEntities


scene

Get Signature

get scene(): CaxScene

Defined in: cax/RenderableObject.ts:117

获取模型所属的场景根节点 (CaxScene)

Returns

CaxScene

Inherited from

RenderableObject.scene


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

RenderableObject.visible

Methods

add()

add(...nodes): void

Defined in: core/Transform.ts:358

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

Parameters

nodes

...Transform[]

要添加的子节点列表

Returns

void

Inherited from

RenderableObject.add


addEventListener()

addEventListener(type, cb): void

Defined in: core/baseObject.ts:105

添加事件监听器

Parameters

type

string

事件类型字符串

cb

Function

事件触发时的回调函数

Returns

void

Inherited from

RenderableObject.addEventListener


changed()

changed(): void

Defined in: core/baseObject.ts:72

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

Returns

void

Inherited from

RenderableObject.changed


clone()

clone(recursive?): Model

Defined in: core/Transform.ts:406

克隆当前节点

Parameters

recursive?

boolean

是否递归克隆子节点,默认为 true

Returns

Model

克隆后的新节点

Inherited from

RenderableObject.clone


copy()

copy(source, recursive): Model

Defined in: core/Transform.ts:417

从源节点复制属性

Parameters

source

this

源节点

recursive

boolean = true

是否递归复制子节点,默认为 true

Returns

Model

this

Inherited from

RenderableObject.copy


dispatchEvent()

dispatchEvent(event): void

Defined in: core/baseObject.ts:126

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

Parameters

event

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

data?

any

type

string

Returns

void

Inherited from

RenderableObject.dispatchEvent


dispose()

dispose(): void

Defined in: core/baseObject.ts:80

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

Returns

void

Inherited from

RenderableObject.dispose


getRotation()

getRotation(): Number3

Defined in: core/Transform.ts:208

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

Returns

Number3

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

Inherited from

RenderableObject.getRotation


getSpecificModelData()

getSpecificModelData(): ModelData

Defined in: cax/Model.ts:131

Returns

ModelData

Overrides

RenderableObject.getSpecificModelData


getWorldDirection()

getWorldDirection(target): Vec3

Defined in: core/Transform.ts:343

获取节点在世界空间中的朝向

Parameters

target

Vec3 = ...

目标向量,用于存储结果

Returns

Vec3

朝向向量

Inherited from

RenderableObject.getWorldDirection


initRenderEntities()

initRenderEntities(curModel): void

Defined in: cax/RenderableObject.ts:142

初始化所有类型的渲染实体

Parameters

curModel

当前具体模型实例 (Model 或 LineModel)

Model | LineModel

Returns

void

Inherited from

RenderableObject.initRenderEntities


is()

is(t): boolean

Defined in: core/baseObject.ts:65

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

Parameters

t

ClassEnum

类类型枚举值

Returns

boolean

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

Inherited from

RenderableObject.is


lookAt()

lookAt(target): void

Defined in: core/Transform.ts:291

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

Parameters

target

Vec3 = ...

目标点坐标 (Vec3)

Returns

void

Inherited from

RenderableObject.lookAt


lookTo()

lookTo(direction): void

Defined in: core/Transform.ts:304

使节点看向指定方向

Parameters

direction

Vec3

方向向量 (Vec3)

Returns

void

Inherited from

RenderableObject.lookTo


onChanged()

onChanged(cb): () => void

Defined in: core/baseObject.ts:90

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

Parameters

cb

Function

回调函数

Returns

取消注册该回调的函数

(): void

Returns

void

Inherited from

RenderableObject.onChanged


release()

release(): void

Defined in: cax/RenderableObject.ts:192

释放资源 清理渲染实体和材质相关的 GPU 资源

Returns

void

Inherited from

RenderableObject.release


remove()

remove(...nodes): void

Defined in: core/Transform.ts:372

移除子节点

Parameters

nodes

...Transform[]

要移除的子节点列表

Returns

void

Inherited from

RenderableObject.remove


removeEventListener()

removeEventListener(type, cb): void

Defined in: core/baseObject.ts:116

移除事件监听器

Parameters

type

string

事件类型字符串

cb

Function

要移除的回调函数

Returns

void

Inherited from

RenderableObject.removeEventListener


resetInstanceData()

resetInstanceData(deleteOldInstanceMesh): void

Defined in: cax/Model.ts:69

重置实例化数据

Parameters

deleteOldInstanceMesh

boolean = true

是否删除旧的实例化模型

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

RenderableObject.rotate


rotateOnAxis()

rotateOnAxis(axis, radian): void

Defined in: core/Transform.ts:251

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

Parameters

axis

Vec3

旋转轴 (Vec3)

radian

number

旋转角度 (弧度)

Returns

void

Inherited from

RenderableObject.rotateOnAxis


rotateOnWorldAxis()

rotateOnWorldAxis(axis, radian): void

Defined in: core/Transform.ts:261

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

Parameters

axis

Vec3

旋转轴 (Vec3)

radian

number

旋转角度 (弧度)

Returns

void

Inherited from

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

RenderableObject.scale


setInstanceColors()

setInstanceColors(color): void

Defined in: cax/Model.ts:85

Parameters

color

number[][]

接收一个数组,由三维数组组成

Returns

void


setInstanceMatrixs()

setInstanceMatrixs(matrix): void

Defined in: cax/Model.ts:47

Parameters

matrix

number[][]

接收一个数组,由三维数组组成

Returns

void


setLodModel()

setLodModel(cb): void

Defined in: cax/RenderableObject.ts:167

对每个lod模型执行传入的回调函数

Parameters

cb

(model) => void

Returns

void

Inherited from

RenderableObject.setLodModel


setMatrix()

setMatrix(m): void

Defined in: core/Transform.ts:190

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

Parameters

m

Mat4

变换矩阵

Returns

void

Inherited from

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

RenderableObject.setRotation


startRender()

startRender(): void

Defined in: cax/RenderableObject.ts:153

开始渲染流程 检查每个渲染实体的可见性状态,并决定是否启动其渲染过程

Returns

void

Inherited from

RenderableObject.startRender


toJSON()

toJSON(): any

Defined in: core/Transform.ts:393

序列化为 JSON 对象

Returns

any

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

Inherited from

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

RenderableObject.translate


translateOnAxis()

translateOnAxis(axis, distance): Model

Defined in: core/Transform.ts:230

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

Parameters

axis

Vec3

移动轴 (Vec3)

distance

number

移动距离

Returns

Model

this

Inherited from

RenderableObject.translateOnAxis


traverse()

traverse(cb): void

Defined in: core/Transform.ts:199

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

Parameters

cb

(node) => void

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

Returns

void

Inherited from

RenderableObject.traverse


updateMatrix()

updateMatrix(): void

Defined in: core/Transform.ts:313

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

Returns

void

Inherited from

RenderableObject.updateMatrix


updateWorldMatrix()

updateWorldMatrix(updateParant, updateChildren): void

Defined in: core/Transform.ts:323

更新世界矩阵 递归更新父节点(可选)和所有子节点(可选)

Parameters

updateParant

boolean = false

是否同时更新父节点

updateChildren

boolean = true

是否同时更新子节点

Returns

void

Inherited from

RenderableObject.updateWorldMatrix