@pirireis/webglobeplugins 0.0.7 → 0.0.9
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/package.json
CHANGED
|
@@ -178,13 +178,9 @@ export class BufferManager extends BufferOffsetManager {
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
|
|
181
|
-
__centerMapMethod(
|
|
181
|
+
__centerMapMethod(rings, paddingAngles) {
|
|
182
182
|
return new Map([
|
|
183
|
-
["x", x],
|
|
184
|
-
["y", y],
|
|
185
|
-
["rgba", rgba],
|
|
186
183
|
["rings", rings],
|
|
187
|
-
["hide", hide],
|
|
188
184
|
["paddingAngles", paddingAngles]
|
|
189
185
|
])
|
|
190
186
|
}
|
|
@@ -212,10 +208,7 @@ export class BufferManager extends BufferOffsetManager {
|
|
|
212
208
|
if (deleteCentersList.length > 0) {
|
|
213
209
|
this.removeCenters(deleteCentersList);
|
|
214
210
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
211
|
const requiredSpace = this.__requiredSpaceForBulk(data);
|
|
218
|
-
|
|
219
212
|
const spaceLeft = this.spaceLeft;
|
|
220
213
|
console.log("space left:", spaceLeft, "required space:", requiredSpace);
|
|
221
214
|
if (requiredSpace > spaceLeft) {
|
|
@@ -224,26 +217,20 @@ export class BufferManager extends BufferOffsetManager {
|
|
|
224
217
|
}
|
|
225
218
|
|
|
226
219
|
const items = [];
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
this._centerMaps.set(centerID, this.__centerMapMethod(x, y, rgba, rings, hide, paddingAngles)); // x,y, rgba, hide prograbably not needed
|
|
231
|
-
|
|
232
|
-
const hideFlag = hide ? 1 : 0;
|
|
220
|
+
for (const { centerID, x, y, rgba, paddingAngles, hide = 0, rings } of data) {
|
|
221
|
+
this._centerMaps.set(centerID, this.__centerMapMethod(rings, paddingAngles)); // x,y, rgba, hide prograbably not needed
|
|
233
222
|
for (const { ringID, radius, padding } of rings) {
|
|
234
223
|
for (const paddingAngle of paddingAngles) {
|
|
235
224
|
const _offsetMapKey = `${centerID}_${ringID}_${paddingAngle}`;
|
|
236
225
|
const offset = this.getOffset(_offsetMapKey) | this.nextOffset();
|
|
237
226
|
items.push({
|
|
238
227
|
offset: offset,
|
|
239
|
-
payload: new Float32Array([x, y, radius, padding, rgba[0], rgba[1], rgba[2], rgba[3],
|
|
228
|
+
payload: new Float32Array([x, y, radius, padding, rgba[0], rgba[1], rgba[2], rgba[3], hide, paddingAngle])
|
|
240
229
|
})
|
|
241
230
|
this.offSetMap.set(_offsetMapKey, offset);
|
|
242
231
|
}
|
|
243
232
|
}
|
|
244
233
|
}
|
|
245
|
-
const partOffset = 0;
|
|
246
|
-
|
|
247
234
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
248
235
|
for (let { offset, payload } of items) {
|
|
249
236
|
gl.bufferSubData(gl.ARRAY_BUFFER, offset, payload);
|
|
@@ -257,8 +244,6 @@ export class BufferManager extends BufferOffsetManager {
|
|
|
257
244
|
|
|
258
245
|
for (const { centerID, x, y } of data) {
|
|
259
246
|
const center = this._centerMaps.get(centerID);
|
|
260
|
-
center.set("x", x);
|
|
261
|
-
center.set("y", y);
|
|
262
247
|
const payload = new Float32Array([x, y]);
|
|
263
248
|
const paddingAngles = center.get("paddingAngles");
|
|
264
249
|
const rings = center.get("rings");
|
|
@@ -238,31 +238,6 @@ export default class {
|
|
|
238
238
|
this.globe.DrawRender();
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
-
/**
|
|
242
|
-
*
|
|
243
|
-
* @typedef centerData
|
|
244
|
-
* @property {String} centerID
|
|
245
|
-
* @property {Array<Number>} rgba - [r,g,b,a] - default undefined
|
|
246
|
-
* @property {Number} padding - default undefined
|
|
247
|
-
* @property {Boolean} hide - default undefined
|
|
248
|
-
* @param {Array<centerData>} centerDatas
|
|
249
|
-
* @returns
|
|
250
|
-
*/
|
|
251
|
-
updateCenters(centerDatas) {
|
|
252
|
-
const { gl, buffer } = this;
|
|
253
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
254
|
-
for (let { centerID, padding, rgba, hide } of centerDatas) {
|
|
255
|
-
const rings = this._centerMap.get(centerID).get("rings");
|
|
256
|
-
for (let i = 0; i < rings.length; i++) {
|
|
257
|
-
const offset = this._ringOffsets.get(rings[i]);
|
|
258
|
-
if (padding !== undefined) gl.bufferSubData(gl.ARRAY_BUFFER, offset + 12, new Float32Array([padding]));
|
|
259
|
-
if (rgba !== undefined) gl.bufferSubData(gl.ARRAY_BUFFER, offset + 16, new Float32Array(rgba));
|
|
260
|
-
if (hide !== undefined) gl.bufferSubData(gl.ARRAY_BUFFER, offset + 32, new Float32Array([hide ? 1 : 0]));
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
264
|
-
this.globe.DrawRender();
|
|
265
|
-
}
|
|
266
241
|
|
|
267
242
|
insertBulk(rangeRingDatas) {
|
|
268
243
|
const { gl, buffer } = this;
|
|
@@ -287,60 +262,21 @@ export default class {
|
|
|
287
262
|
this._implicitExtendBufferInNeed(incomingRingSize);
|
|
288
263
|
}
|
|
289
264
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
290
|
-
for (
|
|
291
|
-
// if (!this._centerMap.has(centerID)) {
|
|
265
|
+
for (const { centerID, x, y, rings, hide = 0 } of rangeRingDatas) {
|
|
292
266
|
this.registerCenter(centerID, { x, y })
|
|
293
|
-
|
|
294
|
-
// const rings = this._centerMap.get(centerID).get("rings");
|
|
295
|
-
// const xy = new Float32Array([x, y]);
|
|
296
|
-
// const emptyBlock =
|
|
297
|
-
// for (let i = 0; i < rings.length; i++) {
|
|
298
|
-
// const offset = this._ringOffsets.get(rings[i]);
|
|
299
|
-
// gl.bufferSubData(gl.ARRAY_BUFFER, offset, );
|
|
300
|
-
// }
|
|
301
|
-
// }
|
|
302
|
-
for (let { ringID, radius, padding, rgba, hide = false } of rings) {
|
|
267
|
+
for (const { ringID, radius, padding, rgba } of rings) {
|
|
303
268
|
const key = this._ringKey(centerID, ringID);
|
|
304
|
-
const bufferData = new Float32Array([x, y, radius, padding, ...rgba, hide
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
this._ringOffsets.set(key, offset);
|
|
310
|
-
this._centerMap.get(centerID).get("rings").push(key);
|
|
311
|
-
} else {
|
|
312
|
-
const offset = this._ringOffsets.get(key);
|
|
313
|
-
gl.bufferSubData(gl.ARRAY_BUFFER, offset, bufferData);
|
|
314
|
-
}
|
|
269
|
+
const bufferData = new Float32Array([x, y, radius, padding, ...rgba, hide]);
|
|
270
|
+
const offset = this._nextBufferOffset();
|
|
271
|
+
gl.bufferSubData(gl.ARRAY_BUFFER, offset, bufferData);
|
|
272
|
+
this._ringOffsets.set(key, offset);
|
|
273
|
+
this._centerMap.get(centerID).get("rings").push(key);
|
|
315
274
|
}
|
|
316
275
|
}
|
|
317
276
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
318
277
|
this.globe.DrawRender();
|
|
319
278
|
}
|
|
320
279
|
|
|
321
|
-
updateRing(centerID, ringID, { radius, padding, rgba, hide } = {}) {
|
|
322
|
-
if (!this._centerMap.has(centerID)) {
|
|
323
|
-
console.warn("Center is not registered yet");
|
|
324
|
-
return;
|
|
325
|
-
}
|
|
326
|
-
const key = this._ringKey(centerID, ringID);
|
|
327
|
-
if (!this._ringOffsets.has(key)) {
|
|
328
|
-
console.warn("Ring is not registered yet");
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
if (!this.checkCapacity()) {
|
|
332
|
-
this._implicitExtendBufferInNeed(1);
|
|
333
|
-
}
|
|
334
|
-
const { gl, buffer } = this;
|
|
335
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
336
|
-
const offset = this._ringOffsets.get(key);
|
|
337
|
-
if (radius !== undefined) gl.bufferSubData(gl.ARRAY_BUFFER, offset + 8, new Float32Array([radius]));
|
|
338
|
-
if (padding !== undefined) gl.bufferSubData(gl.ARRAY_BUFFER, offset + 12, new Float32Array([padding]));
|
|
339
|
-
if (rgba !== undefined) gl.bufferSubData(gl.ARRAY_BUFFER, offset + 16, new Float32Array(rgba));
|
|
340
|
-
if (hide !== undefined) gl.bufferSubData(gl.ARRAY_BUFFER, offset + 32, new Float32Array([hide ? 1 : 0]));
|
|
341
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
342
|
-
this.globe.DrawRender();
|
|
343
|
-
}
|
|
344
280
|
|
|
345
281
|
|
|
346
282
|
/**
|
package/rangerings/rangerings.js
CHANGED
|
@@ -23,16 +23,16 @@ export const ENUM_HIDE = Object.freeze({ SHOW: 0, HIDE: 1, HIDE_1_DEGREE_PADDING
|
|
|
23
23
|
|
|
24
24
|
export default class {
|
|
25
25
|
|
|
26
|
-
constructor(id,
|
|
26
|
+
constructor(id, oneDegreePadding = true, compass = 1, circleEdgeCount = 360) {
|
|
27
27
|
this.id = id;
|
|
28
28
|
this.compass = compass;
|
|
29
29
|
this.circleEdgeCount = circleEdgeCount;
|
|
30
|
-
this.
|
|
30
|
+
this._onedegreepaddingOn = oneDegreePadding;
|
|
31
31
|
this.bufferManager = null;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
this.
|
|
34
|
+
setOneDegreePaddingOn(oneDegreePadding) {
|
|
35
|
+
this._onedegreepaddingOn = oneDegreePadding;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
init(globe, gl) {
|
|
@@ -61,7 +61,7 @@ export default class {
|
|
|
61
61
|
// gl.enable(gl.BLEND);
|
|
62
62
|
// gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
|
|
63
63
|
circleFlatProgram.draw(bufferManager, compass, circleEdgeCount);
|
|
64
|
-
if (this.
|
|
64
|
+
if (this._onedegreepaddingOn) paddyFlatProgram.draw(bufferManager, 360, compass);
|
|
65
65
|
paddingFreeAngleProgram.draw(paddingBufferManager, compass);
|
|
66
66
|
|
|
67
67
|
gl.enable(gl.DEPTH_TEST);
|
|
@@ -152,7 +152,6 @@ const ringItemsToCircleBufferInsertDataAdaptor = (ringItems) => {
|
|
|
152
152
|
radius,
|
|
153
153
|
padding: padding / 7,
|
|
154
154
|
rgba,
|
|
155
|
-
hide
|
|
156
155
|
});
|
|
157
156
|
}
|
|
158
157
|
|
|
@@ -160,7 +159,8 @@ const ringItemsToCircleBufferInsertDataAdaptor = (ringItems) => {
|
|
|
160
159
|
centerID,
|
|
161
160
|
x,
|
|
162
161
|
y,
|
|
163
|
-
rings: resultRings
|
|
162
|
+
rings: resultRings,
|
|
163
|
+
hide
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
return result;
|