分享
查看: 1703|回复: 0

[分享] ThingJS 1.0 学习日志

[复制链接]

ThingJS 1.0 学习日志

发表于 2023-8-18 17:52:16 来自 分享 阅读模式 倒序浏览
zzv_icon1703 zzr_icon0 查看全部
本帖最后由 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])

avatar
游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

130700ppkpl8x3t7tt1b1t