new ModelTransformTool(layer, callback)
模型变换工具集
| Name | Type | Description |
|---|---|---|
layer |
Cesium.MapGISM3DSet | Cesium.Cesium3DTileset | undefined | 可选 |
callback |
function |
可选
模型编辑工具编辑后的回调函数 模型对象为空时,需要在调用具体的变换接口时指定要变换的模型。 推荐在调用变换接口时指定模型。 |
- See:
Example
// ES5引入方式
const { ModelTransformTool } = zondy.cesium
// ES6引入方式
import { ModelTransformTool } from "@mapgis/webclient-cesium-plugin"
import { Cesium3DTilesCacheLayer } from "@mapgis/webclient-common"
const cesium3DTilesCacheLayer = new Cesium3DTilesCacheLayer({
url: 'http://10.10.130.72:8200/3DData/ModelCache/3DTileset/1.0/dayantaresult/tileset.json'
})
map.add(cesium3DTilesCacheLayer)
// 图层加载完毕
Cesium3DTilesCacheLayer.on('layerview-created', function (result) {
let layer = sceneView.getInnerLayer(result.layer)
//初始化js编辑工具
const transformEditor = new ModelTransformTool(layer)
//初始化图形化编辑工具
transformEditor.initModelEditor(viewer)
})
Methods
-
activeRotationEditor(options)
engineExtensions/tools/ModelTransformTool.js, line 1041 -
可视化旋转工具
Name Type Description optionsObject Name Type Description modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要控制的模型 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
-
activeScaleEditor(options)
engineExtensions/tools/ModelTransformTool.js, line 1095 -
可视化缩放工具
Name Type Default Description optionsObject {} 可选 工具参数
Name Type Default Description singleScaleboolean false 可选 是否单轴缩放,true:单轴缩放,false:三轴同时缩放
modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要控制的模型 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
-
activeTranslationEditor(options)
engineExtensions/tools/ModelTransformTool.js, line 1067 -
可视化平移工具
Name Type Description optionsObject Name Type Description modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要控制的模型 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
-
deactivate()
engineExtensions/tools/ModelTransformTool.js, line 1119 -
取消激活可视化工具
-
destroy()
engineExtensions/tools/ModelTransformTool.js, line 1129 -
销毁工具
-
getEulerFromTransform(transformInLocal, model, rotationPoint)
engineExtensions/tools/ModelTransformTool.js, line 463 -
根据模型的tansform矩阵获取欧拉角
Name Type Description transformInLocalCesium.Matrix4 modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 模型对象; 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
rotationPointCesium.Cartesian3 可选 旋转中心;缺省时旋转中心默认为模型外包球中心
-
initModelEditor(viewer)
engineExtensions/tools/ModelTransformTool.js, line 900 -
初始化可视化模型变换工具
Name Type Description viewerViewer Cesium的viewer对象
-
reset()
engineExtensions/tools/ModelTransformTool.js, line 1146 -
重置模型位置到初始状态,只会重置通过构造函数传入的模型。
-
rotateLocal(options)
engineExtensions/tools/ModelTransformTool.js, line 355 -
控制模型在本地空间下做旋转变换(绕指定的旋转中心旋转)
Name Type Description optionsObject Name Type Description rotationCesium.Cartesian3 | Cesium.HeadingPitchRoll 可选 旋转角度; HeadingPitchRoll类型为弧度制,Cartesian3类型为角度制。
modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要被旋转的模型; 置空时将从构造函数的layer中取M3D模型。不推荐置空。 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
rotationPointCesium.Cartesian3 可选 旋转中心; 缺省时绕模型自身的原点旋转;旋转的是SceneLayer图层时,SceneLayer下的所有图层绕第一个MapGISM3DSet的boundingSphere.center旋转。
Example
var modelTransformTool = new zondy.cesium.ModelTransformTool(); // 从SceneLayer图层中获取MapGISM3DSet var model = layer._m3dLayerMap.values()[0]; modelTransformTool.initModelEditor(viewer); // 通过角度控制 modelTransformTool.rotateLocal({ // 绕Z轴旋转90度 rotation: new Cesium.Cartesian3(0, 0, 90), model: model, rotationPoint: model.boundingSphere.center }) // 通过headingpitchroll控制 modelTransformTool.rotateLocal({ // 绕Z轴旋转90度 rotation: new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(90), 0, 0), model: model, rotationPoint: model.boundingSphere.center }) -
setLocalScala(options)
engineExtensions/tools/ModelTransformTool.js, line 890 -
设置模型缩放(缩放中心点为模型局部坐标系的原点)。计划废弃,请使用 setLocalScale 代替
Name Type Description optionsObject Name Type Description sizeCesium.Cartesian3 可选 缩放矢量
modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要被平移的模型, 置空时将从构造函数的layer中取M3D模型。不推荐置空。 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
Example
var modelTransformTool = new zondy.cesium.ModelTransformTool(); modelTransformTool.initModelEditor(viewer); modelTransformTool.setLocalScala({ size: new Cesium.Cartesian3(2, 2, 2), // 从SceneLayer图层中获取MapGISM3DSet model: layer._m3dLayerMap.values()[0] }) -
setLocalScale(options)
engineExtensions/tools/ModelTransformTool.js, line 843 -
设置模型缩放(缩放中心点为模型局部坐标系的原点)
Name Type Description optionsObject Name Type Description sizeCesium.Cartesian3 可选 缩放矢量
modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要被平移的模型, 置空时将从构造函数的layer中取M3D模型。不推荐置空。 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
Example
var modelTransformTool = new zondy.cesium.ModelTransformTool(); modelTransformTool.initModelEditor(viewer); modelTransformTool.setLocalScale({ size: new Cesium.Cartesian3(2, 2, 2), // 从SceneLayer图层中获取MapGISM3DSet model: layer._m3dLayerMap.values()[0] }) -
setPositionWorld(options)
engineExtensions/tools/ModelTransformTool.js, line 576 -
设置M3D模型在笛卡尔世界坐标系下位置(将模型外包球中心平移到指定的位置)
Name Type Description optionsObject Name Type Description positionCesium.Cartesian3 可选 位置 笛卡尔坐标系
modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要被设置的模型, 置空时将从构造函数的layer中取M3D模型。不推荐置空。 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
Example
var modelTransformTool = new zondy.cesium.ModelTransformTool(); modelTransformTool.initModelEditor(viewer); modelTransformTool.setPositionWorld({ position: Cesium.Cartesian3.fromDegrees(113.0750, 30, 100), // 从SceneLayer图层中获取MapGISM3DSet model: layer._m3dLayerMap.values()[0] }) -
setRotation(degree, axis)
engineExtensions/tools/ModelTransformTool.js, line 175 -
模型旋转(绕模型外包球中心旋转)
Name Type Default Description degreeNumber 0 可选 旋转角度,单位度
axisString 'Z' 可选 旋转轴,X:X轴,Y:Y轴,Z:Z轴
-
setScala(x, y, z)
engineExtensions/tools/ModelTransformTool.js, line 820 -
模型缩放(缩放中心点为模型局部坐标系的原点)。计划废弃,请使用 setScale 代替。
Name Type Default Description xNumber 1 可选 x轴放大
yNumber 1 可选 y轴放大
zNumber 1 可选 z轴放大
- Deprecated
-
setScale(x, y, z)
engineExtensions/tools/ModelTransformTool.js, line 769 -
模型缩放(缩放中心点为模型局部坐标系的原点)
Name Type Default Description xNumber 1 可选 x轴放大
yNumber 1 可选 y轴放大
zNumber 1 可选 z轴放大
- Deprecated
-
setTranslation(longitude, latitude, height)
engineExtensions/tools/ModelTransformTool.js, line 263 -
将模型局部坐标系原点平移到指定的位置
Name Type Default Description longitudeNumber 0 可选 经度
latitudeNumber 0 可选 纬度
heightNumber 0 可选 高度
-
translateWorld(options)
engineExtensions/tools/ModelTransformTool.js, line 644 -
设置M3D模型在笛卡尔世界坐标系下平移(将模型从当前位置平移指定的笛卡尔坐标距离)
Name Type Description optionsObject Name Type Description vectorCesium.Cartesian3 可选 平移矢量 笛卡尔坐标系
modelCesium.MapGISM3DSet | Cesium.MapGISM3D | Cesium.Cesium3DTileset 可选 要被平移的模型, 置空时将从构造函数的layer中取M3D模型。不推荐置空。 详见《Cesium.MapGISM3DSet》 《Cesium.MapGISM3D》 《Cesium.Cesium3DTileset》
Example
var modelTransformTool = new zondy.cesium.ModelTransformTool(); modelTransformTool.initModelEditor(viewer); modelTransformTool.translateWorld({ vector: new Cesium.Cartesian3(5000, 0, 1000), // 从SceneLayer图层中获取MapGISM3DSet model: layer._m3dLayerMap.values()[0] })