//模型加载
this.iveModel = new Cesium .Cesium3DTileset({
url: this.path
});
var primitives = this.viewer.scene.primitives.add(this.iveModel);
primitives.readyPromise.then(t => {
var originalSphere = t.boundingSphere;
var radius = originalSphere.radius;
var matrix = this.RotatePanByMatrix();
this.iveModel._root.transform = matrix;
setTimeout(() => {
this.viewer.zoomTo(this.iveModel);
}, 500);
});
//模型
//旋转 rx ry rz 旋转角
var mx = Cesium .Matrix3.fromRotationX(Cesium .Math.toRadians(Number(this.rx)));
var my = Cesium .Matrix3.fromRotationY(Cesium .Math.toRadians(Number(this.ry)));
var mz = Cesium .Matrix3.fromRotationZ(Cesium .Math.toRadians(Number(this.rz)));
var rotationX = Cesium .Matrix4.fromRotationTranslation(mx);
var rotationY = Cesium .Matrix4.fromRotationTranslation(my);
var rotationZ = Cesium .Matrix4.fromRotationTranslation(mz);
//缩放比例
var sacle = Cesium .Matrix4.fromArray([
Number(this.scalex),
0.0,
0.0,
0.0,
0.0,
Number(this.scaley),
0.0,
0.0,
0.0,
0.0,
Number(this.scalez),
0.0,
0.0,
0.0,
0.0,
1.0
]);
//平移
var position = Cesium .Cartesian3.fromDegrees(Number(this.tx), Number(this.ty), Number(this.tz));
var m = Cesium .Transforms.eastNorthUpToFixedFrame(position);
//矩阵相乘得到最终结果
Cesium .Matrix4.multiply(m, rotationX, m);
Cesium .Matrix4.multiply(m, rotationY, m);
Cesium .Matrix4.multiply(m, rotationZ, m);
Cesium .Matrix4.multiply(m, sacle, m);