-
new Node(params)
-
节点,3D场景中的元素,是大部分类的基类
Name Type Description params
object optional 初始化参数,所有params都会复制到实例上
Example
const node = new Hilo3d.Node({ name:'test', x:100, rotationX:30, onUpdate(){ this.rotationY ++; } }); node.scaleX = 0.3; stage.addChild(node);
Mixes In
Members Show Inherited
Name | Type | Default | Description |
---|---|---|---|
isNode
|
boolean | true | |
className
|
string | Node | |
name
|
string |
Node 的名字,可以通过 getChildByName 查找 |
|
anim
|
Animation | null |
动画 |
animationId
|
String | '' |
animation 查找 id |
jointName
|
String | '' |
骨骼名称 |
autoUpdateWorldMatrix
|
boolean | true |
是否自动更新世界矩阵 |
autoUpdateChildWorldMatrix
|
boolean | true |
是否自动更新子元素世界矩阵 |
parent
|
Node | null |
父节点 |
needCallChildUpdate
|
boolean | true |
每次更新的时候是否调用子节点的 onUpdate 方法 |
visible
|
boolean | true |
节点是否显示 |
pointerEnabled
|
Boolean | true |
可视对象是否接受交互事件。默认为接受交互事件,即true。 |
pointerChildren
|
Boolean | true |
子元素是否接受交互事件。 |
useHandCursor
|
Boolean | false |
是否用鼠标指针 |
userData
|
any | null |
用户数据 |
onUpdate
|
function | null |
update 回调 |
onlySyncQuaternion
|
Boolean | false |
只同步四元数,不同步欧拉角 |
id
|
string | ||
up
|
Vector3 |
元素的up向量 |
|
children
|
Array.<Node> |
元素直接点数组 |
|
worldMatrix
|
Matrix4 |
元素的世界矩阵 |
|
matrix
|
Matrix4Notifier |
元素的矩阵 |
|
position
|
Vector3Notifier |
位置 |
|
x
|
number |
x轴坐标 |
|
y
|
number |
y轴坐标 |
|
z
|
number |
z轴坐标 |
|
scale
|
Vector3Notifier |
缩放 |
|
scaleX
|
number |
缩放比例x |
|
scaleY
|
number |
缩放比例y |
|
scaleZ
|
number |
缩放比例z |
|
pivot
|
Vector3Notifier |
中心点 |
|
pivotX
|
Number |
中心点x |
|
pivotY
|
Number |
中心点y |
|
pivotZ
|
Number |
中心点z |
|
rotation
|
EulerNotifier |
欧拉角 |
|
rotationX
|
number |
旋转角度 x, 角度制 |
|
rotationY
|
number |
旋转角度 y, 角度制 |
|
rotationZ
|
number |
旋转角度 z, 角度制 |
|
quaternion
|
Quaternion |
四元数角度 |
|
matrixVersion
|
Number | 0 |
矩阵 version,每次改变会加一 |
worldMatrixVersion
|
Number | 0 |
世界矩阵 version,每次改变会加一 |
-
staticNode.TRAVERSE_STOP_NONEnumber
-
traverse callback 返回值,执行后不暂停 traverse
-
staticNode.TRAVERSE_STOP_CHILDRENnumber
-
traverse callback 返回值,执行后暂停子元素 traverse
-
staticNode.TRAVERSE_STOP_ALLnumber
-
traverse callback 返回值,执行后暂停所有 traverse
Methods Show Inherited
-
clone(isChild){Node}
-
Name Type Default Description isChild
boolean false optional 是否子节点,子节点不会处理动画及骨骼Mesh,即如果有动画将共享
Returns:
Type Description Node 返回clone的Node -
setAnim(anim){Node}
-
设置节点的动画,这个需要是模型的根节点
Name Type Description anim
Animation 动画实例
Returns:
Type Description Node this -
resetSkinedMeshRootNode()
-
重置子孙元素中 SkinedMesh 的根节点为当前元素
-
getChildrenNameMap(){Object}
-
将所以子孙元素放到一个对象中,对象key为元素的name,value为该元素
Returns:
Type Description Object 返回获取的对象 -
addChild(child){Node}
-
添加一个子元素
Name Type Description child
Node 需要添加的子元素
Returns:
Type Description Node this -
removeChild(child){Node}
-
移除指定的子元素
Name Type Description child
Node 需要移除的元素
Returns:
Type Description Node this -
addTo(parent){Node}
-
将当前元素添加到某个父元素的子元素中
Name Type Description parent
Node 需要添加到的父元素
Returns:
Type Description Node this -
updateMatrixWorld(force){Node}
-
更新世界矩阵
Name Type Default Description force
Boolean true optional 是否强制更新
Returns:
Type Description Node this -
getConcatenatedMatrix(ancestor){Matrix4}
-
获取当前元素相对于指定元素的矩阵
Name Type Description ancestor
Node optional 相对于的元素,需要是当前元素的祖先元素,不传表示获取世界矩阵
Returns:
Type Description Matrix4 返回获取的矩阵 -
traverse(callback, onlyChild){Node}
-
遍历当前元素的子孙元素
Name Type Default Description callback
NodeTraverseCallback 每个元素都会调用这个函数处理
onlyChild
Boolean false optional 是否只遍历子元素
Returns:
Type Description Node this -
traverseBFS(callback, onlyChild){Node}
-
遍历当前元素的子孙元素(广度优先)
Name Type Default Description callback
NodeTraverseCallback 每个元素都会调用这个函数处理
onlyChild
Boolean false optional 是否只遍历子元素
Returns:
Type Description Node this -
getChildByFnBFS(fn){Node|null}
-
根据函数来获取一个子孙元素(广度优先)
Name Type Description fn
NodeGetChildByCallback 判读函数
Returns:
Type Description Node | null 返回获取到的子孙元素 -
getChildByNamePath(path){Node|null}
-
根据 name path 来获取子孙元素
Name Type Description path
Array.<String> 名字数组, e.g., getChildByNamePath(['a', 'b', 'c'])
Returns:
Type Description Node | null 返回获取到的子孙元素 -
traverseUpdate(dt){Node}
-
遍历调用子孙元素onUpdate方法
Name Type Description dt
Number Returns:
Type Description Node this -
getChildByFn(fn){Node|null}
-
根据函数来获取一个子孙元素
Name Type Description fn
NodeGetChildByCallback 判读函数
Returns:
Type Description Node | null 返回获取到的子孙元素 -
getChildrenByFn(fn){Array.<Node>}
-
根据函数来获取匹配的所有子孙元素
Name Type Description fn
NodeGetChildByCallback 判读函数
Returns:
Type Description Array.<Node> 返回获取到的子孙元素 -
getChildByName(name){Node|null}
-
获取指定name的首个子孙元素
Name Type Description name
string 元素name
Returns:
Type Description Node | null 获取的元素 -
getChildrenByName(name){Array.<Node>}
-
获取指定name的所有子孙元素
Name Type Description name
string 元素name
Returns:
Type Description Array.<Node> 获取的元素数组 -
getChildById(id){Node|null}
-
获取指定id的子孙元素
Name Type Description id
string 元素id
Returns:
Type Description Node | null 获取的元素 -
getChildrenByClassName(className){Array.<Node>}
-
获取指定类名的所有子孙元素
Name Type Description className
string 类名
Returns:
Type Description Array.<Node> 获取的元素数组 -
getChildrenByBaseClassName(className){Array.<Node>}
-
获取指定基类名的所有子孙元素
Name Type Description className
string 类名
Returns:
Type Description Array.<Node> 获取的元素数组 -
setScale(x, y, z){Node}
-
设置元素的缩放比例,如果只有一个参数三个轴等比缩放
Name Type Description x
number X缩放比例
y
number optional Y缩放比例
z
number optional Z缩放比例
Returns:
Type Description Node this -
setPosition(x, y, z){Node}
-
设置元素的位置
Name Type Description x
number X方向位置
y
number Y方向位置
z
number Z方向位置
Returns:
Type Description Node this -
setRotation(x, y, z){Node}
-
设置元素的旋转
Name Type Description x
number X轴旋转角度, 角度制
y
number Y轴旋转角度, 角度制
z
number Z轴旋转角度, 角度制
Returns:
Type Description Node this -
setPivot(x, y, z){Node}
-
设置中心点
Name Type Description x
Number 中心点x
y
Number 中心点y
z
Number 中心点z
Returns:
Type Description Node this -
lookAt(node){Node}
-
改变元素的朝向
Name Type Description node
Node | Object | Vector3 需要朝向的元素,或者坐标
Returns:
Type Description Node this -
raycast(ray, sort, eventMode){Array.<raycastInfo>|null}
-
raycast
Name Type Default Description ray
Ray sort
Boolean false optional 是否按距离排序
eventMode
Boolean false optional 是否事件模式
Returns:
Type Description Array.<raycastInfo> | null -
getBounds(parent, currentMatrix, bounds){Bounds}
-
获取元素的包围盒信息
Name Type Description parent
Node optional 元素相对于哪个祖先元素的包围盒,不传表示世界
currentMatrix
Matrix4 optional 当前计算的矩阵
bounds
Bounds optional 当前计算的包围盒信息
Returns:
Type Description Bounds 返回计算的包围盒信息 -
destroy(renderer, destroyTextures){Node}
-
销毁 Node 资源
Name Type Default Description renderer
WebGLRenderer optional stage时可以不传
destroyTextures
Boolean false optional 是否销毁材质的贴图,默认不销毁
Returns:
Type Description Node this