@pawells/math-extended 1.0.1
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/LICENSE +21 -0
- package/README.md +319 -0
- package/build/angles.d.ts +31 -0
- package/build/angles.d.ts.map +1 -0
- package/build/angles.js +85 -0
- package/build/angles.js.map +1 -0
- package/build/angles.spec.d.ts +2 -0
- package/build/angles.spec.d.ts.map +1 -0
- package/build/angles.spec.js +147 -0
- package/build/angles.spec.js.map +1 -0
- package/build/clamp.d.ts +17 -0
- package/build/clamp.d.ts.map +1 -0
- package/build/clamp.js +19 -0
- package/build/clamp.js.map +1 -0
- package/build/clamp.spec.d.ts +2 -0
- package/build/clamp.spec.d.ts.map +1 -0
- package/build/clamp.spec.js +19 -0
- package/build/clamp.spec.js.map +1 -0
- package/build/documentation-validation.spec.d.ts +11 -0
- package/build/documentation-validation.spec.d.ts.map +1 -0
- package/build/documentation-validation.spec.js +401 -0
- package/build/documentation-validation.spec.js.map +1 -0
- package/build/index.d.ts +8 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +8 -0
- package/build/index.js.map +1 -0
- package/build/interpolation.d.ts +175 -0
- package/build/interpolation.d.ts.map +1 -0
- package/build/interpolation.js +369 -0
- package/build/interpolation.js.map +1 -0
- package/build/interpolation.spec.d.ts +2 -0
- package/build/interpolation.spec.d.ts.map +1 -0
- package/build/interpolation.spec.js +480 -0
- package/build/interpolation.spec.js.map +1 -0
- package/build/matrices/arithmetic.d.ts +411 -0
- package/build/matrices/arithmetic.d.ts.map +1 -0
- package/build/matrices/arithmetic.js +954 -0
- package/build/matrices/arithmetic.js.map +1 -0
- package/build/matrices/arithmetic.spec.d.ts +2 -0
- package/build/matrices/arithmetic.spec.d.ts.map +1 -0
- package/build/matrices/arithmetic.spec.js +915 -0
- package/build/matrices/arithmetic.spec.js.map +1 -0
- package/build/matrices/asserts.d.ts +306 -0
- package/build/matrices/asserts.d.ts.map +1 -0
- package/build/matrices/asserts.js +396 -0
- package/build/matrices/asserts.js.map +1 -0
- package/build/matrices/asserts.spec.d.ts +2 -0
- package/build/matrices/asserts.spec.d.ts.map +1 -0
- package/build/matrices/asserts.spec.js +565 -0
- package/build/matrices/asserts.spec.js.map +1 -0
- package/build/matrices/core.d.ts +168 -0
- package/build/matrices/core.d.ts.map +1 -0
- package/build/matrices/core.js +457 -0
- package/build/matrices/core.js.map +1 -0
- package/build/matrices/core.spec.d.ts +2 -0
- package/build/matrices/core.spec.d.ts.map +1 -0
- package/build/matrices/core.spec.js +634 -0
- package/build/matrices/core.spec.js.map +1 -0
- package/build/matrices/decompositions.d.ts +326 -0
- package/build/matrices/decompositions.d.ts.map +1 -0
- package/build/matrices/decompositions.js +816 -0
- package/build/matrices/decompositions.js.map +1 -0
- package/build/matrices/decompositions.spec.d.ts +2 -0
- package/build/matrices/decompositions.spec.d.ts.map +1 -0
- package/build/matrices/decompositions.spec.js +195 -0
- package/build/matrices/decompositions.spec.js.map +1 -0
- package/build/matrices/index.d.ts +9 -0
- package/build/matrices/index.d.ts.map +1 -0
- package/build/matrices/index.js +9 -0
- package/build/matrices/index.js.map +1 -0
- package/build/matrices/linear-algebra.d.ts +64 -0
- package/build/matrices/linear-algebra.d.ts.map +1 -0
- package/build/matrices/linear-algebra.js +253 -0
- package/build/matrices/linear-algebra.js.map +1 -0
- package/build/matrices/linear-algebra.spec.d.ts +2 -0
- package/build/matrices/linear-algebra.spec.d.ts.map +1 -0
- package/build/matrices/linear-algebra.spec.js +355 -0
- package/build/matrices/linear-algebra.spec.js.map +1 -0
- package/build/matrices/normalization.d.ts +62 -0
- package/build/matrices/normalization.d.ts.map +1 -0
- package/build/matrices/normalization.js +167 -0
- package/build/matrices/normalization.js.map +1 -0
- package/build/matrices/normalization.spec.d.ts +2 -0
- package/build/matrices/normalization.spec.d.ts.map +1 -0
- package/build/matrices/normalization.spec.js +335 -0
- package/build/matrices/normalization.spec.js.map +1 -0
- package/build/matrices/transformations.d.ts +484 -0
- package/build/matrices/transformations.d.ts.map +1 -0
- package/build/matrices/transformations.js +592 -0
- package/build/matrices/transformations.js.map +1 -0
- package/build/matrices/transformations.spec.d.ts +2 -0
- package/build/matrices/transformations.spec.d.ts.map +1 -0
- package/build/matrices/transformations.spec.js +755 -0
- package/build/matrices/transformations.spec.js.map +1 -0
- package/build/matrices/types.d.ts +134 -0
- package/build/matrices/types.d.ts.map +1 -0
- package/build/matrices/types.js +6 -0
- package/build/matrices/types.js.map +1 -0
- package/build/quaternions/asserts.d.ts +77 -0
- package/build/quaternions/asserts.d.ts.map +1 -0
- package/build/quaternions/asserts.js +175 -0
- package/build/quaternions/asserts.js.map +1 -0
- package/build/quaternions/asserts.spec.d.ts +2 -0
- package/build/quaternions/asserts.spec.d.ts.map +1 -0
- package/build/quaternions/asserts.spec.js +320 -0
- package/build/quaternions/asserts.spec.js.map +1 -0
- package/build/quaternions/conversions.d.ts +73 -0
- package/build/quaternions/conversions.d.ts.map +1 -0
- package/build/quaternions/conversions.js +179 -0
- package/build/quaternions/conversions.js.map +1 -0
- package/build/quaternions/conversions.spec.d.ts +2 -0
- package/build/quaternions/conversions.spec.d.ts.map +1 -0
- package/build/quaternions/conversions.spec.js +344 -0
- package/build/quaternions/conversions.spec.js.map +1 -0
- package/build/quaternions/core.d.ts +203 -0
- package/build/quaternions/core.d.ts.map +1 -0
- package/build/quaternions/core.js +374 -0
- package/build/quaternions/core.js.map +1 -0
- package/build/quaternions/core.spec.d.ts +2 -0
- package/build/quaternions/core.spec.d.ts.map +1 -0
- package/build/quaternions/core.spec.js +294 -0
- package/build/quaternions/core.spec.js.map +1 -0
- package/build/quaternions/index.d.ts +7 -0
- package/build/quaternions/index.d.ts.map +1 -0
- package/build/quaternions/index.js +7 -0
- package/build/quaternions/index.js.map +1 -0
- package/build/quaternions/interpolation.d.ts +54 -0
- package/build/quaternions/interpolation.d.ts.map +1 -0
- package/build/quaternions/interpolation.js +201 -0
- package/build/quaternions/interpolation.js.map +1 -0
- package/build/quaternions/interpolation.spec.d.ts +2 -0
- package/build/quaternions/interpolation.spec.d.ts.map +1 -0
- package/build/quaternions/interpolation.spec.js +64 -0
- package/build/quaternions/interpolation.spec.js.map +1 -0
- package/build/quaternions/predefined.d.ts +36 -0
- package/build/quaternions/predefined.d.ts.map +1 -0
- package/build/quaternions/predefined.js +42 -0
- package/build/quaternions/predefined.js.map +1 -0
- package/build/quaternions/predefined.spec.d.ts +2 -0
- package/build/quaternions/predefined.spec.d.ts.map +1 -0
- package/build/quaternions/predefined.spec.js +35 -0
- package/build/quaternions/predefined.spec.js.map +1 -0
- package/build/quaternions/types.d.ts +55 -0
- package/build/quaternions/types.d.ts.map +1 -0
- package/build/quaternions/types.js +7 -0
- package/build/quaternions/types.js.map +1 -0
- package/build/random.d.ts +66 -0
- package/build/random.d.ts.map +1 -0
- package/build/random.js +115 -0
- package/build/random.js.map +1 -0
- package/build/random.spec.d.ts +2 -0
- package/build/random.spec.d.ts.map +1 -0
- package/build/random.spec.js +267 -0
- package/build/random.spec.js.map +1 -0
- package/build/vectors/asserts.d.ts +182 -0
- package/build/vectors/asserts.d.ts.map +1 -0
- package/build/vectors/asserts.js +285 -0
- package/build/vectors/asserts.js.map +1 -0
- package/build/vectors/asserts.spec.d.ts +2 -0
- package/build/vectors/asserts.spec.d.ts.map +1 -0
- package/build/vectors/asserts.spec.js +260 -0
- package/build/vectors/asserts.spec.js.map +1 -0
- package/build/vectors/core.d.ts +507 -0
- package/build/vectors/core.d.ts.map +1 -0
- package/build/vectors/core.js +825 -0
- package/build/vectors/core.js.map +1 -0
- package/build/vectors/core.spec.d.ts +2 -0
- package/build/vectors/core.spec.d.ts.map +1 -0
- package/build/vectors/core.spec.js +343 -0
- package/build/vectors/core.spec.js.map +1 -0
- package/build/vectors/index.d.ts +6 -0
- package/build/vectors/index.d.ts.map +1 -0
- package/build/vectors/index.js +6 -0
- package/build/vectors/index.js.map +1 -0
- package/build/vectors/interpolation.d.ts +404 -0
- package/build/vectors/interpolation.d.ts.map +1 -0
- package/build/vectors/interpolation.js +585 -0
- package/build/vectors/interpolation.js.map +1 -0
- package/build/vectors/interpolation.spec.d.ts +2 -0
- package/build/vectors/interpolation.spec.d.ts.map +1 -0
- package/build/vectors/interpolation.spec.js +378 -0
- package/build/vectors/interpolation.spec.js.map +1 -0
- package/build/vectors/predefined.d.ts +191 -0
- package/build/vectors/predefined.d.ts.map +1 -0
- package/build/vectors/predefined.js +191 -0
- package/build/vectors/predefined.js.map +1 -0
- package/build/vectors/predefined.spec.d.ts +2 -0
- package/build/vectors/predefined.spec.d.ts.map +1 -0
- package/build/vectors/predefined.spec.js +333 -0
- package/build/vectors/predefined.spec.js.map +1 -0
- package/build/vectors/types.d.ts +62 -0
- package/build/vectors/types.d.ts.map +1 -0
- package/build/vectors/types.js +6 -0
- package/build/vectors/types.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { VectorLERP, VectorSmoothStep, VectorSmootherStep, VectorQuadraticEaseIn, VectorQuadraticEaseOut, VectorCubicEaseIn, VectorCubicEaseOut, VectorCosineInterpolation, VectorSineEaseIn, VectorSineEaseOut, VectorExponentialEaseIn, VectorExponentialEaseOut, VectorElasticEaseOut, VectorBackEaseOut, VectorBounceEaseOut, VectorCatmullRomInterpolation, VectorHermiteInterpolation, VectorCircularEaseIn, VectorCircularEaseOut, VectorStepInterpolation, VectorSphericalLinearInterpolation } from './interpolation.js';
|
|
2
|
+
import { VectorError } from './asserts.js';
|
|
3
|
+
describe('Vector Interpolation', () => {
|
|
4
|
+
// Test vectors for different dimensions
|
|
5
|
+
const vec2a = [0, 0];
|
|
6
|
+
const vec2b = [10, 20];
|
|
7
|
+
const vec3a = [0, 0, 0];
|
|
8
|
+
const vec3b = [10, 20, 30];
|
|
9
|
+
const vec4a = [0, 0, 0, 0];
|
|
10
|
+
const vec4b = [10, 20, 30, 40];
|
|
11
|
+
// Helper function to check if values are approximately equal
|
|
12
|
+
const expectVectorToBeCloseTo = (actual, expected, precision = 5) => {
|
|
13
|
+
expect(actual.length).toBe(expected.length);
|
|
14
|
+
for (let i = 0; i < actual.length; i++) {
|
|
15
|
+
const actualValue = actual[i];
|
|
16
|
+
const expectedValue = expected[i];
|
|
17
|
+
if (actualValue !== undefined && expectedValue !== undefined) {
|
|
18
|
+
expect(actualValue).toBeCloseTo(expectedValue, precision);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
describe('VectorLERP', () => {
|
|
23
|
+
it('should perform linear interpolation at t=0', () => {
|
|
24
|
+
expectVectorToBeCloseTo(VectorLERP(vec2a, vec2b, 0), [0, 0], 10);
|
|
25
|
+
expectVectorToBeCloseTo(VectorLERP(vec3a, vec3b, 0), [0, 0, 0], 10);
|
|
26
|
+
expectVectorToBeCloseTo(VectorLERP(vec4a, vec4b, 0), [0, 0, 0, 0], 10);
|
|
27
|
+
});
|
|
28
|
+
it('should perform linear interpolation at t=1', () => {
|
|
29
|
+
expectVectorToBeCloseTo(VectorLERP(vec2a, vec2b, 1), [10, 20], 10);
|
|
30
|
+
expectVectorToBeCloseTo(VectorLERP(vec3a, vec3b, 1), [10, 20, 30], 10);
|
|
31
|
+
expectVectorToBeCloseTo(VectorLERP(vec4a, vec4b, 1), [10, 20, 30, 40], 10);
|
|
32
|
+
});
|
|
33
|
+
it('should perform linear interpolation at t=0.5', () => {
|
|
34
|
+
expectVectorToBeCloseTo(VectorLERP(vec2a, vec2b, 0.5), [5, 10], 10);
|
|
35
|
+
expectVectorToBeCloseTo(VectorLERP(vec3a, vec3b, 0.5), [5, 10, 15], 10);
|
|
36
|
+
expectVectorToBeCloseTo(VectorLERP(vec4a, vec4b, 0.5), [5, 10, 15, 20], 10);
|
|
37
|
+
});
|
|
38
|
+
it('should handle extrapolation beyond [0,1]', () => {
|
|
39
|
+
expectVectorToBeCloseTo(VectorLERP(vec2a, vec2b, -0.5), [-5, -10], 10);
|
|
40
|
+
expectVectorToBeCloseTo(VectorLERP(vec2a, vec2b, 1.5), [15, 30], 10);
|
|
41
|
+
});
|
|
42
|
+
it('should throw for mismatched vector dimensions', () => {
|
|
43
|
+
expect(() => VectorLERP([1, 2], [1, 2, 3], 0.5)).toThrow(VectorError);
|
|
44
|
+
});
|
|
45
|
+
it('should throw for non-numeric t parameter', () => {
|
|
46
|
+
expect(() => VectorLERP(vec2a, vec2b, NaN)).toThrow();
|
|
47
|
+
});
|
|
48
|
+
it('should throw for invalid vector values', () => {
|
|
49
|
+
expect(() => VectorLERP([1, NaN], [1, 2], 0.5)).toThrow();
|
|
50
|
+
expect(() => VectorLERP([1, 2], [1, Infinity], 0.5)).toThrow();
|
|
51
|
+
});
|
|
52
|
+
it('should throw for empty vectors', () => {
|
|
53
|
+
expect(() => VectorLERP([], [], 0.5)).toThrow(VectorError);
|
|
54
|
+
});
|
|
55
|
+
it('should throw for vectors with Infinity', () => {
|
|
56
|
+
expect(() => VectorLERP([1, Infinity], [1, 2], 0.5)).toThrow(VectorError);
|
|
57
|
+
expect(() => VectorLERP([1, 2], [1, -Infinity], 0.5)).toThrow(VectorError);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('VectorSmoothStep', () => {
|
|
61
|
+
it('should return start vector at t=0', () => {
|
|
62
|
+
expect(VectorSmoothStep(vec2a, vec2b, 0)).toEqual([0, 0]);
|
|
63
|
+
});
|
|
64
|
+
it('should return end vector at t=1', () => {
|
|
65
|
+
expect(VectorSmoothStep(vec2a, vec2b, 1)).toEqual([10, 20]);
|
|
66
|
+
});
|
|
67
|
+
it('should provide smooth interpolation at t=0.5', () => {
|
|
68
|
+
const result = VectorSmoothStep(vec2a, vec2b, 0.5);
|
|
69
|
+
expectVectorToBeCloseTo(result, [5, 10]);
|
|
70
|
+
});
|
|
71
|
+
it('should have zero derivative at endpoints', () => {
|
|
72
|
+
// Test very close to endpoints to verify smooth start/end
|
|
73
|
+
const nearStart = VectorSmoothStep(vec2a, vec2b, 0.01);
|
|
74
|
+
const nearEnd = VectorSmoothStep(vec2a, vec2b, 0.99);
|
|
75
|
+
// Near start should be very close to start
|
|
76
|
+
expectVectorToBeCloseTo(nearStart, [0.00298, 0.00596], 4);
|
|
77
|
+
// Near end should be very close to end
|
|
78
|
+
expectVectorToBeCloseTo(nearEnd, [9.99702, 19.99404], 4);
|
|
79
|
+
});
|
|
80
|
+
it('should extrapolate for t < 0 and t > 1', () => {
|
|
81
|
+
expect(VectorSmoothStep(vec2a, vec2b, -1)).toEqual([50, 100]);
|
|
82
|
+
expect(VectorSmoothStep(vec2a, vec2b, 2)).toEqual([-40, -80]);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('VectorSmootherStep', () => {
|
|
86
|
+
it('should return start vector at t=0', () => {
|
|
87
|
+
expect(VectorSmootherStep(vec2a, vec2b, 0)).toEqual([0, 0]);
|
|
88
|
+
});
|
|
89
|
+
it('should return end vector at t=1', () => {
|
|
90
|
+
expect(VectorSmootherStep(vec2a, vec2b, 1)).toEqual([10, 20]);
|
|
91
|
+
});
|
|
92
|
+
it('should be smoother than SmoothStep', () => {
|
|
93
|
+
const smoothResult = VectorSmoothStep(vec2a, vec2b, 0.1);
|
|
94
|
+
const smootherResult = VectorSmootherStep(vec2a, vec2b, 0.1);
|
|
95
|
+
// SmootherStep should start even more gradually
|
|
96
|
+
expect(smootherResult[0]).toBeLessThan(smoothResult[0]);
|
|
97
|
+
});
|
|
98
|
+
it('should extrapolate for t < 0 and t > 1', () => {
|
|
99
|
+
expect(VectorSmootherStep(vec2a, vec2b, -1)).toEqual([-310, -620]);
|
|
100
|
+
expect(VectorSmootherStep(vec2a, vec2b, 2)).toEqual([320, 640]);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
describe('VectorQuadraticEaseIn', () => {
|
|
104
|
+
it('should start slowly and accelerate', () => {
|
|
105
|
+
const result1 = VectorQuadraticEaseIn(vec2a, vec2b, 0.1);
|
|
106
|
+
const result2 = VectorQuadraticEaseIn(vec2a, vec2b, 0.5);
|
|
107
|
+
const result3 = VectorQuadraticEaseIn(vec2a, vec2b, 0.9);
|
|
108
|
+
// Should be closer to start at t=0.1 than linear interpolation
|
|
109
|
+
const linearResult1 = VectorLERP(vec2a, vec2b, 0.1);
|
|
110
|
+
expect(result1[0]).toBeLessThan(linearResult1[0]);
|
|
111
|
+
// Should be accelerating
|
|
112
|
+
expect(result2[0]).toBeCloseTo(2.5, 1);
|
|
113
|
+
expect(result3[0]).toBeCloseTo(8.1, 1);
|
|
114
|
+
});
|
|
115
|
+
it('should extrapolate for t < 0 and t > 1', () => {
|
|
116
|
+
expect(VectorQuadraticEaseIn(vec2a, vec2b, -1)).toEqual([10, 20]);
|
|
117
|
+
expect(VectorQuadraticEaseIn(vec2a, vec2b, 2)).toEqual([40, 80]);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
describe('VectorQuadraticEaseOut', () => {
|
|
121
|
+
it('should start quickly and decelerate', () => {
|
|
122
|
+
const result1 = VectorQuadraticEaseOut(vec2a, vec2b, 0.1);
|
|
123
|
+
const result2 = VectorQuadraticEaseOut(vec2a, vec2b, 0.5);
|
|
124
|
+
const result3 = VectorQuadraticEaseOut(vec2a, vec2b, 0.9);
|
|
125
|
+
// Should be further from start at t=0.1 than linear interpolation
|
|
126
|
+
const linearResult1 = VectorLERP(vec2a, vec2b, 0.1);
|
|
127
|
+
expect(result1[0]).toBeGreaterThan(linearResult1[0]);
|
|
128
|
+
// Should be decelerating
|
|
129
|
+
expect(result2[0]).toBeCloseTo(7.5, 1);
|
|
130
|
+
expect(result3[0]).toBeCloseTo(9.9, 1);
|
|
131
|
+
});
|
|
132
|
+
it('should extrapolate for t < 0 and t > 1', () => {
|
|
133
|
+
expect(VectorQuadraticEaseOut(vec2a, vec2b, -1)).toEqual([-30, -60]);
|
|
134
|
+
expect(VectorQuadraticEaseOut(vec2a, vec2b, 2)).toEqual([0, 0]);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('VectorCubicEaseIn', () => {
|
|
138
|
+
it('should provide cubic acceleration curve', () => {
|
|
139
|
+
const result = VectorCubicEaseIn(vec2a, vec2b, 0.5);
|
|
140
|
+
expectVectorToBeCloseTo(result, [1.25, 2.5]);
|
|
141
|
+
});
|
|
142
|
+
it('should extrapolate for t < 0 and t > 1', () => {
|
|
143
|
+
expect(VectorCubicEaseIn(vec2a, vec2b, -1)).toEqual([-10, -20]);
|
|
144
|
+
expect(VectorCubicEaseIn(vec2a, vec2b, 2)).toEqual([80, 160]);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
describe('VectorCubicEaseOut', () => {
|
|
148
|
+
it('should provide cubic deceleration curve', () => {
|
|
149
|
+
const result = VectorCubicEaseOut(vec2a, vec2b, 0.5);
|
|
150
|
+
expectVectorToBeCloseTo(result, [8.75, 17.5]);
|
|
151
|
+
});
|
|
152
|
+
it('should extrapolate for t < 0 and t > 1', () => {
|
|
153
|
+
expect(VectorCubicEaseOut(vec2a, vec2b, -1)).toEqual([-70, -140]);
|
|
154
|
+
expect(VectorCubicEaseOut(vec2a, vec2b, 2)).toEqual([20, 40]);
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
describe('VectorCosineInterpolation', () => {
|
|
158
|
+
it('should provide smooth cosine-based interpolation', () => {
|
|
159
|
+
const result = VectorCosineInterpolation(vec2a, vec2b, 0.5);
|
|
160
|
+
expectVectorToBeCloseTo(result, [5, 10]);
|
|
161
|
+
});
|
|
162
|
+
it('should be smooth at endpoints', () => {
|
|
163
|
+
const result0 = VectorCosineInterpolation(vec2a, vec2b, 0);
|
|
164
|
+
const result1 = VectorCosineInterpolation(vec2a, vec2b, 1);
|
|
165
|
+
expect(result0).toEqual([0, 0]);
|
|
166
|
+
expect(result1).toEqual([10, 20]);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
describe('VectorSineEaseIn', () => {
|
|
170
|
+
it('should provide sine-based ease in', () => {
|
|
171
|
+
const result = VectorSineEaseIn(vec2a, vec2b, 0.5);
|
|
172
|
+
// Should be less than linear at 0.5
|
|
173
|
+
expect(result[0]).toBeLessThan(5);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
describe('VectorSineEaseOut', () => {
|
|
177
|
+
it('should provide sine-based ease out', () => {
|
|
178
|
+
const result = VectorSineEaseOut(vec2a, vec2b, 0.5);
|
|
179
|
+
// Should be greater than linear at 0.5
|
|
180
|
+
expect(result[0]).toBeGreaterThan(5);
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
describe('VectorExponentialEaseIn', () => {
|
|
184
|
+
it('should start very slowly', () => {
|
|
185
|
+
const result = VectorExponentialEaseIn(vec2a, vec2b, 0.1);
|
|
186
|
+
// Should be very close to start
|
|
187
|
+
expect(result[0]).toBeLessThan(0.1);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
describe('VectorExponentialEaseOut', () => {
|
|
191
|
+
it('should approach end very slowly', () => {
|
|
192
|
+
const result = VectorExponentialEaseOut(vec2a, vec2b, 0.9);
|
|
193
|
+
// Should be very close to end
|
|
194
|
+
expect(result[0]).toBeGreaterThan(9.9);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
describe('VectorElasticEaseOut', () => {
|
|
198
|
+
it('should create elastic overshoot effect', () => {
|
|
199
|
+
const result = VectorElasticEaseOut(vec2a, vec2b, 0.7);
|
|
200
|
+
// Elastic should overshoot beyond target at some point
|
|
201
|
+
// This is hard to test precisely, so we just verify it doesn't crash
|
|
202
|
+
expect(Array.isArray(result)).toBe(true);
|
|
203
|
+
expect(result.length).toBe(2);
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
describe('VectorBackEaseOut', () => {
|
|
207
|
+
it('should create back overshoot effect', () => {
|
|
208
|
+
const result = VectorBackEaseOut(vec2a, vec2b, 0.8);
|
|
209
|
+
expect(Array.isArray(result)).toBe(true);
|
|
210
|
+
expect(result.length).toBe(2);
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
describe('VectorBounceEaseOut', () => {
|
|
214
|
+
it('should create bouncing effect', () => {
|
|
215
|
+
const result = VectorBounceEaseOut(vec2a, vec2b, 0.8);
|
|
216
|
+
expect(Array.isArray(result)).toBe(true);
|
|
217
|
+
expect(result.length).toBe(2);
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
describe('VectorCircularEaseIn', () => {
|
|
221
|
+
it('should provide circular ease in curve', () => {
|
|
222
|
+
const result = VectorCircularEaseIn(vec2a, vec2b, 0.5);
|
|
223
|
+
// Should start slowly
|
|
224
|
+
expect(result[0]).toBeLessThan(5);
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
describe('VectorCircularEaseOut', () => {
|
|
228
|
+
it('should provide circular ease out curve', () => {
|
|
229
|
+
const result = VectorCircularEaseOut(vec2a, vec2b, 0.5);
|
|
230
|
+
// Should end slowly
|
|
231
|
+
expect(result[0]).toBeGreaterThan(5);
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
describe('VectorStepInterpolation', () => {
|
|
235
|
+
it('should step at default threshold (0.5)', () => {
|
|
236
|
+
const result1 = VectorStepInterpolation(vec2a, vec2b, 0.4);
|
|
237
|
+
const result2 = VectorStepInterpolation(vec2a, vec2b, 0.6);
|
|
238
|
+
expect(result1).toEqual([0, 0]);
|
|
239
|
+
expect(result2).toEqual([10, 20]);
|
|
240
|
+
});
|
|
241
|
+
it('should step at custom threshold', () => {
|
|
242
|
+
const result1 = VectorStepInterpolation(vec2a, vec2b, 0.3, 0.7);
|
|
243
|
+
const result2 = VectorStepInterpolation(vec2a, vec2b, 0.8, 0.7);
|
|
244
|
+
expect(result1).toEqual([0, 0]);
|
|
245
|
+
expect(result2).toEqual([10, 20]);
|
|
246
|
+
});
|
|
247
|
+
it('should throw for invalid threshold', () => {
|
|
248
|
+
expect(() => VectorStepInterpolation(vec2a, vec2b, 0.5, NaN)).toThrow();
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
describe('VectorCatmullRomInterpolation', () => {
|
|
252
|
+
it('should interpolate through control points', () => {
|
|
253
|
+
const p0 = [-5, -10];
|
|
254
|
+
const p1 = [0, 0];
|
|
255
|
+
const p2 = [10, 20];
|
|
256
|
+
const p3 = [15, 30];
|
|
257
|
+
// At t=0, should return p1
|
|
258
|
+
const result0 = VectorCatmullRomInterpolation(p0, p1, p2, p3, 0);
|
|
259
|
+
expectVectorToBeCloseTo(result0, p1);
|
|
260
|
+
// At t=1, should return p2
|
|
261
|
+
const result1 = VectorCatmullRomInterpolation(p0, p1, p2, p3, 1);
|
|
262
|
+
expectVectorToBeCloseTo(result1, p2);
|
|
263
|
+
});
|
|
264
|
+
it('should throw for mismatched dimensions', () => {
|
|
265
|
+
expect(() => VectorCatmullRomInterpolation([1, 2], [1, 2, 3], [1, 2], [1, 2], 0.5)).toThrow(VectorError);
|
|
266
|
+
});
|
|
267
|
+
it('should throw for invalid values', () => {
|
|
268
|
+
expect(() => VectorCatmullRomInterpolation([1, NaN], [1, 2], [1, 2], [1, 2], 0.5)).toThrow();
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
describe('VectorHermiteInterpolation', () => {
|
|
272
|
+
it('should interpolate with tangent control', () => {
|
|
273
|
+
const p0 = [0, 0];
|
|
274
|
+
const p1 = [10, 20];
|
|
275
|
+
const t0 = [1, 1]; // Start tangent
|
|
276
|
+
const t1 = [1, 1]; // End tangent
|
|
277
|
+
// At t=0, should return p0
|
|
278
|
+
const result0 = VectorHermiteInterpolation(p0, p1, t0, t1, 0);
|
|
279
|
+
expectVectorToBeCloseTo(result0, p0);
|
|
280
|
+
// At t=1, should return p1
|
|
281
|
+
const result1 = VectorHermiteInterpolation(p0, p1, t0, t1, 1);
|
|
282
|
+
expectVectorToBeCloseTo(result1, p1);
|
|
283
|
+
});
|
|
284
|
+
it('should throw for mismatched dimensions', () => {
|
|
285
|
+
expect(() => VectorHermiteInterpolation([1, 2], [1, 2, 3], [1, 2], [1, 2], 0.5)).toThrow(VectorError);
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
describe('VectorSphericalLinearInterpolation', () => {
|
|
289
|
+
it('should perform SLERP on 2D vectors', () => {
|
|
290
|
+
const a = [1, 0];
|
|
291
|
+
const b = [0, 1];
|
|
292
|
+
const result = VectorSphericalLinearInterpolation(a, b, 0.5);
|
|
293
|
+
// Should be normalized and at 45 degrees
|
|
294
|
+
expectVectorToBeCloseTo(result, [0.7071, 0.7071], 3);
|
|
295
|
+
});
|
|
296
|
+
it('should perform SLERP on 3D vectors', () => {
|
|
297
|
+
const a = [1, 0, 0];
|
|
298
|
+
const b = [0, 1, 0];
|
|
299
|
+
const result = VectorSphericalLinearInterpolation(a, b, 0.5);
|
|
300
|
+
expectVectorToBeCloseTo(result, [0.7071, 0.7071, 0], 3);
|
|
301
|
+
});
|
|
302
|
+
it('should handle parallel vectors by falling back to LERP', () => {
|
|
303
|
+
const a = [1, 1];
|
|
304
|
+
const b = [2, 2];
|
|
305
|
+
const result = VectorSphericalLinearInterpolation(a, b, 0.5);
|
|
306
|
+
const lerpResult = VectorLERP(a, b, 0.5);
|
|
307
|
+
expectVectorToBeCloseTo(result, lerpResult);
|
|
308
|
+
});
|
|
309
|
+
it('should handle anti-parallel vectors', () => {
|
|
310
|
+
const a = [1, 0];
|
|
311
|
+
const b = [-1, 0];
|
|
312
|
+
// Should handle this case without error
|
|
313
|
+
const result = VectorSphericalLinearInterpolation(a, b, 0.5);
|
|
314
|
+
expect(Array.isArray(result)).toBe(true);
|
|
315
|
+
expect(result.length).toBe(2);
|
|
316
|
+
});
|
|
317
|
+
it('should extrapolate for t < 0 and t > 1', () => {
|
|
318
|
+
const a = [1, 0];
|
|
319
|
+
const b = [0, 1];
|
|
320
|
+
const resultBelow = VectorSphericalLinearInterpolation(a, b, -0.5);
|
|
321
|
+
const resultAbove = VectorSphericalLinearInterpolation(a, b, 1.5);
|
|
322
|
+
// Should not clamp, so results should differ from t=0 and t=1
|
|
323
|
+
expect(resultBelow[0]).not.toBeCloseTo(a[0], 10);
|
|
324
|
+
expect(resultAbove[1]).not.toBeCloseTo(b[1], 10);
|
|
325
|
+
});
|
|
326
|
+
it('should throw for vectors smaller than 2D', () => {
|
|
327
|
+
expect(() => VectorSphericalLinearInterpolation([1], [2], 0.5)).toThrow(VectorError);
|
|
328
|
+
});
|
|
329
|
+
it('should throw for mismatched dimensions', () => {
|
|
330
|
+
expect(() => VectorSphericalLinearInterpolation([1, 2], [1, 2, 3], 0.5)).toThrow(VectorError);
|
|
331
|
+
});
|
|
332
|
+
});
|
|
333
|
+
// General tests that apply to all interpolation functions
|
|
334
|
+
describe('General Interpolation Properties', () => {
|
|
335
|
+
const interpolationFunctions = [
|
|
336
|
+
{ name: 'LERP', fn: VectorLERP },
|
|
337
|
+
{ name: 'SmoothStep', fn: VectorSmoothStep },
|
|
338
|
+
{ name: 'SmootherStep', fn: VectorSmootherStep },
|
|
339
|
+
{ name: 'QuadraticEaseIn', fn: VectorQuadraticEaseIn },
|
|
340
|
+
{ name: 'QuadraticEaseOut', fn: VectorQuadraticEaseOut },
|
|
341
|
+
{ name: 'CubicEaseIn', fn: VectorCubicEaseIn },
|
|
342
|
+
{ name: 'CubicEaseOut', fn: VectorCubicEaseOut },
|
|
343
|
+
{ name: 'CosineInterpolation', fn: VectorCosineInterpolation },
|
|
344
|
+
{ name: 'SineEaseIn', fn: VectorSineEaseIn },
|
|
345
|
+
{ name: 'SineEaseOut', fn: VectorSineEaseOut },
|
|
346
|
+
{ name: 'CircularEaseIn', fn: VectorCircularEaseIn },
|
|
347
|
+
{ name: 'CircularEaseOut', fn: VectorCircularEaseOut },
|
|
348
|
+
];
|
|
349
|
+
interpolationFunctions.forEach(({ name, fn }) => {
|
|
350
|
+
describe(`${name}`, () => {
|
|
351
|
+
it('should preserve vector dimensions', () => {
|
|
352
|
+
const result2D = fn(vec2a, vec2b, 0.5);
|
|
353
|
+
const result3D = fn(vec3a, vec3b, 0.5);
|
|
354
|
+
const result4D = fn(vec4a, vec4b, 0.5);
|
|
355
|
+
expect(result2D.length).toBe(2);
|
|
356
|
+
expect(result3D.length).toBe(3);
|
|
357
|
+
expect(result4D.length).toBe(4);
|
|
358
|
+
});
|
|
359
|
+
it('should return start vector at t=0', () => {
|
|
360
|
+
expectVectorToBeCloseTo(fn(vec2a, vec2b, 0), vec2a, 10);
|
|
361
|
+
expectVectorToBeCloseTo(fn(vec3a, vec3b, 0), vec3a, 10);
|
|
362
|
+
});
|
|
363
|
+
it('should return end vector at t=1', () => {
|
|
364
|
+
expectVectorToBeCloseTo(fn(vec2a, vec2b, 1), vec2b, 10);
|
|
365
|
+
expectVectorToBeCloseTo(fn(vec3a, vec3b, 1), vec3b, 10);
|
|
366
|
+
});
|
|
367
|
+
it('should throw for empty vectors', () => {
|
|
368
|
+
expect(() => fn([], [], 0.5)).toThrow(VectorError);
|
|
369
|
+
});
|
|
370
|
+
it('should throw for vectors with Infinity', () => {
|
|
371
|
+
expect(() => fn([1, Infinity], [1, 2], 0.5)).toThrow(VectorError);
|
|
372
|
+
expect(() => fn([1, 2], [1, -Infinity], 0.5)).toThrow(VectorError);
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
//# sourceMappingURL=interpolation.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolation.spec.js","sourceRoot":"","sources":["../../src/vectors/interpolation.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predefined vector factory functions for common mathematical operations.
|
|
3
|
+
* Provides convenient constructors for standard vectors used in graphics, physics, and mathematics.
|
|
4
|
+
*/
|
|
5
|
+
import { TVector, TVector2, TVector3, TVector4 } from './types.js';
|
|
6
|
+
type TVectorSize3 = 3;
|
|
7
|
+
type TVectorSize4 = 4;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a zero vector of the specified dimension.
|
|
10
|
+
* Zero vectors are commonly used as initial values, identity elements in addition,
|
|
11
|
+
* and as the origin point in coordinate systems.
|
|
12
|
+
*
|
|
13
|
+
* @param size - The dimension of the vector (1, 2, 3, or 4)
|
|
14
|
+
* @returns A vector with all components set to 0
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* const origin2D = VectorZero(2); // [0, 0]
|
|
18
|
+
* const origin3D = VectorZero(3); // [0, 0, 0]
|
|
19
|
+
* const origin4D = VectorZero(4); // [0, 0, 0, 0]
|
|
20
|
+
*/
|
|
21
|
+
export declare function VectorZero(size: 1): TVector;
|
|
22
|
+
export declare function VectorZero(size: 2): TVector2;
|
|
23
|
+
export declare function VectorZero(size: TVectorSize3): TVector3;
|
|
24
|
+
export declare function VectorZero(size: TVectorSize4): TVector4;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a vector with all components set to 1.
|
|
27
|
+
* One vectors are useful for scaling operations, default values,
|
|
28
|
+
* and mathematical operations where unit values are needed.
|
|
29
|
+
*
|
|
30
|
+
* @param size - The dimension of the vector (1, 2, 3, or 4)
|
|
31
|
+
* @returns A vector with all components set to 1
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* const ones2D = VectorOne(2); // [1, 1]
|
|
35
|
+
* const ones3D = VectorOne(3); // [1, 1, 1]
|
|
36
|
+
* const ones4D = VectorOne(4); // [1, 1, 1, 1]
|
|
37
|
+
*/
|
|
38
|
+
export declare function VectorOne(size: 1): TVector;
|
|
39
|
+
export declare function VectorOne(size: 2): TVector2;
|
|
40
|
+
export declare function VectorOne(size: TVectorSize3): TVector3;
|
|
41
|
+
export declare function VectorOne(size: TVectorSize4): TVector4;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a 2D unit vector pointing upward (positive Y direction).
|
|
44
|
+
* Standard in screen coordinates where Y increases downward, or
|
|
45
|
+
* mathematical coordinates where Y increases upward.
|
|
46
|
+
*
|
|
47
|
+
* @returns [0, 1] - Unit vector in positive Y direction
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* const upDirection = Vector2_Up(); // Character movement upward
|
|
51
|
+
* const velocity = Vector2_Up().map(c => c * speed); // Moving up at given speed
|
|
52
|
+
*/
|
|
53
|
+
export declare function Vector2Up(): TVector2;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a 3D unit vector pointing upward (positive Y direction).
|
|
56
|
+
* Standard in 3D graphics and physics where Y is typically the vertical axis.
|
|
57
|
+
*
|
|
58
|
+
* @returns [0, 1, 0] - Unit vector in positive Y direction
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* const worldUp = Vector3_Up(); // World space up direction
|
|
62
|
+
* const jumpForce = Vector3_Up().map(c => c * jumpStrength);
|
|
63
|
+
*/
|
|
64
|
+
export declare function Vector3Up(): TVector3;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a 4D unit vector pointing upward (positive Y direction).
|
|
67
|
+
* Useful in homogeneous coordinates and 4D transformations.
|
|
68
|
+
*
|
|
69
|
+
* @returns [0, 1, 0, 0] - Unit vector in positive Y direction
|
|
70
|
+
*/
|
|
71
|
+
export declare function Vector4Up(): TVector4;
|
|
72
|
+
/**
|
|
73
|
+
* Creates a 2D unit vector pointing downward (negative Y direction).
|
|
74
|
+
* Commonly used for gravity, falling objects, or downward movement.
|
|
75
|
+
*
|
|
76
|
+
* @returns [0, -1] - Unit vector in negative Y direction
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* const gravity = Vector2_Down().map(c => c * 9.81); // Gravity force
|
|
80
|
+
* const dropDirection = Vector2_Down(); // Object falling down
|
|
81
|
+
*/
|
|
82
|
+
export declare function Vector2Down(): TVector2;
|
|
83
|
+
/**
|
|
84
|
+
* Creates a 3D unit vector pointing downward (negative Y direction).
|
|
85
|
+
* Standard for gravity simulation and downward movement in 3D space.
|
|
86
|
+
*
|
|
87
|
+
* @returns [0, -1, 0] - Unit vector in negative Y direction
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* const gravityForce = Vector3Down().map(c => c * 9.81);
|
|
91
|
+
* const downwardRay = Vector3Down(); // Raycast downward
|
|
92
|
+
*/
|
|
93
|
+
export declare function Vector3Down(): TVector3;
|
|
94
|
+
/**
|
|
95
|
+
* Creates a 4D unit vector pointing downward (negative Y direction).
|
|
96
|
+
*
|
|
97
|
+
* @returns [0, -1, 0, 0] - Unit vector in negative Y direction
|
|
98
|
+
*/
|
|
99
|
+
export declare function Vector4Down(): TVector4;
|
|
100
|
+
/**
|
|
101
|
+
* Creates a 2D unit vector pointing left (negative X direction).
|
|
102
|
+
* Standard for leftward movement in 2D coordinate systems.
|
|
103
|
+
*
|
|
104
|
+
* @returns [-1, 0] - Unit vector in negative X direction
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* const leftMovement = Vector2Left().map(c => c * speed);
|
|
108
|
+
* const leftDirection = Vector2Left(); // Character facing left
|
|
109
|
+
*/
|
|
110
|
+
export declare function Vector2Left(): TVector2;
|
|
111
|
+
/**
|
|
112
|
+
* Creates a 3D unit vector pointing left (negative X direction).
|
|
113
|
+
* Standard for leftward movement in 3D coordinate systems.
|
|
114
|
+
*
|
|
115
|
+
* @returns [-1, 0, 0] - Unit vector in negative X direction
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* const strafeLeft = Vector3Left().map(c => c * strafeSpeed);
|
|
119
|
+
*/
|
|
120
|
+
export declare function Vector3Left(): TVector3;
|
|
121
|
+
/**
|
|
122
|
+
* Creates a 4D unit vector pointing left (negative X direction).
|
|
123
|
+
*
|
|
124
|
+
* @returns [-1, 0, 0, 0] - Unit vector in negative X direction
|
|
125
|
+
*/
|
|
126
|
+
export declare function Vector4Left(): TVector4;
|
|
127
|
+
/**
|
|
128
|
+
* Creates a 2D unit vector pointing right (positive X direction).
|
|
129
|
+
* Standard for rightward movement in 2D coordinate systems.
|
|
130
|
+
*
|
|
131
|
+
* @returns [1, 0] - Unit vector in positive X direction
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* const rightMovement = Vector2Right().map(c => c * speed);
|
|
135
|
+
* const rightDirection = Vector2Right(); // Character facing right
|
|
136
|
+
*/
|
|
137
|
+
export declare function Vector2Right(): TVector2;
|
|
138
|
+
/**
|
|
139
|
+
* Creates a 3D unit vector pointing right (positive X direction).
|
|
140
|
+
* Standard for rightward movement in 3D coordinate systems.
|
|
141
|
+
*
|
|
142
|
+
* @returns [1, 0, 0] - Unit vector in positive X direction
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* const strafeRight = Vector3Right().map(c => c * strafeSpeed);
|
|
146
|
+
*/
|
|
147
|
+
export declare function Vector3Right(): TVector3;
|
|
148
|
+
/**
|
|
149
|
+
* Creates a 4D unit vector pointing right (positive X direction).
|
|
150
|
+
*
|
|
151
|
+
* @returns [1, 0, 0, 0] - Unit vector in positive X direction
|
|
152
|
+
*/
|
|
153
|
+
export declare function Vector4Right(): TVector4;
|
|
154
|
+
/**
|
|
155
|
+
* Creates a 3D unit vector pointing forward (positive Z direction).
|
|
156
|
+
* Standard in right-handed coordinate systems where Z points toward the viewer.
|
|
157
|
+
* Commonly used for forward movement and camera directions.
|
|
158
|
+
*
|
|
159
|
+
* @returns [0, 0, 1] - Unit vector in positive Z direction
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* const forwardMovement = Vector3Forward().map(c => c * speed);
|
|
163
|
+
* const cameraForward = Vector3Forward(); // Camera looking direction
|
|
164
|
+
*/
|
|
165
|
+
export declare function Vector3Forward(): TVector3;
|
|
166
|
+
/**
|
|
167
|
+
* Creates a 4D unit vector pointing forward (positive Z direction).
|
|
168
|
+
*
|
|
169
|
+
* @returns [0, 0, 1, 0] - Unit vector in positive Z direction
|
|
170
|
+
*/
|
|
171
|
+
export declare function Vector4Forward(): TVector4;
|
|
172
|
+
/**
|
|
173
|
+
* Creates a 3D unit vector pointing backward (negative Z direction).
|
|
174
|
+
* Standard in right-handed coordinate systems where negative Z points away from the viewer.
|
|
175
|
+
* Commonly used for backward movement and opposite camera directions.
|
|
176
|
+
*
|
|
177
|
+
* @returns [0, 0, -1] - Unit vector in negative Z direction
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* const backwardMovement = Vector3Backward().map(c => c * speed);
|
|
181
|
+
* const reverseDirection = Vector3Backward(); // Moving away from target
|
|
182
|
+
*/
|
|
183
|
+
export declare function Vector3Backward(): TVector3;
|
|
184
|
+
/**
|
|
185
|
+
* Creates a 4D unit vector pointing backward (negative Z direction).
|
|
186
|
+
*
|
|
187
|
+
* @returns [0, 0, -1, 0] - Unit vector in negative Z direction
|
|
188
|
+
*/
|
|
189
|
+
export declare function Vector4Backward(): TVector4;
|
|
190
|
+
export {};
|
|
191
|
+
//# sourceMappingURL=predefined.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predefined.d.ts","sourceRoot":"","sources":["../../src/vectors/predefined.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnE,KAAK,YAAY,GAAG,CAAC,CAAC;AACtB,KAAK,YAAY,GAAG,CAAC,CAAC;AAEtB;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AAC7C,wBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC9C,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;AACzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;AAKzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AAC5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC7C,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;AACxD,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;AAKxD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,IAAI,QAAQ,CAEpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,IAAI,QAAQ,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,QAAQ,CAEpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAEvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAEvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAEzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,QAAQ,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,QAAQ,CAE1C"}
|