@deck.gl/geo-layers 8.10.0-alpha.7 → 9.0.0-alpha.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/dist.dev.js +2374 -19037
- package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +1 -1
- package/dist/es5/geohash-layer/geohash-layer.js.map +1 -1
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +10 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js +0 -8
- package/dist/es5/index.js.map +1 -1
- package/{src/mesh-layer/mesh-layer.ts → dist/es5/mesh-layer/mesh-layer.ts.disabled} +8 -7
- package/dist/es5/mvt-layer/mvt-layer.js +15 -6
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/quadkey-layer/quadkey-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/{src/tile-3d-layer/tile-3d-layer.ts → dist/es5/tile-3d-layer/tile-3d-layer.ts.disabled} +9 -9
- package/dist/es5/tile-layer/tile-layer.js +19 -9
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tileset-2d/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tileset-2d/tileset-2d.js +1 -1
- package/dist/es5/tileset-2d/tileset-2d.js.map +1 -1
- package/dist/es5/tileset-2d/utils.js +2 -3
- package/dist/es5/tileset-2d/utils.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist/es5/wms-layer/wms-layer.js +6 -8
- package/dist/es5/wms-layer/wms-layer.js.map +1 -1
- package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +1 -1
- package/dist/esm/geohash-layer/geohash-layer.js.map +1 -1
- package/dist/esm/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-cluster-layer.js +5 -0
- package/dist/esm/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer.ts.disabled +176 -0
- package/dist/esm/mvt-layer/mvt-layer.js +6 -1
- package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/esm/quadkey-layer/quadkey-layer.js.map +1 -1
- package/dist/esm/s2-layer/s2-layer.js.map +1 -1
- package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.ts.disabled +436 -0
- package/dist/esm/tile-layer/tile-layer.js +10 -6
- package/dist/esm/tile-layer/tile-layer.js.map +1 -1
- package/dist/esm/tileset-2d/tile-2d-traversal.js.map +1 -1
- package/dist/esm/tileset-2d/tileset-2d.js +1 -1
- package/dist/esm/tileset-2d/tileset-2d.js.map +1 -1
- package/dist/esm/tileset-2d/utils.js +2 -2
- package/dist/esm/tileset-2d/utils.js.map +1 -1
- package/dist/esm/trips-layer/trips-layer.js.map +1 -1
- package/dist/esm/wms-layer/wms-layer.js +5 -5
- package/dist/esm/wms-layer/wms-layer.js.map +1 -1
- package/dist.min.js +29 -161
- package/package.json +14 -14
- package/src/geo-cell-layer/GeoCellLayer.ts +1 -1
- package/src/geohash-layer/geohash-layer.ts +2 -2
- package/src/great-circle-layer/great-circle-layer.ts +1 -1
- package/src/h3-layers/h3-cluster-layer.ts +6 -2
- package/src/h3-layers/h3-hexagon-layer.ts +2 -2
- package/src/index.ts +4 -2
- package/src/mesh-layer/mesh-layer.ts.disabled +176 -0
- package/src/mvt-layer/mvt-layer.ts +16 -6
- package/src/quadkey-layer/quadkey-layer.ts +3 -2
- package/src/s2-layer/s2-layer.ts +2 -2
- package/src/terrain-layer/terrain-layer.ts +2 -2
- package/src/tile-3d-layer/tile-3d-layer.ts.disabled +436 -0
- package/src/tile-layer/tile-layer.ts +20 -10
- package/src/tileset-2d/tile-2d-traversal.ts +1 -1
- package/src/tileset-2d/tileset-2d.ts +6 -7
- package/src/tileset-2d/utils.ts +4 -4
- package/src/trips-layer/trips-layer.ts +3 -3
- package/src/wms-layer/wms-layer.ts +10 -8
- package/typed/geo-cell-layer/GeoCellLayer.d.ts +1 -1
- package/typed/geo-cell-layer/GeoCellLayer.d.ts.map +1 -1
- package/typed/geohash-layer/geohash-layer.d.ts +2 -2
- package/typed/geohash-layer/geohash-layer.d.ts.map +1 -1
- package/typed/great-circle-layer/great-circle-layer.d.ts +2 -2
- package/typed/great-circle-layer/great-circle-layer.d.ts.map +1 -1
- package/typed/h3-layers/h3-cluster-layer.d.ts +7 -2
- package/typed/h3-layers/h3-cluster-layer.d.ts.map +1 -1
- package/typed/h3-layers/h3-hexagon-layer.d.ts +2 -2
- package/typed/h3-layers/h3-hexagon-layer.d.ts.map +1 -1
- package/typed/index.d.ts +0 -2
- package/typed/index.d.ts.map +1 -1
- package/typed/mvt-layer/mvt-layer.d.ts +9 -1
- package/typed/mvt-layer/mvt-layer.d.ts.map +1 -1
- package/typed/quadkey-layer/quadkey-layer.d.ts +2 -2
- package/typed/quadkey-layer/quadkey-layer.d.ts.map +1 -1
- package/typed/s2-layer/s2-layer.d.ts +2 -2
- package/typed/s2-layer/s2-layer.d.ts.map +1 -1
- package/typed/terrain-layer/terrain-layer.d.ts +2 -2
- package/typed/terrain-layer/terrain-layer.d.ts.map +1 -1
- package/typed/tile-layer/tile-layer.d.ts +7 -2
- package/typed/tile-layer/tile-layer.d.ts.map +1 -1
- package/typed/tileset-2d/tile-2d-traversal.d.ts +1 -1
- package/typed/tileset-2d/tile-2d-traversal.d.ts.map +1 -1
- package/typed/tileset-2d/tileset-2d.d.ts +4 -4
- package/typed/tileset-2d/tileset-2d.d.ts.map +1 -1
- package/typed/tileset-2d/utils.d.ts +2 -2
- package/typed/tileset-2d/utils.d.ts.map +1 -1
- package/typed/trips-layer/trips-layer.d.ts +3 -3
- package/typed/trips-layer/trips-layer.d.ts.map +1 -1
- package/typed/wms-layer/wms-layer.d.ts.map +1 -1
- package/dist/es5/mesh-layer/mesh-layer.js +0 -212
- package/dist/es5/mesh-layer/mesh-layer.js.map +0 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +0 -512
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +0 -1
- package/dist/esm/mesh-layer/mesh-layer.js +0 -177
- package/dist/esm/mesh-layer/mesh-layer.js.map +0 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js +0 -443
- package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +0 -1
- package/typed/mesh-layer/mesh-layer.d.ts +0 -38
- package/typed/mesh-layer/mesh-layer.d.ts.map +0 -1
- package/typed/tile-3d-layer/tile-3d-layer.d.ts +0 -62
- package/typed/tile-3d-layer/tile-3d-layer.d.ts.map +0 -1
|
@@ -1,212 +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 _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 _experimental = require("@luma.gl/experimental");
|
|
23
|
-
|
|
24
|
-
var _core = require("@luma.gl/core");
|
|
25
|
-
|
|
26
|
-
var _meshLayers = require("@deck.gl/mesh-layers");
|
|
27
|
-
|
|
28
|
-
var _meshLayerVertex = _interopRequireDefault(require("./mesh-layer-vertex.glsl"));
|
|
29
|
-
|
|
30
|
-
var _meshLayerFragment = _interopRequireDefault(require("./mesh-layer-fragment.glsl"));
|
|
31
|
-
|
|
32
|
-
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; }
|
|
33
|
-
|
|
34
|
-
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; }
|
|
35
|
-
|
|
36
|
-
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); }; }
|
|
37
|
-
|
|
38
|
-
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; } }
|
|
39
|
-
|
|
40
|
-
function validateGeometryAttributes(attributes) {
|
|
41
|
-
var hasColorAttribute = attributes.COLOR_0 || attributes.colors;
|
|
42
|
-
|
|
43
|
-
if (!hasColorAttribute) {
|
|
44
|
-
attributes.colors = {
|
|
45
|
-
constant: true,
|
|
46
|
-
value: new Float32Array([1, 1, 1])
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
var defaultProps = {
|
|
52
|
-
pbrMaterial: {
|
|
53
|
-
type: 'object',
|
|
54
|
-
value: null
|
|
55
|
-
},
|
|
56
|
-
featureIds: {
|
|
57
|
-
type: 'array',
|
|
58
|
-
value: null,
|
|
59
|
-
optional: true
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
var MeshLayer = function (_SimpleMeshLayer) {
|
|
64
|
-
(0, _inherits2.default)(MeshLayer, _SimpleMeshLayer);
|
|
65
|
-
|
|
66
|
-
var _super = _createSuper(MeshLayer);
|
|
67
|
-
|
|
68
|
-
function MeshLayer() {
|
|
69
|
-
(0, _classCallCheck2.default)(this, MeshLayer);
|
|
70
|
-
return _super.apply(this, arguments);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
var _proto = MeshLayer.prototype;
|
|
74
|
-
|
|
75
|
-
_proto.getShaders = function getShaders() {
|
|
76
|
-
var shaders = (0, _get2.default)((0, _getPrototypeOf2.default)(MeshLayer.prototype), "getShaders", this).call(this);
|
|
77
|
-
var modules = shaders.modules;
|
|
78
|
-
modules.push(_core.pbr);
|
|
79
|
-
return _objectSpread(_objectSpread({}, shaders), {}, {
|
|
80
|
-
vs: _meshLayerVertex.default,
|
|
81
|
-
fs: _meshLayerFragment.default
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
_proto.initializeState = function initializeState() {
|
|
86
|
-
var featureIds = this.props.featureIds;
|
|
87
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(MeshLayer.prototype), "initializeState", this).call(this);
|
|
88
|
-
var attributeManager = this.getAttributeManager();
|
|
89
|
-
|
|
90
|
-
if (featureIds) {
|
|
91
|
-
attributeManager.add({
|
|
92
|
-
featureIdsPickingColors: {
|
|
93
|
-
type: 5121,
|
|
94
|
-
size: 3,
|
|
95
|
-
noAlloc: true,
|
|
96
|
-
update: this.calculateFeatureIdsPickingColors
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
_proto.updateState = function updateState(params) {
|
|
103
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(MeshLayer.prototype), "updateState", this).call(this, params);
|
|
104
|
-
var props = params.props,
|
|
105
|
-
oldProps = params.oldProps;
|
|
106
|
-
|
|
107
|
-
if (props.pbrMaterial !== oldProps.pbrMaterial) {
|
|
108
|
-
this.updatePbrMaterialUniforms(props.pbrMaterial);
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
_proto.draw = function draw(opts) {
|
|
113
|
-
var featureIds = this.props.featureIds;
|
|
114
|
-
|
|
115
|
-
if (!this.state.model) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
this.state.model.setUniforms({
|
|
120
|
-
u_Camera: this.state.model.getUniforms().project_uCameraPosition,
|
|
121
|
-
pickFeatureIds: Boolean(featureIds)
|
|
122
|
-
});
|
|
123
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(MeshLayer.prototype), "draw", this).call(this, opts);
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
_proto.getModel = function getModel(mesh) {
|
|
127
|
-
var _this$props = this.props,
|
|
128
|
-
id = _this$props.id,
|
|
129
|
-
pbrMaterial = _this$props.pbrMaterial;
|
|
130
|
-
var materialParser = this.parseMaterial(pbrMaterial, mesh);
|
|
131
|
-
this.setState({
|
|
132
|
-
materialParser: materialParser
|
|
133
|
-
});
|
|
134
|
-
var shaders = this.getShaders();
|
|
135
|
-
validateGeometryAttributes(mesh.attributes);
|
|
136
|
-
var model = new _core.Model(this.context.gl, _objectSpread(_objectSpread({}, this.getShaders()), {}, {
|
|
137
|
-
id: id,
|
|
138
|
-
geometry: mesh,
|
|
139
|
-
defines: _objectSpread(_objectSpread(_objectSpread({}, shaders.defines), materialParser === null || materialParser === void 0 ? void 0 : materialParser.defines), {}, {
|
|
140
|
-
HAS_UV_REGIONS: mesh.attributes.uvRegions
|
|
141
|
-
}),
|
|
142
|
-
parameters: materialParser === null || materialParser === void 0 ? void 0 : materialParser.parameters,
|
|
143
|
-
isInstanced: true
|
|
144
|
-
}));
|
|
145
|
-
return model;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
_proto.updatePbrMaterialUniforms = function updatePbrMaterialUniforms(pbrMaterial) {
|
|
149
|
-
var model = this.state.model;
|
|
150
|
-
|
|
151
|
-
if (model) {
|
|
152
|
-
var mesh = this.props.mesh;
|
|
153
|
-
var materialParser = this.parseMaterial(pbrMaterial, mesh);
|
|
154
|
-
this.setState({
|
|
155
|
-
materialParser: materialParser
|
|
156
|
-
});
|
|
157
|
-
model.setUniforms(materialParser.uniforms);
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
_proto.parseMaterial = function parseMaterial(pbrMaterial, mesh) {
|
|
162
|
-
var _this$state$materialP;
|
|
163
|
-
|
|
164
|
-
var unlit = Boolean(pbrMaterial.pbrMetallicRoughness && pbrMaterial.pbrMetallicRoughness.baseColorTexture);
|
|
165
|
-
(_this$state$materialP = this.state.materialParser) === null || _this$state$materialP === void 0 ? void 0 : _this$state$materialP.delete();
|
|
166
|
-
return new _experimental.GLTFMaterialParser(this.context.gl, {
|
|
167
|
-
attributes: {
|
|
168
|
-
NORMAL: mesh.attributes.normals,
|
|
169
|
-
TEXCOORD_0: mesh.attributes.texCoords
|
|
170
|
-
},
|
|
171
|
-
material: _objectSpread({
|
|
172
|
-
unlit: unlit
|
|
173
|
-
}, pbrMaterial),
|
|
174
|
-
pbrDebug: false,
|
|
175
|
-
imageBasedLightingEnvironment: null,
|
|
176
|
-
lights: true,
|
|
177
|
-
useTangents: false
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
_proto.calculateFeatureIdsPickingColors = function calculateFeatureIdsPickingColors(attribute) {
|
|
182
|
-
var featureIds = this.props.featureIds;
|
|
183
|
-
var value = new Uint8ClampedArray(featureIds.length * attribute.size);
|
|
184
|
-
var pickingColor = [];
|
|
185
|
-
|
|
186
|
-
for (var index = 0; index < featureIds.length; index++) {
|
|
187
|
-
this.encodePickingColor(featureIds[index], pickingColor);
|
|
188
|
-
value[index * 3] = pickingColor[0];
|
|
189
|
-
value[index * 3 + 1] = pickingColor[1];
|
|
190
|
-
value[index * 3 + 2] = pickingColor[2];
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
attribute.value = value;
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
_proto.finalizeState = function finalizeState(context) {
|
|
197
|
-
var _this$state$materialP2;
|
|
198
|
-
|
|
199
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(MeshLayer.prototype), "finalizeState", this).call(this, context);
|
|
200
|
-
(_this$state$materialP2 = this.state.materialParser) === null || _this$state$materialP2 === void 0 ? void 0 : _this$state$materialP2.delete();
|
|
201
|
-
this.setState({
|
|
202
|
-
materialParser: null
|
|
203
|
-
});
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
return MeshLayer;
|
|
207
|
-
}(_meshLayers.SimpleMeshLayer);
|
|
208
|
-
|
|
209
|
-
exports.default = MeshLayer;
|
|
210
|
-
MeshLayer.layerName = 'MeshLayer';
|
|
211
|
-
MeshLayer.defaultProps = defaultProps;
|
|
212
|
-
//# sourceMappingURL=mesh-layer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mesh-layer/mesh-layer.ts"],"names":["validateGeometryAttributes","attributes","hasColorAttribute","COLOR_0","colors","constant","value","Float32Array","defaultProps","pbrMaterial","type","featureIds","optional","MeshLayer","getShaders","shaders","modules","push","pbr","vs","fs","initializeState","props","attributeManager","getAttributeManager","add","featureIdsPickingColors","size","noAlloc","update","calculateFeatureIdsPickingColors","updateState","params","oldProps","updatePbrMaterialUniforms","draw","opts","state","model","setUniforms","u_Camera","getUniforms","project_uCameraPosition","pickFeatureIds","Boolean","getModel","mesh","id","materialParser","parseMaterial","setState","Model","context","gl","geometry","defines","HAS_UV_REGIONS","uvRegions","parameters","isInstanced","uniforms","unlit","pbrMetallicRoughness","baseColorTexture","delete","GLTFMaterialParser","NORMAL","normals","TEXCOORD_0","texCoords","material","pbrDebug","imageBasedLightingEnvironment","lights","useTangents","attribute","Uint8ClampedArray","length","pickingColor","index","encodePickingColor","finalizeState","SimpleMeshLayer","layerName"],"mappings":"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","sourcesContent":["import type {NumericArray} from '@math.gl/core';\nimport {GLTFMaterialParser} from '@luma.gl/experimental';\nimport {Model, pbr} from '@luma.gl/core';\nimport GL from '@luma.gl/constants';\nimport type {MeshAttribute, MeshAttributes} from '@loaders.gl/schema';\nimport type {UpdateParameters, DefaultProps, LayerContext} from '@deck.gl/core';\nimport {SimpleMeshLayer, SimpleMeshLayerProps} from '@deck.gl/mesh-layers';\n\nimport vs from './mesh-layer-vertex.glsl';\nimport fs from './mesh-layer-fragment.glsl';\n\nexport type Mesh = {\n attributes: MeshAttributes;\n indices?: MeshAttribute;\n};\n\nfunction validateGeometryAttributes(attributes) {\n const hasColorAttribute = attributes.COLOR_0 || attributes.colors;\n if (!hasColorAttribute) {\n attributes.colors = {constant: true, value: new Float32Array([1, 1, 1])};\n }\n}\n\nconst defaultProps: DefaultProps<MeshLayerProps> = {\n pbrMaterial: {type: 'object', value: null},\n featureIds: {type: 'array', value: null, optional: true}\n};\n\n/** All properties supported by MeshLayer. */\nexport type MeshLayerProps<DataT = any> = _MeshLayerProps & SimpleMeshLayerProps<DataT>;\n\n/** Properties added by MeshLayer. */\ntype _MeshLayerProps = {\n /**\n * PBR material object. _lighting must be pbr for this to work\n */\n pbrMaterial?: any; // TODO add type when converting Tile3DLayer\n\n /**\n * List of feature ids.\n */\n featureIds?: NumericArray | null;\n};\n\nexport default class MeshLayer<DataT = any, ExtraProps extends {} = {}> extends SimpleMeshLayer<\n DataT,\n Required<_MeshLayerProps> & ExtraProps\n> {\n static layerName = 'MeshLayer';\n static defaultProps = defaultProps;\n\n getShaders() {\n const shaders = super.getShaders();\n const modules = shaders.modules;\n modules.push(pbr);\n return {...shaders, vs, fs};\n }\n\n initializeState() {\n const {featureIds} = this.props;\n super.initializeState();\n\n const attributeManager = this.getAttributeManager();\n if (featureIds) {\n // attributeManager is always defined in a primitive layer\n attributeManager!.add({\n featureIdsPickingColors: {\n type: GL.UNSIGNED_BYTE,\n size: 3,\n noAlloc: true,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n update: this.calculateFeatureIdsPickingColors\n }\n });\n }\n }\n\n updateState(params: UpdateParameters<this>) {\n super.updateState(params);\n\n const {props, oldProps} = params;\n if (props.pbrMaterial !== oldProps.pbrMaterial) {\n this.updatePbrMaterialUniforms(props.pbrMaterial);\n }\n }\n\n draw(opts) {\n const {featureIds} = this.props;\n if (!this.state.model) {\n return;\n }\n this.state.model.setUniforms({\n // Needed for PBR (TODO: find better way to get it)\n // eslint-disable-next-line camelcase\n u_Camera: this.state.model.getUniforms().project_uCameraPosition,\n pickFeatureIds: Boolean(featureIds)\n });\n\n super.draw(opts);\n }\n\n protected getModel(mesh: Mesh): Model {\n const {id, pbrMaterial} = this.props;\n const materialParser = this.parseMaterial(pbrMaterial, mesh);\n // Keep material parser to explicitly remove textures\n this.setState({materialParser});\n const shaders = this.getShaders();\n validateGeometryAttributes(mesh.attributes);\n const model = new Model(this.context.gl, {\n ...this.getShaders(),\n id,\n geometry: mesh,\n defines: {\n ...shaders.defines,\n ...materialParser?.defines,\n HAS_UV_REGIONS: mesh.attributes.uvRegions\n },\n parameters: materialParser?.parameters,\n isInstanced: true\n });\n\n return model;\n }\n\n updatePbrMaterialUniforms(pbrMaterial) {\n const {model} = this.state;\n if (model) {\n const {mesh} = this.props;\n const materialParser = this.parseMaterial(pbrMaterial, mesh);\n // Keep material parser to explicitly remove textures\n this.setState({materialParser});\n model.setUniforms(materialParser.uniforms);\n }\n }\n\n parseMaterial(pbrMaterial, mesh) {\n const unlit = Boolean(\n pbrMaterial.pbrMetallicRoughness && pbrMaterial.pbrMetallicRoughness.baseColorTexture\n );\n\n this.state.materialParser?.delete();\n\n return new GLTFMaterialParser(this.context.gl, {\n attributes: {NORMAL: mesh.attributes.normals, TEXCOORD_0: mesh.attributes.texCoords},\n material: {unlit, ...pbrMaterial},\n pbrDebug: false,\n imageBasedLightingEnvironment: null,\n lights: true,\n useTangents: false\n });\n }\n\n calculateFeatureIdsPickingColors(attribute) {\n // This updater is only called if featureIds is not null\n const featureIds = this.props.featureIds!;\n const value = new Uint8ClampedArray(featureIds.length * attribute.size);\n\n const pickingColor = [];\n for (let index = 0; index < featureIds.length; index++) {\n this.encodePickingColor(featureIds[index], pickingColor);\n\n value[index * 3] = pickingColor[0];\n value[index * 3 + 1] = pickingColor[1];\n value[index * 3 + 2] = pickingColor[2];\n }\n\n attribute.value = value;\n }\n\n finalizeState(context: LayerContext) {\n super.finalizeState(context);\n this.state.materialParser?.delete();\n this.setState({materialParser: null});\n }\n}\n"],"file":"mesh-layer.js"}
|