本帖最后由 tangan 于 2023-8-21 10:37 编辑
外网参考:https://docs.thingjs.com/cn/apidocs/
Object3D 三维世界中的物体类
THING.BaseObject 基类
alwaysOnTop 渲染物体对象是否保持置于顶层
object.alwaysOnTop = true;
angles 获取/设置世界坐标系下的旋转角度信息
inherit 获取继承信息
object.inherit.visible = THING.InheritType.Break;
object.inherit.pickable = THING.InheritType.Stop;
keepSize 按照在当前摄像机中呈现的大小锁定缩放值,以维持自身物体在视口中的渲染大小不变
layerMask 获取/设置遮罩层(LayerMask)。用于控制物体在指定摄像机渲染中的可见性。0 表示在指定摄像机中隐藏此物体,非 0 的值表示在指定摄像机中显示此物体。默认值为 1。通过“按位与”的计算,来判定物体在指定摄像机中的layerMask的值。在批量渲染模式下,不支持此功能
localAngles 获取/设置相对坐标系下的旋转角度信息
position 获取/设置物体在世界坐标系下的位置信息
localPosition 获取/设置物体在相对坐标系下(相对于父物体)的位置信息
localQuaternion 获取/设置惯性空间下的四元数
tags 获取/设置标识列表
visible 获取/设置显示状态,此属性操作会影响自身以及所有子物体
pickable 获取/设置可拾取状态
quaternion 获取/设置在世界坐标系下的四元数
scale 获取/设置世界坐标系下的缩放信息
style 获取/设置物体样式
pivot 获取/设置轴心点信息。轴心点参考原点为自身包围盒的 [left, bottom, back] 的位置
boundingBox 获取世界坐标系下的包围盒数据
ThingJS选择器类扩展
const app = THING.App.current ThinigJS的主程序(下面的app均表示此信息)
query(param [, recursive]) 在子物体中查询(不包括自己) param查询条件,recursive是否递归查询所有子物体, 默认true
app.query('*') 同'.BaseObject',通配符*表示所有;BaseObject是基类
has(object) 判断集合中是否拥有某物体
app.query('.Thing').has(app.query('#temp')[0])
equals 判断两个集合中是否相等
app.query('.Campus').equals(app.query('#智慧产业园')) // true
getNodes 返回node 节点
app.query('#temp').getNodes()
add 集合添加某个集合
app.query('#temp').add(app.query('#temp1'))
remove 集合删除某个集合
app.query('#temp').remove(app.query('#innerTemp'))
reverse 颠倒集合中对象的顺序
app.query('#temp').add(app.query('#temp1')).reverse()
indexOf(object) 获取对象集合中某物体的下标索引值 若对象集合中不包含此物体,则返回 -1
concat 拼接对象集合
flipVisible 集合的visible属性取反
toJSON 对象集合序列化
app.query('#temp').toJSON()
toArray 将对象集合转换为数组
app.query('#temp').toArray()
axisHelper 显示对象的x,y,z坐标轴
app.query('#temp')[0].style.axisHelper = true
boundingBox 显示对象的边界盒
app.query('#temp')[0].style.boundingBox = true
orientedBoundingBox 显示对象的定向边界盒
boundingBoxColor 更改边界盒的颜色
app.query('#temp')[0].style.boundingBoxColor = 'yellow'
defaultOutlineColor 修改默认勾边的颜色
app.query('#temp')[0].style.defaultOutlineColor = 'blue'
doubleSide 物体增加两边线
app.query('#temp')[0].style.doubleSide = true
glow 发光
app.query('#temp')[0].style.glow = true
lineBloom 发光颜色,比glow强
app.query('#temp')[0].style.lineBloom = true
edgeColor 显示/隐藏模型边缘
app.query('#temp')[0].style.edgeColor = '#f00'
emissive 设置/获取材质自发光颜色
app.query('#temp')[0].style.emissive = 'pink'
emissiveScrollImage 设置/获取材质自发光滚动贴图。 最终的发光结果会乘以emissive的颜色。如果想让发光贴图生效,需要确认emissive不是黑色
environmentImage 设置/获取反射贴图
app.query('#temp')[0].style.environmentImage = 'BlueSky'
focusRegion 聚焦区域(集合)
app.query('#temp')[0].style.focusRegion = true
highlightIntensity 设置/获取高亮强度,默认0.5
innerGlow 内发光
radialBlur Boolean 径向模糊
app.query('#temp')[0].style.radialBlur = true
radialOffset Boolean 径向偏移
app.query('#temp')[0].style.radialOffset = true
renderOrder 控制渲染对象的顺序(见threejs)
vertexNormalHelper 顶点法向量Helper类,从三维模型顶点引出直线(见threejs)
wireframe 设置物体线框模式
app.query('#temp')[0].style.wireframe = true
doubleSide 设置双面渲染(比如天花板,房间天花板默认thingjs是单面渲染的)
app.query('#temp')[0].style.doubleSide = true
摄像机类
app.camera.far = 100 设置/获取 摄像机远裁剪面的距离,超过这个距离的物体将不会被看到
app.camera.fov = 90 设置/获取 摄像机FOV 值越大,视野越大 默认值为 60
app.camera.near = 1 设置/获取 摄像机近裁剪面的距离,比这个距离近的物体将不会被看到
app.camera.position = [10,10,10] 设置/获取摄像机 镜头位置(眼睛位置)
app.camera.target = [0,0,0] 设置/获取摄像机 目标点位置
app.camera.fit(obj) 观察某物体(没有飞行动作)
app.camera.flyTo(obj) 摄像机飞行到某位置或物体(有飞行动作持续时间)
app.camera.lookAt(obj) 看向某物体(设置后鼠标无法旋转和平移)
app.camera.lookAt(null) 取消看向设置
app.camera.flying 获取摄像机是否在飞行
app.camera.stopFlying() 停止飞行
全局绑定事件
THING.App.current.on(eventType [, condition] [, userData], callback [, tag] [, priority])
|
|
|
|
|
|