@esengine/ecs-framework-math 1.0.5 → 2.9.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 (93) hide show
  1. package/LICENSE +21 -0
  2. package/bin/Animation/Easing.d.ts +244 -0
  3. package/bin/Animation/Easing.d.ts.map +1 -0
  4. package/bin/Animation/Easing.js +407 -0
  5. package/bin/Animation/Easing.js.map +1 -0
  6. package/bin/Animation/Interpolation.d.ts +172 -0
  7. package/bin/Animation/Interpolation.d.ts.map +1 -0
  8. package/bin/Animation/Interpolation.js +327 -0
  9. package/bin/Animation/Interpolation.js.map +1 -0
  10. package/bin/Animation/index.d.ts +8 -0
  11. package/bin/Animation/index.d.ts.map +1 -0
  12. package/bin/Animation/index.js +8 -0
  13. package/bin/Animation/index.js.map +1 -0
  14. package/bin/Circle.d.ts +277 -0
  15. package/bin/Circle.d.ts.map +1 -0
  16. package/bin/Circle.js +496 -0
  17. package/bin/Circle.js.map +1 -0
  18. package/bin/Collision/CollisionDetector.d.ts +114 -0
  19. package/bin/Collision/CollisionDetector.d.ts.map +1 -0
  20. package/bin/Collision/CollisionDetector.js +353 -0
  21. package/bin/Collision/CollisionDetector.js.map +1 -0
  22. package/bin/Collision/index.d.ts +7 -0
  23. package/bin/Collision/index.d.ts.map +1 -0
  24. package/bin/Collision/index.js +7 -0
  25. package/bin/Collision/index.js.map +1 -0
  26. package/bin/Color.d.ts +277 -0
  27. package/bin/Color.d.ts.map +1 -0
  28. package/bin/Color.js +470 -0
  29. package/bin/Color.js.map +1 -0
  30. package/bin/Fixed32.d.ts +266 -0
  31. package/bin/Fixed32.d.ts.map +1 -0
  32. package/bin/Fixed32.js +381 -0
  33. package/bin/Fixed32.js.map +1 -0
  34. package/bin/FixedMath.d.ts +109 -0
  35. package/bin/FixedMath.d.ts.map +1 -0
  36. package/bin/FixedMath.js +264 -0
  37. package/bin/FixedMath.js.map +1 -0
  38. package/bin/FixedVector2.d.ts +293 -0
  39. package/bin/FixedVector2.d.ts.map +1 -0
  40. package/bin/FixedVector2.js +413 -0
  41. package/bin/FixedVector2.js.map +1 -0
  42. package/bin/MathUtils.d.ts +312 -0
  43. package/bin/MathUtils.d.ts.map +1 -0
  44. package/bin/MathUtils.js +500 -0
  45. package/bin/MathUtils.js.map +1 -0
  46. package/bin/Matrix3.d.ts +288 -0
  47. package/bin/Matrix3.d.ts.map +1 -0
  48. package/bin/Matrix3.js +542 -0
  49. package/bin/Matrix3.js.map +1 -0
  50. package/bin/Rectangle.d.ts +266 -0
  51. package/bin/Rectangle.d.ts.map +1 -0
  52. package/bin/Rectangle.js +437 -0
  53. package/bin/Rectangle.js.map +1 -0
  54. package/bin/Vector2.d.ts +333 -0
  55. package/bin/Vector2.d.ts.map +1 -0
  56. package/bin/Vector2.js +484 -0
  57. package/bin/Vector2.js.map +1 -0
  58. package/bin/Vector3.d.ts +257 -0
  59. package/bin/Vector3.d.ts.map +1 -0
  60. package/bin/Vector3.js +372 -0
  61. package/bin/Vector3.js.map +1 -0
  62. package/bin/index.d.ts +25 -0
  63. package/bin/index.d.ts.map +1 -0
  64. package/bin/index.js +32 -0
  65. package/bin/index.js.map +1 -0
  66. package/bin/nodes/ColorNodes.d.ts +70 -0
  67. package/bin/nodes/ColorNodes.d.ts.map +1 -0
  68. package/bin/nodes/ColorNodes.js +427 -0
  69. package/bin/nodes/ColorNodes.js.map +1 -0
  70. package/bin/nodes/FixedNodes.d.ts +98 -0
  71. package/bin/nodes/FixedNodes.d.ts.map +1 -0
  72. package/bin/nodes/FixedNodes.js +612 -0
  73. package/bin/nodes/FixedNodes.js.map +1 -0
  74. package/bin/nodes/FixedVectorNodes.d.ts +58 -0
  75. package/bin/nodes/FixedVectorNodes.d.ts.map +1 -0
  76. package/bin/nodes/FixedVectorNodes.js +330 -0
  77. package/bin/nodes/FixedVectorNodes.js.map +1 -0
  78. package/bin/nodes/VectorNodes.d.ts +62 -0
  79. package/bin/nodes/VectorNodes.d.ts.map +1 -0
  80. package/bin/nodes/VectorNodes.js +355 -0
  81. package/bin/nodes/VectorNodes.js.map +1 -0
  82. package/bin/nodes/index.d.ts +20 -0
  83. package/bin/nodes/index.d.ts.map +1 -0
  84. package/bin/nodes/index.js +27 -0
  85. package/bin/nodes/index.js.map +1 -0
  86. package/package.json +45 -26
  87. package/index.cjs +0 -2
  88. package/index.cjs.map +0 -1
  89. package/index.d.ts +0 -1968
  90. package/index.mjs +0 -2
  91. package/index.mjs.map +0 -1
  92. package/index.umd.js +0 -2
  93. package/index.umd.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedNodes.d.ts","sourceRoot":"","sources":["../../src/nodes/FixedNodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,612 @@
