@benev/math 0.2.0-4 → 0.3.0-2

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.
Files changed (165) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -3
  3. package/package.json +5 -5
  4. package/s/{tools → core}/circular.ts +1 -1
  5. package/s/core/quat.ts +12 -8
  6. package/s/{tools → core}/scalar.ts +2 -2
  7. package/s/core/vec2.ts +24 -20
  8. package/s/core/vec3.ts +24 -20
  9. package/s/core/vec4.ts +6 -2
  10. package/s/index.ts +5 -10
  11. package/s/optimizers/hash-map.ts +2 -2
  12. package/s/optimizers/zen.ts +4 -4
  13. package/s/physics/2d/collide2d.barrel.ts +3 -0
  14. package/s/physics/2d/collide2d.ts +2 -2
  15. package/s/physics/2d/intersect2d.barrel.ts +3 -0
  16. package/s/physics/2d/intersect2d.ts +11 -11
  17. package/s/physics/index.ts +4 -0
  18. package/s/shapes/2d/circle.ts +3 -3
  19. package/s/shapes/2d/rect.ts +7 -7
  20. package/s/shapes/3d/box.ts +10 -10
  21. package/s/shapes/3d/segment.ts +8 -8
  22. package/s/shapes/index.ts +7 -0
  23. package/s/tools/angles.ts +26 -26
  24. package/s/tools/make-noise.ts +13 -0
  25. package/s/tools/spline.ts +30 -36
  26. package/x/concepts/angles.d.ts +29 -0
  27. package/x/concepts/angles.js +62 -0
  28. package/x/concepts/angles.js.map +1 -0
  29. package/x/concepts/circular.d.ts +17 -0
  30. package/x/concepts/circular.js +70 -0
  31. package/x/concepts/circular.js.map +1 -0
  32. package/x/concepts/noise.d.ts +9 -0
  33. package/x/concepts/noise.js +20 -0
  34. package/x/concepts/noise.js.map +1 -0
  35. package/x/concepts/quat.d.ts +35 -0
  36. package/x/concepts/quat.js +110 -0
  37. package/x/concepts/quat.js.map +1 -0
  38. package/x/concepts/randy.d.ts +39 -0
  39. package/x/concepts/randy.js +95 -0
  40. package/x/concepts/randy.js.map +1 -0
  41. package/x/concepts/scalar.d.ts +51 -0
  42. package/x/concepts/scalar.js +219 -0
  43. package/x/concepts/scalar.js.map +1 -0
  44. package/x/concepts/spline.d.ts +9 -0
  45. package/x/concepts/spline.js +59 -0
  46. package/x/concepts/spline.js.map +1 -0
  47. package/x/concepts/vec2.d.ts +114 -0
  48. package/x/concepts/vec2.js +314 -0
  49. package/x/concepts/vec2.js.map +1 -0
  50. package/x/concepts/vec3.d.ts +117 -0
  51. package/x/concepts/vec3.js +357 -0
  52. package/x/concepts/vec3.js.map +1 -0
  53. package/x/concepts/vec4.d.ts +21 -0
  54. package/x/concepts/vec4.js +62 -0
  55. package/x/concepts/vec4.js.map +1 -0
  56. package/x/core/circular.d.ts +17 -0
  57. package/x/core/circular.js +71 -0
  58. package/x/core/circular.js.map +1 -0
  59. package/x/core/quat.d.ts +4 -3
  60. package/x/core/quat.js +11 -8
  61. package/x/core/quat.js.map +1 -1
  62. package/x/core/scalar.d.ts +51 -0
  63. package/x/core/scalar.js +219 -0
  64. package/x/core/scalar.js.map +1 -0
  65. package/x/core/vec2.d.ts +11 -10
  66. package/x/core/vec2.js +23 -20
  67. package/x/core/vec2.js.map +1 -1
  68. package/x/core/vec3.d.ts +11 -10
  69. package/x/core/vec3.js +23 -20
  70. package/x/core/vec3.js.map +1 -1
  71. package/x/core/vec4.d.ts +2 -1
  72. package/x/core/vec4.js +5 -2
  73. package/x/core/vec4.js.map +1 -1
  74. package/x/helpers/angles.d.ts +19 -0
  75. package/x/helpers/angles.js +41 -0
  76. package/x/helpers/angles.js.map +1 -0
  77. package/x/helpers/circular.d.ts +17 -0
  78. package/x/helpers/circular.js +71 -0
  79. package/x/helpers/circular.js.map +1 -0
  80. package/x/helpers/noise.d.ts +9 -0
  81. package/x/helpers/noise.js +20 -0
  82. package/x/helpers/noise.js.map +1 -0
  83. package/x/helpers/randy.d.ts +31 -0
  84. package/x/helpers/randy.js +85 -0
  85. package/x/helpers/randy.js.map +1 -0
  86. package/x/helpers/scalar.d.ts +51 -0
  87. package/x/helpers/scalar.js +219 -0
  88. package/x/helpers/scalar.js.map +1 -0
  89. package/x/helpers/spline.d.ts +9 -0
  90. package/x/helpers/spline.js +61 -0
  91. package/x/helpers/spline.js.map +1 -0
  92. package/x/importmap.json +7 -0
  93. package/x/index.d.ts +4 -10
  94. package/x/index.js +4 -10
  95. package/x/index.js.map +1 -1
  96. package/x/optimizers/hash-map.js +2 -2
  97. package/x/optimizers/zen.js +4 -4
  98. package/x/optimizers/zen.js.map +1 -1
  99. package/x/physics/2d/collide2d.barrel.d.ts +1 -0
  100. package/x/physics/2d/collide2d.barrel.js +2 -0
  101. package/x/physics/2d/collide2d.barrel.js.map +1 -0
  102. package/x/physics/2d/collide2d.js +2 -2
  103. package/x/physics/2d/collide2d.js.map +1 -1
  104. package/x/physics/2d/intersect2d.barrel.d.ts +1 -0
  105. package/x/physics/2d/intersect2d.barrel.js +2 -0
  106. package/x/physics/2d/intersect2d.barrel.js.map +1 -0
  107. package/x/physics/2d/intersect2d.d.ts +3 -3
  108. package/x/physics/2d/intersect2d.js +11 -11
  109. package/x/physics/2d/intersect2d.js.map +1 -1
  110. package/x/physics/index.d.ts +2 -0
  111. package/x/physics/index.js +3 -0
  112. package/x/physics/index.js.map +1 -0
  113. package/x/primitives/circular.d.ts +17 -0
  114. package/x/primitives/circular.js +70 -0
  115. package/x/primitives/circular.js.map +1 -0
  116. package/x/primitives/quat.d.ts +35 -0
  117. package/x/primitives/quat.js +110 -0
  118. package/x/primitives/quat.js.map +1 -0
  119. package/x/primitives/scalar.d.ts +51 -0
  120. package/x/primitives/scalar.js +219 -0
  121. package/x/primitives/scalar.js.map +1 -0
  122. package/x/primitives/vec2.d.ts +114 -0
  123. package/x/primitives/vec2.js +319 -0
  124. package/x/primitives/vec2.js.map +1 -0
  125. package/x/primitives/vec3.d.ts +117 -0
  126. package/x/primitives/vec3.js +363 -0
  127. package/x/primitives/vec3.js.map +1 -0
  128. package/x/primitives/vec4.d.ts +21 -0
  129. package/x/primitives/vec4.js +62 -0
  130. package/x/primitives/vec4.js.map +1 -0
  131. package/x/shapes/2d/circle.js +3 -3
  132. package/x/shapes/2d/circle.js.map +1 -1
  133. package/x/shapes/2d/rect.js +7 -7
  134. package/x/shapes/2d/rect.js.map +1 -1
  135. package/x/shapes/3d/box.js +10 -10
  136. package/x/shapes/3d/box.js.map +1 -1
  137. package/x/shapes/3d/segment.js +7 -7
  138. package/x/shapes/3d/segment.js.map +1 -1
  139. package/x/shapes/index.d.ts +4 -0
  140. package/x/shapes/index.js +5 -0
  141. package/x/shapes/index.js.map +1 -0
  142. package/x/tools/angles.d.ts +22 -13
  143. package/x/tools/angles.js +27 -29
  144. package/x/tools/angles.js.map +1 -1
  145. package/x/tools/spline.d.ts +2 -4
  146. package/x/tools/spline.js +20 -26
  147. package/x/tools/spline.js.map +1 -1
  148. package/x/utils/angles.d.ts +19 -0
  149. package/x/utils/angles.js +41 -0
  150. package/x/utils/angles.js.map +1 -0
  151. package/x/utils/circular.d.ts +17 -0
  152. package/x/utils/circular.js +70 -0
  153. package/x/utils/circular.js.map +1 -0
  154. package/x/utils/noise.d.ts +9 -0
  155. package/x/utils/noise.js +20 -0
  156. package/x/utils/noise.js.map +1 -0
  157. package/x/utils/randy.d.ts +31 -0
  158. package/x/utils/randy.js +85 -0
  159. package/x/utils/randy.js.map +1 -0
  160. package/x/utils/scalar.d.ts +51 -0
  161. package/x/utils/scalar.js +219 -0
  162. package/x/utils/scalar.js.map +1 -0
  163. package/x/utils/spline.d.ts +9 -0
  164. package/x/utils/spline.js +61 -0
  165. package/x/utils/spline.js.map +1 -0
