nodes2ts 1.1.9 → 3.0.0
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/.eslintignore +3 -0
- package/.eslintrc.cjs +11 -0
- package/.github/workflows/lint.js.yml +22 -0
- package/.github/workflows/node.js.yml +22 -0
- package/.mocharc.js +7 -0
- package/README.md +22 -5
- package/dist/Interval.d.ts +7 -8
- package/dist/Interval.js +12 -12
- package/dist/Interval.js.map +1 -1
- package/dist/MutableInteger.js +5 -4
- package/dist/MutableInteger.js.map +1 -1
- package/dist/Platform.d.ts +15 -0
- package/dist/Platform.js +53 -0
- package/dist/Platform.js.map +1 -0
- package/dist/R1Interval.d.ts +8 -9
- package/dist/R1Interval.js +59 -78
- package/dist/R1Interval.js.map +1 -1
- package/dist/R2Vector.d.ts +12 -13
- package/dist/R2Vector.js +65 -85
- package/dist/R2Vector.js.map +1 -1
- package/dist/S1Angle.d.ts +38 -5
- package/dist/S1Angle.js +89 -37
- package/dist/S1Angle.js.map +1 -1
- package/dist/S1ChordAngle.d.ts +166 -0
- package/dist/S1ChordAngle.js +318 -0
- package/dist/S1ChordAngle.js.map +1 -0
- package/dist/S1Interval.d.ts +11 -12
- package/dist/S1Interval.js +134 -140
- package/dist/S1Interval.js.map +1 -1
- package/dist/S2.d.ts +8 -5
- package/dist/S2.js +91 -108
- package/dist/S2.js.map +1 -1
- package/dist/S2Cap.d.ts +33 -25
- package/dist/S2Cap.js +199 -203
- package/dist/S2Cap.js.map +1 -1
- package/dist/S2Cell.d.ts +15 -13
- package/dist/S2Cell.js +196 -206
- package/dist/S2Cell.js.map +1 -1
- package/dist/S2CellId.d.ts +37 -14
- package/dist/S2CellId.js +407 -359
- package/dist/S2CellId.js.map +1 -1
- package/dist/S2CellUnion.d.ts +1 -2
- package/dist/S2CellUnion.js +137 -133
- package/dist/S2CellUnion.js.map +1 -1
- package/dist/S2EdgeUtil.js +14 -17
- package/dist/S2EdgeUtil.js.map +1 -1
- package/dist/S2LatLng.d.ts +15 -11
- package/dist/S2LatLng.js +100 -114
- package/dist/S2LatLng.js.map +1 -1
- package/dist/S2LatLngRect.d.ts +8 -4
- package/dist/S2LatLngRect.js +215 -197
- package/dist/S2LatLngRect.js.map +1 -1
- package/dist/S2Metric.d.ts +4 -5
- package/dist/S2Metric.js +30 -27
- package/dist/S2Metric.js.map +1 -1
- package/dist/S2Point.d.ts +48 -14
- package/dist/S2Point.js +156 -109
- package/dist/S2Point.js.map +1 -1
- package/dist/S2Projections.d.ts +43 -9
- package/dist/S2Projections.js +226 -47
- package/dist/S2Projections.js.map +1 -1
- package/dist/S2Region.js +2 -1
- package/dist/S2Region.js.map +1 -1
- package/dist/S2RegionCoverer.d.ts +21 -6
- package/dist/S2RegionCoverer.js +144 -109
- package/dist/S2RegionCoverer.js.map +1 -1
- package/dist/export.d.ts +0 -1
- package/dist/export.js +42 -32
- package/dist/export.js.map +1 -1
- package/dist/utils/preconditions.d.ts +2 -0
- package/dist/utils/preconditions.js +16 -0
- package/dist/utils/preconditions.js.map +1 -0
- package/package.json +28 -34
- package/.npmignore +0 -8
- package/.nyc_output/1eb1f420a13c15f529aac41a40bcaa21.json +0 -1
- package/.nyc_output/5ff62256eb1c111254ba0b469fb547da.json +0 -1
- package/.nyc_output/949d6e8c2061067f3bdfd27dfff5ba83.json +0 -1
- package/coverage/Interval.ts.html +0 -203
- package/coverage/MutableInteger.ts.html +0 -77
- package/coverage/R1Interval.ts.html +0 -647
- package/coverage/R2Vector.ts.html +0 -587
- package/coverage/S1Angle.ts.html +0 -344
- package/coverage/S1Interval.ts.html +0 -1349
- package/coverage/S2.ts.html +0 -1178
- package/coverage/S2Cap.ts.html +0 -1433
- package/coverage/S2Cell.ts.html +0 -1415
- package/coverage/S2CellId.ts.html +0 -3329
- package/coverage/S2EdgeUtil.ts.html +0 -2534
- package/coverage/S2LatLng.ts.html +0 -848
- package/coverage/S2LatLngRect.ts.html +0 -2222
- package/coverage/S2Point.ts.html +0 -758
- package/coverage/S2Projections.ts.html +0 -518
- package/coverage/base.css +0 -212
- package/coverage/decimal.ts.html +0 -68
- package/coverage/index.html +0 -288
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -1
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -158
- package/dist/decimal.d.ts +0 -3
- package/dist/decimal.js +0 -4
- package/dist/decimal.js.map +0 -1
- package/dist/decimal_augmentation.d.ts +0 -24
- package/dist/decimal_augmentation.js +0 -2
- package/dist/decimal_augmentation.js.map +0 -1
package/dist/S2Point.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* Copyright 2006 Google Inc.
|
|
3
4
|
*
|
|
@@ -13,10 +14,9 @@
|
|
|
13
14
|
* See the License for the specific language governing permissions and
|
|
14
15
|
* limitations under the License.
|
|
15
16
|
*/
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var S2_1 = require("./S2");
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.S2Point = void 0;
|
|
19
|
+
const R2Vector_1 = require("./R2Vector");
|
|
20
20
|
///re
|
|
21
21
|
/**
|
|
22
22
|
* An S2Point represents a point on the unit sphere as a 3D vector. Usually
|
|
@@ -24,51 +24,77 @@ var S2_1 = require("./S2");
|
|
|
24
24
|
* this.
|
|
25
25
|
*
|
|
26
26
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.x =
|
|
30
|
-
this.y =
|
|
31
|
-
this.z =
|
|
32
|
-
// this.y = typeof(y) === 'number'?new
|
|
33
|
-
// this.z = typeof(z) === 'number'?new
|
|
34
|
-
}
|
|
35
|
-
|
|
27
|
+
class S2Point {
|
|
28
|
+
constructor(x, y, z) {
|
|
29
|
+
this.x = (x);
|
|
30
|
+
this.y = (y);
|
|
31
|
+
this.z = (z);
|
|
32
|
+
// this.y = typeof(y) === 'number'?new Decimal(y):y as Decimal;
|
|
33
|
+
// this.z = typeof(z) === 'number'?new Decimal(z):z as Decimal;
|
|
34
|
+
}
|
|
35
|
+
static minus(p1, p2) {
|
|
36
36
|
return S2Point.sub(p1, p2);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return new S2Point(p.x
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return this.x
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return this.norm2()
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return new S2Point(p1.y
|
|
37
|
+
}
|
|
38
|
+
static neg(p) {
|
|
39
|
+
return new S2Point(p.x * -1, p.y * -1, p.z * -1);
|
|
40
|
+
}
|
|
41
|
+
norm2() {
|
|
42
|
+
return Math.pow(this.x, 2) + Math.pow(this.y, 2) + Math.pow(this.z, 2);
|
|
43
|
+
}
|
|
44
|
+
norm() {
|
|
45
|
+
return Math.sqrt(this.norm2());
|
|
46
|
+
}
|
|
47
|
+
static crossProd(p1, p2) {
|
|
48
|
+
return new S2Point(p1.y * (p2.z) - (p1.z * (p2.y)), p1.z * (p2.x) - (p1.x * (p2.z)),
|
|
49
49
|
// p1.z * p2.x - p1.x * p2.z,
|
|
50
|
-
p1.x
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
50
|
+
p1.x * (p2.y) - (p1.y * (p2.x))
|
|
51
|
+
// p1.x * p2.y - p1.y * p2.x
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
static add(p1, p2) {
|
|
55
|
+
return new S2Point(p1.x + p2.x, p1.y + p2.y, p1.z + p2.z);
|
|
56
|
+
}
|
|
57
|
+
static sub(p1, p2) {
|
|
58
|
+
return new S2Point(p1.x - p2.x, p1.y - p2.y, p1.z - p2.z);
|
|
59
|
+
}
|
|
60
|
+
dotProd(that) {
|
|
61
|
+
return this.x * (that.x) + (this.y * that.y) + (this.z * (that.z));
|
|
62
|
+
}
|
|
63
|
+
static mul(p, m) {
|
|
64
|
+
return new S2Point(m * (p.x), m * (p.y), m * (p.z));
|
|
65
|
+
}
|
|
66
|
+
static div(p, m) {
|
|
67
|
+
return new S2Point(p.x / (m), p.y / (m), p.z / (m));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns the distance in 3D coordinates from this to that.
|
|
71
|
+
*
|
|
72
|
+
* <p>Equivalent to {@code a.sub(b).norm()}, but significantly faster.
|
|
73
|
+
*
|
|
74
|
+
* <p>If ordering points by angle, this is faster than {@link #norm}, and much faster than {@link
|
|
75
|
+
* #angle}, but consider using {@link S1ChordAngle}.
|
|
76
|
+
*/
|
|
77
|
+
getDistance(that) {
|
|
78
|
+
return Math.sqrt(this.getDistance2(that));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Returns the square of the distance in 3D coordinates from this to that.
|
|
82
|
+
*
|
|
83
|
+
* <p>Equivalent to {@code getDistance(that)<sup>2</sup>}, but significantly faster.
|
|
84
|
+
*
|
|
85
|
+
* <p>If ordering points by angle, this is much faster than {@link #angle}, but consider using
|
|
86
|
+
* {@link S1ChordAngle}.
|
|
87
|
+
*/
|
|
88
|
+
getDistance2(that) {
|
|
89
|
+
const dx = this.x - that.x;
|
|
90
|
+
const dy = this.y - that.y;
|
|
91
|
+
const dz = this.z - that.z;
|
|
92
|
+
return dx * dx + dy * dy + dz * dz;
|
|
93
|
+
}
|
|
68
94
|
/** return a vector orthogonal to this one */
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
95
|
+
ortho() {
|
|
96
|
+
const k = this.largestAbsComponent();
|
|
97
|
+
let temp;
|
|
72
98
|
if (k == 1) {
|
|
73
99
|
temp = new S2Point(1, 0, 0);
|
|
74
100
|
}
|
|
@@ -79,12 +105,17 @@ var S2Point = (function () {
|
|
|
79
105
|
temp = new S2Point(0, 0, 1);
|
|
80
106
|
}
|
|
81
107
|
return S2Point.normalize(S2Point.crossProd(this, temp));
|
|
82
|
-
}
|
|
108
|
+
}
|
|
83
109
|
/** Return the index of the largest component fabs */
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
110
|
+
largestAbsComponent() {
|
|
111
|
+
return S2Point.largestAbsComponent(this.x, this.y, this.z);
|
|
112
|
+
}
|
|
113
|
+
static largestAbsComponent(x, y, z) {
|
|
114
|
+
const absX = Math.abs(x);
|
|
115
|
+
const absY = Math.abs(y);
|
|
116
|
+
const absZ = Math.abs(z);
|
|
117
|
+
if (absX > absY) {
|
|
118
|
+
if (absX > absZ) {
|
|
88
119
|
return 0;
|
|
89
120
|
}
|
|
90
121
|
else {
|
|
@@ -92,112 +123,128 @@ var S2Point = (function () {
|
|
|
92
123
|
}
|
|
93
124
|
}
|
|
94
125
|
else {
|
|
95
|
-
if (
|
|
126
|
+
if (absY > absZ) {
|
|
96
127
|
return 1;
|
|
97
128
|
}
|
|
98
129
|
else {
|
|
99
130
|
return 2;
|
|
100
131
|
}
|
|
101
132
|
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
133
|
+
}
|
|
134
|
+
get(axis) {
|
|
135
|
+
return (axis == 0) ? this.x : (axis == 1) ? this.y : this.z;
|
|
136
|
+
}
|
|
137
|
+
static fabs(p) {
|
|
138
|
+
return new S2Point(Math.abs(p.x), Math.abs(p.y), Math.abs(p.z));
|
|
139
|
+
}
|
|
140
|
+
/** Returns a copy of 'p' rescaled to be unit-length. */
|
|
141
|
+
static normalize(p) {
|
|
142
|
+
let norm = p.norm();
|
|
143
|
+
if (norm != 0) {
|
|
144
|
+
norm = 1 / norm;
|
|
110
145
|
}
|
|
111
146
|
return S2Point.mul(p, norm);
|
|
112
|
-
}
|
|
113
|
-
|
|
147
|
+
}
|
|
148
|
+
axis(axis) {
|
|
114
149
|
return (axis == 0) ? this.x : (axis == 1) ? this.y : this.z;
|
|
115
|
-
}
|
|
150
|
+
}
|
|
116
151
|
/** Return the angle between two vectors in radians */
|
|
117
|
-
|
|
118
|
-
return
|
|
119
|
-
}
|
|
152
|
+
angle(va) {
|
|
153
|
+
return Math.atan2(S2Point.crossProd(this, va).norm(), this.dotProd(va));
|
|
154
|
+
}
|
|
120
155
|
/**
|
|
121
156
|
* Compare two vectors, return true if all their components are within a
|
|
122
157
|
* difference of margin.
|
|
123
158
|
*/
|
|
124
|
-
|
|
125
|
-
return this.x.
|
|
126
|
-
this.y.
|
|
127
|
-
this.z.
|
|
128
|
-
}
|
|
129
|
-
|
|
159
|
+
aequal(that, margin) {
|
|
160
|
+
return this.x - Math.abs(that.x) < (margin) &&
|
|
161
|
+
this.y - Math.abs(that.y) < (margin) &&
|
|
162
|
+
this.z - Math.abs(that.z) < (margin);
|
|
163
|
+
}
|
|
164
|
+
equals(that) {
|
|
130
165
|
if (!(that instanceof S2Point)) {
|
|
131
166
|
return false;
|
|
132
167
|
}
|
|
133
|
-
return this.x
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (this.x
|
|
168
|
+
return this.x == (that.x) && this.y == (that.y) && this.z == (that.z);
|
|
169
|
+
}
|
|
170
|
+
lessThan(vb) {
|
|
171
|
+
if (this.x < (vb.x)) {
|
|
137
172
|
return true;
|
|
138
173
|
}
|
|
139
|
-
if (vb.x
|
|
174
|
+
if (vb.x < (this.x)) {
|
|
140
175
|
return false;
|
|
141
176
|
}
|
|
142
|
-
if (this.y
|
|
177
|
+
if (this.y < (vb.y)) {
|
|
143
178
|
return true;
|
|
144
179
|
}
|
|
145
|
-
if (vb.y
|
|
180
|
+
if (vb.y < (this.y)) {
|
|
146
181
|
return false;
|
|
147
182
|
}
|
|
148
|
-
if (this.z
|
|
183
|
+
if (this.z < (vb.z)) {
|
|
149
184
|
return true;
|
|
150
185
|
}
|
|
151
186
|
return false;
|
|
152
|
-
}
|
|
153
|
-
|
|
187
|
+
}
|
|
188
|
+
compareTo(other) {
|
|
154
189
|
return (this.lessThan(other) ? -1 : (this.equals(other) ? 0 : 1));
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (this.axis(face)
|
|
190
|
+
}
|
|
191
|
+
toFace() {
|
|
192
|
+
let face = this.largestAbsComponent();
|
|
193
|
+
if (this.axis(face) < (0)) {
|
|
159
194
|
face += 3;
|
|
160
195
|
}
|
|
161
196
|
return face;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
var v;
|
|
197
|
+
}
|
|
198
|
+
toR2Vector(face = this.toFace()) {
|
|
199
|
+
let u;
|
|
200
|
+
let v;
|
|
167
201
|
switch (face) {
|
|
168
202
|
case 0:
|
|
169
|
-
u = this.y
|
|
170
|
-
v = this.z
|
|
203
|
+
u = this.y / (this.x);
|
|
204
|
+
v = this.z / (this.x);
|
|
171
205
|
break;
|
|
172
206
|
case 1:
|
|
173
|
-
u = this.x
|
|
174
|
-
v = this.z
|
|
207
|
+
u = (this.x * -1) / (this.y);
|
|
208
|
+
v = this.z / (this.y);
|
|
175
209
|
break;
|
|
176
210
|
case 2:
|
|
177
|
-
u = this.x
|
|
178
|
-
v = this.y
|
|
211
|
+
u = (this.x * -1) / (this.z);
|
|
212
|
+
v = (this.y * -1) / (this.z);
|
|
179
213
|
break;
|
|
180
214
|
case 3:
|
|
181
|
-
u = this.z
|
|
182
|
-
v = this.y
|
|
215
|
+
u = this.z / (this.x);
|
|
216
|
+
v = this.y / (this.x);
|
|
183
217
|
break;
|
|
184
218
|
case 4:
|
|
185
|
-
u = this.z
|
|
186
|
-
v = this.x
|
|
219
|
+
u = this.z / (this.y);
|
|
220
|
+
v = (this.x * -1) / (this.y);
|
|
187
221
|
break;
|
|
188
222
|
case 5:
|
|
189
|
-
u = this.y
|
|
190
|
-
v = this.x
|
|
223
|
+
u = (this.y * -1) / (this.z);
|
|
224
|
+
v = (this.x * -1) / (this.z);
|
|
191
225
|
break;
|
|
192
226
|
default:
|
|
193
227
|
throw new Error('Invalid face');
|
|
194
228
|
}
|
|
195
229
|
return new R2Vector_1.R2Vector(u, v);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
return
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
}());
|
|
230
|
+
}
|
|
231
|
+
toString() {
|
|
232
|
+
return `Point(${this.x}, ${this.y}, ${this.z})`;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
202
235
|
exports.S2Point = S2Point;
|
|
236
|
+
/** Origin of the coordinate system, [0,0,0]. */
|
|
237
|
+
S2Point.ORIGIN = new S2Point(0, 0, 0);
|
|
238
|
+
/** Direction of the x-axis. */
|
|
239
|
+
S2Point.X_POS = new S2Point(1, 0, 0);
|
|
240
|
+
/** Opposite direction of the x-axis. */
|
|
241
|
+
S2Point.X_NEG = new S2Point(-1, 0, 0);
|
|
242
|
+
/** Direction of the y-axis. */
|
|
243
|
+
S2Point.Y_POS = new S2Point(0, 1, 0);
|
|
244
|
+
/** Opposite direction of the y-axis. */
|
|
245
|
+
S2Point.Y_NEG = new S2Point(0, -1, 0);
|
|
246
|
+
/** Direction of the z-axis. */
|
|
247
|
+
S2Point.Z_POS = new S2Point(0, 0, 1);
|
|
248
|
+
/** Opposite direction of the z-axis. */
|
|
249
|
+
S2Point.Z_NEG = new S2Point(0, 0, -1);
|
|
203
250
|
//# sourceMappingURL=S2Point.js.map
|
package/dist/S2Point.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S2Point.js","sourceRoot":"","sources":["../src/S2Point.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"S2Point.js","sourceRoot":"","sources":["../src/S2Point.ts"],"names":[],"mappings":"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"}
|
package/dist/S2Projections.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="decimal.js" />
|
|
2
1
|
/**
|
|
3
2
|
* This class specifies the details of how the cube faces are projected onto the
|
|
4
3
|
* unit sphere. This includes getting the face ordering and orientation correct
|
|
@@ -52,17 +51,52 @@
|
|
|
52
51
|
*/
|
|
53
52
|
import { S2Metric } from "./S2";
|
|
54
53
|
import { S2Point } from "./S2Point";
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
import { R2Vector } from "./R2Vector";
|
|
55
|
+
import Long = require("long");
|
|
56
|
+
export declare type UvTransformFunction = (x: number, y: number, z: number) => number;
|
|
57
|
+
export declare type XyzTransformFunction = (u: number, v: number) => number;
|
|
58
|
+
export declare type UvTransform = {
|
|
59
|
+
xyzToU: UvTransformFunction;
|
|
60
|
+
xyzToV: UvTransformFunction;
|
|
61
|
+
};
|
|
62
|
+
export declare type XyzTransform = {
|
|
63
|
+
uvToX: XyzTransformFunction;
|
|
64
|
+
uvToY: XyzTransformFunction;
|
|
65
|
+
uvToZ: XyzTransformFunction;
|
|
66
|
+
};
|
|
60
67
|
export declare class S2Projections {
|
|
61
68
|
static MIN_WIDTH: S2Metric;
|
|
62
69
|
static AVG_AREA: S2Metric;
|
|
63
|
-
static
|
|
64
|
-
static
|
|
70
|
+
static MAX_LEVEL: number;
|
|
71
|
+
private static FACE_UVW_AXES;
|
|
72
|
+
private static UV_TRANSFORMS;
|
|
73
|
+
private static XYZ_TRANSFORMS;
|
|
74
|
+
/**
|
|
75
|
+
* The maximum value of an si- or ti-coordinate. The range of valid (si,ti) values is
|
|
76
|
+
* [0..MAX_SiTi].
|
|
77
|
+
*/
|
|
78
|
+
static MAX_SITI: Long.Long;
|
|
79
|
+
static getUNorm(face: number, u: number): S2Point;
|
|
80
|
+
static getVNorm(face: number, v: number): S2Point;
|
|
65
81
|
static getUAxis(face: number): S2Point;
|
|
66
82
|
static getVAxis(face: number): S2Point;
|
|
67
|
-
static
|
|
83
|
+
static getNorm(face: number): S2Point;
|
|
84
|
+
/** Returns the given axis of the given face (u=0, v=1, w=2). */
|
|
85
|
+
static getUVWAxis(face: number, axis: number): S2Point;
|
|
86
|
+
/**
|
|
87
|
+
* Convert (face, si, ti) coordinates (see s2.h) to a direction vector (not
|
|
88
|
+
* necessarily unit length).
|
|
89
|
+
*/
|
|
90
|
+
static faceSiTiToXYZ(face: number, si: number, ti: number): S2Point;
|
|
91
|
+
static faceUvToXyz(face: number, u: number, v: number): S2Point;
|
|
92
|
+
static faceXyzToUv(face: number, p: S2Point): R2Vector;
|
|
93
|
+
static validFaceXyzToUv(face: number, p: S2Point): R2Vector;
|
|
94
|
+
static ijToStMin(i: number): number;
|
|
95
|
+
static stToIj(s: number): number;
|
|
96
|
+
static siTiToSt(si: number): number;
|
|
97
|
+
static ijToUV(ij: number, cellSize: number): number;
|
|
98
|
+
static xyzToFaceP(p: S2Point): number;
|
|
99
|
+
static xyzToFace(x: number, y: number, z: number): number;
|
|
100
|
+
static faceToUvTransform(face: number): UvTransform;
|
|
101
|
+
static faceToXyzTransform(face: number): XyzTransform;
|
|
68
102
|
}
|