@ntf/math 1.1.3 → 1.3.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.
Files changed (125) hide show
  1. package/dist/index.cjs +2536 -0
  2. package/dist/index.d.cts +738 -0
  3. package/dist/index.d.mts +738 -0
  4. package/dist/index.mjs +2489 -0
  5. package/package.json +19 -12
  6. package/dist/cjs/algebra/function.js +0 -7
  7. package/dist/cjs/algebra/function.js.map +0 -1
  8. package/dist/cjs/algebra/linear.js +0 -42
  9. package/dist/cjs/algebra/linear.js.map +0 -1
  10. package/dist/cjs/algebra/quad.js +0 -53
  11. package/dist/cjs/algebra/quad.js.map +0 -1
  12. package/dist/cjs/color.js +0 -232
  13. package/dist/cjs/color.js.map +0 -1
  14. package/dist/cjs/common/error.js +0 -14
  15. package/dist/cjs/common/error.js.map +0 -1
  16. package/dist/cjs/common/sign.js +0 -14
  17. package/dist/cjs/common/sign.js.map +0 -1
  18. package/dist/cjs/common/types.js +0 -77
  19. package/dist/cjs/common/types.js.map +0 -1
  20. package/dist/cjs/geometry/angle.js +0 -11
  21. package/dist/cjs/geometry/angle.js.map +0 -1
  22. package/dist/cjs/geometry/bbox.js +0 -87
  23. package/dist/cjs/geometry/bbox.js.map +0 -1
  24. package/dist/cjs/geometry/circle.js +0 -64
  25. package/dist/cjs/geometry/circle.js.map +0 -1
  26. package/dist/cjs/geometry/object.js +0 -3
  27. package/dist/cjs/geometry/object.js.map +0 -1
  28. package/dist/cjs/geometry/rectangle.js +0 -83
  29. package/dist/cjs/geometry/rectangle.js.map +0 -1
  30. package/dist/cjs/geometry/square.js +0 -66
  31. package/dist/cjs/geometry/square.js.map +0 -1
  32. package/dist/cjs/geometry/triangle.js +0 -65
  33. package/dist/cjs/geometry/triangle.js.map +0 -1
  34. package/dist/cjs/index.js +0 -59
  35. package/dist/cjs/index.js.map +0 -1
  36. package/dist/cjs/matrices/mat3.js +0 -184
  37. package/dist/cjs/matrices/mat3.js.map +0 -1
  38. package/dist/cjs/matrices/mat4.js +0 -275
  39. package/dist/cjs/matrices/mat4.js.map +0 -1
  40. package/dist/cjs/quaternion.js +0 -196
  41. package/dist/cjs/quaternion.js.map +0 -1
  42. package/dist/cjs/vectors/vec2.js +0 -154
  43. package/dist/cjs/vectors/vec2.js.map +0 -1
  44. package/dist/cjs/vectors/vec3.js +0 -161
  45. package/dist/cjs/vectors/vec3.js.map +0 -1
  46. package/dist/esm/algebra/function.js +0 -3
  47. package/dist/esm/algebra/function.js.map +0 -1
  48. package/dist/esm/algebra/linear.js +0 -38
  49. package/dist/esm/algebra/linear.js.map +0 -1
  50. package/dist/esm/algebra/quad.js +0 -49
  51. package/dist/esm/algebra/quad.js.map +0 -1
  52. package/dist/esm/color.js +0 -226
  53. package/dist/esm/color.js.map +0 -1
  54. package/dist/esm/common/error.js +0 -10
  55. package/dist/esm/common/error.js.map +0 -1
  56. package/dist/esm/common/sign.js +0 -10
  57. package/dist/esm/common/sign.js.map +0 -1
  58. package/dist/esm/common/types.js +0 -65
  59. package/dist/esm/common/types.js.map +0 -1
  60. package/dist/esm/geometry/angle.js +0 -5
  61. package/dist/esm/geometry/angle.js.map +0 -1
  62. package/dist/esm/geometry/bbox.js +0 -83
  63. package/dist/esm/geometry/bbox.js.map +0 -1
  64. package/dist/esm/geometry/circle.js +0 -60
  65. package/dist/esm/geometry/circle.js.map +0 -1
  66. package/dist/esm/geometry/object.js +0 -2
  67. package/dist/esm/geometry/object.js.map +0 -1
  68. package/dist/esm/geometry/rectangle.js +0 -79
  69. package/dist/esm/geometry/rectangle.js.map +0 -1
  70. package/dist/esm/geometry/square.js +0 -62
  71. package/dist/esm/geometry/square.js.map +0 -1
  72. package/dist/esm/geometry/triangle.js +0 -59
  73. package/dist/esm/geometry/triangle.js.map +0 -1
  74. package/dist/esm/index.js +0 -40
  75. package/dist/esm/index.js.map +0 -1
  76. package/dist/esm/matrices/mat3.js +0 -180
  77. package/dist/esm/matrices/mat3.js.map +0 -1
  78. package/dist/esm/matrices/mat4.js +0 -271
  79. package/dist/esm/matrices/mat4.js.map +0 -1
  80. package/dist/esm/quaternion.js +0 -192
  81. package/dist/esm/quaternion.js.map +0 -1
  82. package/dist/esm/vectors/vec2.js +0 -150
  83. package/dist/esm/vectors/vec2.js.map +0 -1
  84. package/dist/esm/vectors/vec3.js +0 -157
  85. package/dist/esm/vectors/vec3.js.map +0 -1
  86. package/dist/types/algebra/function.d.ts +0 -6
  87. package/dist/types/algebra/function.d.ts.map +0 -1
  88. package/dist/types/algebra/linear.d.ts +0 -14
  89. package/dist/types/algebra/linear.d.ts.map +0 -1
  90. package/dist/types/algebra/quad.d.ts +0 -18
  91. package/dist/types/algebra/quad.d.ts.map +0 -1
  92. package/dist/types/color.d.ts +0 -87
  93. package/dist/types/color.d.ts.map +0 -1
  94. package/dist/types/common/error.d.ts +0 -6
  95. package/dist/types/common/error.d.ts.map +0 -1
  96. package/dist/types/common/sign.d.ts +0 -2
  97. package/dist/types/common/sign.d.ts.map +0 -1
  98. package/dist/types/common/types.d.ts +0 -26
  99. package/dist/types/common/types.d.ts.map +0 -1
  100. package/dist/types/geometry/angle.d.ts +0 -5
  101. package/dist/types/geometry/angle.d.ts.map +0 -1
  102. package/dist/types/geometry/bbox.d.ts +0 -35
  103. package/dist/types/geometry/bbox.d.ts.map +0 -1
  104. package/dist/types/geometry/circle.d.ts +0 -26
  105. package/dist/types/geometry/circle.d.ts.map +0 -1
  106. package/dist/types/geometry/object.d.ts +0 -5
  107. package/dist/types/geometry/object.d.ts.map +0 -1
  108. package/dist/types/geometry/rectangle.d.ts +0 -31
  109. package/dist/types/geometry/rectangle.d.ts.map +0 -1
  110. package/dist/types/geometry/square.d.ts +0 -27
  111. package/dist/types/geometry/square.d.ts.map +0 -1
  112. package/dist/types/geometry/triangle.d.ts +0 -42
  113. package/dist/types/geometry/triangle.d.ts.map +0 -1
  114. package/dist/types/index.d.ts +0 -23
  115. package/dist/types/index.d.ts.map +0 -1
  116. package/dist/types/matrices/mat3.d.ts +0 -58
  117. package/dist/types/matrices/mat3.d.ts.map +0 -1
  118. package/dist/types/matrices/mat4.d.ts +0 -85
  119. package/dist/types/matrices/mat4.d.ts.map +0 -1
  120. package/dist/types/quaternion.d.ts +0 -49
  121. package/dist/types/quaternion.d.ts.map +0 -1
  122. package/dist/types/vectors/vec2.d.ts +0 -56
  123. package/dist/types/vectors/vec2.d.ts.map +0 -1
  124. package/dist/types/vectors/vec3.d.ts +0 -55
  125. package/dist/types/vectors/vec3.d.ts.map +0 -1
