model~GLTF(url, options)

glTF模型实例类。支持标准glTF2.0。支持模型中的骨骼动画、变形动画和蒙皮动画,当变形动画较复杂时,可能会有动画动作不连贯的问题,请控制变形动画的复杂程度。
支持扩展:
KHR_draco_mesh_compression
KHR_materials_clearcoat
KHR_materials_sheen
KHR_materials_transmission
KHR_materials_volume
KHR_materials_ior
KHR_materials_specular

Summary

Methods:
getActiveSceneIndex

获取激活的场景模型索引

getBBox

获取包围盒,注意:包围盒可能比实际数据范围大

getChildren

获取所有Node节点

getId

获取模型唯一标识

modelToWorld

将模型从模型原点先缩放后旋转再平移到世界坐标系下指定的位置。转换结果不叠加。以最后一次为准。

resetOrigin

校正原点,将整个模型的bbox某一个面(xoy,xoz,yox)的中心点校正到建模的原点。

setActiveSceneIndex

设置激活的场景模型索引

setHighlight

高亮当前模型的mesh。

setPosition

设置模型位置,即设置模型原点在地图上的地理坐标。

setRotate

设置模型的旋转量。

setScale

设置模型的缩放量。

setTranslate

相对于模型之前位置的平移量。

Constructor

new GLTF(url, options)

Gltf构造函数

Parameters:
Name Type Description
url String

模型文件的地址,后缀为.gltf或.glb。

options Object

可选项

Name Type Description
heightInMeter Number

GLTF设置平移时,高度上是否以米为单位,在地图的坐标系为"4326"的情况下,默认为false

Example
let gltf=new hmap.model.GLTF('./example.gltf');

Methods

getActiveSceneIndex() → {Number}

获取激活的场景模型索引

Returns:
Number

getBBox() → {module:basetype~BBox}

获取包围盒,注意:包围盒可能比实际数据范围大

getChildren() → {Array}

获取所有Node节点

Returns:
Array

getId()

获取模型唯一标识

Returns:
-

id 模型唯一标识

modelToWorld(matrix)

将模型从模型原点先缩放后旋转再平移到世界坐标系下指定的位置。转换结果不叠加。以最后一次为准。

Parameters:
Name Type Description
matrix Object
Name Type Description
scale Array

模型在xyz方向上的缩放因子

rotate Array

模型绕xyz轴的旋转角度,单位为度

translate Array

模型在xyz方向上的平移距离,单位与地图单位保持一致

Example
model.modelToWorld({
 scale:[1,1,1],
 rotate:[0,0,0],
 translate:[0,0,0]
})

resetOrigin(up)

校正原点,将整个模型的bbox某一个面(xoy,xoz,yox)的中心点校正到建模的原点。

Parameters:
Name Type Description
up String

模型的上方向,取值范围为X,Y,Z或者为空,默认为空,会将模型bbox的中心点校正到建模坐标的原点。默认值为空为了兼容以前版本,很多模型在导出时会选择上方向为'Y',当模型展示异常时可以尝试上方向为'Y'.

setActiveSceneIndex(value)

设置激活的场景模型索引

Parameters:
Name Type Description
value Number

setHighlight(flag, color)

高亮当前模型的mesh。

Parameters:
Name Type Description
flag Boolean

选中设置true;不选中设置false。

color Color

高亮颜色

Throws:

当参数flag既不是true,也不为false时,抛出参数类型异常。

Example
gltf.setHighlight(true,new hmap.style.Color(255,0,0,1));

setPosition(positionX, positionY, positionZ) → {module:model~GLTF}

设置模型位置,即设置模型原点在地图上的地理坐标。

Parameters:
Name Type Description
positionX Number

X值

positionY Number

Y值

positionZ Number

Z值

Returns:
module:model~GLTF -

模型对象

Example
model.setPosition(120.2187, 30.21259, 0);

setRotate(rotateX, rotateY, rotateZ) → {module:model~GLTF}

设置模型的旋转量。

Parameters:
Name Type Description
rotateX Number

X轴旋转分量

rotateY Number

Y轴旋转分量

rotateZ Number

Z轴旋转分量

Returns:
module:model~GLTF -

模型对象

Example
model.setRotate(90, 25, 0);

setScale(scaleX, scaleY, scaleZ) → {module:model~GLTF}

设置模型的缩放量。

Parameters:
Name Type Description
scaleX Number

X轴缩放分量

scaleY Number

Y轴缩放分量

scaleZ Number

Z轴缩放分量

Returns:
module:model~GLTF -

模型对象

Example
model.setScale(0.0015, 0.0015, 0.0015);

setTranslate(translateX, translateY, translateZ) → {module:model~GLTF}

相对于模型之前位置的平移量。

Parameters:
Name Type Description
translateX Number

X轴平移分量

translateY Number

Y轴平移分量

translateZ Number

Z轴平移分量

Returns:
module:model~GLTF -

模型对象

Example
model.setTranslate(120.2187, 30.21259, 0);