1
+ /**
2
+ * @zh Fixed32 定点数蓝图节点
3
+ * @en Fixed32 Blueprint Nodes
4
+ */
5
+ import { Fixed32 } from '../Fixed32';
6
+ // Make Fixed32 from float
7
+ export const Fixed32FromTemplate = {
8
+ type: 'Fixed32From',
9
+ title: 'Fixed32 From Float',
10
+ category: 'math',
11
+ description: 'Creates Fixed32 from float',
12
+ keywords: ['fixed', 'fixed32', 'from', 'create', 'deterministic'],
13
+ menuPath: ['Math', 'Fixed', 'From Float'],
14
+ isPure: true,
15
+ inputs: [
16
+ { name: 'value', displayName: 'Value', type: 'float', defaultValue: 0 }
17
+ ],
18
+ outputs: [
19
+ { name: 'fixed', displayName: 'Fixed32', type: 'object' }
20
+ ],
21
+ color: '#9C27B0'
22
+ };
23
+ export class Fixed32FromExecutor {
24
+ execute(node, context) {
25
+ const ctx = context;
26
+ const value = Number(ctx.evaluateInput(node.id, 'value', 0));
27
+ return { outputs: { fixed: Fixed32.from(value) } };
28
+ }
29
+ }
30
+ // Make Fixed32 from int
31
+ export const Fixed32FromIntTemplate = {
32
+ type: 'Fixed32FromInt',
33
+ title: 'Fixed32 From Int',
34
+ category: 'math',
35
+ description: 'Creates Fixed32 from integer (no precision loss)',
36
+ keywords: ['fixed', 'fixed32', 'from', 'int', 'integer'],
37
+ menuPath: ['Math', 'Fixed', 'From Int'],
38
+ isPure: true,
39
+ inputs: [
40
+ { name: 'value', displayName: 'Value', type: 'int', defaultValue: 0 }
41
+ ],
42
+ outputs: [
43
+ { name: 'fixed', displayName: 'Fixed32', type: 'object' }
44
+ ],
45
+ color: '#9C27B0'
46
+ };
47
+ export class Fixed32FromIntExecutor {
48
+ execute(node, context) {
49
+ const ctx = context;
50
+ const value = Math.floor(Number(ctx.evaluateInput(node.id, 'value', 0)));
51
+ return { outputs: { fixed: Fixed32.fromInt(value) } };
52
+ }
53
+ }
54
+ // Fixed32 to float
55
+ export const Fixed32ToFloatTemplate = {
56
+ type: 'Fixed32ToFloat',
57
+ title: 'Fixed32 To Float',
58
+ category: 'math',
59
+ description: 'Converts Fixed32 to float',
60
+ keywords: ['fixed', 'fixed32', 'to', 'float', 'convert'],
61
+ menuPath: ['Math', 'Fixed', 'To Float'],
62
+ isPure: true,
63
+ inputs: [
64
+ { name: 'fixed', displayName: 'Fixed32', type: 'object' }
65
+ ],
66
+ outputs: [
67
+ { name: 'value', displayName: 'Value', type: 'float' }
68
+ ],
69
+ color: '#9C27B0'
70
+ };
71
+ export class Fixed32ToFloatExecutor {
72
+ execute(node, context) {
73
+ const ctx = context;
74
+ const fixed = ctx.evaluateInput(node.id, 'fixed', Fixed32.ZERO);
75
+ return { outputs: { value: fixed?.toNumber() ?? 0 } };
76
+ }
77
+ }
78
+ // Fixed32 to int
79
+ export const Fixed32ToIntTemplate = {
80
+ type: 'Fixed32ToInt',
81
+ title: 'Fixed32 To Int',
82
+ category: 'math',
83
+ description: 'Converts Fixed32 to integer (floor)',
84
+ keywords: ['fixed', 'fixed32', 'to', 'int', 'integer'],
85
+ menuPath: ['Math', 'Fixed', 'To Int'],
86
+ isPure: true,
87
+ inputs: [
88
+ { name: 'fixed', displayName: 'Fixed32', type: 'object' }
89
+ ],
90
+ outputs: [
91
+ { name: 'value', displayName: 'Value', type: 'int' }
92
+ ],
93
+ color: '#9C27B0'
94
+ };
95
+ export class Fixed32ToIntExecutor {
96
+ execute(node, context) {
97
+ const ctx = context;
98
+ const fixed = ctx.evaluateInput(node.id, 'fixed', Fixed32.ZERO);
99
+ return { outputs: { value: fixed?.toInt() ?? 0 } };
100
+ }
101
+ }
102
+ // Fixed32 Add
103
+ export const Fixed32AddTemplate = {
104
+ type: 'Fixed32Add',
105
+ title: 'Fixed32 +',
106
+ category: 'math',
107
+ description: 'Adds two Fixed32 values',
108
+ keywords: ['fixed', 'add', 'plus', '+'],
109
+ menuPath: ['Math', 'Fixed', 'Add'],
110
+ isPure: true,
111
+ inputs: [
112
+ { name: 'a', displayName: 'A', type: 'object' },
113
+ { name: 'b', displayName: 'B', type: 'object' }
114
+ ],
115
+ outputs: [
116
+ { name: 'result', displayName: 'Result', type: 'object' }
117
+ ],
118
+ color: '#9C27B0'
119
+ };
120
+ export class Fixed32AddExecutor {
121
+ execute(node, context) {
122
+ const ctx = context;
123
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ZERO);
124
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ZERO);
125
+ return { outputs: { result: (a ?? Fixed32.ZERO).add(b ?? Fixed32.ZERO) } };
126
+ }
127
+ }
128
+ // Fixed32 Subtract
129
+ export const Fixed32SubtractTemplate = {
130
+ type: 'Fixed32Subtract',
131
+ title: 'Fixed32 -',
132
+ category: 'math',
133
+ description: 'Subtracts B from A',
134
+ keywords: ['fixed', 'subtract', 'minus', '-'],
135
+ menuPath: ['Math', 'Fixed', 'Subtract'],
136
+ isPure: true,
137
+ inputs: [
138
+ { name: 'a', displayName: 'A', type: 'object' },
139
+ { name: 'b', displayName: 'B', type: 'object' }
140
+ ],
141
+ outputs: [
142
+ { name: 'result', displayName: 'Result', type: 'object' }
143
+ ],
144
+ color: '#9C27B0'
145
+ };
146
+ export class Fixed32SubtractExecutor {
147
+ execute(node, context) {
148
+ const ctx = context;
149
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ZERO);
150
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ZERO);
151
+ return { outputs: { result: (a ?? Fixed32.ZERO).sub(b ?? Fixed32.ZERO) } };
152
+ }
153
+ }
154
+ // Fixed32 Multiply
155
+ export const Fixed32MultiplyTemplate = {
156
+ type: 'Fixed32Multiply',
157
+ title: 'Fixed32 *',
158
+ category: 'math',
159
+ description: 'Multiplies two Fixed32 values',
160
+ keywords: ['fixed', 'multiply', 'times', '*'],
161
+ menuPath: ['Math', 'Fixed', 'Multiply'],
162
+ isPure: true,
163
+ inputs: [
164
+ { name: 'a', displayName: 'A', type: 'object' },
165
+ { name: 'b', displayName: 'B', type: 'object' }
166
+ ],
167
+ outputs: [
168
+ { name: 'result', displayName: 'Result', type: 'object' }
169
+ ],
170
+ color: '#9C27B0'
171
+ };
172
+ export class Fixed32MultiplyExecutor {
173
+ execute(node, context) {
174
+ const ctx = context;
175
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ONE);
176
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ONE);
177
+ return { outputs: { result: (a ?? Fixed32.ONE).mul(b ?? Fixed32.ONE) } };
178
+ }
179
+ }
180
+ // Fixed32 Divide
181
+ export const Fixed32DivideTemplate = {
182
+ type: 'Fixed32Divide',
183
+ title: 'Fixed32 /',
184
+ category: 'math',
185
+ description: 'Divides A by B',
186
+ keywords: ['fixed', 'divide', '/'],
187
+ menuPath: ['Math', 'Fixed', 'Divide'],
188
+ isPure: true,
189
+ inputs: [
190
+ { name: 'a', displayName: 'A', type: 'object' },
191
+ { name: 'b', displayName: 'B', type: 'object' }
192
+ ],
193
+ outputs: [
194
+ { name: 'result', displayName: 'Result', type: 'object' }
195
+ ],
196
+ color: '#9C27B0'
197
+ };
198
+ export class Fixed32DivideExecutor {
199
+ execute(node, context) {
200
+ const ctx = context;
201
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ZERO);
202
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ONE);
203
+ const divisor = b ?? Fixed32.ONE;
204
+ if (divisor.isZero()) {
205
+ return { outputs: { result: Fixed32.ZERO } };
206
+ }
207
+ return { outputs: { result: (a ?? Fixed32.ZERO).div(divisor) } };
208
+ }
209
+ }
210
+ // Fixed32 Negate
211
+ export const Fixed32NegateTemplate = {
212
+ type: 'Fixed32Negate',
213
+ title: 'Fixed32 Negate',
214
+ category: 'math',
215
+ description: 'Negates a Fixed32 value',
216
+ keywords: ['fixed', 'negate', '-'],
217
+ menuPath: ['Math', 'Fixed', 'Negate'],
218
+ isPure: true,
219
+ inputs: [
220
+ { name: 'value', displayName: 'Value', type: 'object' }
221
+ ],
222
+ outputs: [
223
+ { name: 'result', displayName: 'Result', type: 'object' }
224
+ ],
225
+ color: '#9C27B0'
226
+ };
227
+ export class Fixed32NegateExecutor {
228
+ execute(node, context) {
229
+ const ctx = context;
230
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
231
+ return { outputs: { result: (value ?? Fixed32.ZERO).neg() } };
232
+ }
233
+ }
234
+ // Fixed32 Abs
235
+ export const Fixed32AbsTemplate = {
236
+ type: 'Fixed32Abs',
237
+ title: 'Fixed32 Abs',
238
+ category: 'math',
239
+ description: 'Absolute value of Fixed32',
240
+ keywords: ['fixed', 'abs', 'absolute'],
241
+ menuPath: ['Math', 'Fixed', 'Abs'],
242
+ isPure: true,
243
+ inputs: [
244
+ { name: 'value', displayName: 'Value', type: 'object' }
245
+ ],
246
+ outputs: [
247
+ { name: 'result', displayName: 'Result', type: 'object' }
248
+ ],
249
+ color: '#9C27B0'
250
+ };
251
+ export class Fixed32AbsExecutor {
252
+ execute(node, context) {
253
+ const ctx = context;
254
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
255
+ return { outputs: { result: (value ?? Fixed32.ZERO).abs() } };
256
+ }
257
+ }
258
+ // Fixed32 Sqrt
259
+ export const Fixed32SqrtTemplate = {
260
+ type: 'Fixed32Sqrt',
261
+ title: 'Fixed32 Sqrt',
262
+ category: 'math',
263
+ description: 'Square root (deterministic)',
264
+ keywords: ['fixed', 'sqrt', 'square', 'root'],
265
+ menuPath: ['Math', 'Fixed', 'Sqrt'],
266
+ isPure: true,
267
+ inputs: [
268
+ { name: 'value', displayName: 'Value', type: 'object' }
269
+ ],
270
+ outputs: [
271
+ { name: 'result', displayName: 'Result', type: 'object' }
272
+ ],
273
+ color: '#9C27B0'
274
+ };
275
+ export class Fixed32SqrtExecutor {
276
+ execute(node, context) {
277
+ const ctx = context;
278
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
279
+ return { outputs: { result: Fixed32.sqrt(value ?? Fixed32.ZERO) } };
280
+ }
281
+ }
282
+ // Fixed32 Floor
283
+ export const Fixed32FloorTemplate = {
284
+ type: 'Fixed32Floor',
285
+ title: 'Fixed32 Floor',
286
+ category: 'math',
287
+ description: 'Floor of Fixed32',
288
+ keywords: ['fixed', 'floor', 'round', 'down'],
289
+ menuPath: ['Math', 'Fixed', 'Floor'],
290
+ isPure: true,
291
+ inputs: [
292
+ { name: 'value', displayName: 'Value', type: 'object' }
293
+ ],
294
+ outputs: [
295
+ { name: 'result', displayName: 'Result', type: 'object' }
296
+ ],
297
+ color: '#9C27B0'
298
+ };
299
+ export class Fixed32FloorExecutor {
300
+ execute(node, context) {
301
+ const ctx = context;
302
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
303
+ return { outputs: { result: Fixed32.floor(value ?? Fixed32.ZERO) } };
304
+ }
305
+ }
306
+ // Fixed32 Ceil
307
+ export const Fixed32CeilTemplate = {
308
+ type: 'Fixed32Ceil',
309
+ title: 'Fixed32 Ceil',
310
+ category: 'math',
311
+ description: 'Ceiling of Fixed32',
312
+ keywords: ['fixed', 'ceil', 'ceiling', 'round', 'up'],
313
+ menuPath: ['Math', 'Fixed', 'Ceil'],
314
+ isPure: true,
315
+ inputs: [
316
+ { name: 'value', displayName: 'Value', type: 'object' }
317
+ ],
318
+ outputs: [
319
+ { name: 'result', displayName: 'Result', type: 'object' }
320
+ ],
321
+ color: '#9C27B0'
322
+ };
323
+ export class Fixed32CeilExecutor {
324
+ execute(node, context) {
325
+ const ctx = context;
326
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
327
+ return { outputs: { result: Fixed32.ceil(value ?? Fixed32.ZERO) } };
328
+ }
329
+ }
330
+ // Fixed32 Round
331
+ export const Fixed32RoundTemplate = {
332
+ type: 'Fixed32Round',
333
+ title: 'Fixed32 Round',
334
+ category: 'math',
335
+ description: 'Rounds Fixed32 to nearest integer',
336
+ keywords: ['fixed', 'round'],
337
+ menuPath: ['Math', 'Fixed', 'Round'],
338
+ isPure: true,
339
+ inputs: [
340
+ { name: 'value', displayName: 'Value', type: 'object' }
341
+ ],
342
+ outputs: [
343
+ { name: 'result', displayName: 'Result', type: 'object' }
344
+ ],
345
+ color: '#9C27B0'
346
+ };
347
+ export class Fixed32RoundExecutor {
348
+ execute(node, context) {
349
+ const ctx = context;
350
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
351
+ return { outputs: { result: Fixed32.round(value ?? Fixed32.ZERO) } };
352
+ }
353
+ }
354
+ // Fixed32 Sign
355
+ export const Fixed32SignTemplate = {
356
+ type: 'Fixed32Sign',
357
+ title: 'Fixed32 Sign',
358
+ category: 'math',
359
+ description: 'Sign of Fixed32 (-1, 0, or 1)',
360
+ keywords: ['fixed', 'sign'],
361
+ menuPath: ['Math', 'Fixed', 'Sign'],
362
+ isPure: true,
363
+ inputs: [
364
+ { name: 'value', displayName: 'Value', type: 'object' }
365
+ ],
366
+ outputs: [
367
+ { name: 'result', displayName: 'Result', type: 'object' }
368
+ ],
369
+ color: '#9C27B0'
370
+ };
371
+ export class Fixed32SignExecutor {
372
+ execute(node, context) {
373
+ const ctx = context;
374
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
375
+ return { outputs: { result: Fixed32.sign(value ?? Fixed32.ZERO) } };
376
+ }
377
+ }
378
+ // Fixed32 Min
379
+ export const Fixed32MinTemplate = {
380
+ type: 'Fixed32Min',
381
+ title: 'Fixed32 Min',
382
+ category: 'math',
383
+ description: 'Minimum of two Fixed32 values',
384
+ keywords: ['fixed', 'min', 'minimum'],
385
+ menuPath: ['Math', 'Fixed', 'Min'],
386
+ isPure: true,
387
+ inputs: [
388
+ { name: 'a', displayName: 'A', type: 'object' },
389
+ { name: 'b', displayName: 'B', type: 'object' }
390
+ ],
391
+ outputs: [
392
+ { name: 'result', displayName: 'Result', type: 'object' }
393
+ ],
394
+ color: '#9C27B0'
395
+ };
396
+ export class Fixed32MinExecutor {
397
+ execute(node, context) {
398
+ const ctx = context;
399
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ZERO);
400
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ZERO);
401
+ return { outputs: { result: Fixed32.min(a ?? Fixed32.ZERO, b ?? Fixed32.ZERO) } };
402
+ }
403
+ }
404
+ // Fixed32 Max
405
+ export const Fixed32MaxTemplate = {
406
+ type: 'Fixed32Max',
407
+ title: 'Fixed32 Max',
408
+ category: 'math',
409
+ description: 'Maximum of two Fixed32 values',
410
+ keywords: ['fixed', 'max', 'maximum'],
411
+ menuPath: ['Math', 'Fixed', 'Max'],
412
+ isPure: true,
413
+ inputs: [
414
+ { name: 'a', displayName: 'A', type: 'object' },
415
+ { name: 'b', displayName: 'B', type: 'object' }
416
+ ],
417
+ outputs: [
418
+ { name: 'result', displayName: 'Result', type: 'object' }
419
+ ],
420
+ color: '#9C27B0'
421
+ };
422
+ export class Fixed32MaxExecutor {
423
+ execute(node, context) {
424
+ const ctx = context;
425
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ZERO);
426
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ZERO);
427
+ return { outputs: { result: Fixed32.max(a ?? Fixed32.ZERO, b ?? Fixed32.ZERO) } };
428
+ }
429
+ }
430
+ // Fixed32 Clamp
431
+ export const Fixed32ClampTemplate = {
432
+ type: 'Fixed32Clamp',
433
+ title: 'Fixed32 Clamp',
434
+ category: 'math',
435
+ description: 'Clamps Fixed32 to range',
436
+ keywords: ['fixed', 'clamp', 'limit', 'range'],
437
+ menuPath: ['Math', 'Fixed', 'Clamp'],
438
+ isPure: true,
439
+ inputs: [
440
+ { name: 'value', displayName: 'Value', type: 'object' },
441
+ { name: 'min', displayName: 'Min', type: 'object' },
442
+ { name: 'max', displayName: 'Max', type: 'object' }
443
+ ],
444
+ outputs: [
445
+ { name: 'result', displayName: 'Result', type: 'object' }
446
+ ],
447
+ color: '#9C27B0'
448
+ };
449
+ export class Fixed32ClampExecutor {
450
+ execute(node, context) {
451
+ const ctx = context;
452
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
453
+ const min = ctx.evaluateInput(node.id, 'min', Fixed32.ZERO);
454
+ const max = ctx.evaluateInput(node.id, 'max', Fixed32.ONE);
455
+ return { outputs: { result: Fixed32.clamp(value ?? Fixed32.ZERO, min ?? Fixed32.ZERO, max ?? Fixed32.ONE) } };
456
+ }
457
+ }
458
+ // Fixed32 Lerp
459
+ export const Fixed32LerpTemplate = {
460
+ type: 'Fixed32Lerp',
461
+ title: 'Fixed32 Lerp',
462
+ category: 'math',
463
+ description: 'Linear interpolation between A and B',
464
+ keywords: ['fixed', 'lerp', 'interpolate', 'blend'],
465
+ menuPath: ['Math', 'Fixed', 'Lerp'],
466
+ isPure: true,
467
+ inputs: [
468
+ { name: 'a', displayName: 'A', type: 'object' },
469
+ { name: 'b', displayName: 'B', type: 'object' },
470
+ { name: 't', displayName: 'T', type: 'object' }
471
+ ],
472
+ outputs: [
473
+ { name: 'result', displayName: 'Result', type: 'object' }
474
+ ],
475
+ color: '#9C27B0'
476
+ };
477
+ export class Fixed32LerpExecutor {
478
+ execute(node, context) {
479
+ const ctx = context;
480
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ZERO);
481
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ONE);
482
+ const t = ctx.evaluateInput(node.id, 't', Fixed32.HALF);
483
+ return { outputs: { result: Fixed32.lerp(a ?? Fixed32.ZERO, b ?? Fixed32.ONE, t ?? Fixed32.HALF) } };
484
+ }
485
+ }
486
+ // Fixed32 Compare
487
+ export const Fixed32CompareTemplate = {
488
+ type: 'Fixed32Compare',
489
+ title: 'Fixed32 Compare',
490
+ category: 'math',
491
+ description: 'Compares two Fixed32 values',
492
+ keywords: ['fixed', 'compare', 'equal', 'less', 'greater'],
493
+ menuPath: ['Math', 'Fixed', 'Compare'],
494
+ isPure: true,
495
+ inputs: [
496
+ { name: 'a', displayName: 'A', type: 'object' },
497
+ { name: 'b', displayName: 'B', type: 'object' }
498
+ ],
499
+ outputs: [
500
+ { name: 'equal', displayName: 'A == B', type: 'bool' },
501
+ { name: 'less', displayName: 'A < B', type: 'bool' },
502
+ { name: 'greater', displayName: 'A > B', type: 'bool' }
503
+ ],
504
+ color: '#9C27B0'
505
+ };
506
+ export class Fixed32CompareExecutor {
507
+ execute(node, context) {
508
+ const ctx = context;
509
+ const a = ctx.evaluateInput(node.id, 'a', Fixed32.ZERO);
510
+ const b = ctx.evaluateInput(node.id, 'b', Fixed32.ZERO);
511
+ const aVal = a ?? Fixed32.ZERO;
512
+ const bVal = b ?? Fixed32.ZERO;
513
+ return {
514
+ outputs: {
515
+ equal: aVal.eq(bVal),
516
+ less: aVal.lt(bVal),
517
+ greater: aVal.gt(bVal)
518
+ }
519
+ };
520
+ }
521
+ }
522
+ // Fixed32 IsZero
523
+ export const Fixed32IsZeroTemplate = {
524
+ type: 'Fixed32IsZero',
525
+ title: 'Fixed32 Is Zero',
526
+ category: 'math',
527
+ description: 'Checks if Fixed32 is zero, positive, or negative',
528
+ keywords: ['fixed', 'zero', 'check'],
529
+ menuPath: ['Math', 'Fixed', 'Is Zero'],
530
+ isPure: true,
531
+ inputs: [
532
+ { name: 'value', displayName: 'Value', type: 'object' }
533
+ ],
534
+ outputs: [
535
+ { name: 'isZero', displayName: 'Is Zero', type: 'bool' },
536
+ { name: 'isPositive', displayName: 'Is Positive', type: 'bool' },
537
+ { name: 'isNegative', displayName: 'Is Negative', type: 'bool' }
538
+ ],
539
+ color: '#9C27B0'
540
+ };
541
+ export class Fixed32IsZeroExecutor {
542
+ execute(node, context) {
543
+ const ctx = context;
544
+ const value = ctx.evaluateInput(node.id, 'value', Fixed32.ZERO);
545
+ const val = value ?? Fixed32.ZERO;
546
+ return {
547
+ outputs: {
548
+ isZero: val.isZero(),
549
+ isPositive: val.isPositive(),
550
+ isNegative: val.isNegative()
551
+ }
552
+ };
553
+ }
554
+ }
555
+ // Fixed32 Constants
556
+ export const Fixed32ConstantsTemplate = {
557
+ type: 'Fixed32Constants',
558
+ title: 'Fixed32 Constants',
559
+ category: 'math',
560
+ description: 'Common Fixed32 constants',
561
+ keywords: ['fixed', 'constant', 'pi', 'zero', 'one'],
562
+ menuPath: ['Math', 'Fixed', 'Constants'],
563
+ isPure: true,
564
+ inputs: [],
565
+ outputs: [
566
+ { name: 'zero', displayName: '0', type: 'object' },
567
+ { name: 'one', displayName: '1', type: 'object' },
568
+ { name: 'half', displayName: '0.5', type: 'object' },
569
+ { name: 'pi', displayName: 'PI', type: 'object' },
570
+ { name: 'twoPi', displayName: '2PI', type: 'object' }
571
+ ],
572
+ color: '#9C27B0'
573
+ };
574
+ export class Fixed32ConstantsExecutor {
575
+ execute() {
576
+ return {
577
+ outputs: {
578
+ zero: Fixed32.ZERO,
579
+ one: Fixed32.ONE,
580
+ half: Fixed32.HALF,
581
+ pi: Fixed32.PI,
582
+ twoPi: Fixed32.TWO_PI
583
+ }
584
+ };
585
+ }
586
+ }
587
+ // Node definitions collection
588
+ export const FixedNodeDefinitions = [
589
+ { template: Fixed32FromTemplate, executor: new Fixed32FromExecutor() },
590
+ { template: Fixed32FromIntTemplate, executor: new Fixed32FromIntExecutor() },
591
+ { template: Fixed32ToFloatTemplate, executor: new Fixed32ToFloatExecutor() },
592
+ { template: Fixed32ToIntTemplate, executor: new Fixed32ToIntExecutor() },
593
+ { template: Fixed32AddTemplate, executor: new Fixed32AddExecutor() },
594
+ { template: Fixed32SubtractTemplate, executor: new Fixed32SubtractExecutor() },
595
+ { template: Fixed32MultiplyTemplate, executor: new Fixed32MultiplyExecutor() },
596
+ { template: Fixed32DivideTemplate, executor: new Fixed32DivideExecutor() },
597
+ { template: Fixed32NegateTemplate, executor: new Fixed32NegateExecutor() },
598
+ { template: Fixed32AbsTemplate, executor: new Fixed32AbsExecutor() },
599
+ { template: Fixed32SqrtTemplate, executor: new Fixed32SqrtExecutor() },
600
+ { template: Fixed32FloorTemplate, executor: new Fixed32FloorExecutor() },
601
+ { template: Fixed32CeilTemplate, executor: new Fixed32CeilExecutor() },
602
+ { template: Fixed32RoundTemplate, executor: new Fixed32RoundExecutor() },
603
+ { template: Fixed32SignTemplate, executor: new Fixed32SignExecutor() },
604
+ { template: Fixed32MinTemplate, executor: new Fixed32MinExecutor() },
605
+ { template: Fixed32MaxTemplate, executor: new Fixed32MaxExecutor() },
606
+ { template: Fixed32ClampTemplate, executor: new Fixed32ClampExecutor() },
607
+ { template: Fixed32LerpTemplate, executor: new Fixed32LerpExecutor() },
608
+ { template: Fixed32CompareTemplate, executor: new Fixed32CompareExecutor() },
609
+ { template: Fixed32IsZeroTemplate, executor: new Fixed32IsZeroExecutor() },
610
+ { template: Fixed32ConstantsTemplate, executor: new Fixed32ConstantsExecutor() }
611
+ ];
612
+ //# sourceMappingURL=FixedNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedNodes.js","sourceRoot":"","sources":["../../src/nodes/FixedNodes.ts"],"names":[],"mappings":"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"}