@ringozz/godot 4.7.2-583 → 4.7.2-592

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 (49) hide show
  1. package/README.md +19 -1
  2. package/gen/classes/ArrayOccluder3D.ts +1 -1
  3. package/gen/classes/CPUParticles2D.ts +3 -3
  4. package/gen/classes/CPUParticles3D.ts +3 -3
  5. package/gen/classes/CSGPolygon3D.ts +1 -1
  6. package/gen/classes/CollisionPolygon2D.ts +1 -1
  7. package/gen/classes/CollisionPolygon3D.ts +1 -1
  8. package/gen/classes/ColorPalette.ts +1 -1
  9. package/gen/classes/ConcavePolygonShape2D.ts +1 -1
  10. package/gen/classes/ConcavePolygonShape3D.ts +1 -1
  11. package/gen/classes/ConvexPolygonShape2D.ts +1 -1
  12. package/gen/classes/ConvexPolygonShape3D.ts +1 -1
  13. package/gen/classes/FontVariation.ts +1 -1
  14. package/gen/classes/Gradient.ts +1 -1
  15. package/gen/classes/Line2D.ts +1 -1
  16. package/gen/classes/MultiMesh.ts +4 -4
  17. package/gen/classes/NavigationMesh.ts +1 -1
  18. package/gen/classes/NavigationObstacle2D.ts +1 -1
  19. package/gen/classes/NavigationObstacle3D.ts +1 -1
  20. package/gen/classes/NavigationPathQueryResult2D.ts +1 -1
  21. package/gen/classes/NavigationPathQueryResult3D.ts +1 -1
  22. package/gen/classes/NavigationPolygon.ts +1 -1
  23. package/gen/classes/OccluderPolygon2D.ts +1 -1
  24. package/gen/classes/Polygon2D.ts +3 -3
  25. package/gen/classes/PolygonOccluder3D.ts +1 -1
  26. package/gen/classes/Window.ts +1 -1
  27. package/gen/index.ts +0 -3
  28. package/gen/utility-functions.ts +114 -114
  29. package/gen/value-types/AABB.ts +267 -277
  30. package/gen/value-types/Basis.ts +313 -264
  31. package/gen/value-types/Color.ts +398 -268
  32. package/gen/value-types/Plane.ts +121 -125
  33. package/gen/value-types/Projection.ts +178 -126
  34. package/gen/value-types/Quaternion.ts +180 -179
  35. package/gen/value-types/Rect2.ts +169 -171
  36. package/gen/value-types/Rect2i.ts +148 -150
  37. package/gen/value-types/Transform2D.ts +192 -194
  38. package/gen/value-types/Transform3D.ts +133 -126
  39. package/gen/value-types/Vector2.ts +370 -354
  40. package/gen/value-types/Vector2i.ts +192 -191
  41. package/gen/value-types/Vector3.ts +354 -354
  42. package/gen/value-types/Vector3i.ts +187 -192
  43. package/gen/value-types/Vector4.ts +263 -274
  44. package/gen/value-types/Vector4i.ts +187 -198
  45. package/gen/value-types/index.ts +16 -16
  46. package/package.json +20 -4
  47. package/src/debug.ts +30 -27
  48. package/src/index.ts +0 -2
  49. package/src/runtime.ts +16 -7
@@ -1,9 +1,9 @@
1
1
  // Auto-generated from extension_api.json - DO NOT EDIT
2
2
  // Generated by dev/codegen.ts
3
3
 
4
- import { GodotVar, _C, _R, _get, _set } from '../../src/runtime.ts';
4
+ import { _V } from '../../src/runtime.ts';
5
5
  import type { GodotArray, GodotDictionary, Variant } from '../heap-types/index.ts';
6
- import type { Basis, Vector3 } from '../value-types/index.ts';
6
+ import type { Basis, Vector3 } from './index.ts';
7
7
 
8
8
  /**
9
9
  * The {@link Quaternion} built-in {@link Variant} type is a 4D data structure that represents rotation in the form of a [Hamilton convention quaternion](https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation). Compared to the {@link Basis} type which can store both rotation and scale, quaternions can *only* store rotation.
@@ -13,180 +13,181 @@ import type { Basis, Vector3 } from '../value-types/index.ts';
13
13
  * **Note:** Similarly to {@link Vector2} and {@link Vector3}, the components of a quaternion use 32-bit precision by default, unlike {@link float} which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.
14
14
  * **Note:** In a boolean context, a quaternion will evaluate to `false` if it's equal to {@link IDENTITY}. Otherwise, a quaternion will always evaluate to `true`.
15
15
  */
