Summary
Methods:
getBBox |
计算该模型整体三维包围盒 |
getChildren |
获取所有子节点 |
getHighlight |
获取模型的高亮状态 |
getModelBBox |
计算在模型坐标系中的三维包围盒 |
getOpacityFactor |
获取模型的透明因子。 |
offClick |
取消要素注册的单击事件。 |
offHover |
取消要素注册的Hover(滑入滑出)事件。 |
onClick |
注冊白模的单击事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。 |
onHover |
注冊fbx模型的Hover事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。 |
readModelAndInitIndexedDB |
返回读取模型并初始化indexedDB的promise |
resetOrigin |
校正原点,将整个模型的bbox某一个面(xoy,xoz,yox)的中心点校正到建模的原点。 |
setHighlight |
模型整体高亮或者取消高亮,(单个Mesh高亮,请直接使用mesh#setHighlight) |
setOpacityFactor |
设置透明因子,即:模型每个部分的透明度基数*透明因子=渲染的透明值。 |
setPosition |
设置模型位置,即设置模型原点在地图上的地理坐标。 |
setRotate |
相对于模型之前位置的旋转量。 |
setScale |
相对于模型之前大小的缩放量。 |
setTranslate |
相对于模型之前位置的平移量。 |
Constructor
new FbxModel(fileUrl, options)
Parameters:
Name | Type | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fileUrl |
String | 模型文件的地址。 |
||||||||||||||||||||||||
options |
Object |
|
Example
let model = new hmap.model.FbxModel('../public/fbxData/nanjing.fbx');
Methods
-
getBBox() → {module:basetype~BBox}
-
计算该模型整体三维包围盒
-
getChildren() → {Array.<FbxMesh>}
-
获取所有子节点
Returns:
Array.<FbxMesh> -
getHighlight() → {Boolean}
-
获取模型的高亮状态
Returns:
Boolean -是否高亮
-
getModelBBox() → {module:basetype~BBox}
-
计算在模型坐标系中的三维包围盒
-
getOpacityFactor() → {Number}
-
获取模型的透明因子。
Returns:
Number -透明因子
Example
let opacityFactor = model.getOpacityFactor();
-
offClick()
-
取消要素注册的单击事件。
-
offHover()
-
取消要素注册的Hover(滑入滑出)事件。
-
onClick(callback)
-
注冊白模的单击事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。
Parameters:
Name Type Description callback
回调处理函数,参数是event对象,event.feature 可以取到要素本身及mesh构成的数组。 event.lonlat可以取到点击位置的经纬度,event.mapPixel可以去到像素位置
-
onHover(mouseoverCallback, mouseOutCallback)
-
注冊fbx模型的Hover事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。
Parameters:
Name Type Description mouseoverCallback
回调处理函数,参数是event对象,event.feature 可以取到要素本身及mesh构成的数组。event.lonlat可以取到点击位置的经纬度,event.mapPixel可以去到像素位置
mouseOutCallback
回调处理函数,参数是event对象,event.feature 可以取到要素本身及mesh构成的数组。event.lonlat可以取到点击位置的经纬度,event.mapPixel可以去到像素位置
-
readModelAndInitIndexedDB() → {Promise}
-
返回读取模型并初始化indexedDB的promise
Returns:
Promise -
resetOrigin(up)
-
校正原点,将整个模型的bbox某一个面(xoy,xoz,yox)的中心点校正到建模的原点。
Parameters:
Name Type Description up
String 模型的上方向,取值范围为X,Y,Z或者为空,默认为空,会将模型bbox的中心点校正到建模坐标的原点。默认值为空为了兼容以前版本,很多模型在导出时会选择上方向为'Y',当模型展示异常时可以尝试上方向为'Y'.
-
setHighlight(flag, color)
-
模型整体高亮或者取消高亮,(单个Mesh高亮,请直接使用mesh#setHighlight)
Parameters:
Name Type Description flag
Boolean 设置高亮状态,true为高亮,false取消高亮
color
Color 设置高亮颜色,默认为Color(255,0,0,1)
-
setOpacityFactor(opacityFactor)
-
设置透明因子,即:模型每个部分的透明度基数*透明因子=渲染的透明值。
Parameters:
Name Type Description opacityFactor
Number 透明因子,范围[0,1]。
Example
model.setOpacityFactor(0.8);
-
setPosition(positionX, positionY, positionZ) → {module:model~FbxModel}
-
设置模型位置,即设置模型原点在地图上的地理坐标。
Parameters:
Name Type Description positionX
Number X值
positionY
Number Y值
positionZ
Number Z值
Example
model.setPosition(120, 30, 0);
-
setRotate(rotateX, rotateY, rotateZ) → {module:model~FbxModel}
-
相对于模型之前位置的旋转量。
Parameters:
Name Type Description rotateX
Number X轴旋转分量
rotateY
Number Y轴旋转分量
rotateZ
Number Z轴旋转分量
Example
model.setRotate(90, 0, 0);
-
setScale(scaleX, scaleY, scaleZ) → {module:model~FbxModel}
-
相对于模型之前大小的缩放量。
Parameters:
Name Type Description scaleX
Number X轴缩放分量
scaleY
Number Y轴缩放分量
scaleZ
Number Z轴缩放分量
Example
model.setScale(0.00001, 0.00001, 0.00001);
-
setTranslate(translateX, translateY, translateZ) → {module:model~FbxModel}
-
相对于模型之前位置的平移量。
Parameters:
Name Type Description translateX
Number X轴平移分量
translateY
Number Y轴平移分量
translateZ
Number Z轴平移分量
Example
model.setTranslate(120, 30, 0);