| @@ -45,6 +45,7 @@ | |||
| "uglifyjs-webpack-plugin": "^2.1.2", | |||
| "url-loader": "^1.1.2", | |||
| "webpack": "^4.29.6", | |||
| "webpack-cli": "^3.3.0" | |||
| "webpack-cli": "^3.3.0", | |||
| "webpack-glsl-loader": "^1.0.1" | |||
| } | |||
| } | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-03 10:09:19 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-20 14:07:36 | |||
| * @Last Modified time: 2020-02-24 16:10:30 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -82,7 +82,9 @@ DC.OverlayState = { | |||
| DC.EffectType = { | |||
| RAIN: 'rain', | |||
| SNOW: 'snow', | |||
| BLOOM: 'bloom' | |||
| BLOOM: 'bloom', | |||
| CIRCLE_SCAN: 'circleScan', | |||
| RADAR_SCAN: 'radarScan' | |||
| } | |||
| DC.EffectEventType = { | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2019-12-30 09:24:37 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-19 12:28:30 | |||
| * @Last Modified time: 2020-02-24 16:03:49 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -44,6 +44,12 @@ class ViewerOption { | |||
| options.moon, | |||
| true | |||
| ) | |||
| this._viewer.delegate.scene.globe.depthTestAgainstTerrain = Cesium.defaultValue( | |||
| options.underground, | |||
| false | |||
| ) | |||
| return this | |||
| } | |||
| @@ -2,11 +2,12 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-14 18:24:57 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-20 13:46:12 | |||
| * @Last Modified time: 2020-02-24 13:29:09 | |||
| */ | |||
| import './animation/DC.GlobeRotate' | |||
| import './roaming/DC.Roaming' | |||
| import './plot/DC.Plot' | |||
| import './material' | |||
| import './effects' | |||
| import './layer' | |||
| import './overlay' | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-14 18:22:10 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-20 14:08:10 | |||
| * @Last Modified time: 2020-02-24 13:29:05 | |||
| */ | |||
| ;(function() { | |||
| let initialized = false | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-02-20 13:26:49 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-20 14:10:13 | |||
| * @Last Modified time: 2020-02-24 16:33:50 | |||
| */ | |||
| import Effect from './Effect' | |||
| @@ -0,0 +1,117 @@ | |||
| /* | |||
| * @Author: Caven | |||
| * @Date: 2020-02-24 14:11:22 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-24 16:33:44 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| import Effect from './Effect' | |||
| let CircleScanShader = require('../shader/CircleScanMaterial.glsl') | |||
| DC.CircleScanEffect = class extends Effect { | |||
| constructor(id, position, radius, color, duration) { | |||
| if (!position || !(position instanceof DC.Position)) { | |||
| throw new Error('the position invalid') | |||
| } | |||
| super(id) | |||
| this._position = position | |||
| this._radius = radius || 0 | |||
| this._color = Cesium.defaultValue(color, Cesium.Color.RED) | |||
| this._duration = Cesium.defaultValue(duration, 1e3) | |||
| this.type = DC.EffectType.CIRCLE_SCAN | |||
| } | |||
| /** | |||
| * 准备代理 | |||
| */ | |||
| _prepareDelegate() { | |||
| let cartesian3Center = DC.T.transformWSG84ToCartesian(this._position) | |||
| let cartesian4Center = new Cesium.Cartesian4( | |||
| cartesian3Center.x, | |||
| cartesian3Center.y, | |||
| cartesian3Center.z, | |||
| 1 | |||
| ) | |||
| let cartesian3Center1 = DC.T.transformWSG84ToCartesian( | |||
| new DC.Position( | |||
| this._position.lng, | |||
| this._position.lat, | |||
| this._position.alt + 500 | |||
| ) | |||
| ) | |||
| let cartesian4Center1 = new Cesium.Cartesian4( | |||
| cartesian3Center1.x, | |||
| cartesian3Center1.y, | |||
| cartesian3Center1.z, | |||
| 1 | |||
| ) | |||
| let _time = new Date().getTime() | |||
| this._delegate = new Cesium.PostProcessStage({ | |||
| name: this._id, | |||
| fragmentShader: CircleScanShader, | |||
| uniforms: { | |||
| u_scanCenterEC: () => { | |||
| return Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center, | |||
| new Cesium.Cartesian4() | |||
| ) | |||
| }, | |||
| u_scanPlaneNormalEC: () => { | |||
| let temp = Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center, | |||
| new Cesium.Cartesian4() | |||
| ) | |||
| let temp1 = Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center1, | |||
| new Cesium.Cartesian4() | |||
| ) | |||
| let _scratchCartesian3Normal = new Cesium.Cartesian3() | |||
| _scratchCartesian3Normal.x = temp1.x - temp.x | |||
| _scratchCartesian3Normal.y = temp1.y - temp.y | |||
| _scratchCartesian3Normal.z = temp1.z - temp.z | |||
| Cesium.Cartesian3.normalize( | |||
| _scratchCartesian3Normal, | |||
| _scratchCartesian3Normal | |||
| ) | |||
| return _scratchCartesian3Normal | |||
| }, | |||
| u_radius: () => { | |||
| return ( | |||
| (this._radius * ((new Date().getTime() - _time) % this._duration)) / | |||
| this._duration | |||
| ) | |||
| }, | |||
| u_scanColor: this._color | |||
| } | |||
| }) | |||
| } | |||
| /** | |||
| * | |||
| * @param {*} viewer | |||
| * 效果添加的回调函数, | |||
| */ | |||
| _addCallback(viewer) { | |||
| this._viewer = viewer | |||
| this._prepareDelegate() | |||
| if (this._delegate) { | |||
| this._viewer.delegate.scene.postProcessStages.add(this._delegate) | |||
| } | |||
| this._state = DC.EffectState.ADDED | |||
| } | |||
| /** | |||
| * 效果添加的回调函数 | |||
| */ | |||
| _removeCallback() { | |||
| if ((this._viewer, this._delegate)) { | |||
| this._viewer.delegate.scene.postProcessStages.remove(this._delegate) | |||
| } | |||
| this._state = DC.EffectState.REMOVED | |||
| } | |||
| } | |||
| @@ -0,0 +1,181 @@ | |||
| /* | |||
| * @Author: Caven | |||
| * @Date: 2020-02-24 14:11:22 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-24 16:29:30 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| import Effect from './Effect' | |||
| let RadarScanShader = require('../shader/RadarScanMaterial.glsl') | |||
| DC.RadarScanEffect = class extends Effect { | |||
| constructor(id, position, radius, color, duration) { | |||
| if (!position || !(position instanceof DC.Position)) { | |||
| throw new Error('the position invalid') | |||
| } | |||
| super(id) | |||
| this._position = position | |||
| this._radius = radius || 0 | |||
| this._color = Cesium.defaultValue(color, Cesium.Color.RED) | |||
| this._duration = Cesium.defaultValue(duration, 1e3) | |||
| this.type = DC.EffectType.RADAR_SCAN | |||
| } | |||
| /** | |||
| * 准备代理 | |||
| */ | |||
| _prepareDelegate() { | |||
| let cartesian3Center = DC.T.transformWSG84ToCartesian(this._position) | |||
| let cartesian4Center = new Cesium.Cartesian4( | |||
| cartesian3Center.x, | |||
| cartesian3Center.y, | |||
| cartesian3Center.z, | |||
| 1 | |||
| ) | |||
| let cartesian3Center1 = DC.T.transformWSG84ToCartesian( | |||
| new DC.Position( | |||
| this._position.lng, | |||
| this._position.lat, | |||
| this._position.alt + 500 | |||
| ) | |||
| ) | |||
| let cartesian4Center1 = new Cesium.Cartesian4( | |||
| cartesian3Center1.x, | |||
| cartesian3Center1.y, | |||
| cartesian3Center1.z, | |||
| 1 | |||
| ) | |||
| let cartesian3Center2 = DC.T.transformWSG84ToCartesian( | |||
| new DC.Position( | |||
| this._position.lng + 0.001, | |||
| this._position.lat, | |||
| this._position.alt | |||
| ) | |||
| ) | |||
| let cartesian4Center2 = new Cesium.Cartesian4( | |||
| cartesian3Center2.x, | |||
| cartesian3Center2.y, | |||
| cartesian3Center2.z, | |||
| 1 | |||
| ) | |||
| let _time = new Date().getTime() | |||
| let _RotateQ = new Cesium.Quaternion() | |||
| let _RotateM = new Cesium.Matrix3() | |||
| let _scratchCartesian4Center = new Cesium.Cartesian4() | |||
| let _scratchCartesian4Center1 = new Cesium.Cartesian4() | |||
| let _scratchCartesian4Center2 = new Cesium.Cartesian4() | |||
| let _scratchCartesian3Normal = new Cesium.Cartesian3() | |||
| let _scratchCartesian3Normal1 = new Cesium.Cartesian3() | |||
| this._delegate = new Cesium.PostProcessStage({ | |||
| name: this._id, | |||
| fragmentShader: RadarScanShader, | |||
| uniforms: { | |||
| u_scanCenterEC: () => { | |||
| return Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center, | |||
| _scratchCartesian4Center | |||
| ) | |||
| }, | |||
| u_scanPlaneNormalEC: () => { | |||
| let temp = Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center, | |||
| _scratchCartesian4Center | |||
| ) | |||
| let temp1 = Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center1, | |||
| _scratchCartesian4Center1 | |||
| ) | |||
| _scratchCartesian3Normal.x = temp1.x - temp.x | |||
| _scratchCartesian3Normal.y = temp1.y - temp.y | |||
| _scratchCartesian3Normal.z = temp1.z - temp.z | |||
| Cesium.Cartesian3.normalize( | |||
| _scratchCartesian3Normal, | |||
| _scratchCartesian3Normal | |||
| ) | |||
| return _scratchCartesian3Normal | |||
| }, | |||
| u_scanLineNormalEC: () => { | |||
| let temp = Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center, | |||
| _scratchCartesian4Center | |||
| ) | |||
| let temp1 = Cesium.Matrix4.multiplyByVector( | |||
| this._viewer.delegate.camera._viewMatrix, | |||
| cartesian4Center1, | |||
| _scratchCartesian4Center1 | |||
| ) | |||
| let temp2 = Cesium.Matrix4.multiplyByVector( | |||
| viewer.camera._viewMatrix, | |||
| cartesian4Center2, | |||
| _scratchCartesian4Center2 | |||
| ) | |||
| _scratchCartesian3Normal.x = temp1.x - temp.x | |||
| _scratchCartesian3Normal.y = temp1.y - temp.y | |||
| _scratchCartesian3Normal.z = temp1.z - temp.z | |||
| Cesium.Cartesian3.normalize( | |||
| _scratchCartesian3Normal, | |||
| _scratchCartesian3Normal | |||
| ) | |||
| _scratchCartesian3Normal1.x = temp2.x - temp.x | |||
| _scratchCartesian3Normal1.y = temp2.y - temp.y | |||
| _scratchCartesian3Normal1.z = temp2.z - temp.z | |||
| let tempTime = | |||
| ((new Date().getTime() - _time) % this._duration) / this._duration | |||
| Cesium.Quaternion.fromAxisAngle( | |||
| _scratchCartesian3Normal, | |||
| tempTime * Cesium.Math.PI * 2, | |||
| _RotateQ | |||
| ) | |||
| Cesium.Matrix3.fromQuaternion(_RotateQ, _RotateM) | |||
| Cesium.Matrix3.multiplyByVector( | |||
| _RotateM, | |||
| _scratchCartesian3Normal1, | |||
| _scratchCartesian3Normal1 | |||
| ) | |||
| Cesium.Cartesian3.normalize( | |||
| _scratchCartesian3Normal1, | |||
| _scratchCartesian3Normal1 | |||
| ) | |||
| return _scratchCartesian3Normal1 | |||
| }, | |||
| u_radius: this._radius, | |||
| u_scanColor: this._color | |||
| } | |||
| }) | |||
| } | |||
| /** | |||
| * | |||
| * @param {*} viewer | |||
| * 效果添加的回调函数, | |||
| */ | |||
| _addCallback(viewer) { | |||
| this._viewer = viewer | |||
| this._prepareDelegate() | |||
| if (this._delegate) { | |||
| this._viewer.delegate.scene.postProcessStages.add(this._delegate) | |||
| } | |||
| this._state = DC.EffectState.ADDED | |||
| } | |||
| /** | |||
| * 效果添加的回调函数 | |||
| */ | |||
| _removeCallback() { | |||
| if ((this._viewer, this._delegate)) { | |||
| this._viewer.delegate.scene.postProcessStages.remove(this._delegate) | |||
| } | |||
| this._state = DC.EffectState.REMOVED | |||
| } | |||
| } | |||
| @@ -2,5 +2,5 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-15 20:23:42 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-01-18 18:12:00 | |||
| * @Last Modified time: 2020-02-24 16:33:53 | |||
| */ | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-14 18:25:41 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-20 13:45:59 | |||
| * @Last Modified time: 2020-02-24 16:54:24 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| import Effect from './Effect' | |||
| @@ -2,6 +2,8 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-14 18:25:25 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-20 13:46:03 | |||
| * @Last Modified time: 2020-02-24 16:24:23 | |||
| */ | |||
| import './DC.BloomEffect' | |||
| import './DC.CircleScanEffect' | |||
| import './DC.RadarScanEffect' | |||
| @@ -0,0 +1,80 @@ | |||
| /* | |||
| * @Author: Caven | |||
| * @Date: 2020-02-24 13:53:52 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-24 13:57:34 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| let LineFlowShader = require('../shader/PolylineFlowMaterial.glsl') | |||
| DC.PolylineFlowMaterialProperty = class { | |||
| constructor(options) { | |||
| options = options || {} | |||
| this._definitionChanged = new Cesium.Event() | |||
| this._color = undefined | |||
| this._colorSubscription = undefined | |||
| this.color = Cesium.defaultValue( | |||
| options.color, | |||
| Cesium.Color.fromBytes(0, 255, 255, 255) | |||
| ) | |||
| this._duration = undefined | |||
| this._durationSubscription = undefined | |||
| this.duration = Cesium.defaultValue(options.duration, 45) | |||
| } | |||
| get isConstant() { | |||
| return false | |||
| } | |||
| get definitionChanged() { | |||
| return this._definitionChanged | |||
| } | |||
| getType(time) { | |||
| return Cesium.Material.PolylineFlowType | |||
| } | |||
| getValue(time, result) { | |||
| if (!result) { | |||
| result = {} | |||
| } | |||
| result.color = Cesium.Property.getValueOrClonedDefault( | |||
| this._color, | |||
| time, | |||
| Cesium.Color.WHITE, | |||
| result.color | |||
| ) | |||
| result.duration = this._duration | |||
| return result | |||
| } | |||
| equals(other) { | |||
| return ( | |||
| this === other || | |||
| (other instanceof DC.PolylineFlowMaterialProperty && | |||
| Cesium.Property.equals(this._color, other._color)) | |||
| ) | |||
| } | |||
| } | |||
| Cesium.defineProperties(DC.PolylineFlowMaterialProperty.prototype, { | |||
| color: Cesium.createPropertyDescriptor('color'), | |||
| duration: Cesium.createPropertyDescriptor('duration') | |||
| }) | |||
| Cesium.Material.PolylineFlowType = 'PolylineFlow' | |||
| Cesium.Material._materialCache.addMaterial(Cesium.Material.PolylineFlowType, { | |||
| fabric: { | |||
| type: Cesium.Material.PolylineFlowType, | |||
| uniforms: { | |||
| color: new Cesium.Color(1.0, 0.0, 0.0, 0.7), | |||
| duration: 45 | |||
| }, | |||
| source: LineFlowShader | |||
| }, | |||
| translucent: function(material) { | |||
| return true | |||
| } | |||
| }) | |||
| @@ -0,0 +1,84 @@ | |||
| /* | |||
| * @Author: Caven | |||
| * @Date: 2020-02-24 13:09:09 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-24 14:07:45 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| const IMG = | |||
| 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAAgCAYAAABkS8DlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAADSSURBVHja7NYxEoUgDEDBYM39z2qHtZViwMFxt1FJnF/98ZXWWkRE7LWWOOt5Lsm9q/vsbu9Zdtazs/J19O5bs1XPZrwze/6V31zxbOZs1n905Wt2p3f25GzE7ohv6q3nLQCA3xEAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAA8g4AAAD//wMA4WEFTJOT5UIAAAAASUVORK5CYII=' | |||
| let LineTrailShader = require('../shader/PolylineTrailMaterial.glsl') | |||
| DC.PolylineTrailMaterialProperty = class { | |||
| constructor(options) { | |||
| options = options || {} | |||
| this._definitionChanged = new Cesium.Event() | |||
| this._color = undefined | |||
| this._colorSubscription = undefined | |||
| this._duration = undefined | |||
| this._durationSubscription = undefined | |||
| this.color = Cesium.defaultValue( | |||
| options.color, | |||
| Cesium.Color.fromBytes(0, 255, 255, 255) | |||
| ) | |||
| this.duration = Cesium.defaultValue(options.duration, 45) | |||
| } | |||
| get isConstant() { | |||
| return false | |||
| } | |||
| get definitionChanged() { | |||
| return this._definitionChanged | |||
| } | |||
| getType(time) { | |||
| return Cesium.Material.PolylineTrailType | |||
| } | |||
| getValue(time, result) { | |||
| if (!result) { | |||
| result = {} | |||
| } | |||
| result.color = Cesium.Property.getValueOrClonedDefault( | |||
| this._color, | |||
| time, | |||
| Cesium.Color.WHITE, | |||
| result.color | |||
| ) | |||
| result.duration = this._duration | |||
| return result | |||
| } | |||
| equals(other) { | |||
| return ( | |||
| this === other || | |||
| (other instanceof DC.PolylineTrailMaterialProperty && | |||
| Cesium.Property.equals(this._color, other._color)) | |||
| ) | |||
| } | |||
| } | |||
| Cesium.defineProperties(DC.PolylineTrailMaterialProperty.prototype, { | |||
| color: Cesium.createPropertyDescriptor('color'), | |||
| duration: Cesium.createPropertyDescriptor('duration') | |||
| }) | |||
| Cesium.Material.PolylineTrailType = 'PolylineTrail' | |||
| Cesium.Material._materialCache.addMaterial(Cesium.Material.PolylineTrailType, { | |||
| fabric: { | |||
| type: Cesium.Material.PolylineTrailType, | |||
| uniforms: { | |||
| color: new Cesium.Color(1.0, 0.0, 0.0, 0.7), | |||
| image: IMG, | |||
| duration: 45 | |||
| }, | |||
| source: LineTrailShader | |||
| }, | |||
| translucent: function(material) { | |||
| return true | |||
| } | |||
| }) | |||
| @@ -0,0 +1,9 @@ | |||
| /* | |||
| * @Author: Caven | |||
| * @Date: 2020-02-24 13:28:37 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-24 13:57:49 | |||
| */ | |||
| import './DC.PolylineTrailMaterialProperty' | |||
| import './DC.PolylineFlowMaterialProperty' | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-02-06 13:11:58 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-21 10:28:04 | |||
| * @Last Modified time: 2020-02-24 17:24:48 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| import '@/core/overlay/base/DC.Polygon' | |||
| @@ -109,7 +109,7 @@ DC.CustomPolygon = class extends DC.Polygon { | |||
| this._topOutline.show = Cesium.defaultValue(lineStyle.show, true) | |||
| delete lineStyle.show | |||
| if (!lineStyle || Object.keys(lineStyle).length === 0) { | |||
| return | |||
| return this | |||
| } | |||
| DC.Util.merge(this._topOutline.polyline, lineStyle) | |||
| } | |||
| @@ -125,7 +125,7 @@ DC.CustomPolygon = class extends DC.Polygon { | |||
| this._bottomOutline.show = Cesium.defaultValue(lineStyle.show, true) | |||
| delete lineStyle.show | |||
| if (!lineStyle || Object.keys(lineStyle).length === 0) { | |||
| return | |||
| return this | |||
| } | |||
| DC.Util.merge(this._bottomOutline.polyline, lineStyle) | |||
| } | |||
| @@ -0,0 +1,16 @@ | |||
| uniform vec4 color; | |||
| uniform float time; | |||
| czm_material czm_getMaterial(czm_materialInput materialInput){ | |||
| czm_material material = czm_getDefaultMaterial(materialInput); | |||
| material.diffuse = 1.5 * color.rgb; | |||
| vec2 st = materialInput.st; | |||
| float dis = distance(st, vec2(0.5, 0.5)); | |||
| float per = fract(time); | |||
| if(dis > per * 0.5){ | |||
| discard; | |||
| }else { | |||
| material.alpha = color.a * dis / per / 2.0; | |||
| } | |||
| return material; | |||
| } | |||
| @@ -0,0 +1,41 @@ | |||
| uniform sampler2D colorTexture; | |||
| uniform sampler2D depthTexture; | |||
| varying vec2 v_textureCoordinates; | |||
| uniform vec4 u_scanCenterEC; | |||
| uniform vec3 u_scanPlaneNormalEC; | |||
| uniform float u_radius; | |||
| uniform vec4 u_scanColor; | |||
| vec4 toEye(in vec2 uv, in float depth){ | |||
| vec2 xy = vec2((uv.x * 2.0 - 1.0),(uv.y * 2.0 - 1.0)); | |||
| vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); | |||
| posInCamera =posInCamera / posInCamera.w; | |||
| return posInCamera; | |||
| } | |||
| vec3 pointProjectOnPlane(in vec3 planeNormal, in vec3 planeOrigin, in vec3 point){ | |||
| vec3 v01 = point - planeOrigin; | |||
| float d = dot(planeNormal, v01) ; | |||
| return (point - planeNormal * d); | |||
| } | |||
| float getDepth(in vec4 depth){ | |||
| float z_window = czm_unpackDepth(depth); | |||
| z_window = czm_reverseLogDepth(z_window); | |||
| float n_range = czm_depthRange.near; | |||
| float f_range = czm_depthRange.far; | |||
| return (2.0 * z_window - n_range - f_range) / (f_range - n_range); | |||
| } | |||
| void main(){ | |||
| gl_FragColor = texture2D(colorTexture, v_textureCoordinates); | |||
| float depth = getDepth(texture2D(depthTexture, v_textureCoordinates)); | |||
| vec4 viewPos = toEye(v_textureCoordinates, depth); | |||
| vec3 prjOnPlane = pointProjectOnPlane(u_scanPlaneNormalEC.xyz, u_scanCenterEC.xyz, viewPos.xyz); | |||
| float dis = length(prjOnPlane.xyz - u_scanCenterEC.xyz); | |||
| if(dis < u_radius){ | |||
| float f = 1.0 - abs(u_radius - dis) / u_radius; | |||
| f = pow(f, 4.0); | |||
| gl_FragColor = mix(gl_FragColor, u_scanColor, f); | |||
| } | |||
| } | |||
| @@ -0,0 +1,14 @@ | |||
| uniform vec4 color; | |||
| uniform float duration; | |||
| czm_material czm_getMaterial(czm_materialInput materialInput){ | |||
| czm_material material = czm_getDefaultMaterial(materialInput); | |||
| vec2 st = materialInput.st; | |||
| float t = mod(czm_frameNumber, duration) / duration; | |||
| t *= 1.03; | |||
| float alpha = smoothstep(t- 0.03, t, st.s) * step(-t, -st.s); | |||
| alpha += 0.1; | |||
| material.diffuse = color.rgb; | |||
| material.alpha = alpha; | |||
| return material; | |||
| } | |||
| @@ -0,0 +1,13 @@ | |||
| uniform sampler2D image; | |||
| uniform float duration; | |||
| uniform vec4 color; | |||
| czm_material czm_getMaterial(czm_materialInput materialInput){ | |||
| czm_material material = czm_getDefaultMaterial(materialInput); | |||
| vec2 st = materialInput.st; | |||
| float time = mod(czm_frameNumber, duration) / duration; | |||
| vec4 colorImage = texture2D(image, vec2(fract(st.s - time), st.t)); | |||
| material.alpha = colorImage.a * color.a; | |||
| material.diffuse = (colorImage.rgb + color.rgb)/2.0; | |||
| return material; | |||
| } | |||
| @@ -0,0 +1,63 @@ | |||
| uniform sampler2D colorTexture; | |||
| uniform sampler2D depthTexture; | |||
| varying vec2 v_textureCoordinates; | |||
| uniform vec4 u_scanCenterEC; | |||
| uniform vec3 u_scanPlaneNormalEC; | |||
| uniform vec3 u_scanLineNormalEC; | |||
| uniform float u_radius; | |||
| uniform vec4 u_scanColor; | |||
| vec4 toEye(in vec2 uv, in float depth){ | |||
| vec2 xy = vec2((uv.x * 2.0 - 1.0),(uv.y * 2.0 - 1.0)); | |||
| vec4 posInCamera =czm_inverseProjection * vec4(xy, depth, 1.0); | |||
| posInCamera =posInCamera / posInCamera.w; | |||
| return posInCamera; | |||
| } | |||
| bool isPointOnLineRight(in vec3 ptOnLine, in vec3 lineNormal, in vec3 testPt){ | |||
| vec3 v01 = testPt - ptOnLine; | |||
| normalize(v01); | |||
| vec3 temp = cross(v01, lineNormal); | |||
| float d = dot(temp, u_scanPlaneNormalEC); | |||
| return d > 0.5; | |||
| } | |||
| vec3 pointProjectOnPlane(in vec3 planeNormal, in vec3 planeOrigin, in vec3 point){ | |||
| vec3 v01 = point -planeOrigin; | |||
| float d = dot(planeNormal, v01) ; | |||
| return (point - planeNormal * d); | |||
| } | |||
| float distancePointToLine(in vec3 ptOnLine, in vec3 lineNormal, in vec3 testPt){ | |||
| vec3 tempPt = pointProjectOnPlane(lineNormal, ptOnLine, testPt); | |||
| return length(tempPt - ptOnLine); | |||
| } | |||
| float getDepth(in vec4 depth){ | |||
| float z_window = czm_unpackDepth(depth); | |||
| z_window = czm_reverseLogDepth(z_window); | |||
| float n_range = czm_depthRange.near; | |||
| float f_range = czm_depthRange.far; | |||
| return (2.0 * z_window - n_range - f_range) / (f_range - n_range); | |||
| } | |||
| void main(){ | |||
| gl_FragColor = texture2D(colorTexture, v_textureCoordinates); | |||
| float depth = getDepth( texture2D(depthTexture, v_textureCoordinates)); | |||
| vec4 viewPos = toEye(v_textureCoordinates, depth); | |||
| vec3 prjOnPlane = pointProjectOnPlane(u_scanPlaneNormalEC.xyz, u_scanCenterEC.xyz, viewPos.xyz); | |||
| float dis = length(prjOnPlane.xyz - u_scanCenterEC.xyz); | |||
| float twou_radius = u_radius * 2.0; | |||
| if(dis < u_radius){ | |||
| float f0 = 1.0 -abs(u_radius - dis) / u_radius; | |||
| f0 = pow(f0, 64.0); | |||
| vec3 lineEndPt = vec3(u_scanCenterEC.xyz) + u_scanLineNormalEC * u_radius; | |||
| float f = 0.0; | |||
| if(isPointOnLineRight(u_scanCenterEC.xyz, u_scanLineNormalEC.xyz, prjOnPlane.xyz)){ | |||
| float dis1= length(prjOnPlane.xyz - lineEndPt); | |||
| f = abs(twou_radius -dis1) / twou_radius; | |||
| f = pow(f, 3.0); | |||
| } | |||
| gl_FragColor = mix(gl_FragColor, u_scanColor, f + f0); | |||
| } | |||
| } | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-18 18:22:23 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-11 14:52:21 | |||
| * @Last Modified time: 2020-02-24 13:30:25 | |||
| */ | |||
| const path = require('path') | |||
| @@ -124,6 +124,10 @@ module.exports = env => { | |||
| options: { | |||
| limit: 20000 | |||
| } | |||
| }, | |||
| { | |||
| test: /\.glsl$/, | |||
| loader: 'webpack-glsl-loader' | |||
| } | |||
| ] | |||
| }, | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-18 18:22:23 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-03 17:28:37 | |||
| * @Last Modified time: 2020-02-24 13:30:31 | |||
| */ | |||
| const path = require('path') | |||
| @@ -87,6 +87,10 @@ module.exports = env => { | |||
| options: { | |||
| limit: 20000 | |||
| } | |||
| }, | |||
| { | |||
| test: /\.glsl$/, | |||
| loader: 'webpack-glsl-loader' | |||
| } | |||
| ] | |||
| }, | |||
| @@ -1983,13 +1983,6 @@ debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: | |||
| dependencies: | |||
| ms "2.0.0" | |||
| debug@^3.2.6: | |||
| version "3.2.6" | |||
| resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" | |||
| integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== | |||
| dependencies: | |||
| ms "^2.1.1" | |||
| debug@^4.0.1, debug@^4.1.0: | |||
| version "4.1.1" | |||
| resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" | |||
| @@ -2007,11 +2000,6 @@ decode-uri-component@^0.2.0: | |||
| resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" | |||
| integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= | |||
| deep-extend@^0.6.0: | |||
| version "0.6.0" | |||
| resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" | |||
| integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== | |||
| deep-is@~0.1.3: | |||
| version "0.1.3" | |||
| resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" | |||
| @@ -2069,11 +2057,6 @@ detect-file@^1.0.0: | |||
| resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" | |||
| integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= | |||
| detect-libc@^1.0.2: | |||
| version "1.0.3" | |||
| resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" | |||
| integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= | |||
| diffie-hellman@^5.0.0: | |||
| version "5.0.3" | |||
| resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" | |||
| @@ -2695,13 +2678,6 @@ from2@^2.1.0: | |||
| inherits "^2.0.1" | |||
| readable-stream "^2.0.0" | |||
| fs-minipass@^1.2.5: | |||
| version "1.2.7" | |||
| resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" | |||
| integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== | |||
| dependencies: | |||
| minipass "^2.6.0" | |||
| fs-write-stream-atomic@^1.0.8: | |||
| version "1.0.10" | |||
| resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" | |||
| @@ -2717,6 +2693,11 @@ fs.realpath@^1.0.0: | |||
| resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" | |||
| integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= | |||
| fs@0.0.2: | |||
| version "0.0.2" | |||
| resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.2.tgz#e1f244ef3933c1b2a64bd4799136060d0f5914f8" | |||
| integrity sha1-4fJE7zkzwbKmS9R5kTYGDQ9ZFPg= | |||
| fsevents@^1.2.7: | |||
| version "1.2.11" | |||
| resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" | |||
| @@ -3041,7 +3022,7 @@ https-browserify@^1.0.0: | |||
| resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" | |||
| integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= | |||
| iconv-lite@^0.4.24, iconv-lite@^0.4.4: | |||
| iconv-lite@^0.4.24: | |||
| version "0.4.24" | |||
| resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" | |||
| integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== | |||
| @@ -3070,13 +3051,6 @@ iferr@^0.1.5: | |||
| resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" | |||
| integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= | |||
| ignore-walk@^3.0.1: | |||
| version "3.0.3" | |||
| resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" | |||
| integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== | |||
| dependencies: | |||
| minimatch "^3.0.4" | |||
| ignore@^3.3.5: | |||
| version "3.3.10" | |||
| resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" | |||
| @@ -3166,7 +3140,7 @@ inherits@2.0.3: | |||
| resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" | |||
| integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= | |||
| ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: | |||
| ini@^1.3.4, ini@^1.3.5: | |||
| version "1.3.5" | |||
| resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" | |||
| integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== | |||
| @@ -3901,21 +3875,6 @@ minimist@^1.1.3, minimist@^1.2.0: | |||
| resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" | |||
| integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= | |||
| minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: | |||
| version "2.9.0" | |||
| resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" | |||
| integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== | |||
| dependencies: | |||
| safe-buffer "^5.1.2" | |||
| yallist "^3.0.0" | |||
| minizlib@^1.2.1: | |||
| version "1.3.3" | |||
| resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" | |||
| integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== | |||
| dependencies: | |||
| minipass "^2.9.0" | |||
| mississippi@^3.0.0: | |||
| version "3.0.0" | |||
| resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" | |||
| @@ -4001,15 +3960,6 @@ natural-compare@^1.4.0: | |||
| resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" | |||
| integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= | |||
| needle@^2.2.1: | |||
| version "2.4.0" | |||
| resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" | |||
| integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== | |||
| dependencies: | |||
| debug "^3.2.6" | |||
| iconv-lite "^0.4.4" | |||
| sax "^1.2.4" | |||
| neo-async@^2.5.0, neo-async@^2.6.1: | |||
| version "2.6.1" | |||
| resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" | |||
| @@ -4067,22 +4017,6 @@ node-libs-browser@^2.2.1: | |||
| util "^0.11.0" | |||
| vm-browserify "^1.0.1" | |||
| node-pre-gyp@*: | |||
| version "0.14.0" | |||
| resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" | |||
| integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== | |||
| dependencies: | |||
| detect-libc "^1.0.2" | |||
| mkdirp "^0.5.1" | |||
| needle "^2.2.1" | |||
| nopt "^4.0.1" | |||
| npm-packlist "^1.1.6" | |||
| npmlog "^4.0.2" | |||
| rc "^1.2.7" | |||
| rimraf "^2.6.1" | |||
| semver "^5.3.0" | |||
| tar "^4.4.2" | |||
| node-releases@^1.1.44: | |||
| version "1.1.45" | |||
| resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" | |||
| @@ -4120,14 +4054,6 @@ node-sass@^4.12.0: | |||
| dependencies: | |||
| abbrev "1" | |||
| nopt@^4.0.1: | |||
| version "4.0.1" | |||
| resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" | |||
| integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= | |||
| dependencies: | |||
| abbrev "1" | |||
| osenv "^0.1.4" | |||
| normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: | |||
| version "2.5.0" | |||
| resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" | |||
| @@ -4164,26 +4090,6 @@ normalize-url@^3.0.0: | |||
| resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" | |||
| integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== | |||
| npm-bundled@^1.0.1: | |||
| version "1.1.1" | |||
| resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" | |||
| integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== | |||
| dependencies: | |||
| npm-normalize-package-bin "^1.0.1" | |||
| npm-normalize-package-bin@^1.0.1: | |||
| version "1.0.1" | |||
| resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" | |||
| integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== | |||
| npm-packlist@^1.1.6: | |||
| version "1.4.7" | |||
| resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" | |||
| integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== | |||
| dependencies: | |||
| ignore-walk "^3.0.1" | |||
| npm-bundled "^1.0.1" | |||
| npm-run-path@^2.0.0: | |||
| version "2.0.2" | |||
| resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" | |||
| @@ -4191,7 +4097,7 @@ npm-run-path@^2.0.0: | |||
| dependencies: | |||
| path-key "^2.0.0" | |||
| "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: | |||
| "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: | |||
| version "4.1.2" | |||
| resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" | |||
| integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== | |||
| @@ -4349,7 +4255,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: | |||
| resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" | |||
| integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= | |||
| osenv@0, osenv@^0.1.4: | |||
| osenv@0: | |||
| version "0.1.5" | |||
| resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" | |||
| integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== | |||
| @@ -4533,6 +4439,11 @@ path-type@^3.0.0: | |||
| dependencies: | |||
| pify "^3.0.0" | |||
| path@^0.11.14: | |||
| version "0.11.14" | |||
| resolved "https://registry.yarnpkg.com/path/-/path-0.11.14.tgz#cbc7569355cb3c83afeb4ace43ecff95231e5a7d" | |||
| integrity sha1-y8dWk1XLPIOv60rOQ+z/lSMeWn0= | |||
| pbkdf2@^3.0.3: | |||
| version "3.0.17" | |||
| resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" | |||
| @@ -5074,16 +4985,6 @@ randomfill@^1.0.3: | |||
| randombytes "^2.0.5" | |||
| safe-buffer "^5.1.0" | |||
| rc@^1.2.7: | |||
| version "1.2.8" | |||
| resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" | |||
| integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== | |||
| dependencies: | |||
| deep-extend "^0.6.0" | |||
| ini "~1.3.0" | |||
| minimist "^1.2.0" | |||
| strip-json-comments "~2.0.1" | |||
| read-pkg-up@^1.0.1: | |||
| version "1.0.1" | |||
| resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" | |||
| @@ -5332,7 +5233,7 @@ rgba-regex@^1.0.0: | |||
| resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" | |||
| integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= | |||
| rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: | |||
| rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3: | |||
| version "2.7.1" | |||
| resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" | |||
| integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== | |||
| @@ -5418,7 +5319,7 @@ sass-loader@^7.1.0: | |||
| pify "^4.0.1" | |||
| semver "^6.3.0" | |||
| sax@^1.2.4, sax@~1.2.4: | |||
| sax@~1.2.4: | |||
| version "1.2.4" | |||
| resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" | |||
| integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== | |||
| @@ -5440,7 +5341,7 @@ scss-tokenizer@^0.2.3: | |||
| js-base64 "^2.1.8" | |||
| source-map "^0.4.2" | |||
| "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: | |||
| "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: | |||
| version "5.7.1" | |||
| resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" | |||
| integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== | |||
| @@ -5844,7 +5745,7 @@ strip-indent@^1.0.1: | |||
| dependencies: | |||
| get-stdin "^4.0.1" | |||
| strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: | |||
| strip-json-comments@^2.0.1: | |||
| version "2.0.1" | |||
| resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" | |||
| integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= | |||
| @@ -5935,19 +5836,6 @@ tar@^2.0.0: | |||
| fstream "^1.0.12" | |||
| inherits "2" | |||
| tar@^4.4.2: | |||
| version "4.4.13" | |||
| resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" | |||
| integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== | |||
| dependencies: | |||
| chownr "^1.1.1" | |||
| fs-minipass "^1.2.5" | |||
| minipass "^2.8.6" | |||
| minizlib "^1.2.1" | |||
| mkdirp "^0.5.0" | |||
| safe-buffer "^5.1.2" | |||
| yallist "^3.0.3" | |||
| terser-webpack-plugin@^1.4.3: | |||
| version "1.4.3" | |||
| resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" | |||
| @@ -6322,6 +6210,14 @@ webpack-cli@^3.3.0: | |||
| v8-compile-cache "2.0.3" | |||
| yargs "13.2.4" | |||
| webpack-glsl-loader@^1.0.1: | |||
| version "1.0.1" | |||
| resolved "https://registry.yarnpkg.com/webpack-glsl-loader/-/webpack-glsl-loader-1.0.1.tgz#72a0e30192bd57947d60d6d505c915be680d0acc" | |||
| integrity sha1-cqDjAZK9V5R9YNbVBckVvmgNCsw= | |||
| dependencies: | |||
| fs "0.0.2" | |||
| path "^0.11.14" | |||
| webpack-log@^2.0.0: | |||
| version "2.0.0" | |||
| resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" | |||
| @@ -6452,7 +6348,7 @@ yallist@^2.1.2: | |||
| resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" | |||
| integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= | |||
| yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: | |||
| yallist@^3.0.2: | |||
| version "3.1.1" | |||
| resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" | |||
| integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== | |||