16
- export class Quaternion extends GodotVar {
17
- /**
18
- * X component of the quaternion. This is the value along the "imaginary" `i` axis.
19
- * **Note:** Quaternion components should usually not be manipulated directly.
20
- */
21
- get x(): number { return _get(this, 14941) as number; }
22
- set x(v: number) { _set(this, 14941, v); }
23
-
24
- /**
25
- * Y component of the quaternion. This is the value along the "imaginary" `j` axis.
26
- * **Note:** Quaternion components should usually not be manipulated directly.
27
- */
28
- get y(): number { return _get(this, 14952) as number; }
29
- set y(v: number) { _set(this, 14952, v); }
30
-
31
- /**
32
- * Z component of the quaternion. This is the value along the "imaginary" `k` axis.
33
- * **Note:** Quaternion components should usually not be manipulated directly.
34
- */
35
- get z(): number { return _get(this, 14956) as number; }
36
- set z(v: number) { _set(this, 14956, v); }
37
-
38
- /**
39
- * W component of the quaternion. This is the "real" part.
40
- * **Note:** Quaternion components should usually not be manipulated directly.
41
- */
42
- get w(): number { return _get(this, 14833) as number; }
43
- set w(v: number) { _set(this, 14833, v); }
44
-
45
- constructor();
46
- constructor(from: Quaternion);
47
- constructor(from: Basis);
48
- constructor(axis: Vector3, angle: number);
49
- constructor(arcFrom: Vector3, arcTo: Vector3);
50
- constructor(x: number, y: number, z: number, w: number);
51
- constructor(...args: any[]) { super(15, ...args); }
52
-
53
- /**
54
- * Returns this quaternion's length, also called magnitude.
55
- */
56
- length(): number { return _C(this, 8546) as number; }
57
-
58
- /**
59
- * Returns this quaternion's length, squared.
60
- * **Note:** This method is faster than {@link length}, so prefer it if you only need to compare quaternion lengths.
61
- */
62
- lengthSquared(): number { return _C(this, 8547) as number; }
63
-
64
- /**
65
- * Returns a copy of this quaternion, normalized so that its length is `1.0`. See also {@link isNormalized}.
66
- */
67
- normalized(): Quaternion { return _C(this, 9103) as Quaternion; }
68
-
69
- /**
70
- * Returns `true` if this quaternion is normalized. See also {@link normalized}.
71
- */
72
- isNormalized(): boolean { return _C(this, 8138) as boolean; }
73
-
74
- /**
75
- * Returns `true` if this quaternion and `to` are approximately equal, by calling {@link isEqualApprox} on each component.
76
- */
77
- isEqualApprox(to: Quaternion): boolean { return _C(this, 7938, to) as boolean; }
78
-
79
- /**
80
- * Returns `true` if this quaternion is finite, by calling {@link isFinite} on each component.
81
- */
82
- isFinite(): boolean { return _C(this, 7951) as boolean; }
83
-
84
- /**
85
- * Returns the inverse version of this quaternion, inverting the sign of every component except {@link w}.
86
- */
87
- inverse(): Quaternion { return _C(this, 7714) as Quaternion; }
88
-
89
- /**
90
- * Returns the logarithm of this quaternion. Multiplies this quaternion's rotation axis by its rotation angle, and stores the result in the returned quaternion's vector part ({@link x}, {@link y}, and {@link z}). The returned quaternion's real part ({@link w}) is always `0.0`.
91
- */
92
- log(): Quaternion { return _C(this, 8704) as Quaternion; }
93
-
94
- /**
95
- * Returns the exponential of this quaternion. The rotation axis of the result is the normalized rotation axis of this quaternion, the angle of the result is the length of the vector part of this quaternion.
96
- */
97
- exp(): Quaternion { return _C(this, 3185) as Quaternion; }
98
-
99
- /**
100
- * Returns the angle between this quaternion and `to`. This is the magnitude of the angle you would need to rotate by to get from one to the other.
101
- * **Note:** The magnitude of the floating-point error for this method is abnormally high, so methods such as `is_zero_approx` will not work reliably.
102
- */
103
- angleTo(to: Quaternion): number { return _C(this, 1453, to) as number; }
104
-
105
- /**
106
- * Returns the dot product between this quaternion and `with`.
107
- * This is equivalent to `(quat.x * with.x) + (quat.y * with.y) + (quat.z * with.z) + (quat.w * with.w)`.
108
- */
109
- dot(_with: Quaternion): number { return _C(this, 2871, _with) as number; }
110
-
111
- /**
112
- * Performs a spherical-linear interpolation with the `to` quaternion, given a `weight` and returns the result. Both this quaternion and `to` must be normalized.
113
- */
114
- slerp(to: Quaternion, weight: number): Quaternion { return _C(this, 13656, to, weight) as Quaternion; }
115
-
116
- /**
117
- * Performs a spherical-linear interpolation with the `to` quaternion, given a `weight` and returns the result. Unlike {@link slerp}, this method does not check if the rotation path is smaller than 90 degrees. Both this quaternion and `to` must be normalized.
118
- */
119
- slerpni(to: Quaternion, weight: number): Quaternion { return _C(this, 13657, to, weight) as Quaternion; }
120
-
121
- /**
122
- * Performs a spherical cubic interpolation between quaternions `preA`, this vector, `b`, and `postB`, by the given amount `weight`.
123
- */
124
- sphericalCubicInterpolate(b: Quaternion, preA: Quaternion, postB: Quaternion, weight: number): Quaternion { return _C(this, 13780, b, preA, postB, weight) as Quaternion; }
125
-
126
- /**
127
- * Performs a spherical cubic interpolation between quaternions `preA`, this vector, `b`, and `postB`, by the given amount `weight`.
128
- * It can perform smoother interpolation than {@link sphericalCubicInterpolate} by the time values.
129
- */
130
- sphericalCubicInterpolateInTime(b: Quaternion, preA: Quaternion, postB: Quaternion, weight: number, bT: number, preAT: number, postBT: number): Quaternion { return _C(this, 13781, b, preA, postB, weight, bT, preAT, postBT) as Quaternion; }
131
-
132
- /**
133
- * Returns this quaternion's rotation as a {@link Vector3} of [Euler angles](https://en.wikipedia.org/wiki/Euler_angles), in radians.
134
- * The order of each consecutive rotation can be changed with `order` (see {@link EulerOrder} constants). In Godot, Euler angles always use intrinsic order. By default, the intrinsic YXZ convention is used ({@link EULER_ORDER_YXZ}): since we are decomposing, local Z (roll) is calculated first, then local X (pitch), and lastly local Y (yaw). When using the opposite method {@link fromEuler} to compose a rotation, this order is reversed.
135
- */
136
- getEuler(order?: number /* = 2 */): Vector3 { return _C(this, 4689, order) as Vector3; }
137
-
138
- /**
139
- * Returns the rotation axis of the rotation represented by this quaternion.
140
- */
141
- getAxis(): Vector3 { return _C(this, 3859) as Vector3; }
142
-
143
- /**
144
- * Returns the angle of the rotation represented by this quaternion.
145
- * **Note:** The quaternion must be normalized.
146
- */
147
- getAngle(): number { return _C(this, 3749) as number; }
148
-
149
- equals(other: Variant | Quaternion): boolean { return _C(this, -1, other) as boolean; }
150
-
151
- notEquals(other: Variant | Quaternion): boolean { return _C(this, -2, other) as boolean; }
152
-
153
- /**
154
- * Returns the negative value of the {@link Quaternion}. This is the same as multiplying all components by `-1`. This operation results in a quaternion that represents the same rotation.
155
- */
156
- neg(): Quaternion { return _C(this, -11, undefined) as Quaternion; }
157
-
158
- /**
159
- * Returns the same value as if the `+` was not there. Unary `+` does nothing, but sometimes it can make your code more readable.
160
- */
161
- pos(): Quaternion { return _C(this, -12, undefined) as Quaternion; }
162
-
163
- not(): boolean { return _C(this, -24, undefined) as boolean; }
164
-
165
- /**
166
- * Multiplies each component of the {@link Quaternion} by the right {@link int} value.
167
- * This operation is not meaningful on its own, but it can be used as a part of a larger expression.
168
- */
169
- mul(other: number | Vector3 | Quaternion): Quaternion { return _C(this, -9, other) as Quaternion; }
170
-
171
- /**
172
- * Divides each component of the {@link Quaternion} by the right {@link int} value.
173
- * This operation is not meaningful on its own, but it can be used as a part of a larger expression.
174
- */
175
- div(other: number): Quaternion { return _C(this, -10, other) as Quaternion; }
176
-
177
- /**
178
- * Adds each component of the left {@link Quaternion} to the right {@link Quaternion}.
179
- * This operation is not meaningful on its own, but it can be used as a part of a larger expression, such as approximating an intermediate rotation between two nearby rotations.
180
- */
181
- add(other: Quaternion): Quaternion { return _C(this, -7, other) as Quaternion; }
182
-
183
- /**
184
- * Subtracts each component of the left {@link Quaternion} by the right {@link Quaternion}.
185
- * This operation is not meaningful on its own, but it can be used as a part of a larger expression.
186
- */
187
- sub(other: Quaternion): Quaternion { return _C(this, -8, other) as Quaternion; }
188
-
189
- contains(other: GodotDictionary | GodotArray): boolean { return _C(this, -25, other) as boolean; }
190
-
191
- static readonly name = _R(15, Quaternion);
192
- }
16
+ export type Quaternion = [x: number, y: number, z: number, w: number];
17
+
18
+ /**
19
+ * Returns this quaternion's length, also called magnitude.
20
+ */
21
+ export function length(self: Quaternion): number { return _V(15, 8546, self) as number; }
22
+
23
+ /**
24
+ * Returns this quaternion's length, squared.
25
+ * **Note:** This method is faster than {@link length}, so prefer it if you only need to compare quaternion lengths.
26
+ */
27
+ export function lengthSquared(self: Quaternion): number { return _V(15, 8547, self) as number; }
28
+
29
+ /**
30
+ * Returns a copy of this quaternion, normalized so that its length is `1.0`. See also {@link isNormalized}.
31
+ */
32
+ export function normalized(self: Quaternion): Quaternion { return _V(15, 9103, self) as Quaternion; }
33
+
34
+ /**
35
+ * Returns `true` if this quaternion is normalized. See also {@link normalized}.
36
+ */
37
+ export function isNormalized(self: Quaternion): boolean { return _V(15, 8138, self) as boolean; }
38
+
39
+ /**
40
+ * Returns `true` if this quaternion and `to` are approximately equal, by calling {@link isEqualApprox} on each component.
41
+ */
42
+ export function isEqualApprox(self: Quaternion, to: Quaternion): boolean { return _V(15, 7938, self, to) as boolean; }
43
+
44
+ /**
45
+ * Returns `true` if this quaternion is finite, by calling {@link isFinite} on each component.
46
+ */
47
+ export function isFinite(self: Quaternion): boolean { return _V(15, 7951, self) as boolean; }
48
+
49
+ /**
50
+ * Returns the inverse version of this quaternion, inverting the sign of every component except {@link w}.
51
+ */
52
+ export function inverse(self: Quaternion): Quaternion { return _V(15, 7714, self) as Quaternion; }
53
+
54
+ /**
55
+ * Returns the logarithm of this quaternion. Multiplies this quaternion's rotation axis by its rotation angle, and stores the result in the returned quaternion's vector part ({@link x}, {@link y}, and {@link z}). The returned quaternion's real part ({@link w}) is always `0.0`.
56
+ */
57
+ export function log(self: Quaternion): Quaternion { return _V(15, 8704, self) as Quaternion; }
58
+
59
+ /**
60
+ * Returns the exponential of this quaternion. The rotation axis of the result is the normalized rotation axis of this quaternion, the angle of the result is the length of the vector part of this quaternion.
61
+ */
62
+ export function exp(self: Quaternion): Quaternion { return _V(15, 3185, self) as Quaternion; }
63
+
64
+ /**
65
+ * Returns the angle between this quaternion and `to`. This is the magnitude of the angle you would need to rotate by to get from one to the other.
66
+ * **Note:** The magnitude of the floating-point error for this method is abnormally high, so methods such as `is_zero_approx` will not work reliably.
67
+ */
68
+ export function angleTo(self: Quaternion, to: Quaternion): number { return _V(15, 1453, self, to) as number; }
69
+
70
+ /**
71
+ * Returns the dot product between this quaternion and `with`.
72
+ * This is equivalent to `(quat.x * with.x) + (quat.y * with.y) + (quat.z * with.z) + (quat.w * with.w)`.
73
+ */
74
+ export function dot(self: Quaternion, _with: Quaternion): number { return _V(15, 2871, self, _with) as number; }
75
+
76
+ /**
77
+ * Performs a spherical-linear interpolation with the `to` quaternion, given a `weight` and returns the result. Both this quaternion and `to` must be normalized.
78
+ */
79
+ export function slerp(self: Quaternion, to: Quaternion, weight: number): Quaternion { return _V(15, 13656, self, to, weight) as Quaternion; }
80
+
81
+ /**
82
+ * Performs a spherical-linear interpolation with the `to` quaternion, given a `weight` and returns the result. Unlike {@link slerp}, this method does not check if the rotation path is smaller than 90 degrees. Both this quaternion and `to` must be normalized.
83
+ */
84
+ export function slerpni(self: Quaternion, to: Quaternion, weight: number): Quaternion { return _V(15, 13657, self, to, weight) as Quaternion; }
85
+
86
+ /**
87
+ * Performs a spherical cubic interpolation between quaternions `preA`, this vector, `b`, and `postB`, by the given amount `weight`.
88
+ */
89
+ export function sphericalCubicInterpolate(self: Quaternion, b: Quaternion, preA: Quaternion, postB: Quaternion, weight: number): Quaternion { return _V(15, 13780, self, b, preA, postB, weight) as Quaternion; }
90
+
91
+ /**
92
+ * Performs a spherical cubic interpolation between quaternions `preA`, this vector, `b`, and `postB`, by the given amount `weight`.
93
+ * It can perform smoother interpolation than {@link sphericalCubicInterpolate} by the time values.
94
+ */
95
+ export function sphericalCubicInterpolateInTime(self: Quaternion, b: Quaternion, preA: Quaternion, postB: Quaternion, weight: number, bT: number, preAT: number, postBT: number): Quaternion { return _V(15, 13781, self, b, preA, postB, weight, bT, preAT, postBT) as Quaternion; }
96
+
97
+ /**
98
+ * Returns this quaternion's rotation as a {@link Vector3} of [Euler angles](https://en.wikipedia.org/wiki/Euler_angles), in radians.
99
+ * The order of each consecutive rotation can be changed with `order` (see {@link EulerOrder} constants). In Godot, Euler angles always use intrinsic order. By default, the intrinsic YXZ convention is used ({@link EULER_ORDER_YXZ}): since we are decomposing, local Z (roll) is calculated first, then local X (pitch), and lastly local Y (yaw). When using the opposite method {@link fromEuler} to compose a rotation, this order is reversed.
100
+ */
101
+ export function getEuler(self: Quaternion, order?: number /* = 2 */): Vector3 { return _V(15, 4689, self, order) as Vector3; }
102
+
103
+ /**
104
+ * Constructs a new {@link Quaternion} from the given {@link Vector3} of [Euler angles](https://en.wikipedia.org/wiki/Euler_angles), in radians. In Godot, Euler angles always use intrinsic order. This method always uses the intrinsic YXZ convention ({@link EULER_ORDER_YXZ}).
105
+ */
106
+ export function fromEuler(euler: Vector3): Quaternion { return _V(15, 3595, undefined, euler) as Quaternion; }
107
+
108
+ /**
109
+ * Returns the rotation axis of the rotation represented by this quaternion.
110
+ */
111
+ export function getAxis(self: Quaternion): Vector3 { return _V(15, 3859, self) as Vector3; }
112
+
113
+ /**
114
+ * Returns the angle of the rotation represented by this quaternion.
115
+ * **Note:** The quaternion must be normalized.
116
+ */
117
+ export function getAngle(self: Quaternion): number { return _V(15, 3749, self) as number; }
118
+
119
+ export function equals(a: Quaternion, b: Variant | Quaternion): boolean { return _V(15, -1, a, b) as boolean; }
120
+
121
+ export function notEquals(a: Quaternion, b: Variant | Quaternion): boolean { return _V(15, -2, a, b) as boolean; }
122
+
123
+ /**
124
+ * Returns the negative value of the {@link Quaternion}. This is the same as multiplying all components by `-1`. This operation results in a quaternion that represents the same rotation.
125
+ */
126
+ export function neg(self: Quaternion): Quaternion { return _V(15, -11, self, undefined) as Quaternion; }
127
+
128
+ /**
129
+ * Returns the same value as if the `+` was not there. Unary `+` does nothing, but sometimes it can make your code more readable.
130
+ */
131
+ export function pos(self: Quaternion): Quaternion { return _V(15, -12, self, undefined) as Quaternion; }
132
+
133
+ export function not(self: Quaternion): boolean { return _V(15, -24, self, undefined) as boolean; }
134
+
135
+ /**
136
+ * Multiplies each component of the {@link Quaternion} by the right {@link int} value.
137
+ * This operation is not meaningful on its own, but it can be used as a part of a larger expression.
138
+ */
139
+ export function mul(a: Quaternion, b: number | Vector3 | Quaternion): Quaternion { return _V(15, -9, a, b) as Quaternion; }
140
+
141
+ /**
142
+ * Divides each component of the {@link Quaternion} by the right {@link int} value.
143
+ * This operation is not meaningful on its own, but it can be used as a part of a larger expression.
144
+ */
145
+ export function div(a: Quaternion, b: number): Quaternion { return _V(15, -10, a, b) as Quaternion; }
146
+
147
+ /**
148
+ * Adds each component of the left {@link Quaternion} to the right {@link Quaternion}.
149
+ * This operation is not meaningful on its own, but it can be used as a part of a larger expression, such as approximating an intermediate rotation between two nearby rotations.
150
+ */
151
+ export function add(a: Quaternion, b: Quaternion): Quaternion { return _V(15, -7, a, b) as Quaternion; }
152
+
153
+ /**
154
+ * Subtracts each component of the left {@link Quaternion} by the right {@link Quaternion}.
155
+ * This operation is not meaningful on its own, but it can be used as a part of a larger expression.
156
+ */
157
+ export function sub(a: Quaternion, b: Quaternion): Quaternion { return _V(15, -8, a, b) as Quaternion; }
158
+
159
+ export function contains(a: Quaternion, b: GodotDictionary | GodotArray): boolean { return _V(15, -25, a, b) as boolean; }
160
+
161
+ /**
162
+ * Constructs a {@link Quaternion} identical to {@link IDENTITY}.
163
+ * **Note:** In C#, this constructs a {@link Quaternion} with all of its components set to `0.0`.
164
+ */
165
+ export function create(): Quaternion { return _V(15, -4096, 0) as Quaternion; }
166
+
167
+ /**
168
+ * Constructs a {@link Quaternion} as a copy of the given {@link Quaternion}.
169
+ */
170
+ export function fromQuaternion(from: Quaternion): Quaternion { return _V(15, -4096, 1, from) as Quaternion; }
171
+
172
+ /**
173
+ * Constructs a {@link Quaternion} from the given rotation {@link Basis}.
174
+ * This constructor is faster than {@link Basis.getRotationQuaternion}, but the given basis must be *orthonormalized* (see {@link Basis.orthonormalized}). Otherwise, the constructor fails and returns {@link IDENTITY}.
175
+ */
176
+ export function fromBasis(from: Basis): Quaternion { return _V(15, -4096, 2, from) as Quaternion; }
177
+
178
+ /**
179
+ * Constructs a {@link Quaternion} representing rotation around the `axis` by the given `angle`, in radians. The axis must be a normalized vector.
180
+ */
181
+ export function fromAxisAngle(axis: Vector3, angle: number): Quaternion { return _V(15, -4096, 3, axis, angle) as Quaternion; }
182
+
183
+ /**
184
+ * Constructs a {@link Quaternion} representing the shortest arc between `arcFrom` and `arcTo`. These can be imagined as two points intersecting a sphere's surface, with a radius of `1.0`.
185
+ */
186
+ export function fromArcFromArcTo(arcFrom: Vector3, arcTo: Vector3): Quaternion { return _V(15, -4096, 4, arcFrom, arcTo) as Quaternion; }
187
+
188
+ /**
189
+ * Constructs a {@link Quaternion} defined by the given values.
190
+ * **Note:** Only normalized quaternions represent rotation; if these values are not normalized, the new {@link Quaternion} will not be a valid rotation.
191
+ */
192
+ export function fromXYZW(x: number, y: number, z: number, w: number): Quaternion { return _V(15, -4096, 5, x, y, z, w) as Quaternion; }
193
+