cesium-examples/map/3d/code/modelManager.js

71 lines
2.5 KiB
JavaScript

/*
* @Descripttion:
* @version: 1.0
* @Author: zhangti
* @Date: 2019-10-09 14:36:31
* @LastEditors: sueRimn
* @LastEditTime: 2019-11-26 17:55:02
*/
/**
* 模型封装
* 常用模型
* 模型管理
*/
import config from './config.js';
export default class ModelManager{
constructor(v){
this.CoreV = v;
this.hpRoll = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(180), 0, 0);
}
build(obj){
switch(obj.type){
case "":;
default: this.createDefault(obj);
}
return this.option;
}
createDefault(obj){
return this.option = {
id:obj.id,
position: obj.position, // 模型位置
orientation: Cesium.Transforms.headingPitchRollQuaternion( obj.position, this.hpRoll),// 模型方向
model:{
uri: obj.url,// 模型路径
minimumPixelSize: obj.minimumPixelSize == undefined?0.1:obj.minimumPixelSize, // 模型最小刻度
maximumSize: obj.maximumSize == undefined?128:obj.maximumSize, // 模型最大刻度
maximumScale : obj.maximumScale == undefined?10:obj.maximumScale, //设置模型最大放大大小
show: obj.show == undefined ? true : obj.show, // 模型是否可见
silhouetteColor:Cesium.Color.WHITE, // 模型轮廓颜色
color: obj.color == undefined ? Cesium.Color.WHITE : obj.color , // 模型颜色 ,这里可以设置颜色的变化
debugWireframe : false, // 仅用于调试,显示绘制时的线框
debugShowBoundingVolume : false, // 仅用于调试。显示模型绘制时的边界球。
scale:0.1,
runAnimations:true //是否运行模型中的动画效果
}
}
}
/**
* 创建飞机
*/
createAir(position){
return this.createDefault({id:'air',url:config.APPDIR + '/Apps/SampleData/models/CesiumAir/Cesium_Air.gltf',position:position});
}
/**
* 创建碉堡
*/
createWoodTower(position){
return this.createDefault({id:'woodTower',url:config.APPDIR + '/Apps/SampleData/models/WoodTower/Wood_Tower.gltf',position:position});
}
/**
* 创建汽车
*/
createCar(position){
return this.createDefault({id:'car',url:config.APPDIR + '/Apps/SampleData/models/car/model.gltf',position:position});
}
}