-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
70 lines (61 loc) · 1.84 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
const fs = require('fs')
const { meshelate } = require('./lib')
const { zeroClip } = require('zero-clip')
// const squares = [
// [
// [0, 0],
// [4096, 0],
// [4096, 4096],
// [0, 4096],
// [0, 0]
// ],
// [
// [1024, 1024],
// [1024, 3072],
// [3072, 3072],
// [3072, 1024],
// [1024, 1024]
// ]
// ]
// const data = zeroClip(squares)
const input = JSON.parse(fs.readFileSync('./features/holesTest.json', 'utf8'))
const allCoords = input.features[0].geometry.coordinates
const data = { vertices: [], indices: [] }
console.time('zero-clip')
allCoords.forEach(coords => {
const d = zeroClip(coords, data.vertices.length / 2)
data.vertices.push(...d.vertices)
data.indices.push(...d.indices)
})
console.timeEnd('zero-clip')
console.log('vertices', data.vertices.length)
console.log('indices', data.indices.length)
console.time('meshelate')
const { vertices, indices } = meshelate(data.vertices, data.indices, 4096 / 16)
console.timeEnd('meshelate')
console.log('vertices', vertices.length)
console.log('indices', indices.length)
// const featureCollection = {
// type: 'FeatureCollection',
// features: []
// }
//
// for (let i = 0, il = indices.length; i < il; i += 3) {
// const feature = {
// type: 'Feature',
// properties: {},
// geometry: {
// type: 'Polygon',
// coordinates: [[
// [vertices[indices[i] * 2] / 4096, vertices[indices[i] * 2 + 1] / 4096],
// [vertices[indices[i + 1] * 2] / 4096, vertices[indices[i + 1] * 2 + 1] / 4096],
// [vertices[indices[i + 2] * 2] / 4096, vertices[indices[i + 2] * 2 + 1] / 4096],
// [vertices[indices[i] * 2] / 4096, vertices[indices[i] * 2 + 1] / 4096]
// ]]
// }
// }
//
// featureCollection.features.push(feature)
// }
//
// fs.writeFileSync('./out.json', JSON.stringify(featureCollection, null, 2))