@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
@@ -1,56 +0,0 @@
1
- import { Square } from "../geometry/square";
2
- export interface IVec2 {
3
- x: number;
4
- y: number;
5
- w: number;
6
- }
7
- export type Vec2Array = [number, number] | [number, number, number];
8
- export type Vec2String = `${number},${number}` | `${number},${number};${number}`;
9
- export type Vec2Like = IVec2 | Vec2Array | Vec2String | number;
10
- export type Vec2Arguments = [Vec2Like] | [number, number];
11
- export declare class Vec2 implements IVec2 {
12
- x: number;
13
- y: number;
14
- w: number;
15
- static resolve(a: unknown): Vec2;
16
- static resolveArgs(args: Vec2Arguments): Vec2;
17
- static is(a: unknown): a is Vec2Like;
18
- static fromPoints(a: Vec2Like, b: Vec2Like): Vec2;
19
- static clamp(value: Vec2Like, min: Vec2Like, max: Vec2Like): Vec2;
20
- constructor(x?: number, y?: number, w?: number);
21
- toArray(w?: boolean): Vec2Array;
22
- toJSON(): IVec2;
23
- toString(w?: boolean): Vec2String;
24
- toSquare(): Square;
25
- clone(): Vec2;
26
- setX(x: number): this;
27
- setY(y: number): this;
28
- setW(w: number): this;
29
- set(x: number, y: number): this;
30
- set(vec: Vec2Like): this;
31
- add(x: number, y: number): Vec2;
32
- add(vec: Vec2Like): Vec2;
33
- offset(x: number, y: number): this;
34
- offset(vec: Vec2Like): this;
35
- subtract(x: number, y: number): Vec2;
36
- subtract(vec: Vec2Like): Vec2;
37
- multiply(scalar: number): Vec2;
38
- naiveMultiply(x: number, y: number): Vec2;
39
- naiveMultiply(vec: Vec2Like): Vec2;
40
- divide(x: number, y: number): Vec2;
41
- divide(scalar: number): Vec2;
42
- divide(vec: Vec2Like): Vec2;
43
- dot(x: number, y: number): number;
44
- dot(vec: Vec2Like): number;
45
- distance(x: number, y: number): number;
46
- distance(vec: Vec2Like): number;
47
- distanceSquare(x: number, y: number): number;
48
- distanceSquare(vec: Vec2Like): number;
49
- length(): number;
50
- cartesianify(): Vec2;
51
- polarify(): Vec2;
52
- normalize(): Vec2;
53
- invert(): Vec2;
54
- round(): Vec2;
55
- }
56
- //# sourceMappingURL=vec2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../../source/vectors/vec2.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- import { IVec2 } from "./vec2";
2
- export interface IVec3 extends IVec2 {
3
- z: number;
4
- }
5
- export type Vec3Array = [number, number, number] | [number, number, number, number];
6
- export type Vec3String = `${number},${number},${number}` | `${number},${number},${number};${number}`;
7
- export type Vec3Like = IVec3 | Vec3Array | Vec3String | number;
8
- export type Vec3Arguments = [Vec3Like] | [number, number, number];
9
- export declare class Vec3 implements IVec3 {
10
- x: number;
11
- y: number;
12
- z: number;
13
- w: number;
14
- static resolve(a: unknown): Vec3;
15
- static resolveArgs(args: Vec3Arguments): Vec3;
16
- static is(a: unknown): a is Vec3Like;
17
- static fromPoints(a: Vec3Like, b: Vec3Like): Vec3;
18
- static clamp(value: Vec3Like, min: Vec3Like, max: Vec3Like): Vec3;
19
- static intersectPlane(planeP: Vec3Like, planeN: Vec3Like, lineStart: Vec3Like, lineEnd: Vec3Like, t: number): Vec3;
20
- constructor(x?: number, y?: number, z?: number, w?: number);
21
- toArray(w?: boolean): Vec3Array;
22
- toJSON(): IVec3;
23
- toString(w?: boolean): Vec3String;
24
- clone(): Vec3;
25
- setX(x: number): this;
26
- setY(y: number): this;
27
- setZ(z: number): this;
28
- set(x: number, y: number, z: number): this;
29
- set(vec: Vec3Like): this;
30
- add(x: number, y: number, z: number): Vec3;
31
- add(vec: Vec3Like): Vec3;
32
- offset(x: number, y: number, z: number): this;
33
- offset(vec: Vec3Like): this;
34
- subtract(x: number, y: number, z: number): Vec3;
35
- subtract(vec: Vec3Like): Vec3;
36
- multiply(scalar: number): Vec3;
37
- naiveMultiply(x: number, y: number, z: number): Vec3;
38
- naiveMultiply(vec: Vec3Like): Vec3;
39
- divide(x: number, y: number, z: number): Vec3;
40
- divide(scalar: number): Vec3;
41
- divide(vec: Vec3Like): Vec3;
42
- dot(x: number, y: number, z: number): number;
43
- dot(vec: Vec3Like): number;
44
- cross(x: number, y: number, z: number): Vec3;
45
- cross(vec: Vec3Like): Vec3;
46
- distance(x: number, y: number, z: number): number;
47
- distance(vec: Vec3Like): number;
48
- distanceSquare(x: number, y: number, z: number): number;
49
- distanceSquare(vec: Vec3Like): number;
50
- length(): number;
51
- normalize(): Vec3;
52
- invert(): Vec3;
53
- round(): Vec3;
54
- }
55
- //# sourceMappingURL=vec3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vec3.d.ts","sourceRoot":"","sources":["../../../source/vectors/vec3.ts"],"names":[],"mappings":"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"}