Object3D
Object3D似乎是Three.js框架中最重要的类,相当一部分其他的类都是继承自Object3D类,比如场景类、几何形体类、相机类、光照类等等:他们都是3D空间中的对象,所以称为Object3D类。
构造函数
Object3D()
特性
- castShadow: Boolean 投射阴影,默认false
- children: Object3D 数组表示对象的子类
- frustumCulled 默认true,设置后在每一帧渲染时检查对象在相机的截头体(四棱台)
- id: Integer 只读,对象实例的唯一数字
- isObject3D: Boolean
- layers: Layers 只有该物体至少有一层与正在使用的照相机相同,该物体才是可见的
- matrix: Matrix4 本地变换矩阵
- matrixAutoUpdate: Boolean 默认true
- matrixWorld: Matrix4 全局的变换矩阵,没有父对象则和本地转换一样
- matrixWorldNeedsUpdate: Boolean 默认false。设置此项后,它将计算该帧中的matrixWorld并将此属性重置为false
- modelViewMatrix: Matrix4 传递给着色器计算对象的位置
- name: String 默认null,可选的对象的名
- normalMatrix: Matrix3 传递给着色器来计算对象上的灯光
- onAfterRender: Function 可选的渲染对象后的回调函数,参数 renderer, scene, camera, geometry, material, group.
- onBeforeRender: Function
- parent: Object3D
- position: Vector3 对象的本地位置,默认(0,0,0)
- quaternion: Quaternion 对象的本地旋转(四元数)
- receiveShadow: Boolean 默认false,材料是否接收阴影
- renderOrder: Number 默认0,呈现从低到高的方式
- rotation: Eular 对象本地旋转(欧拉角,弧度)
- scale: Vector3 默认(1,1,1) 缩放
- up: Vector3 默认(0,1,0),LookAt()用它来确定结果的方向
- userData: Object 存储用户自定义数据的对象
- uuid: String 自动分配的不可编辑
- visible: Boolean 默认true
静态特性
- DefaultUp: Vector3 默认(0,1,0),用作直射光,聚光灯的默认位置
- DefaultMatrixAutoUpdate: Vector3 新创建的Object3D对象默认设置matrixAutoUpdate
方法
- EventDispatcher() 在这个类上可用
- add(object: Object3D…) 给添加子对象,对象对多只能有一个父对象
- applyMatrix(matrix: Mateix4): null 更新位置,旋转和缩放
- applyQuaternion(quaternion: Quaternion) 更新旋转
- clone(recursive: Boolean) 默认true,对象的后代也被克隆
- copy(object: Object3D,recursive: Boolean): this 复制对象到当前对象
- getObjectById(id: Integer): Object3D
- getObjectByName(name: String): Object3D
- getObjectByProperty(name: string,value: Float) : Object3D 搜索对象的子类,返回第一个匹配的值
- getWorldposition(target: Vector3): Vector3
- getWorldQuaternion(target: Quaternion): Quaternion
- getWorldScale(target: Vector3): Vector3
- getWorldDirection(target: Vector3): Vector3
- localToWorld(vector: Vector3): Vector3 转换本地坐标到世界坐标
- lootAt(vector: Vector3): null 不支持有旋转/转换的父类对象 旋转物体的面朝向世界坐标中的一个点
- lookAt(x: Float,y: Float,z: Float): null 可以让摄像机追踪某个对象的位置
- raycast(raycast: Raycast, intersects: Array): Array 获取投射线和对象之间的交集
- remove(object: object3D…): null 移除任意数量的子对象
- rotateOnAxis(axis: Vector3,angle: Float): this
- rotateOnWorldAxis(axis: Vector3,angle: Float): this
- rotateX/Y/Z(rad: Float): this 旋转轴是x/y/z轴,旋转rad弧度
- setRotationFromAxisAngle(axis: Vector3,angle: Float): null
- setRotationFromEular(eular: Eular): null
- setRotationFromMatrix ( m : Matrix4 ) : null
- setRotationFromQuaternion ( q : Quaternion ) : null
- toJSON(q: Quaternion): null
- translateOnAxis ( axis : Vector3, distance : Float ) : this
- translateX/Y/Z ( distance : Float ) : this
- traverse ( callback : Function ) : null 遍历,对象和后代均执行回调
- traverseVisible ( callback : Function ) : null 只针对可见的对象
- traverseAncestors ( callback : Function ) : null 对所有祖先执行回调
- updateMatrix () : null 更新本地的变换,对象本地的位置,旋转,缩放发生变换时调用
- updateMatrixWorld ( force : Boolean ) : null 更新对象和子类的世界变换
- worldToLocal ( vector : Vector3 ) : Vector3 世界坐标转换本地坐标
Layers
默认所有的Object3D都是0层,总共32层,层数0~31 控制可见性
构造函数
Layers()
特性
- mask:Integer 存储此层对象属于32层的哪一层
方法
- disable/enable/set/test/toggle(layer: Integer)
来源