package/dist/esm/color.js DELETED
@@ -1,226 +0,0 @@
1
- import { ResolveError } from "./common/error.js";
2
- import { check_hex, check_number, check_number_array, check_string, check_string_array, get_hex_part, has_property } from "./common/types.js";
3
- import { clamp } from "./index.js";
4
- function _hex_to_array(hex) {
5
- if (!check_hex(hex))
6
- return undefined;
7
- const part = get_hex_part(hex);
8
- const a = parseInt(part.substring(0, 2), 16) / 0xff;
9
- const b = parseInt(part.substring(2, 4), 16) / 0xff;
10
- const c = parseInt(part.substring(4, 6), 16) / 0xff;
11
- const d = part.length == 8 ? parseInt(hex.substring(6, 8), 16) / 0xff : 1;
12
- return [a, b, c, d];
13
- }
14
- function _number_to_rgb(number) {
15
- const blue = number & 0xff;
16
- const green = (number & 0xff00) >>> 8;
17
- const red = (number & 0xff0000) >>> 16;
18
- return [red / 0xff, green / 0xff, blue / 0xff];
19
- }
20
- function _number_to_rgba(number) {
21
- const alpha = number & 0xff;
22
- const blue = (number & 0xff00) >>> 8;
23
- const green = (number & 0xff0000) >>> 16;
24
- const red = (number & 0xff000000) >>> 24;
25
- return [red / 0xff, green / 0xff, blue / 0xff, alpha / 0xff];
26
- }
27
- function _fix_integer(number) {
28
- return number * 0xff | 0;
29
- }
30
- export class RGBAColor {
31
- _red;
32
- get red() { return this._red; }
33
- set red(val) { this._red = clamp(val, 0, 1); }
34
- _green;
35
- get green() { return this._green; }
36
- set green(val) { this._green = clamp(val, 0, 1); }
37
- _blue;
38
- get blue() { return this._blue; }
39
- set blue(val) { this._blue = clamp(val, 0, 1); }
40
- _alpha;
41
- get alpha() { return this._alpha; }
42
- set alpha(val) { this._alpha = clamp(val, 0, 1); }
43
- static resolve(a) {
44
- if (a == null || typeof a == "undefined")
45
- throw new ResolveError("RGBAColor", a);
46
- if (check_number_array(a, 3) || check_number_array(a, 4))
47
- return new this(a[0], a[1], a[2], a[3]);
48
- if (has_property(a, "red", "number") && has_property(a, "green", "number") && has_property(a, "blue", "number"))
49
- return new this(a.red, a.green, a.blue, has_property(a, "alpha", "number") ? a.alpha : undefined);
50
- if (check_number(a)) {
51
- const hex = a.toString(16);
52
- const convert = hex.length <= 6 ? _number_to_rgb : _number_to_rgba;
53
- return this.resolve(convert(a));
54
- }
55
- if (check_string(a)) {
56
- if (a.startsWith("rgb")) {
57
- const hasAlpha = a.startsWith("rgba");
58
- const offset = hasAlpha ? 5 : 4;
59
- const parts = a.substring(offset, a.indexOf(")", offset)).split(",");
60
- if (check_string_array(parts, hasAlpha ? 4 : 3))
61
- return this.resolve(parts.map((v) => parseInt(v) / 0xff));
62
- }
63
- const hex = _hex_to_array(a);
64
- if (hex)
65
- return this.resolve(hex);
66
- }
67
- throw new ResolveError("RGBAColor", a);
68
- }
69
- static is(a) {
70
- try {
71
- this.resolve(a);
72
- }
73
- catch (e) {
74
- return false;
75
- }
76
- return false;
77
- }
78
- constructor(red, green, blue, alpha = 1) {
79
- this._red = clamp(red, 0, 1);
80
- this._green = clamp(green, 0, 1);
81
- this._blue = clamp(blue, 0, 1);
82
- this._alpha = clamp(alpha, 0, 1);
83
- }
84
- toArray(withAlpha = false) {
85
- return withAlpha ? [this.red, this.green, this.blue, this.alpha] : (this.alpha == 1 ? [this.red, this.green, this.blue] : this.toArray(true));
86
- }
87
- toJSON(withAlpha = false) {
88
- return withAlpha ? {
89
- red: this.red, green: this.green, blue: this.blue, alpha: this.alpha
90
- } : (this.alpha == 1 ? { red: this.red, green: this.green, blue: this.blue } : this.toJSON(true));
91
- }
92
- toString(withAlpha = false) {
93
- return withAlpha ? `rgba(${_fix_integer(this.red)},${_fix_integer(this.green)},${_fix_integer(this.blue)},${_fix_integer(this.alpha)})` : (this.alpha == 1 ? `rgb(${_fix_integer(this.red)},${_fix_integer(this.green)},${_fix_integer(this.blue)})` : this.toString(true));
94
- }
95
- toHSL(withAlpha = true) {
96
- const red = this.red, green = this.green, blue = this.blue;
97
- const min = Math.min(red, green, blue), max = Math.max(red, green, blue);
98
- const luminace = (min + max) / 2;
99
- if (min == max)
100
- return new HSLColor(0, 0, luminace, withAlpha ? this.alpha : undefined);
101
- const d = max - min;
102
- const saturation = luminace > 0.5 ? d / (2 - max - min) : d / (max + min);
103
- if (max == red)
104
- return new HSLColor(((green - blue) / d + (green < blue ? 6 : 0)) / 6, saturation, luminace);
105
- if (max == green)
106
- return new HSLColor(((blue - red) / d + 2) / 6, saturation, luminace);
107
- if (max == blue)
108
- return new HSLColor(((red - green) / d + 4) / 6, saturation, luminace);
109
- return new HSLColor(0, saturation, luminace, withAlpha ? this.alpha : undefined);
110
- }
111
- invert(withAlpha = false) {
112
- return new RGBAColor(1 - this.red, 1 - this.green, 1 - this.blue, withAlpha ? 1 - this.alpha : this.alpha);
113
- }
114
- }
115
- export class HSLColor {
116
- _hue;
117
- get hue() { return this._hue; }
118
- set hue(val) { this._hue = clamp(val, 0, 1); }
119
- _saturation;
120
- get saturation() { return this._saturation; }
121
- set saturation(val) { this._saturation = clamp(val, 0, 1); }
122
- _luminace;
123
- get luminace() { return this._luminace; }
124
- set luminace(val) { this._luminace = clamp(val, 0, 1); }
125
- _alpha;
126
- get alpha() { return this._alpha; }
127
- set alpha(val) { this._alpha = val & 0xff; }
128
- static resolve(a) {
129
- if (a == null || typeof a == "undefined")
130
- throw new ResolveError("HSLColor", a);
131
- if (check_number_array(a, 3) || check_number_array(a, 4))
132
- return new this(a[0], a[1], a[2], a[3]);
133
- if (has_property(a, "hue", "number") && has_property(a, "saturation", "number") && has_property(a, "luminace", "number"))
134
- return new this(a.hue, a.saturation, a.luminace, has_property(a, "alpha", "number") ? a.alpha : undefined);
135
- if (check_number(a)) {
136
- const hex = a.toString(16);
137
- const convert = hex.length <= 6 ? _number_to_rgb : _number_to_rgba;
138
- return this.resolve(convert(a));
139
- }
140
- if (check_string(a)) {
141
- if (a.startsWith("hsl")) {
142
- const hasAlpha = a.startsWith("hsla");
143
- const offset = hasAlpha ? 5 : 4;
144
- const parts = a.substring(offset, a.indexOf(")", offset)).split(",");
145
- if (check_string_array(parts, hasAlpha ? 4 : 3))
146
- return this.resolve(parts.map((v) => parseInt(v) / 0xff));
147
- }
148
- const hex = _hex_to_array(a);
149
- if (hex)
150
- return this.resolve(hex);
151
- }
152
- throw new ResolveError("HSLColor", a);
153
- }
154
- static is(a) {
155
- try {
156
- this.resolve(a);
157
- }
158
- catch (e) {
159
- return false;
160
- }
161
- return true;
162
- }
163
- constructor(hue, saturation, luminace, alpha = 0xff) {
164
- this._hue = clamp(hue, 0, 1);
165
- this._saturation = clamp(saturation, 0, 1);
166
- this._luminace = clamp(luminace, 0, 1);
167
- this._alpha = alpha & 0xff;
168
- }
169
- toArray(withAlpha = false) {
170
- return withAlpha ? [this.hue, this.saturation, this.luminace, this.alpha] : (this.alpha == 1 ? [this.hue, this.saturation, this.luminace] : this.toArray(true));
171
- }
172
- toJSON(withAlpha = false) {
173
- return withAlpha ? {
174
- hue: this.hue, saturation: this.saturation, luminace: this.luminace, alpha: this.alpha
175
- } : (this.alpha == 1 ? { hue: this.hue, saturation: this.saturation, luminace: this.luminace } : this.toJSON(true));
176
- }
177
- toString(withAlpha = false) {
178
- return withAlpha ? `hsla(${_fix_integer(this.hue)},${_fix_integer(this.saturation)},${_fix_integer(this.luminace)},${_fix_integer(this.alpha)})` : (this.alpha == 1 ? `hsl(${_fix_integer(this.hue)},${_fix_integer(this.saturation)},${_fix_integer(this.luminace)})` : this.toString(true));
179
- }
180
- toRGB(withAlpha = true) {
181
- if (this.saturation == 0)
182
- return new RGBAColor(this.luminace * 0xff, this.luminace * 0xff, this.luminace * 0xff, withAlpha ? this.alpha : undefined);
183
- const q = this.luminace < 0.5 ? this.luminace * (1 + this.saturation) : this.luminace + this.saturation - this.luminace * this.saturation;
184
- const p = 2 * this.luminace - q;
185
- function _hue_2_rgb(t) {
186
- let _t = t;
187
- if (_t < 0)
188
- _t++;
189
- if (_t > 1)
190
- _t--;
191
- if (_t < 1. / 6)
192
- return p + (q - p) * 6 * _t;
193
- if (_t < 1. / 2)
194
- return q;
195
- if (_t < 2. / 3)
196
- return p + (q - p) * (2. / 3 - _t) * 6;
197
- return p;
198
- }
199
- return new RGBAColor(_hue_2_rgb(this.hue + 1. / 3) * 0xff, _hue_2_rgb(this.hue) * 0xff, _hue_2_rgb(this.hue - 1. / 3) * 0xff, withAlpha ? this.alpha : undefined);
200
- }
201
- invert(withAlpha = false) {
202
- return new HSLColor(1 - this.hue, 1 - this.saturation, 1 - this.luminace, withAlpha ? 1 - this.alpha : this.alpha);
203
- }
204
- }
205
- export function resolveColor(a, preferHSL = false) {
206
- const results = [];
207
- try {
208
- const rgba = RGBAColor.resolve(a);
209
- results.push(rgba);
210
- }
211
- catch (e) { }
212
- try {
213
- const hsla = HSLColor.resolve(a);
214
- results.push(hsla);
215
- }
216
- catch (e) { }
217
- let offset = preferHSL ? 1 : 0;
218
- const firstItem = results[offset];
219
- if (firstItem)
220
- return firstItem;
221
- const secondItem = results[offset + 1];
222
- if (secondItem)
223
- return secondItem;
224
- throw new ResolveError("Color", a);
225
- }
226
- //# sourceMappingURL=color.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../../source/color.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export class ResolveError extends Error {
2
- target;
3
- value;
4
- constructor(target, value) {
5
- super(`can't resolve ${value} to ${target}`);
6
- this.target = target;
7
- this.value = value;
8
- }
9
- }
10
- //# sourceMappingURL=error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../source/common/error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAEA;IAA+B;IAAlE,YAAmC,MAAc,EAAiB,KAAc;QAE5E,KAAK,CAAC,iBAAiB,KAAK,OAAO,MAAM,EAAE,CAAC,CAAA;QAFb,WAAM,GAAN,MAAM,CAAQ;QAAiB,UAAK,GAAL,KAAK,CAAS;IAGhF,CAAC;CACJ"}
@@ -1,10 +0,0 @@
1
- export function sign_char(num) {
2
- if (num == 0)
3
- return undefined;
4
- if (num < 0)
5
- return "-";
6
- if (num > 0)
7
- return "+";
8
- return undefined;
9
- }
10
- //# sourceMappingURL=sign.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../source/common/sign.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,GAAoB;IAE1C,IAAG,GAAG,IAAI,CAAC;QACP,OAAO,SAAS,CAAA;IACpB,IAAG,GAAG,GAAG,CAAC;QACN,OAAO,GAAG,CAAA;IACd,IAAG,GAAG,GAAG,CAAC;QACN,OAAO,GAAG,CAAA;IACd,OAAO,SAAS,CAAA;AACpB,CAAC"}
@@ -1,65 +0,0 @@
1
- export function check_number(obj) {
2
- return obj != null && typeof obj == "number" && !isNaN(obj);
3
- }
4
- export function check_hex_digit(obj) {
5
- if (!check_string(obj) || obj.length != 1)
6
- return false;
7
- switch (obj.toUpperCase()) {
8
- default:
9
- return false;
10
- case "0":
11
- case "1":
12
- case "2":
13
- case "3":
14
- case "4":
15
- case "5":
16
- case "6":
17
- case "7":
18
- case "8":
19
- case "9":
20
- case "A":
21
- case "B":
22
- case "C":
23
- case "D":
24
- case "E":
25
- case "F":
26
- return true;
27
- }
28
- }
29
- export function get_hex_part(string) {
30
- let offset = 0;
31
- if (string.startsWith("#") || string.startsWith("$"))
32
- offset = 1;
33
- if (string.startsWith("0x"))
34
- offset = 2;
35
- return string.substring(offset);
36
- }
37
- export function check_hex(obj) {
38
- if (!check_string(obj))
39
- return false;
40
- const value = get_hex_part(obj).split("").map((char) => parseInt(char.toUpperCase(), 16));
41
- return check_number_array(value);
42
- }
43
- export function check_string(obj) {
44
- return obj != null && typeof obj == "string" && obj.length > 0;
45
- }
46
- export function check_array(obj, predicate, requiredLength) {
47
- if (!Array.isArray(obj))
48
- return false;
49
- if (requiredLength && requiredLength != obj.length)
50
- return false;
51
- for (const item of obj)
52
- if (predicate && !predicate(item))
53
- return false;
54
- return true;
55
- }
56
- export function check_number_array(obj, requiredLength) {
57
- return check_array(obj, check_number, requiredLength);
58
- }
59
- export function check_string_array(obj, requiredLength) {
60
- return check_array(obj, check_string, requiredLength);
61
- }
62
- export function has_property(obj, name, type) {
63
- return obj != null && typeof obj == "object" && name in obj && typeof obj[name] == type;
64
- }
65
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../source/common/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export const MAX_ANGLE_DEGREE = 360;
2
- export const cap_angle_degree = (angle) => angle % MAX_ANGLE_DEGREE;
3
- export const radian_to_degree = (angle) => angle * (180 / Math.PI);
4
- export const degree_to_radian = (angle) => angle * (Math.PI / 180);
5
- //# sourceMappingURL=angle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angle.js","sourceRoot":"","sources":["../../../source/geometry/angle.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,gBAAgB,CAAA;AAE3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,GAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAC,GAAG,CAAC,CAAA"}
@@ -1,83 +0,0 @@
1
- import { ResolveError } from "../common/error.js";
2
- import { check_number_array, check_string, check_string_array, has_property } from "../common/types.js";
3
- import { Vec2 } from "../vectors/vec2.js";
4
- import { Circle } from "./circle.js";
5
- import { Rectangle } from "./rectangle.js";
6
- import { Square } from "./square.js";
7
- export class BoundingBox {
8
- left;
9
- right;
10
- top;
11
- bottom;
12
- get width() { return this.right - this.left; }
13
- set width(val) { this.right = this.left + val; }
14
- get height() { return this.bottom - this.top; }
15
- set height(val) { this.bottom = this.top + val; }
16
- static resolve(a) {
17
- if (a == null || typeof a == "undefined")
18
- throw new ResolveError("BoundingBox", a);
19
- if (check_number_array(a, 4))
20
- return new this(a[0], a[1], a[2], a[3]);
21
- if (has_property(a, "left", "number") && has_property(a, "right", "number") && has_property(a, "top", "number") && has_property(a, "bottom", "number"))
22
- return new this(a.left, a.right, a.top, a.bottom);
23
- if (check_string(a)) {
24
- const parts = a.split(",");
25
- if (check_string_array(parts, 4))
26
- return this.resolve(parts.map((v) => parseFloat(v)));
27
- }
28
- throw new ResolveError("BoundingBox", a);
29
- }
30
- static is(a) {
31
- try {
32
- this.resolve(a);
33
- }
34
- catch (e) {
35
- return false;
36
- }
37
- return true;
38
- }
39
- constructor(left, right, top, bottom) {
40
- this.left = left;
41
- this.right = right;
42
- this.top = top;
43
- this.bottom = bottom;
44
- }
45
- toArray() {
46
- return [this.left, this.right, this.top, this.bottom];
47
- }
48
- toString() {
49
- return `${this.left},${this.right},${this.top},${this.bottom}`;
50
- }
51
- toJSON() {
52
- return {
53
- left: this.left, top: this.top,
54
- right: this.right, bottom: this.bottom
55
- };
56
- }
57
- toSquare() {
58
- return new Square(this.width, this.height);
59
- }
60
- toRectangle() {
61
- return new Rectangle(this.left, this.top, this.width, this.height);
62
- }
63
- inside(a) {
64
- const bbox = BoundingBox.resolve(a);
65
- return this.right >= bbox.left && bbox.right >= this.left && this.bottom >= bbox.top && bbox.bottom >= this.top;
66
- }
67
- insidePoint(a) {
68
- const point = Vec2.resolve(a);
69
- return this.left <= point.x && this.right >= point.x && this.top >= point.y && this.bottom <= point.y;
70
- }
71
- insideCircle(a) {
72
- const circle = Circle.resolve(a);
73
- const center = Vec2.resolve(circle).add(circle.radius);
74
- const bboxhe = new Vec2(this.width / 2, this.height / 2);
75
- const bboxcenter = new Vec2(this.left + bboxhe.x, this.top + bboxhe.y);
76
- let diff = center.subtract(bboxcenter);
77
- const clamped = Vec2.clamp(diff, bboxhe.invert(), bboxhe);
78
- const closest = bboxcenter.add(clamped);
79
- diff = closest.subtract(center);
80
- return diff.length() < circle.radius;
81
- }
82
- }
83
- //# sourceMappingURL=bbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bbox.js","sourceRoot":"","sources":["../../../source/geometry/bbox.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import { ResolveError } from "../common/error.js";
2
- import { check_number_array, check_string, has_property } from "../common/types.js";
3
- import { Vec2 } from "../vectors/vec2.js";
4
- export class Circle {
5
- radius;
6
- get perimeter() { return this.radius * Math.PI * 2; }
7
- get area() { return Math.PI * Math.pow(this.radius, 2); }
8
- position;
9
- get x() { return this.position.x; }
10
- set x(val) { this.position.x = val; }
11
- get y() { return this.position.y; }
12
- set y(val) { this.position.y = val; }
13
- get w() { return this.position.w; }
14
- set w(val) { this.position.w = val; }
15
- static resolve(a) {
16
- if (a == null || typeof a == "undefined")
17
- throw new ResolveError("Circle", a);
18
- if (check_number_array(a, 3))
19
- return new this([a[0], a[1]], a[2]);
20
- if (check_number_array(a, 4)) {
21
- const c = new this([a[0], a[1]], a[3]);
22
- c.w = a[2];
23
- return c;
24
- }
25
- if (has_property(a, "x", "number") && has_property(a, "y", "number") && has_property(a, "radius", "number"))
26
- return new this(has_property(a, "w", "number") ? [a.x, a.y, a.w] : [a.x, a.y], a.radius);
27
- if (check_string(a)) {
28
- const [spos, sradius] = a.split("|");
29
- const pos = Vec2.resolve(spos);
30
- const radius = parseFloat(sradius);
31
- if (!isNaN(radius))
32
- return new this(pos, radius);
33
- }
34
- throw new ResolveError("Circle", a);
35
- }
36
- static is(a) {
37
- try {
38
- this.resolve(a);
39
- }
40
- catch (e) {
41
- return false;
42
- }
43
- return true;
44
- }
45
- constructor(position, radius) {
46
- this.radius = radius;
47
- this.position = Vec2.resolve(position);
48
- }
49
- inside(a) {
50
- const circle = Circle.resolve(a);
51
- const distX = circle.x - this.x;
52
- const distY = circle.y - this.y;
53
- const dist = Math.sqrt((distX * distX) + (distY + distY));
54
- return dist <= this.radius + circle.radius;
55
- }
56
- insidePoint(a) {
57
- return this.position.distance(a) <= this.radius;
58
- }
59
- }
60
- //# sourceMappingURL=circle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"circle.js","sourceRoot":"","sources":["../../../source/geometry/circle.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=object.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../source/geometry/object.ts"],"names":[],"mappings":""}
@@ -1,79 +0,0 @@
1
- import { ResolveError } from "../common/error.js";
2
- import { check_number_array, check_string, has_property } from "../common/types.js";
3
- import { Vec2 } from "../vectors/vec2.js";
4
- import { BoundingBox } from "./bbox.js";
5
- import { Square } from "./square.js";
6
- export class Rectangle {
7
- position;
8
- size;
9
- get x() { return this.position.x; }
10
- set x(val) { this.position.x = val; }
11
- get y() { return this.position.y; }
12
- set y(val) { this.position.y = val; }
13
- get w() { return this.position.w; }
14
- set w(val) { this.position.w = val; }
15
- get width() { return this.size.width; }
16
- set width(val) { this.size.width = val; }
17
- get height() { return this.size.height; }
18
- set height(val) { this.size.height = val; }
19
- static resolve(a) {
20
- if (a == null || typeof a == "undefined")
21
- throw new ResolveError("Rectangle", a);
22
- if (check_number_array(a, 4))
23
- return new this(a[0], a[1], a[2], a[3]);
24
- if (check_number_array(a, 5)) {
25
- const rect = new this(a[0], a[1], a[3], a[4]);
26
- rect.w = a[2];
27
- return rect;
28
- }
29
- if (check_string(a)) {
30
- const [spos, ssize] = a.split("|");
31
- const pos = Vec2.resolve(spos);
32
- const size = Square.resolve(ssize);
33
- const rect = new this(pos.x, pos.y, size.width, size.height);
34
- rect.w = pos.w;
35
- return rect;
36
- }
37
- if (has_property(a, "x", "number") && has_property(a, "y", "number") && has_property(a, "width", "number") && has_property(a, "height", "number")) {
38
- const rect = new this(a.x, a.y, a.width, a.height);
39
- if (has_property(a, "w", "number"))
40
- rect.w = a.w;
41
- return rect;
42
- }
43
- throw new ResolveError("Rectangle", a);
44
- }
45
- static is(a) {
46
- try {
47
- this.resolve(a);
48
- }
49
- catch (e) {
50
- return false;
51
- }
52
- return true;
53
- }
54
- constructor(a, b, c, d) {
55
- const vec = Vec2.is(a) ? Vec2.resolve(a) : undefined;
56
- const size = Square.is(b) ? Square.resolve(b) : undefined;
57
- const x = typeof a == "number" ? a : vec?.x;
58
- const y = typeof b == "number" ? b : vec?.y;
59
- const width = typeof c == "number" ? c : size?.width;
60
- const height = typeof d == "number" ? d : size?.height;
61
- if (!x || !y || !width || !height)
62
- throw new TypeError;
63
- this.position = new Vec2(x, y);
64
- this.size = new Square(width, height);
65
- }
66
- toArray(w = false) {
67
- return [...this.position.toArray(w), ...this.size.toArray()];
68
- }
69
- toString(w = false) {
70
- return `${this.position.toString(w)}|${this.size.toString()}`;
71
- }
72
- toJSON() {
73
- return { ...this.position.toJSON(), ...this.size.toJSON() };
74
- }
75
- toBoundingBox() {
76
- return new BoundingBox(this.x, this.x + this.width, this.y, this.y + this.height);
77
- }
78
- }
79
- //# sourceMappingURL=rectangle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rectangle.js","sourceRoot":"","sources":["../../../source/geometry/rectangle.ts"],"names":[],"mappings":"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"}