71 lines
2.5 KiB
JavaScript
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});
|
|
}
|
|
} |