@deck.gl/extensions 9.0.0-beta.2 → 9.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brushing/brushing-extension.js +80 -0
- package/dist/{esm/brushing → brushing}/shader-module.js +24 -30
- package/dist/clip/clip-extension.js +117 -0
- package/{typed → dist}/collision-filter/collision-filter-effect.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-effect.js +193 -0
- package/dist/collision-filter/collision-filter-extension.js +49 -0
- package/{typed → dist}/collision-filter/collision-filter-pass.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-pass.js +25 -0
- package/dist/{esm/collision-filter → collision-filter}/shader-module.js +17 -24
- package/dist/data-filter/aggregator.js +104 -0
- package/{typed → dist}/data-filter/data-filter-extension.d.ts.map +1 -1
- package/dist/data-filter/data-filter-extension.js +162 -0
- package/dist/data-filter/shader-module.js +159 -0
- package/dist/dist.dev.js +1762 -13033
- package/dist/fill-style/fill-style-extension.js +118 -0
- package/dist/{esm/fill-style → fill-style}/shaders.glsl.js +37 -43
- package/dist/fp64/fp64-extension.js +35 -0
- package/dist/{esm/fp64 → fp64}/project64.glsl.js +19 -1
- package/dist/fp64/project64.js +50 -0
- package/dist/index.cjs +2724 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.js +11 -0
- package/{typed → dist}/mask/mask-effect.d.ts.map +1 -1
- package/dist/mask/mask-effect.js +194 -0
- package/dist/mask/mask-extension.js +57 -0
- package/{typed → dist}/mask/mask-pass.d.ts.map +1 -1
- package/dist/mask/mask-pass.js +44 -0
- package/dist/{esm/mask → mask}/shader-module.js +18 -21
- package/dist/path-style/path-style-extension.js +111 -0
- package/dist/{esm/path-style → path-style}/shaders.glsl.js +20 -13
- package/dist/terrain/height-map-builder.js +104 -0
- package/dist/terrain/shader-module.js +139 -0
- package/dist/terrain/terrain-cover.js +187 -0
- package/{typed → dist}/terrain/terrain-effect.d.ts.map +1 -1
- package/dist/terrain/terrain-effect.js +184 -0
- package/dist/terrain/terrain-extension.js +44 -0
- package/{typed → dist}/terrain/terrain-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-pass.js +61 -0
- package/{typed → dist}/terrain/terrain-picking-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-picking-pass.js +66 -0
- package/dist/terrain/utils.js +21 -0
- package/{typed → dist}/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +50 -0
- package/dist/utils/projection-utils.js +153 -0
- package/dist.min.js +73 -205
- package/package.json +19 -12
- package/src/collision-filter/collision-filter-effect.ts +12 -8
- package/src/collision-filter/collision-filter-pass.ts +1 -3
- package/src/data-filter/data-filter-extension.ts +3 -5
- package/src/mask/mask-effect.ts +0 -1
- package/src/mask/mask-pass.ts +1 -3
- package/src/terrain/terrain-effect.ts +8 -2
- package/src/terrain/terrain-pass.ts +2 -5
- package/src/terrain/terrain-picking-pass.ts +1 -3
- package/src/utils/debug.ts +1 -2
- package/dist/es5/brushing/brushing-extension.js +0 -108
- package/dist/es5/brushing/brushing-extension.js.map +0 -1
- package/dist/es5/brushing/shader-module.js +0 -50
- package/dist/es5/brushing/shader-module.js.map +0 -1
- package/dist/es5/clip/clip-extension.js +0 -98
- package/dist/es5/clip/clip-extension.js.map +0 -1
- package/dist/es5/collision-filter/collision-filter-effect.js +0 -294
- package/dist/es5/collision-filter/collision-filter-effect.js.map +0 -1
- package/dist/es5/collision-filter/collision-filter-extension.js +0 -109
- package/dist/es5/collision-filter/collision-filter-extension.js.map +0 -1
- package/dist/es5/collision-filter/collision-filter-pass.js +0 -79
- package/dist/es5/collision-filter/collision-filter-pass.js.map +0 -1
- package/dist/es5/collision-filter/shader-module.js +0 -39
- package/dist/es5/collision-filter/shader-module.js.map +0 -1
- package/dist/es5/data-filter/aggregator.js +0 -79
- package/dist/es5/data-filter/aggregator.js.map +0 -1
- package/dist/es5/data-filter/data-filter-extension.js +0 -236
- package/dist/es5/data-filter/data-filter-extension.js.map +0 -1
- package/dist/es5/data-filter/shader-module.js +0 -122
- package/dist/es5/data-filter/shader-module.js.map +0 -1
- package/dist/es5/fill-style/fill-style-extension.js +0 -190
- package/dist/es5/fill-style/fill-style-extension.js.map +0 -1
- package/dist/es5/fill-style/shaders.glsl.js +0 -59
- package/dist/es5/fill-style/shaders.glsl.js.map +0 -1
- package/dist/es5/fp64/fp64-extension.js +0 -55
- package/dist/es5/fp64/fp64-extension.js.map +0 -1
- package/dist/es5/fp64/project64.glsl.js +0 -9
- package/dist/es5/fp64/project64.glsl.js.map +0 -1
- package/dist/es5/fp64/project64.js +0 -52
- package/dist/es5/fp64/project64.js.map +0 -1
- package/dist/es5/index.js +0 -88
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/mask/mask-effect.js +0 -279
- package/dist/es5/mask/mask-effect.js.map +0 -1
- package/dist/es5/mask/mask-extension.js +0 -113
- package/dist/es5/mask/mask-extension.js.map +0 -1
- package/dist/es5/mask/mask-pass.js +0 -106
- package/dist/es5/mask/mask-pass.js.map +0 -1
- package/dist/es5/mask/shader-module.js +0 -38
- package/dist/es5/mask/shader-module.js.map +0 -1
- package/dist/es5/path-style/path-style-extension.js +0 -169
- package/dist/es5/path-style/path-style-extension.js.map +0 -1
- package/dist/es5/path-style/shaders.glsl.js +0 -25
- package/dist/es5/path-style/shaders.glsl.js.map +0 -1
- package/dist/es5/terrain/height-map-builder.js +0 -111
- package/dist/es5/terrain/height-map-builder.js.map +0 -1
- package/dist/es5/terrain/shader-module.js +0 -86
- package/dist/es5/terrain/shader-module.js.map +0 -1
- package/dist/es5/terrain/terrain-cover.js +0 -256
- package/dist/es5/terrain/terrain-cover.js.map +0 -1
- package/dist/es5/terrain/terrain-effect.js +0 -326
- package/dist/es5/terrain/terrain-effect.js.map +0 -1
- package/dist/es5/terrain/terrain-extension.js +0 -94
- package/dist/es5/terrain/terrain-extension.js.map +0 -1
- package/dist/es5/terrain/terrain-pass.js +0 -121
- package/dist/es5/terrain/terrain-pass.js.map +0 -1
- package/dist/es5/terrain/terrain-picking-pass.js +0 -124
- package/dist/es5/terrain/terrain-picking-pass.js.map +0 -1
- package/dist/es5/terrain/utils.js +0 -35
- package/dist/es5/terrain/utils.js.map +0 -1
- package/dist/es5/utils/debug.js +0 -71
- package/dist/es5/utils/debug.js.map +0 -1
- package/dist/es5/utils/projection-utils.js +0 -168
- package/dist/es5/utils/projection-utils.js.map +0 -1
- package/dist/esm/brushing/brushing-extension.js +0 -68
- package/dist/esm/brushing/brushing-extension.js.map +0 -1
- package/dist/esm/brushing/shader-module.js.map +0 -1
- package/dist/esm/clip/clip-extension.js +0 -86
- package/dist/esm/clip/clip-extension.js.map +0 -1
- package/dist/esm/collision-filter/collision-filter-effect.js +0 -246
- package/dist/esm/collision-filter/collision-filter-effect.js.map +0 -1
- package/dist/esm/collision-filter/collision-filter-extension.js +0 -75
- package/dist/esm/collision-filter/collision-filter-extension.js.map +0 -1
- package/dist/esm/collision-filter/collision-filter-pass.js +0 -32
- package/dist/esm/collision-filter/collision-filter-pass.js.map +0 -1
- package/dist/esm/collision-filter/shader-module.js.map +0 -1
- package/dist/esm/data-filter/aggregator.js +0 -102
- package/dist/esm/data-filter/aggregator.js.map +0 -1
- package/dist/esm/data-filter/data-filter-extension.js +0 -189
- package/dist/esm/data-filter/data-filter-extension.js.map +0 -1
- package/dist/esm/data-filter/shader-module.js +0 -164
- package/dist/esm/data-filter/shader-module.js.map +0 -1
- package/dist/esm/fill-style/fill-style-extension.js +0 -156
- package/dist/esm/fill-style/fill-style-extension.js.map +0 -1
- package/dist/esm/fill-style/shaders.glsl.js.map +0 -1
- package/dist/esm/fp64/fp64-extension.js +0 -20
- package/dist/esm/fp64/fp64-extension.js.map +0 -1
- package/dist/esm/fp64/project64.glsl.js.map +0 -1
- package/dist/esm/fp64/project64.js +0 -43
- package/dist/esm/fp64/project64.js.map +0 -1
- package/dist/esm/index.js +0 -11
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/mask/mask-effect.js +0 -228
- package/dist/esm/mask/mask-effect.js.map +0 -1
- package/dist/esm/mask/mask-extension.js +0 -83
- package/dist/esm/mask/mask-extension.js.map +0 -1
- package/dist/esm/mask/mask-pass.js +0 -58
- package/dist/esm/mask/mask-pass.js.map +0 -1
- package/dist/esm/mask/shader-module.js.map +0 -1
- package/dist/esm/path-style/path-style-extension.js +0 -130
- package/dist/esm/path-style/path-style-extension.js.map +0 -1
- package/dist/esm/path-style/shaders.glsl.js.map +0 -1
- package/dist/esm/terrain/height-map-builder.js +0 -86
- package/dist/esm/terrain/height-map-builder.js.map +0 -1
- package/dist/esm/terrain/shader-module.js +0 -127
- package/dist/esm/terrain/shader-module.js.map +0 -1
- package/dist/esm/terrain/terrain-cover.js +0 -212
- package/dist/esm/terrain/terrain-cover.js.map +0 -1
- package/dist/esm/terrain/terrain-effect.js +0 -219
- package/dist/esm/terrain/terrain-effect.js.map +0 -1
- package/dist/esm/terrain/terrain-extension.js +0 -59
- package/dist/esm/terrain/terrain-extension.js.map +0 -1
- package/dist/esm/terrain/terrain-pass.js +0 -71
- package/dist/esm/terrain/terrain-pass.js.map +0 -1
- package/dist/esm/terrain/terrain-picking-pass.js +0 -73
- package/dist/esm/terrain/terrain-picking-pass.js.map +0 -1
- package/dist/esm/terrain/utils.js +0 -19
- package/dist/esm/terrain/utils.js.map +0 -1
- package/dist/esm/utils/debug.js +0 -61
- package/dist/esm/utils/debug.js.map +0 -1
- package/dist/esm/utils/projection-utils.js +0 -134
- package/dist/esm/utils/projection-utils.js.map +0 -1
- /package/{typed → dist}/brushing/brushing-extension.d.ts +0 -0
- /package/{typed → dist}/brushing/brushing-extension.d.ts.map +0 -0
- /package/{typed → dist}/brushing/shader-module.d.ts +0 -0
- /package/{typed → dist}/brushing/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/clip/clip-extension.d.ts +0 -0
- /package/{typed → dist}/clip/clip-extension.d.ts.map +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-effect.d.ts +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts.map +0 -0
- /package/{typed → dist}/collision-filter/collision-filter-pass.d.ts +0 -0
- /package/{typed → dist}/collision-filter/shader-module.d.ts +0 -0
- /package/{typed → dist}/collision-filter/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/data-filter/aggregator.d.ts +0 -0
- /package/{typed → dist}/data-filter/aggregator.d.ts.map +0 -0
- /package/{typed → dist}/data-filter/data-filter-extension.d.ts +0 -0
- /package/{typed → dist}/data-filter/shader-module.d.ts +0 -0
- /package/{typed → dist}/data-filter/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/fill-style/fill-style-extension.d.ts +0 -0
- /package/{typed → dist}/fill-style/fill-style-extension.d.ts.map +0 -0
- /package/{typed → dist}/fill-style/shaders.glsl.d.ts +0 -0
- /package/{typed → dist}/fill-style/shaders.glsl.d.ts.map +0 -0
- /package/{typed → dist}/fp64/fp64-extension.d.ts +0 -0
- /package/{typed → dist}/fp64/fp64-extension.d.ts.map +0 -0
- /package/{typed → dist}/fp64/project64.d.ts +0 -0
- /package/{typed → dist}/fp64/project64.d.ts.map +0 -0
- /package/{typed → dist}/fp64/project64.glsl.d.ts +0 -0
- /package/{typed → dist}/fp64/project64.glsl.d.ts.map +0 -0
- /package/{typed → dist}/index.d.ts +0 -0
- /package/{typed → dist}/index.d.ts.map +0 -0
- /package/{typed → dist}/mask/mask-effect.d.ts +0 -0
- /package/{typed → dist}/mask/mask-extension.d.ts +0 -0
- /package/{typed → dist}/mask/mask-extension.d.ts.map +0 -0
- /package/{typed → dist}/mask/mask-pass.d.ts +0 -0
- /package/{typed → dist}/mask/shader-module.d.ts +0 -0
- /package/{typed → dist}/mask/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/path-style/path-style-extension.d.ts +0 -0
- /package/{typed → dist}/path-style/path-style-extension.d.ts.map +0 -0
- /package/{typed → dist}/path-style/shaders.glsl.d.ts +0 -0
- /package/{typed → dist}/path-style/shaders.glsl.d.ts.map +0 -0
- /package/{typed → dist}/terrain/height-map-builder.d.ts +0 -0
- /package/{typed → dist}/terrain/height-map-builder.d.ts.map +0 -0
- /package/{typed → dist}/terrain/shader-module.d.ts +0 -0
- /package/{typed → dist}/terrain/shader-module.d.ts.map +0 -0
- /package/{typed → dist}/terrain/terrain-cover.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-cover.d.ts.map +0 -0
- /package/{typed → dist}/terrain/terrain-effect.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-extension.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-extension.d.ts.map +0 -0
- /package/{typed → dist}/terrain/terrain-pass.d.ts +0 -0
- /package/{typed → dist}/terrain/terrain-picking-pass.d.ts +0 -0
- /package/{typed → dist}/terrain/utils.d.ts +0 -0
- /package/{typed → dist}/terrain/utils.d.ts.map +0 -0
- /package/{typed → dist}/utils/debug.d.ts +0 -0
- /package/{typed → dist}/utils/projection-utils.d.ts +0 -0
- /package/{typed → dist}/utils/projection-utils.d.ts.map +0 -0
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
-
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
-
|
|
16
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
|
-
|
|
18
|
-
var _core = require("@deck.gl/core");
|
|
19
|
-
|
|
20
|
-
var _terrainEffect = require("./terrain-effect");
|
|
21
|
-
|
|
22
|
-
var _shaderModule = require("./shader-module");
|
|
23
|
-
|
|
24
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
25
|
-
|
|
26
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
27
|
-
|
|
28
|
-
var defaultProps = {
|
|
29
|
-
terrainDrawMode: undefined
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
var TerrainExtension = function (_LayerExtension) {
|
|
33
|
-
(0, _inherits2.default)(TerrainExtension, _LayerExtension);
|
|
34
|
-
|
|
35
|
-
var _super = _createSuper(TerrainExtension);
|
|
36
|
-
|
|
37
|
-
function TerrainExtension() {
|
|
38
|
-
(0, _classCallCheck2.default)(this, TerrainExtension);
|
|
39
|
-
return _super.apply(this, arguments);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var _proto = TerrainExtension.prototype;
|
|
43
|
-
|
|
44
|
-
_proto.getShaders = function getShaders() {
|
|
45
|
-
return {
|
|
46
|
-
modules: [_shaderModule.terrainModule]
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
_proto.initializeState = function initializeState() {
|
|
51
|
-
var _this$context$deck;
|
|
52
|
-
|
|
53
|
-
(_this$context$deck = this.context.deck) === null || _this$context$deck === void 0 ? void 0 : _this$context$deck._addDefaultEffect(new _terrainEffect.TerrainEffect());
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
_proto.updateState = function updateState(params) {
|
|
57
|
-
var props = params.props,
|
|
58
|
-
oldProps = params.oldProps;
|
|
59
|
-
|
|
60
|
-
if (this.state.terrainDrawMode && props.terrainDrawMode === oldProps.terrainDrawMode && props.extruded === oldProps.extruded) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
var terrainDrawMode = props.terrainDrawMode;
|
|
65
|
-
|
|
66
|
-
if (!terrainDrawMode) {
|
|
67
|
-
var _this$getAttributeMan;
|
|
68
|
-
|
|
69
|
-
var is3d = this.props.extruded;
|
|
70
|
-
var attributes = (_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 ? void 0 : _this$getAttributeMan.attributes;
|
|
71
|
-
var hasAnchor = attributes && 'instancePositions' in attributes;
|
|
72
|
-
terrainDrawMode = is3d || hasAnchor ? 'offset' : 'drape';
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
this.setState({
|
|
76
|
-
terrainDrawMode: terrainDrawMode
|
|
77
|
-
});
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
_proto.onNeedsRedraw = function onNeedsRedraw() {
|
|
81
|
-
var state = this.state;
|
|
82
|
-
|
|
83
|
-
if (state.terrainDrawMode === 'drape') {
|
|
84
|
-
state.terrainCoverNeedsRedraw = true;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
return TerrainExtension;
|
|
89
|
-
}(_core.LayerExtension);
|
|
90
|
-
|
|
91
|
-
exports.default = TerrainExtension;
|
|
92
|
-
TerrainExtension.defaultProps = defaultProps;
|
|
93
|
-
TerrainExtension.extensionName = 'TerrainExtension';
|
|
94
|
-
//# sourceMappingURL=terrain-extension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/terrain/terrain-extension.ts"],"names":["defaultProps","terrainDrawMode","undefined","TerrainExtension","getShaders","modules","terrainModule","initializeState","context","deck","_addDefaultEffect","TerrainEffect","updateState","params","props","oldProps","state","extruded","is3d","attributes","getAttributeManager","hasAnchor","setState","onNeedsRedraw","terrainCoverNeedsRedraw","LayerExtension","extensionName"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAIA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,eAAe,EAAEC;AADE,CAArB;;IAoBqBC,gB;;;;;;;;;;;;SAInBC,U,GAAA,sBAAoD;AAClD,WAAO;AACLC,MAAAA,OAAO,EAAE,CAACC,2BAAD;AADJ,KAAP;AAGD,G;;SAEDC,e,GAAA,2BAAoD;AAAA;;AAClD,+BAAKC,OAAL,CAAaC,IAAb,0EAAmBC,iBAAnB,CAAqC,IAAIC,4BAAJ,EAArC;AACD,G;;SAEDC,W,GAAA,qBAEEC,MAFF,EAGE;AACA,QAAOC,KAAP,GAA0BD,MAA1B,CAAOC,KAAP;AAAA,QAAcC,QAAd,GAA0BF,MAA1B,CAAcE,QAAd;;AAEA,QACE,KAAKC,KAAL,CAAWf,eAAX,IACAa,KAAK,CAACb,eAAN,KAA0Bc,QAAQ,CAACd,eADnC,IAGAa,KAAK,CAACG,QAAN,KAAmBF,QAAQ,CAACE,QAJ9B,EAKE;AACA;AACD;;AAED,QAAKhB,eAAL,GAAwBa,KAAxB,CAAKb,eAAL;;AACA,QAAI,CAACA,eAAL,EAAsB;AAAA;;AAGpB,UAAMiB,IAAI,GAAG,KAAKJ,KAAL,CAAWG,QAAxB;AACA,UAAME,UAAU,4BAAG,KAAKC,mBAAL,EAAH,0DAAG,sBAA4BD,UAA/C;AACA,UAAME,SAAS,GAAGF,UAAU,IAAI,uBAAuBA,UAAvD;AACAlB,MAAAA,eAAe,GAAGiB,IAAI,IAAIG,SAAR,GAAoB,QAApB,GAA+B,OAAjD;AACD;;AACD,SAAKC,QAAL,CAAc;AAACrB,MAAAA,eAAe,EAAfA;AAAD,KAAd;AACD,G;;SAEDsB,a,GAAA,yBAAqC;AACnC,QAAMP,KAAK,GAAG,KAAKA,KAAnB;;AACA,QAAIA,KAAK,CAACf,eAAN,KAA0B,OAA9B,EAAuC;AACrCe,MAAAA,KAAK,CAACQ,uBAAN,GAAgC,IAAhC;AACD;AACF,G;;;EA9C2CC,oB;;;AAAzBtB,gB,CACZH,Y,GAAeA,Y;AADHG,gB,CAEZuB,a,GAAgB,kB","sourcesContent":["import {LayerExtension, UpdateParameters} from '@deck.gl/core';\nimport {TerrainEffect} from './terrain-effect';\nimport {terrainModule} from './shader-module';\n\nimport type {Layer} from '@deck.gl/core';\n\nconst defaultProps = {\n terrainDrawMode: undefined\n};\n\nexport type TerrainExtensionProps = {\n /**\n * controls whether an object is drawn over the terrain surface by its anchor (usually defined by an accessor called `getPosition`, e.g. icon, scatterplot) or by its geometry (e.g. path, polygon).\n * If not specified, it is automatically deduced from the layer.\n */\n terrainDrawMode?: 'offset' | 'drape';\n};\n\ntype TerrainExtensionState = {\n /** Resolved fitting mode */\n terrainDrawMode: 'offset' | 'drape';\n /** Set when a layer is flagged as needs redraw */\n terrainCoverNeedsRedraw: boolean;\n};\n\n/** Allows layers to show/hide objects by a geofence. */\nexport default class TerrainExtension extends LayerExtension {\n static defaultProps = defaultProps;\n static extensionName = 'TerrainExtension';\n\n getShaders(this: Layer<TerrainExtensionProps>): any {\n return {\n modules: [terrainModule]\n };\n }\n\n initializeState(this: Layer<TerrainExtensionProps>) {\n this.context.deck?._addDefaultEffect(new TerrainEffect());\n }\n\n updateState(\n this: Layer<TerrainExtensionProps>,\n params: UpdateParameters<Layer<TerrainExtensionProps>>\n ) {\n const {props, oldProps} = params;\n\n if (\n this.state.terrainDrawMode &&\n props.terrainDrawMode === oldProps.terrainDrawMode &&\n // @ts-ignore `extruded` may not exist in props\n props.extruded === oldProps.extruded\n ) {\n return;\n }\n\n let {terrainDrawMode} = props;\n if (!terrainDrawMode) {\n // props.extruded is used as an indication that the layer is 2.5D\n // @ts-ignore `extruded` may not exist in props\n const is3d = this.props.extruded as boolean;\n const attributes = this.getAttributeManager()?.attributes;\n const hasAnchor = attributes && 'instancePositions' in attributes;\n terrainDrawMode = is3d || hasAnchor ? 'offset' : 'drape';\n }\n this.setState({terrainDrawMode});\n }\n\n onNeedsRedraw(this: Layer<{}>): void {\n const state = this.state as TerrainExtensionState;\n if (state.terrainDrawMode === 'drape') {\n state.terrainCoverNeedsRedraw = true;\n }\n }\n}\n"],"file":"terrain-extension.js"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.TerrainPass = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
|
-
var _webgl = require("@luma.gl/webgl");
|
|
21
|
-
|
|
22
|
-
var _constants = require("@luma.gl/constants");
|
|
23
|
-
|
|
24
|
-
var _core = require("@deck.gl/core");
|
|
25
|
-
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
-
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
29
|
-
|
|
30
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
31
|
-
|
|
32
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
33
|
-
|
|
34
|
-
var TerrainPass = function (_LayersPass) {
|
|
35
|
-
(0, _inherits2.default)(TerrainPass, _LayersPass);
|
|
36
|
-
|
|
37
|
-
var _super = _createSuper(TerrainPass);
|
|
38
|
-
|
|
39
|
-
function TerrainPass() {
|
|
40
|
-
(0, _classCallCheck2.default)(this, TerrainPass);
|
|
41
|
-
return _super.apply(this, arguments);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
var _proto = TerrainPass.prototype;
|
|
45
|
-
|
|
46
|
-
_proto.getRenderableLayers = function getRenderableLayers(viewport, opts) {
|
|
47
|
-
var layers = opts.layers;
|
|
48
|
-
var result = [];
|
|
49
|
-
|
|
50
|
-
var drawParamsByIndex = this._getDrawLayerParams(viewport, opts, true);
|
|
51
|
-
|
|
52
|
-
for (var i = 0; i < layers.length; i++) {
|
|
53
|
-
var layer = layers[i];
|
|
54
|
-
|
|
55
|
-
if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {
|
|
56
|
-
result.push(layer);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return result;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
_proto.renderHeightMap = function renderHeightMap(heightMap, opts) {
|
|
64
|
-
var _this = this;
|
|
65
|
-
|
|
66
|
-
var target = heightMap.getRenderFramebuffer();
|
|
67
|
-
var viewport = heightMap.renderViewport;
|
|
68
|
-
|
|
69
|
-
if (!target || !viewport) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
target.resize(viewport);
|
|
74
|
-
(0, _webgl.withGLParameters)(this.device, {
|
|
75
|
-
clearColor: [0, 0, 0, 0],
|
|
76
|
-
blend: true,
|
|
77
|
-
blendFunc: [1, 1],
|
|
78
|
-
blendEquation: 32776,
|
|
79
|
-
depthTest: false
|
|
80
|
-
}, function () {
|
|
81
|
-
return _this.render(_objectSpread(_objectSpread({}, opts), {}, {
|
|
82
|
-
target: target,
|
|
83
|
-
pass: 'terrain-height-map',
|
|
84
|
-
layers: opts.layers,
|
|
85
|
-
viewports: [viewport],
|
|
86
|
-
effects: []
|
|
87
|
-
}));
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
_proto.renderTerrainCover = function renderTerrainCover(terrainCover, opts) {
|
|
92
|
-
var _this2 = this;
|
|
93
|
-
|
|
94
|
-
var target = terrainCover.getRenderFramebuffer();
|
|
95
|
-
var viewport = terrainCover.renderViewport;
|
|
96
|
-
|
|
97
|
-
if (!target || !viewport) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
var layers = terrainCover.filterLayers(opts.layers);
|
|
102
|
-
target.resize(viewport);
|
|
103
|
-
(0, _webgl.withGLParameters)(this.device, {
|
|
104
|
-
clearColor: [0, 0, 0, 0],
|
|
105
|
-
depthTest: false
|
|
106
|
-
}, function () {
|
|
107
|
-
return _this2.render(_objectSpread(_objectSpread({}, opts), {}, {
|
|
108
|
-
target: target,
|
|
109
|
-
pass: "terrain-cover-".concat(terrainCover.id),
|
|
110
|
-
layers: layers,
|
|
111
|
-
effects: [],
|
|
112
|
-
viewports: [viewport]
|
|
113
|
-
}));
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
return TerrainPass;
|
|
118
|
-
}(_core._LayersPass);
|
|
119
|
-
|
|
120
|
-
exports.TerrainPass = TerrainPass;
|
|
121
|
-
//# sourceMappingURL=terrain-pass.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/terrain/terrain-pass.ts"],"names":["TerrainPass","getRenderableLayers","viewport","opts","layers","result","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","renderHeightMap","heightMap","target","getRenderFramebuffer","renderViewport","resize","device","clearColor","blend","blendFunc","blendEquation","depthTest","render","pass","viewports","effects","renderTerrainCover","terrainCover","filterLayers","id","LayersPass"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;IAOaA,W;;;;;;;;;;;;SACXC,mB,GAAA,6BAAoBC,QAApB,EAAwCC,IAAxC,EAAiF;AAC/E,QAAOC,MAAP,GAAiBD,IAAjB,CAAOC,MAAP;AACA,QAAMC,MAAe,GAAG,EAAxB;;AACA,QAAMC,iBAAiB,GAAG,KAAKC,mBAAL,CAAyBL,QAAzB,EAAmCC,IAAnC,EAAyC,IAAzC,CAA1B;;AACA,SAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,MAAM,CAACK,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,UAAME,KAAK,GAAGN,MAAM,CAACI,CAAD,CAApB;;AACA,UAAI,CAACE,KAAK,CAACC,WAAP,IAAsBL,iBAAiB,CAACE,CAAD,CAAjB,CAAqBI,eAA/C,EAAgE;AAC9DP,QAAAA,MAAM,CAACQ,IAAP,CAAYH,KAAZ;AACD;AACF;;AAED,WAAOL,MAAP;AACD,G;;SAEDS,e,GAAA,yBAAgBC,SAAhB,EAA6CZ,IAA7C,EAAsF;AAAA;;AAEpF,QAAMa,MAAM,GAAGD,SAAS,CAACE,oBAAV,EAAf;AACA,QAAMf,QAAQ,GAAGa,SAAS,CAACG,cAA3B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAEDc,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEA,iCACE,KAAKkB,MADP,EAEE;AACEC,MAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEC,MAAAA,KAAK,EAAE,IAFT;AAGEC,MAAAA,SAAS,EAAE,MAHb;AAIEC,MAAAA,aAAa,OAJf;AAKEC,MAAAA,SAAS,EAAE;AALb,KAFF,EASE;AAAA,aACE,KAAI,CAACC,MAAL,iCACKvB,IADL;AAEEa,QAAAA,MAAM,EAANA,MAFF;AAGEW,QAAAA,IAAI,EAAE,oBAHR;AAIEvB,QAAAA,MAAM,EAAED,IAAI,CAACC,MAJf;AAKEwB,QAAAA,SAAS,EAAE,CAAC1B,QAAD,CALb;AAME2B,QAAAA,OAAO,EAAE;AANX,SADF;AAAA,KATF;AAmBD,G;;SAEDC,kB,GAAA,4BAAmBC,YAAnB,EAA+C5B,IAA/C,EAAwF;AAAA;;AAEtF,QAAMa,MAAM,GAAGe,YAAY,CAACd,oBAAb,EAAf;AACA,QAAMf,QAAQ,GAAG6B,YAAY,CAACb,cAA9B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAACd,QAAhB,EAA0B;AACxB;AACD;;AAED,QAAME,MAAM,GAAG2B,YAAY,CAACC,YAAb,CAA0B7B,IAAI,CAACC,MAA/B,CAAf;AACAY,IAAAA,MAAM,CAACG,MAAP,CAAcjB,QAAd;AAEA,iCACE,KAAKkB,MADP,EAEE;AACEC,MAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADd;AAEEI,MAAAA,SAAS,EAAE;AAFb,KAFF,EAME;AAAA,aACE,MAAI,CAACC,MAAL,iCACKvB,IADL;AAEEa,QAAAA,MAAM,EAANA,MAFF;AAGEW,QAAAA,IAAI,0BAAmBI,YAAY,CAACE,EAAhC,CAHN;AAIE7B,QAAAA,MAAM,EAANA,MAJF;AAKEyB,QAAAA,OAAO,EAAE,EALX;AAMED,QAAAA,SAAS,EAAE,CAAC1B,QAAD;AANb,SADF;AAAA,KANF;AAgBD,G;;;EA3E8BgC,iB","sourcesContent":["import {withGLParameters} from '@luma.gl/webgl';\nimport {GL} from '@luma.gl/constants';\nimport {Layer, Viewport, _LayersPass as LayersPass, LayersPassRenderOptions} from '@deck.gl/core';\nimport type {HeightMapBuilder} from './height-map-builder';\nimport type {TerrainCover} from './terrain-cover';\n\nexport type TerrainPassRenderOptions = LayersPassRenderOptions;\n\n/** Renders textures used by the TerrainEffect render pass */\nexport class TerrainPass extends LayersPass {\n getRenderableLayers(viewport: Viewport, opts: TerrainPassRenderOptions): Layer[] {\n const {layers} = opts;\n const result: Layer[] = [];\n const drawParamsByIndex = this._getDrawLayerParams(viewport, opts, true);\n for (let i = 0; i < layers.length; i++) {\n const layer = layers[i];\n if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {\n result.push(layer);\n }\n }\n\n return result;\n }\n\n renderHeightMap(heightMap: HeightMapBuilder, opts: Partial<TerrainPassRenderOptions>) {\n // console.log('Updating height map')\n const target = heightMap.getRenderFramebuffer();\n const viewport = heightMap.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n target.resize(viewport);\n\n withGLParameters(\n this.device,\n {\n clearColor: [0, 0, 0, 0],\n blend: true,\n blendFunc: [GL.ONE, GL.ONE],\n blendEquation: GL.MAX,\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n target,\n pass: 'terrain-height-map',\n layers: opts.layers!,\n viewports: [viewport],\n effects: []\n })\n );\n }\n\n renderTerrainCover(terrainCover: TerrainCover, opts: Partial<TerrainPassRenderOptions>) {\n // console.log('Updating terrain cover ' + terrainCover.id)\n const target = terrainCover.getRenderFramebuffer();\n const viewport = terrainCover.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n const layers = terrainCover.filterLayers(opts.layers!);\n target.resize(viewport);\n\n withGLParameters(\n this.device,\n {\n clearColor: [0, 0, 0, 0],\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n target,\n pass: `terrain-cover-${terrainCover.id}`,\n layers,\n effects: [],\n viewports: [viewport]\n })\n );\n }\n}\n"],"file":"terrain-pass.js"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.TerrainPickingPass = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _core = require("@deck.gl/core");
|
|
23
|
-
|
|
24
|
-
var _webgl = require("@luma.gl/webgl");
|
|
25
|
-
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
-
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
29
|
-
|
|
30
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
31
|
-
|
|
32
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
33
|
-
|
|
34
|
-
var TerrainPickingPass = function (_PickLayersPass) {
|
|
35
|
-
(0, _inherits2.default)(TerrainPickingPass, _PickLayersPass);
|
|
36
|
-
|
|
37
|
-
var _super = _createSuper(TerrainPickingPass);
|
|
38
|
-
|
|
39
|
-
function TerrainPickingPass() {
|
|
40
|
-
var _this;
|
|
41
|
-
|
|
42
|
-
(0, _classCallCheck2.default)(this, TerrainPickingPass);
|
|
43
|
-
|
|
44
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
45
|
-
args[_key] = arguments[_key];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
49
|
-
_this.drawParameters = {};
|
|
50
|
-
return _this;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var _proto = TerrainPickingPass.prototype;
|
|
54
|
-
|
|
55
|
-
_proto.getRenderableLayers = function getRenderableLayers(viewport, opts) {
|
|
56
|
-
var layers = opts.layers;
|
|
57
|
-
var result = [];
|
|
58
|
-
this.drawParameters = {};
|
|
59
|
-
|
|
60
|
-
this._resetColorEncoder(opts.pickZ);
|
|
61
|
-
|
|
62
|
-
var drawParamsByIndex = this._getDrawLayerParams(viewport, opts);
|
|
63
|
-
|
|
64
|
-
for (var i = 0; i < layers.length; i++) {
|
|
65
|
-
var layer = layers[i];
|
|
66
|
-
|
|
67
|
-
if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {
|
|
68
|
-
result.push(layer);
|
|
69
|
-
this.drawParameters[layer.id] = drawParamsByIndex[i].layerParameters;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return result;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
_proto.renderTerrainCover = function renderTerrainCover(terrainCover, opts) {
|
|
77
|
-
var _this2 = this;
|
|
78
|
-
|
|
79
|
-
var target = terrainCover.getPickingFramebuffer();
|
|
80
|
-
var viewport = terrainCover.renderViewport;
|
|
81
|
-
|
|
82
|
-
if (!target || !viewport) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
var layers = terrainCover.filterLayers(opts.layers);
|
|
87
|
-
var terrainLayer = terrainCover.targetLayer;
|
|
88
|
-
|
|
89
|
-
if (terrainLayer.props.pickable) {
|
|
90
|
-
layers.unshift(terrainLayer);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
target.resize(viewport);
|
|
94
|
-
(0, _webgl.withGLParameters)(this.device, {
|
|
95
|
-
depthTest: false
|
|
96
|
-
}, function () {
|
|
97
|
-
return _this2.render(_objectSpread(_objectSpread({}, opts), {}, {
|
|
98
|
-
pickingFBO: target,
|
|
99
|
-
pass: "terrain-cover-picking-".concat(terrainCover.id),
|
|
100
|
-
layers: layers,
|
|
101
|
-
effects: [],
|
|
102
|
-
viewports: [viewport],
|
|
103
|
-
cullRect: undefined,
|
|
104
|
-
deviceRect: viewport,
|
|
105
|
-
pickZ: false
|
|
106
|
-
}));
|
|
107
|
-
});
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
_proto.getLayerParameters = function getLayerParameters(layer, layerIndex, viewport) {
|
|
111
|
-
if (this.drawParameters[layer.id]) {
|
|
112
|
-
return this.drawParameters[layer.id];
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
var parameters = (0, _get2.default)((0, _getPrototypeOf2.default)(TerrainPickingPass.prototype), "getLayerParameters", this).call(this, layer, layerIndex, viewport);
|
|
116
|
-
parameters.blend = true;
|
|
117
|
-
return parameters;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
return TerrainPickingPass;
|
|
121
|
-
}(_core._PickLayersPass);
|
|
122
|
-
|
|
123
|
-
exports.TerrainPickingPass = TerrainPickingPass;
|
|
124
|
-
//# sourceMappingURL=terrain-picking-pass.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/terrain/terrain-picking-pass.ts"],"names":["TerrainPickingPass","drawParameters","getRenderableLayers","viewport","opts","layers","result","_resetColorEncoder","pickZ","drawParamsByIndex","_getDrawLayerParams","i","length","layer","isComposite","shouldDrawLayer","push","id","layerParameters","renderTerrainCover","terrainCover","target","getPickingFramebuffer","renderViewport","filterLayers","terrainLayer","targetLayer","props","pickable","unshift","resize","device","depthTest","render","pickingFBO","pass","effects","viewports","cullRect","undefined","deviceRect","getLayerParameters","layerIndex","parameters","blend","PickLayersPass"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAMA;;;;;;;;;;IAQaA,kB;;;;;;;;;;;;;;;UAOXC,c,GAAsC,E;;;;;;SAEtCC,mB,GAAA,6BAAoBC,QAApB,EAAwCC,IAAxC,EAAwF;AACtF,QAAOC,MAAP,GAAiBD,IAAjB,CAAOC,MAAP;AACA,QAAMC,MAAe,GAAG,EAAxB;AACA,SAAKL,cAAL,GAAsB,EAAtB;;AACA,SAAKM,kBAAL,CAAwBH,IAAI,CAACI,KAA7B;;AACA,QAAMC,iBAAiB,GAAG,KAAKC,mBAAL,CAAyBP,QAAzB,EAAmCC,IAAnC,CAA1B;;AACA,SAAK,IAAIO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,MAAM,CAACO,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,UAAME,KAAK,GAAGR,MAAM,CAACM,CAAD,CAApB;;AACA,UAAI,CAACE,KAAK,CAACC,WAAP,IAAsBL,iBAAiB,CAACE,CAAD,CAAjB,CAAqBI,eAA/C,EAAgE;AAC9DT,QAAAA,MAAM,CAACU,IAAP,CAAYH,KAAZ;AACA,aAAKZ,cAAL,CAAoBY,KAAK,CAACI,EAA1B,IAAgCR,iBAAiB,CAACE,CAAD,CAAjB,CAAqBO,eAArD;AACD;AACF;;AAED,WAAOZ,MAAP;AACD,G;;SAEDa,kB,GAAA,4BAAmBC,YAAnB,EAA+ChB,IAA/C,EAA+F;AAAA;;AAE7F,QAAMiB,MAAM,GAAGD,YAAY,CAACE,qBAAb,EAAf;AACA,QAAMnB,QAAQ,GAAGiB,YAAY,CAACG,cAA9B;;AAEA,QAAI,CAACF,MAAD,IAAW,CAAClB,QAAhB,EAA0B;AACxB;AACD;;AAED,QAAME,MAAM,GAAGe,YAAY,CAACI,YAAb,CAA0BpB,IAAI,CAACC,MAA/B,CAAf;AACA,QAAMoB,YAAY,GAAGL,YAAY,CAACM,WAAlC;;AACA,QAAID,YAAY,CAACE,KAAb,CAAmBC,QAAvB,EAAiC;AAC/BvB,MAAAA,MAAM,CAACwB,OAAP,CAAeJ,YAAf;AACD;;AACDJ,IAAAA,MAAM,CAACS,MAAP,CAAc3B,QAAd;AAEA,iCACE,KAAK4B,MADP,EAEE;AACEC,MAAAA,SAAS,EAAE;AADb,KAFF,EAKE;AAAA,aACE,MAAI,CAACC,MAAL,iCACK7B,IADL;AAEE8B,QAAAA,UAAU,EAAEb,MAFd;AAGEc,QAAAA,IAAI,kCAA2Bf,YAAY,CAACH,EAAxC,CAHN;AAIEZ,QAAAA,MAAM,EAANA,MAJF;AAKE+B,QAAAA,OAAO,EAAE,EALX;AAMEC,QAAAA,SAAS,EAAE,CAAClC,QAAD,CANb;AASEmC,QAAAA,QAAQ,EAAEC,SATZ;AAUEC,QAAAA,UAAU,EAAErC,QAVd;AAWEK,QAAAA,KAAK,EAAE;AAXT,SADF;AAAA,KALF;AAoBD,G;;SAESiC,kB,GAAV,4BAA6B5B,KAA7B,EAA2C6B,UAA3C,EAA+DvC,QAA/D,EAAwF;AACtF,QAAI,KAAKF,cAAL,CAAoBY,KAAK,CAACI,EAA1B,CAAJ,EAAmC;AACjC,aAAO,KAAKhB,cAAL,CAAoBY,KAAK,CAACI,EAA1B,CAAP;AACD;;AACD,QAAM0B,UAAU,0HAA4B9B,KAA5B,EAAmC6B,UAAnC,EAA+CvC,QAA/C,CAAhB;AACAwC,IAAAA,UAAU,CAACC,KAAX,GAAmB,IAAnB;AACA,WAAOD,UAAP;AACD,G;;;EAvEqCE,qB","sourcesContent":["import {\n Layer,\n Viewport,\n LayersPassRenderOptions,\n _PickLayersPass as PickLayersPass\n} from '@deck.gl/core';\nimport {withGLParameters} from '@luma.gl/webgl';\nimport type {TerrainCover} from './terrain-cover';\n\nexport type TerrainPickingPassRenderOptions = LayersPassRenderOptions & {\n pickZ: boolean;\n};\n\n/** Renders textures used by the TerrainEffect picking pass */\nexport class TerrainPickingPass extends PickLayersPass {\n /** Save layer index for use when drawing to terrain cover.\n * When a terrain cover's picking buffer is rendered,\n * we need to make sure each layer receives a consistent index (encoded in the alpha channel)\n * so that a picked color can be decoded back to the correct layer.\n * Updated in getRenderableLayers which is called in TerrainEffect.preRender\n */\n drawParameters: Record<string, any> = {};\n\n getRenderableLayers(viewport: Viewport, opts: TerrainPickingPassRenderOptions): Layer[] {\n const {layers} = opts;\n const result: Layer[] = [];\n this.drawParameters = {};\n this._resetColorEncoder(opts.pickZ);\n const drawParamsByIndex = this._getDrawLayerParams(viewport, opts);\n for (let i = 0; i < layers.length; i++) {\n const layer = layers[i];\n if (!layer.isComposite && drawParamsByIndex[i].shouldDrawLayer) {\n result.push(layer);\n this.drawParameters[layer.id] = drawParamsByIndex[i].layerParameters;\n }\n }\n\n return result;\n }\n\n renderTerrainCover(terrainCover: TerrainCover, opts: Partial<TerrainPickingPassRenderOptions>) {\n // console.log('Updating terrain cover for picking ' + terrainCover.id)\n const target = terrainCover.getPickingFramebuffer();\n const viewport = terrainCover.renderViewport;\n\n if (!target || !viewport) {\n return;\n }\n\n const layers = terrainCover.filterLayers(opts.layers!);\n const terrainLayer = terrainCover.targetLayer;\n if (terrainLayer.props.pickable) {\n layers.unshift(terrainLayer);\n }\n target.resize(viewport);\n\n withGLParameters(\n this.device,\n {\n depthTest: false\n },\n () =>\n this.render({\n ...opts,\n pickingFBO: target,\n pass: `terrain-cover-picking-${terrainCover.id}`,\n layers,\n effects: [],\n viewports: [viewport],\n // Disable the default culling because TileLayer would cull sublayers based on the screen viewport,\n // not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`\n cullRect: undefined,\n deviceRect: viewport,\n pickZ: false\n })\n );\n }\n\n protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): any {\n if (this.drawParameters[layer.id]) {\n return this.drawParameters[layer.id];\n }\n const parameters = super.getLayerParameters(layer, layerIndex, viewport);\n parameters.blend = true;\n return parameters;\n }\n}\n"],"file":"terrain-picking-pass.js"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.createRenderTarget = createRenderTarget;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _constants = require("@luma.gl/constants");
|
|
13
|
-
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
-
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17
|
-
|
|
18
|
-
function createRenderTarget(device, opts) {
|
|
19
|
-
return device.createFramebuffer({
|
|
20
|
-
id: opts.id,
|
|
21
|
-
colorAttachments: [device.createTexture(_objectSpread(_objectSpread({}, opts.float && {
|
|
22
|
-
format: device.info.type === 'webgl2' ? 'rgba32float' : 'rgba8unorm',
|
|
23
|
-
type: 5126
|
|
24
|
-
}), {}, {
|
|
25
|
-
mipmaps: false,
|
|
26
|
-
sampler: {
|
|
27
|
-
minFilter: 'linear',
|
|
28
|
-
magFilter: 'linear',
|
|
29
|
-
addressModeU: 'clamp-to-edge',
|
|
30
|
-
addressModeV: 'clamp-to-edge'
|
|
31
|
-
}
|
|
32
|
-
}))]
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/terrain/utils.ts"],"names":["createRenderTarget","device","opts","createFramebuffer","id","colorAttachments","createTexture","float","format","info","type","mipmaps","sampler","minFilter","magFilter","addressModeU","addressModeV"],"mappings":";;;;;;;;;;;AACA;;;;;;AAEO,SAASA,kBAAT,CACLC,MADK,EAELC,IAFK,EAML;AACA,SAAOD,MAAM,CAACE,iBAAP,CAAyB;AAC9BC,IAAAA,EAAE,EAAEF,IAAI,CAACE,EADqB;AAE9BC,IAAAA,gBAAgB,EAAE,CAChBJ,MAAM,CAACK,aAAP,iCACMJ,IAAI,CAACK,KAAL,IAAc;AAChBC,MAAAA,MAAM,EAAEP,MAAM,CAACQ,IAAP,CAAYC,IAAZ,KAAqB,QAArB,GAAgC,aAAhC,GAAgD,YADxC;AAEhBA,MAAAA,IAAI;AAFY,KADpB;AAKEC,MAAAA,OAAO,EAAE,KALX;AAMEC,MAAAA,OAAO,EAAE;AACPC,QAAAA,SAAS,EAAE,QADJ;AAEPC,QAAAA,SAAS,EAAE,QAFJ;AAGPC,QAAAA,YAAY,EAAE,eAHP;AAIPC,QAAAA,YAAY,EAAE;AAJP;AANX,OADgB;AAFY,GAAzB,CAAP;AAkBD","sourcesContent":["import type {Device} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\nexport function createRenderTarget(\n device: Device,\n opts: {\n id: string;\n float?: boolean;\n }\n) {\n return device.createFramebuffer({\n id: opts.id,\n colorAttachments: [\n device.createTexture({\n ...(opts.float && {\n format: device.info.type === 'webgl2' ? 'rgba32float' : 'rgba8unorm',\n type: GL.FLOAT\n }),\n mipmaps: false,\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n }\n })\n ]\n });\n}\n"],"file":"utils.js"}
|
package/dist/es5/utils/debug.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.debugFBO = void 0;
|
|
7
|
-
|
|
8
|
-
var _webgl = require("@luma.gl/webgl");
|
|
9
|
-
|
|
10
|
-
var debugFBO = function debugFBO(fbo) {
|
|
11
|
-
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
12
|
-
minimap = _ref.minimap,
|
|
13
|
-
opaque = _ref.opaque;
|
|
14
|
-
|
|
15
|
-
var color = (0, _webgl.readPixelsToArray)(fbo);
|
|
16
|
-
var canvas = document.getElementById('fbo-canvas');
|
|
17
|
-
var canvasHeight = (minimap ? 2 : 1) * fbo.height;
|
|
18
|
-
|
|
19
|
-
if (!canvas) {
|
|
20
|
-
canvas = document.createElement('canvas');
|
|
21
|
-
canvas.id = 'fbo-canvas';
|
|
22
|
-
canvas.style.zIndex = '100';
|
|
23
|
-
canvas.style.position = 'absolute';
|
|
24
|
-
canvas.style.top = '0';
|
|
25
|
-
canvas.style.right = '0';
|
|
26
|
-
canvas.style.border = 'blue 1px solid';
|
|
27
|
-
canvas.style.transform = 'scaleY(-1)';
|
|
28
|
-
document.body.appendChild(canvas);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (canvas.width !== fbo.width || canvas.height !== canvasHeight) {
|
|
32
|
-
canvas.width = fbo.width;
|
|
33
|
-
canvas.height = canvasHeight;
|
|
34
|
-
canvas.style.width = '400px';
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
var ctx = canvas.getContext('2d');
|
|
38
|
-
var imageData = ctx.createImageData(canvas.width, canvas.height);
|
|
39
|
-
|
|
40
|
-
if (minimap) {
|
|
41
|
-
var zoom = 8;
|
|
42
|
-
var _canvas = canvas,
|
|
43
|
-
width = _canvas.width,
|
|
44
|
-
height = _canvas.height;
|
|
45
|
-
|
|
46
|
-
for (var y = 0; y < height; y++) {
|
|
47
|
-
for (var x = 0; x < width; x++) {
|
|
48
|
-
var d = 4 * (x + y * width);
|
|
49
|
-
var s = 4 * (Math.floor(x / zoom) + Math.floor(y / zoom) * width);
|
|
50
|
-
imageData.data[d + 0] = color[s + 0];
|
|
51
|
-
imageData.data[d + 1] = color[s + 1];
|
|
52
|
-
imageData.data[d + 2] = color[s + 2];
|
|
53
|
-
imageData.data[d + 3] = opaque ? 255 : color[s + 3];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
var offset = minimap ? color.length : 0;
|
|
59
|
-
|
|
60
|
-
for (var i = 0; i < color.length; i += 4) {
|
|
61
|
-
imageData.data[offset + i + 0] = color[i + 0];
|
|
62
|
-
imageData.data[offset + i + 1] = color[i + 1];
|
|
63
|
-
imageData.data[offset + i + 2] = color[i + 2];
|
|
64
|
-
imageData.data[offset + i + 3] = opaque ? 255 : color[i + 3];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
ctx.putImageData(imageData, 0, 0);
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
exports.debugFBO = debugFBO;
|
|
71
|
-
//# sourceMappingURL=debug.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/debug.ts"],"names":["debugFBO","fbo","minimap","opaque","color","canvas","document","getElementById","canvasHeight","height","createElement","id","style","zIndex","position","top","right","border","transform","body","appendChild","width","ctx","getContext","imageData","createImageData","zoom","y","x","d","s","Math","floor","data","offset","length","i","putImageData"],"mappings":"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","sourcesContent":["/* global document */\n\nimport {Framebuffer} from '@luma.gl/core';\nimport {readPixelsToArray} from '@luma.gl/webgl';\n\n/** Debug utility to draw FBO contents onto screen */\n// eslint-disable-next-line\nexport const debugFBO = function (\n fbo: Framebuffer,\n {minimap, opaque}: {minimap?: boolean; opaque?: boolean} = {}\n) {\n const color = readPixelsToArray(fbo);\n let canvas = document.getElementById('fbo-canvas') as HTMLCanvasElement;\n const canvasHeight = (minimap ? 2 : 1) * fbo.height;\n if (!canvas) {\n canvas = document.createElement('canvas');\n canvas.id = 'fbo-canvas';\n canvas.style.zIndex = '100';\n canvas.style.position = 'absolute';\n canvas.style.top = '0';\n canvas.style.right = '0';\n canvas.style.border = 'blue 1px solid';\n canvas.style.transform = 'scaleY(-1)';\n document.body.appendChild(canvas);\n }\n if (canvas.width !== fbo.width || canvas.height !== canvasHeight) {\n canvas.width = fbo.width;\n canvas.height = canvasHeight;\n canvas.style.width = '400px';\n }\n const ctx = canvas.getContext('2d')!;\n const imageData = ctx.createImageData(canvas.width, canvas.height);\n\n // Minimap\n if (minimap) {\n const zoom = 8; // Zoom factor for minimap\n const {width, height} = canvas;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const d = 4 * (x + y * width); // destination pixel\n const s = 4 * (Math.floor(x / zoom) + Math.floor(y / zoom) * width); // source\n imageData.data[d + 0] = color[s + 0];\n imageData.data[d + 1] = color[s + 1];\n imageData.data[d + 2] = color[s + 2];\n imageData.data[d + 3] = opaque ? 255 : color[s + 3];\n }\n }\n }\n\n // Full map\n const offset = minimap ? color.length : 0;\n for (let i = 0; i < color.length; i += 4) {\n imageData.data[offset + i + 0] = color[i + 0];\n imageData.data[offset + i + 1] = color[i + 1];\n imageData.data[offset + i + 2] = color[i + 2];\n imageData.data[offset + i + 3] = opaque ? 255 : color[i + 3];\n }\n\n ctx.putImageData(imageData, 0, 0);\n};\n"],"file":"debug.js"}
|