@@ -0,0 +1,319 @@
1
+ import { Scalar } from "./scalar.js";
2
+ export class Vec2 {
3
+ x;
4
+ y;
5
+ constructor(x, y) {
6
+ this.x = x;
7
+ this.y = y;
8
+ }
9
+ ///////////////////////////////////////////////////////////////////////
10
+ static new(x, y) {
11
+ return new this(x, y);
12
+ }
13
+ static zero() {
14
+ return new this(0, 0);
15
+ }
16
+ static all(value) {
17
+ return new this(value, value);
18
+ }
19
+ static array(v) {
20
+ return new this(...v);
21
+ }
22
+ static import({ x, y }) {
23
+ return new this(x, y);
24
+ }
25
+ static from(v) {
26
+ return Array.isArray(v)
27
+ ? this.array(v)
28
+ : this.import(v);
29
+ }
30
+ static magnitudeSquared(x, y) {
31
+ return (x * x) + (y * y);
32
+ }
33
+ static magnitude(x, y) {
34
+ return Math.sqrt(this.magnitudeSquared(x, y));
35
+ }
36
+ static average(...vectors) {
37
+ return this.zero()
38
+ .add(...vectors)
39
+ .divideBy(vectors.length);
40
+ }
41
+ static min(...vecs) {
42
+ return new Vec2(Math.min(...vecs.map(v => v.x)), Math.min(...vecs.map(v => v.y)));
43
+ }
44
+ static max(...vecs) {
45
+ return new Vec2(Math.max(...vecs.map(v => v.x)), Math.max(...vecs.map(v => v.y)));
46
+ }
47
+ ///////////////////////////////////////////////////////////////////////
48
+ clone() {
49
+ return new Vec2(this.x, this.y);
50
+ }
51
+ array() {
52
+ return [this.x, this.y];
53
+ }
54
+ toString() {
55
+ return `(Vec2 x${this.x.toFixed(2)}, y${this.y.toFixed(2)})`;
56
+ }
57
+ /** mutator */
58
+ set_(x, y) {
59
+ this.x = x;
60
+ this.y = y;
61
+ return this;
62
+ }
63
+ /** mutator */
64
+ set({ x, y }) {
65
+ this.x = x;
66
+ this.y = y;
67
+ return this;
68
+ }
69
+ ///////////////////////////////////////////////////////////////////////
70
+ magnitudeSquared() {
71
+ return Vec2.magnitudeSquared(this.x, this.y);
72
+ }
73
+ magnitude() {
74
+ return Vec2.magnitude(this.x, this.y);
75
+ }
76
+ rotation() {
77
+ return Math.atan2(this.y, this.x);
78
+ }
79
+ equals_(x, y) {
80
+ return (this.x === x &&
81
+ this.y === y);
82
+ }
83
+ equals(...vecs) {
84
+ return vecs.every(({ x, y }) => this.equals_(x, y));
85
+ }
86
+ dot_(x, y) {
87
+ return (this.x * x) + (this.y * y);
88
+ }
89
+ dot({ x, y }) {
90
+ return this.dot_(x, y);
91
+ }
92
+ distanceSquared_(x, y) {
93
+ x = this.x - x;
94
+ y = this.y - y;
95
+ return (x * x) + (y * y);
96
+ }
97
+ distanceSquared({ x, y }) {
98
+ return this.distanceSquared_(x, y);
99
+ }
100
+ distance_(x, y) {
101
+ return Math.sqrt(this.distanceSquared_(x, y));
102
+ }
103
+ distance({ x, y }) {
104
+ return this.distance_(x, y);
105
+ }
106
+ angleBetween_(x, y) {
107
+ const dot = this.dot_(x, y);
108
+ const magnitudes = this.magnitude() * Vec2.magnitude(x, y);
109
+ if (magnitudes === 0)
110
+ return 0;
111
+ const ratio = Scalar.clamp(dot / magnitudes, -1, 1);
112
+ return Math.acos(ratio);
113
+ }
114
+ angleBetween({ x, y }) {
115
+ return this.angleBetween_(x, y);
116
+ }
117
+ ///////////////////////////////////////////////////////////////////////
118
+ /** mutator */
119
+ normalize() {
120
+ return this.divideBy(this.magnitude());
121
+ }
122
+ /** mutator */
123
+ half() {
124
+ return this.divideBy(2);
125
+ }
126
+ /** mutator */
127
+ double() {
128
+ return this.multiplyBy(2);
129
+ }
130
+ /** mutator */
131
+ abs() {
132
+ return this.map(x => Math.abs(x));
133
+ }
134
+ /** mutator */
135
+ rotate(radians) {
136
+ const { x, y } = this;
137
+ this.x = (x * Math.cos(radians)) - (y * Math.sin(radians));
138
+ this.y = (x * Math.sin(radians)) + (y * Math.cos(radians));
139
+ return this;
140
+ }
141
+ /** mutator */
142
+ perpendicular() {
143
+ const { x, y } = this;
144
+ this.x = -y;
145
+ this.y = x;
146
+ return this;
147
+ }
148
+ /** mutator */
149
+ clampMagnitude(max) {
150
+ const mag = this.magnitude();
151
+ if (mag > max)
152
+ this.normalize().multiplyBy(max);
153
+ return this;
154
+ }
155
+ /** mutator */
156
+ floor() {
157
+ this.x = Math.floor(this.x);
158
+ this.y = Math.floor(this.y);
159
+ return this;
160
+ }
161
+ /** mutator */
162
+ ceil() {
163
+ this.x = Math.ceil(this.x);
164
+ this.y = Math.ceil(this.y);
165
+ return this;
166
+ }
167
+ /** mutator */
168
+ round() {
169
+ this.x = Math.round(this.x);
170
+ this.y = Math.round(this.y);
171
+ return this;
172
+ }
173
+ /** mutator */
174
+ map(fn) {
175
+ this.x = fn(this.x, 0);
176
+ this.y = fn(this.y, 1);
177
+ return this;
178
+ }
179
+ /** mutator */
180
+ clamp(min, max) {
181
+ const clamp = (val) => Math.max(min, Math.min(max, val));
182
+ return this.map(clamp);
183
+ }
184
+ /** mutator */
185
+ negate() {
186
+ return this.map(a => a * -1);
187
+ }
188
+ /** mutator */
189
+ addBy(delta) {
190
+ this.x += delta;
191
+ this.y += delta;
192
+ return this;
193
+ }
194
+ /** mutator */
195
+ subtractBy(delta) {
196
+ this.x -= delta;
197
+ this.y -= delta;
198
+ return this;
199
+ }
200
+ /** mutator */
201
+ multiplyBy(coefficient) {
202
+ this.x *= coefficient;
203
+ this.y *= coefficient;
204
+ return this;
205
+ }
206
+ /** mutator */
207
+ divideBy(divisor) {
208
+ if (divisor === 0)
209
+ return this;
210
+ this.x /= divisor;
211
+ this.y /= divisor;
212
+ return this;
213
+ }
214
+ ///////////////////////////////////////////////////////////////////////
215
+ /** mutator */
216
+ add_(x, y) {
217
+ this.x += x;
218
+ this.y += y;
219
+ return this;
220
+ }
221
+ /** mutator */
222
+ add(...vecs) {
223
+ for (const { x, y } of vecs)
224
+ this.add_(x, y);
225
+ return this;
226
+ }
227
+ /** mutator */
228
+ subtract_(x, y) {
229
+ this.x -= x;
230
+ this.y -= y;
231
+ return this;
232
+ }
233
+ /** mutator */
234
+ subtract(...vecs) {
235
+ for (const { x, y } of vecs)
236
+ this.subtract_(x, y);
237
+ return this;
238
+ }
239
+ /** mutator */
240
+ multiply_(x, y) {
241
+ this.x *= x;
242
+ this.y *= y;
243
+ return this;
244
+ }
245
+ /** mutator */
246
+ multiply(...vecs) {
247
+ for (const { x, y } of vecs)
248
+ this.multiply_(x, y);
249
+ return this;
250
+ }
251
+ /** mutator */
252
+ divide_(x, y) {
253
+ if (x !== 0)
254
+ this.x /= x;
255
+ if (y !== 0)
256
+ this.y /= y;
257
+ return this;
258
+ }
259
+ /** mutator */
260
+ divide(...vecs) {
261
+ for (const { x, y } of vecs)
262
+ this.divide_(x, y);
263
+ return this;
264
+ }
265
+ /** mutator */
266
+ lerp_(x, y, fraction) {
267
+ this.x += (x - this.x) * fraction;
268
+ this.y += (y - this.y) * fraction;
269
+ return this;
270
+ }
271
+ /** mutator */
272
+ lerp({ x, y }, fraction) {
273
+ return this.lerp_(x, y, fraction);
274
+ }
275
+ approach_(x, y, speed, deltaTime, speedLimit) {
276
+ this.x = Scalar.approach(this.x, x, speed, deltaTime, speedLimit);
277
+ this.y = Scalar.approach(this.y, y, speed, deltaTime, speedLimit);
278
+ return this;
279
+ }
280
+ approach({ x, y }, speed, deltaTime, speedLimit) {
281
+ return this.approach_(x, y, speed, deltaTime, speedLimit);
282
+ }
283
+ /** mutator */
284
+ reflect_(x, y) {
285
+ const dot = 2 * this.dot_(x, y);
286
+ this.x -= dot * x;
287
+ this.y -= dot * y;
288
+ return this;
289
+ }
290
+ /** mutator */
291
+ reflect({ x, y }) {
292
+ return this.reflect_(x, y);
293
+ }
294
+ /** mutator */
295
+ rotateAroundPoint_(x, y, radians) {
296
+ const dx = this.x - x;
297
+ const dy = this.y - y;
298
+ const cos = Math.cos(radians);
299
+ const sin = Math.sin(radians);
300
+ this.x = cos * dx - sin * dy + x;
301
+ this.y = sin * dx + cos * dy + y;
302
+ return this;
303
+ }
304
+ /** mutator */
305
+ rotateAroundPoint({ x, y }, radians) {
306
+ return this.rotateAroundPoint_(x, y, radians);
307
+ }
308
+ /** mutator */
309
+ smooth_(x, y, smoothing) {
310
+ this.x = Scalar.smooth(this.x, x, smoothing);
311
+ this.y = Scalar.smooth(this.y, y, smoothing);
312
+ return this;
313
+ }
314
+ /** mutator */
315
+ smooth({ x, y }, smoothing) {
316
+ return this.smooth_(x, y, smoothing);
317
+ }
318
+ }
319
+ //# sourceMappingURL=vec2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vec2.js","sourceRoot":"","sources":["../../s/primitives/vec2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ export type Vec3Array = [number, number, number];
2
+ export type Xyz = {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ };
7
+ /** https://github.com/microsoft/TypeScript/issues/5863 */
8
+ type TsHack<T> = {
9
+ new (...a: ConstructorParameters<typeof Vec3>): T;
10
+ };
11
+ export declare class Vec3 {
12
+ x: number;
13
+ y: number;
14
+ z: number;
15
+ constructor(x: number, y: number, z: number);
16
+ static new<T extends Vec3>(this: TsHack<T>, x: number, y: number, z: number): T;
17
+ static zero<T extends Vec3>(this: TsHack<T>): T;
18
+ static all<T extends Vec3>(this: TsHack<T>, value: number): T;
19
+ static array<T extends Vec3>(this: TsHack<T>, v: Vec3Array): T;
20
+ static import<T extends Vec3>(this: TsHack<T>, { x, y, z }: Xyz): Vec3;
21
+ static from(v: Vec3Array | Xyz): Vec3;
22
+ static magnitudeSquared(x: number, y: number, z: number): number;
23
+ static magnitude(x: number, y: number, z: number): number;
24
+ static average(...vecs: Xyz[]): Vec3;
25
+ static min(...vecs: Vec3[]): Vec3;
26
+ static max(...vecs: Vec3[]): Vec3;
27
+ static hexColor(hex: string): Vec3;
28
+ clone(): Vec3;
29
+ array(): Vec3Array;
30
+ toString(): string;
31
+ set_(x: number, y: number, z: number): this;
32
+ set({ x, y, z }: Xyz): this;
33
+ magnitudeSquared(): number;
34
+ magnitude(): number;
35
+ hexColor(): string;
36
+ equals_(x: number, y: number, z: number): boolean;
37
+ equals(...vecs: Xyz[]): boolean;
38
+ distanceSquared_(x: number, y: number, z: number): number;
39
+ distanceSquared({ x, y, z }: Xyz): number;
40
+ distance_(x: number, y: number, z: number): number;
41
+ distance({ x, y, z }: Xyz): number;
42
+ dot_(x: number, y: number, z: number): number;
43
+ dot({ x, y, z }: Xyz): number;
44
+ inRange_(x: number, y: number, z: number, radius: number): boolean;
45
+ inRange({ x, y, z }: Xyz, radius: number): boolean;
46
+ angleBetween_(x: number, y: number, z: number): number;
47
+ angleBetween({ x, y, z }: Xyz): number;
48
+ /** mutator */
49
+ add_(x: number, y: number, z: number): this;
50
+ /** mutator */
51
+ add(...vecs: Xyz[]): this;
52
+ /** mutator */
53
+ subtract_(x: number, y: number, z: number): this;
54
+ /** mutator */
55
+ subtract(...vecs: Xyz[]): this;
56
+ /** mutator */
57
+ multiply_(x: number, y: number, z: number): this;
58
+ /** mutator */
59
+ multiply(...vecs: Xyz[]): this;
60
+ /** mutator */
61
+ divide_(x: number, y: number, z: number): this;
62
+ /** mutator */
63
+ divide(...vecs: Vec3[]): this;
64
+ /** mutator */
65
+ half(): this;
66
+ /** mutator */
67
+ double(): this;
68
+ /** mutator */
69
+ abs(): this;
70
+ /** mutator */
71
+ map(fn: (a: number, index: number) => number): this;
72
+ /** mutator */
73
+ negate(): this;
74
+ /** mutator */
75
+ addBy(delta: number): this;
76
+ /** mutator */
77
+ multiplyBy(delta: number): this;
78
+ /** mutator */
79
+ divideBy(divisor: number): this;
80
+ /** mutator */
81
+ normalize(): this;
82
+ /** mutator */
83
+ clampMagnitude(max: number): this;
84
+ /** mutator */
85
+ floor(): this;
86
+ /** mutator */
87
+ ceil(): this;
88
+ /** mutator */
89
+ round(): this;
90
+ /** mutator */
91
+ cross_(x2: number, y2: number, z2: number): this;
92
+ /** mutator */
93
+ cross({ x, y, z }: Xyz): this;
94
+ /** mutator */
95
+ lerp_(x: number, y: number, z: number, fraction: number): this;
96
+ /** mutator */
97
+ lerp({ x, y, z }: Xyz, fraction: number): this;
98
+ approach_(x: number, y: number, z: number, speed: number, deltaTime: number, speedLimit?: number): this;
99
+ approach({ x, y, z }: Xyz, speed: number, deltaTime: number, speedLimit?: number): this;
100
+ /** mutator */
101
+ projectOnto_(x: number, y: number, z: number): this;
102
+ /** mutator */
103
+ projectOnto({ x, y, z }: Vec3): this;
104
+ /** mutator */
105
+ reflect_(x: number, y: number, z: number): this;
106
+ /** mutator */
107
+ reflect({ x, y, z }: Xyz): this;
108
+ /** mutator */
109
+ rotateAroundAxis_(ux: number, uy: number, uz: number, angle: number): this;
110
+ /** mutator */
111
+ rotateAroundAxis({ x, y, z }: Xyz, angle: number): this;
112
+ /** mutator */
113
+ smooth_(x: number, y: number, z: number, smoothing: number): this;
114
+ /** mutator */
115
+ smooth({ x, y, z }: Xyz, smoothing: number): this;
116
+ }
117
+ export {};