• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

google / vector_math.dart / 17181727464

04 Aug 2025 07:19PM UTC coverage: 26.702% (+0.3%) from 26.388%
17181727464

push

github

web-flow
Bump min SDK to 3.7, update dependencies, reformat (#348)

496 of 1182 new or added lines in 55 files covered. (41.96%)

18 existing lines in 8 files now uncovered.

4463 of 16714 relevant lines covered (26.7%)

1.18 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

29.24
/lib/src/vector_math/vector3.dart
1
// Copyright (c) 2015, Google Inc. Please see the AUTHORS file for details.
2
// All rights reserved. Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4

5
part of '../../vector_math.dart';
6

7
/// 3D column vector.
8
class Vector3 implements Vector {
9
  final Float32List _v3storage;
10

11
  /// The components of the vector.
12
  @override
10✔
13
  Float32List get storage => _v3storage;
10✔
14

15
  /// Set the values of [result] to the minimum of [a] and [b] for each line.
16
  static void min(Vector3 a, Vector3 b, Vector3 result) {
2✔
17
    result
18
      ..x = math.min(a.x, b.x)
8✔
19
      ..y = math.min(a.y, b.y)
8✔
20
      ..z = math.min(a.z, b.z);
8✔
21
  }
22

23
  /// Set the values of [result] to the maximum of [a] and [b] for each line.
24
  static void max(Vector3 a, Vector3 b, Vector3 result) {
2✔
25
    result
26
      ..x = math.max(a.x, b.x)
8✔
27
      ..y = math.max(a.y, b.y)
8✔
28
      ..z = math.max(a.z, b.z);
8✔
29
  }
30

31
  /// Interpolate between [min] and [max] with the amount of [a] using a linear
32
  /// interpolation and store the values in [result].
33
  static void mix(Vector3 min, Vector3 max, double a, Vector3 result) {
1✔
34
    result
35
      ..x = min.x + a * (max.x - min.x)
7✔
36
      ..y = min.y + a * (max.y - min.y)
7✔
37
      ..z = min.z + a * (max.z - min.z);
7✔
38
  }
39

40
  /// Construct a new vector with the specified values.
41
  factory Vector3(double x, double y, double z) =>
15✔
42
      Vector3.zero()..setValues(x, y, z);
30✔
43

44
  /// Initialized with values from [array] starting at [offset].
45
  factory Vector3.array(List<double> array, [int offset = 0]) =>
×
46
      Vector3.zero()..copyFromArray(array, offset);
×
47

48
  /// Zero vector.
49
  Vector3.zero() : _v3storage = Float32List(3);
30✔
50

51
  /// Splat [value] into all lanes of the vector.
52
  factory Vector3.all(double value) => Vector3.zero()..splat(value);
6✔
53

54
  /// Copy of [other].
55
  factory Vector3.copy(Vector3 other) => Vector3.zero()..setFrom(other);
42✔
56

57
  /// Constructs Vector3 with given Float32List as [storage].
58
  Vector3.fromFloat32List(this._v3storage);
1✔
59

60
  /// Constructs Vector3 with a [storage] that views given [buffer] starting at
61
  /// [offset]. [offset] has to be multiple of [Float32List.bytesPerElement].
62
  Vector3.fromBuffer(ByteBuffer buffer, int offset)
2✔
63
    : _v3storage = Float32List.view(buffer, offset, 3);
2✔
64

65
  /// Generate random vector in the range (0, 0, 0) to (1, 1, 1). You can
66
  /// optionally pass your own random number generator.
67
  factory Vector3.random([math.Random? rng]) {
1✔
68
    rng ??= math.Random();
×
69
    return Vector3(rng.nextDouble(), rng.nextDouble(), rng.nextDouble());
4✔
70
  }
71

72
  /// Set the values of the vector.
73
  void setValues(double x, double y, double z) {
15✔
74
    _v3storage[2] = z;
30✔
75
    _v3storage[1] = y;
30✔
76
    _v3storage[0] = x;
30✔
77
  }
78

79
  /// Zero vector.
80
  void setZero() {
2✔
81
    _v3storage[2] = 0.0;
4✔
82
    _v3storage[1] = 0.0;
4✔
83
    _v3storage[0] = 0.0;
4✔
84
  }
85

86
  /// Set the values by copying them from [other].
87
  void setFrom(Vector3 other) {
14✔
88
    final otherStorage = other._v3storage;
14✔
89
    _v3storage[2] = otherStorage[2];
42✔
90
    _v3storage[1] = otherStorage[1];
42✔
91
    _v3storage[0] = otherStorage[0];
42✔
92
  }
93

94
  /// Splat [arg] into all lanes of the vector.
95
  void splat(double arg) {
2✔
96
    _v3storage[2] = arg;
4✔
97
    _v3storage[1] = arg;
4✔
98
    _v3storage[0] = arg;
4✔
99
  }
100

101
  /// Returns a printable string
102
  @override
9✔
103
  String toString() => '[${storage[0]},${storage[1]},${storage[2]}]';
63✔
104

105
  /// Check if two vectors are the same.
106
  @override
2✔
107
  bool operator ==(Object other) =>
108
      (other is Vector3) &&
2✔
109
      (_v3storage[2] == other._v3storage[2]) &&
10✔
110
      (_v3storage[1] == other._v3storage[1]) &&
10✔
111
      (_v3storage[0] == other._v3storage[0]);
10✔
112

113
  @override
2✔
114
  int get hashCode => Object.hashAll(_v3storage);
4✔
115

116
  /// Negate
117
  Vector3 operator -() => clone()..negate();
3✔
118

119
  /// Subtract two vectors.
120
  Vector3 operator -(Vector3 other) => clone()..sub(other);
6✔
121

122
  /// Add two vectors.
123
  Vector3 operator +(Vector3 other) => clone()..add(other);
×
124

125
  /// Scale.
126
  Vector3 operator /(double scale) => scaled(1.0 / scale);
×
127

128
  /// Scale by [scale].
129
  Vector3 operator *(double scale) => scaled(scale);
×
130

131
  /// Access the component of the vector at the index [i].
132
  double operator [](int i) => _v3storage[i];
12✔
133

134
  /// Set the component of the vector at the index [i].
135
  void operator []=(int i, double v) {
×
136
    _v3storage[i] = v;
×
137
  }
138

139
  /// Set the length of the vector. A negative [value] will change the vectors
140
  /// orientation and a [value] of zero will set the vector to zero.
141
  set length(double value) {
1✔
142
    if (value == 0.0) {
1✔
143
      setZero();
1✔
144
    } else {
145
      var l = length;
1✔
146
      if (l == 0.0) {
1✔
147
        return;
148
      }
149
      l = value / l;
1✔
150
      _v3storage[0] *= l;
3✔
151
      _v3storage[1] *= l;
3✔
152
      _v3storage[2] *= l;
3✔
153
    }
154
  }
155

156
  /// The length of the vector.
157
  double get length => math.sqrt(length2);
36✔
158

159
  /// The squared length of the vector.
160
  double get length2 {
12✔
161
    double sum;
162
    sum = _v3storage[2] * _v3storage[2];
60✔
163
    sum += _v3storage[1] * _v3storage[1];
72✔
164
    sum += _v3storage[0] * _v3storage[0];
72✔
165
    return sum;
166
  }
167

168
  /// Normalizes this.
169
  double normalize() {
9✔
170
    final l = length;
9✔
171
    if (l == 0.0) {
9✔
172
      return 0.0;
173
    }
174
    final d = 1.0 / l;
9✔
175
    _v3storage[2] *= d;
27✔
176
    _v3storage[1] *= d;
27✔
177
    _v3storage[0] *= d;
27✔
178
    return l;
179
  }
180

181
  /// Normalize this. Returns length of vector before normalization.
182
  @Deprecated('Use normalize() instead.')
×
183
  double normalizeLength() => normalize();
×
184

185
  /// Normalizes copy of this.
186
  Vector3 normalized() => Vector3.copy(this)..normalize();
9✔
187

188
  /// Normalize vector into [out].
189
  Vector3 normalizeInto(Vector3 out) {
×
190
    out
191
      ..setFrom(this)
×
192
      ..normalize();
×
193
    return out;
194
  }
195

196
  /// Distance from this to [arg]
197
  double distanceTo(Vector3 arg) => math.sqrt(distanceToSquared(arg));
3✔
198

199
  /// Squared distance from this to [arg]
200
  double distanceToSquared(Vector3 arg) {
2✔
201
    final argStorage = arg._v3storage;
2✔
202
    final dz = _v3storage[2] - argStorage[2];
8✔
203
    final dy = _v3storage[1] - argStorage[1];
8✔
204
    final dx = _v3storage[0] - argStorage[0];
8✔
205

206
    return dx * dx + dy * dy + dz * dz;
10✔
207
  }
208

209
  /// Returns the angle between this vector and [other] in radians.
210
  double angleTo(Vector3 other) {
1✔
211
    final otherStorage = other._v3storage;
1✔
212
    if (_v3storage[2] == otherStorage[2] &&
4✔
213
        _v3storage[1] == otherStorage[1] &&
4✔
214
        _v3storage[0] == otherStorage[0]) {
4✔
215
      return 0.0;
216
    }
217

218
    final d = dot(other) / (length * other.length);
5✔
219

220
    return math.acos(d.clamp(-1.0, 1.0));
3✔
221
  }
222

223
  /// Returns the signed angle between this and [other] around [normal]
224
  /// in radians.
225
  double angleToSigned(Vector3 other, Vector3 normal) {
1✔
226
    final angle = angleTo(other);
1✔
227
    final c = cross(other);
1✔
228
    final d = c.dot(normal);
1✔
229

230
    return d < 0.0 ? -angle : angle;
2✔
231
  }
232

233
  /// Inner product.
234
  double dot(Vector3 other) {
9✔
235
    final otherStorage = other._v3storage;
9✔
236
    return _v3storage[2] * otherStorage[2] +
45✔
237
        _v3storage[1] * otherStorage[1] +
45✔
238
        _v3storage[0] * otherStorage[0];
36✔
239
  }
240

241
  /// Transforms this into the product of this as a row vector, postmultiplied
242
  /// by matrix, [arg].
243
  ///
244
  /// If [arg] is a rotation matrix, this is a computational shortcut for
245
  /// applying, the inverse of the transformation.
246
  void postmultiply(Matrix3 arg) {
1✔
247
    final argStorage = arg._m3storage;
1✔
248
    final v2 = _v3storage[2];
2✔
249
    final v1 = _v3storage[1];
2✔
250
    final v0 = _v3storage[0];
2✔
251

252
    _v3storage[2] =
2✔
253
        v0 * argStorage[6] + v1 * argStorage[7] + v2 * argStorage[8];
8✔
254
    _v3storage[1] =
2✔
255
        v0 * argStorage[3] + v1 * argStorage[4] + v2 * argStorage[5];
8✔
256
    _v3storage[0] =
2✔
257
        v0 * argStorage[0] + v1 * argStorage[1] + v2 * argStorage[2];
8✔
258
  }
259

260
  /// Cross product.
261
  Vector3 cross(Vector3 other) {
3✔
262
    final z = _v3storage[2];
6✔
263
    final y = _v3storage[1];
6✔
264
    final x = _v3storage[0];
6✔
265
    final otherStorage = other._v3storage;
3✔
266
    final oz = otherStorage[2];
3✔
267
    final oy = otherStorage[1];
3✔
268
    final ox = otherStorage[0];
3✔
269
    return Vector3(y * oz - z * oy, z * ox - x * oz, x * oy - y * ox);
30✔
270
  }
271

272
  /// Cross product. Stores result in [out].
273
  Vector3 crossInto(Vector3 other, Vector3 out) {
9✔
274
    final z = _v3storage[2];
18✔
275
    final y = _v3storage[1];
18✔
276
    final x = _v3storage[0];
18✔
277
    final otherStorage = other._v3storage;
9✔
278
    final oz = otherStorage[2];
9✔
279
    final oy = otherStorage[1];
9✔
280
    final ox = otherStorage[0];
9✔
281
    final outStorage = out._v3storage;
9✔
282
    outStorage[2] = x * oy - y * ox;
36✔
283
    outStorage[1] = z * ox - x * oz;
36✔
284
    outStorage[0] = y * oz - z * oy;
36✔
285
    return out;
286
  }
287

288
  /// Reflect this.
289
  void reflect(Vector3 normal) {
1✔
290
    final dotProduct = 2.0 * normal.dot(this);
2✔
291
    _v3storage[2] -= normal._v3storage[2] * dotProduct;
6✔
292
    _v3storage[1] -= normal._v3storage[1] * dotProduct;
6✔
293
    _v3storage[0] -= normal._v3storage[0] * dotProduct;
6✔
294
  }
295

296
  /// Reflected copy of this.
297
  Vector3 reflected(Vector3 normal) => clone()..reflect(normal);
×
298

299
  /// Projects this using the projection matrix [arg]
300
  void applyProjection(Matrix4 arg) {
1✔
301
    final argStorage = arg._m4storage;
1✔
302
    final z = _v3storage[2];
2✔
303
    final y = _v3storage[1];
2✔
304
    final x = _v3storage[0];
2✔
305
    final d =
306
        1.0 /
1✔
307
        (argStorage[15] +
2✔
308
            argStorage[11] * z +
3✔
309
            argStorage[7] * y +
3✔
310
            argStorage[3] * x);
2✔
311
    _v3storage[0] =
2✔
312
        (argStorage[12] +
2✔
313
            argStorage[8] * z +
3✔
314
            argStorage[4] * y +
3✔
315
            argStorage[0] * x) *
3✔
316
        d;
317
    _v3storage[1] =
2✔
318
        (argStorage[13] +
2✔
319
            argStorage[9] * z +
3✔
320
            argStorage[5] * y +
3✔
321
            argStorage[1] * x) *
3✔
322
        d;
323
    _v3storage[2] =
2✔
324
        (argStorage[14] +
2✔
325
            argStorage[10] * z +
3✔
326
            argStorage[6] * y +
3✔
327
            argStorage[2] * x) *
3✔
328
        d;
329
  }
330

331
  /// Applies a rotation specified by [axis] and [angle].
332
  void applyAxisAngle(Vector3 axis, double angle) {
×
333
    applyQuaternion(Quaternion.axisAngle(axis, angle));
×
334
  }
335

336
  /// Applies a quaternion transform.
337
  void applyQuaternion(Quaternion arg) {
1✔
338
    final argStorage = arg._qStorage;
1✔
339
    final v2 = _v3storage[2];
2✔
340
    final v1 = _v3storage[1];
2✔
341
    final v0 = _v3storage[0];
2✔
342
    final qw = argStorage[3];
1✔
343
    final qz = argStorage[2];
1✔
344
    final qy = argStorage[1];
1✔
345
    final qx = argStorage[0];
1✔
346
    final ix = qw * v0 + qy * v2 - qz * v1;
5✔
347
    final iy = qw * v1 + qz * v0 - qx * v2;
5✔
348
    final iz = qw * v2 + qx * v1 - qy * v0;
5✔
349
    final iw = -qx * v0 - qy * v1 - qz * v2;
6✔
350
    _v3storage[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
12✔
351
    _v3storage[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
12✔
352
    _v3storage[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
12✔
353
  }
354

355
  /// Multiplies this by [arg].
356
  void applyMatrix3(Matrix3 arg) {
×
357
    final argStorage = arg._m3storage;
×
358
    final v2 = _v3storage[2];
×
359
    final v1 = _v3storage[1];
×
360
    final v0 = _v3storage[0];
×
361
    _v3storage[2] =
×
362
        argStorage[2] * v0 + argStorage[5] * v1 + argStorage[8] * v2;
×
363
    _v3storage[1] =
×
364
        argStorage[1] * v0 + argStorage[4] * v1 + argStorage[7] * v2;
×
365
    _v3storage[0] =
×
366
        argStorage[0] * v0 + argStorage[3] * v1 + argStorage[6] * v2;
×
367
  }
368

369
  /// Multiplies this by a 4x3 subset of [arg]. Expects [arg] to be an affine
370
  /// transformation matrix.
371
  void applyMatrix4(Matrix4 arg) {
×
372
    final argStorage = arg._m4storage;
×
373
    final v2 = _v3storage[2];
×
374
    final v1 = _v3storage[1];
×
375
    final v0 = _v3storage[0];
×
NEW
376
    _v3storage[2] =
×
NEW
377
        argStorage[2] * v0 +
×
378
        argStorage[6] * v1 +
×
379
        argStorage[10] * v2 +
×
380
        argStorage[14];
×
NEW
381
    _v3storage[1] =
×
NEW
382
        argStorage[1] * v0 +
×
383
        argStorage[5] * v1 +
×
384
        argStorage[9] * v2 +
×
385
        argStorage[13];
×
NEW
386
    _v3storage[0] =
×
NEW
387
        argStorage[0] * v0 +
×
388
        argStorage[4] * v1 +
×
389
        argStorage[8] * v2 +
×
390
        argStorage[12];
×
391
  }
392

393
  /// Relative error between this and [correct]
394
  double relativeError(Vector3 correct) =>
8✔
395
      absoluteError(correct) / correct.length;
24✔
396

397
  /// Absolute error between this and [correct]
398
  double absoluteError(Vector3 correct) {
9✔
399
    final zDiff = _v3storage[2] - correct._v3storage[2];
45✔
400
    final yDiff = _v3storage[1] - correct._v3storage[1];
45✔
401
    final xDiff = _v3storage[0] - correct._v3storage[0];
45✔
402
    return math.sqrt(xDiff * xDiff + yDiff * yDiff + zDiff * zDiff);
54✔
403
  }
404

405
  /// True if any component is infinite.
406
  bool get isInfinite =>
×
407
      _v3storage[2].isInfinite ||
×
408
      _v3storage[1].isInfinite ||
×
409
      _v3storage[0].isInfinite;
×
410

411
  /// True if any component is NaN.
412
  bool get isNaN =>
×
413
      _v3storage[2].isNaN || _v3storage[1].isNaN || _v3storage[0].isNaN;
×
414

415
  /// Add [arg] to this.
416
  void add(Vector3 arg) {
5✔
417
    final argStorage = arg._v3storage;
5✔
418
    _v3storage[2] += argStorage[2];
20✔
419
    _v3storage[1] += argStorage[1];
20✔
420
    _v3storage[0] += argStorage[0];
20✔
421
  }
422

423
  /// Add [arg] scaled by [factor] to this.
424
  void addScaled(Vector3 arg, double factor) {
2✔
425
    final argStorage = arg._v3storage;
2✔
426
    _v3storage[2] += argStorage[2] * factor;
10✔
427
    _v3storage[1] += argStorage[1] * factor;
10✔
428
    _v3storage[0] += argStorage[0] * factor;
10✔
429
  }
430

431
  /// Subtract [arg] from this.
432
  void sub(Vector3 arg) {
7✔
433
    final argStorage = arg._v3storage;
7✔
434
    _v3storage[2] -= argStorage[2];
28✔
435
    _v3storage[1] -= argStorage[1];
28✔
436
    _v3storage[0] -= argStorage[0];
28✔
437
  }
438

439
  /// Multiply entries in this with entries in [arg].
440
  void multiply(Vector3 arg) {
×
441
    final argStorage = arg._v3storage;
×
442
    _v3storage[2] *= argStorage[2];
×
443
    _v3storage[1] *= argStorage[1];
×
444
    _v3storage[0] *= argStorage[0];
×
445
  }
446

447
  /// Divide entries in this with entries in [arg].
448
  void divide(Vector3 arg) {
×
449
    final argStorage = arg._v3storage;
×
450
    _v3storage[2] /= argStorage[2];
×
451
    _v3storage[1] /= argStorage[1];
×
452
    _v3storage[0] /= argStorage[0];
×
453
  }
454

455
  /// Scale this.
456
  void scale(double arg) {
6✔
457
    _v3storage[2] *= arg;
18✔
458
    _v3storage[1] *= arg;
18✔
459
    _v3storage[0] *= arg;
18✔
460
  }
461

462
  /// Create a copy of this and scale it by [arg].
463
  Vector3 scaled(double arg) => clone()..scale(arg);
12✔
464

465
  /// Negate this.
466
  void negate() {
1✔
467
    _v3storage[2] = -_v3storage[2];
5✔
468
    _v3storage[1] = -_v3storage[1];
5✔
469
    _v3storage[0] = -_v3storage[0];
5✔
470
  }
471

472
  /// Absolute value.
473
  void absolute() {
×
474
    _v3storage[2] = _v3storage[2].abs();
×
475
    _v3storage[1] = _v3storage[1].abs();
×
476
    _v3storage[0] = _v3storage[0].abs();
×
477
  }
478

479
  /// Clamp each entry n in this in the range [min[n]]-[max[n]].
480
  void clamp(Vector3 min, Vector3 max) {
1✔
481
    final minStorage = min.storage;
1✔
482
    final maxStorage = max.storage;
1✔
483
    _v3storage[2] =
2✔
484
        _v3storage[2].clamp(minStorage[2], maxStorage[2]).toDouble();
6✔
485
    _v3storage[1] =
2✔
486
        _v3storage[1].clamp(minStorage[1], maxStorage[1]).toDouble();
6✔
487
    _v3storage[0] =
2✔
488
        _v3storage[0].clamp(minStorage[0], maxStorage[0]).toDouble();
6✔
489
  }
490

491
  /// Clamp entries in this in the range [min]-[max].
492
  void clampScalar(double min, double max) {
1✔
493
    _v3storage[2] = _v3storage[2].clamp(min, max).toDouble();
6✔
494
    _v3storage[1] = _v3storage[1].clamp(min, max).toDouble();
6✔
495
    _v3storage[0] = _v3storage[0].clamp(min, max).toDouble();
6✔
496
  }
497

498
  /// Floor entries in this.
499
  void floor() {
1✔
500
    _v3storage[2] = _v3storage[2].floorToDouble();
5✔
501
    _v3storage[1] = _v3storage[1].floorToDouble();
5✔
502
    _v3storage[0] = _v3storage[0].floorToDouble();
5✔
503
  }
504

505
  /// Ceil entries in this.
506
  void ceil() {
1✔
507
    _v3storage[2] = _v3storage[2].ceilToDouble();
5✔
508
    _v3storage[1] = _v3storage[1].ceilToDouble();
5✔
509
    _v3storage[0] = _v3storage[0].ceilToDouble();
5✔
510
  }
511

512
  /// Round entries in this.
513
  void round() {
1✔
514
    _v3storage[2] = _v3storage[2].roundToDouble();
5✔
515
    _v3storage[1] = _v3storage[1].roundToDouble();
5✔
516
    _v3storage[0] = _v3storage[0].roundToDouble();
5✔
517
  }
518

519
  /// Round entries in this towards zero.
520
  void roundToZero() {
1✔
521
    _v3storage[2] =
2✔
522
        _v3storage[2] < 0.0
3✔
523
            ? _v3storage[2].ceilToDouble()
3✔
NEW
524
            : _v3storage[2].floorToDouble();
×
525
    _v3storage[1] =
2✔
526
        _v3storage[1] < 0.0
3✔
NEW
527
            ? _v3storage[1].ceilToDouble()
×
528
            : _v3storage[1].floorToDouble();
3✔
529
    _v3storage[0] =
2✔
530
        _v3storage[0] < 0.0
3✔
531
            ? _v3storage[0].ceilToDouble()
3✔
NEW
532
            : _v3storage[0].floorToDouble();
×
533
  }
534

535
  /// Clone of this.
536
  Vector3 clone() => Vector3.copy(this);
16✔
537

538
  /// Copy this into [arg].
539
  Vector3 copyInto(Vector3 arg) {
×
540
    final argStorage = arg._v3storage;
×
541
    argStorage[2] = _v3storage[2];
×
542
    argStorage[1] = _v3storage[1];
×
543
    argStorage[0] = _v3storage[0];
×
544
    return arg;
545
  }
546

547
  /// Copies this into [array] starting at [offset].
548
  void copyIntoArray(List<double> array, [int offset = 0]) {
×
549
    array[offset + 2] = _v3storage[2];
×
550
    array[offset + 1] = _v3storage[1];
×
551
    array[offset + 0] = _v3storage[0];
×
552
  }
553

554
  /// Copies elements from [array] into this starting at [offset].
555
  void copyFromArray(List<double> array, [int offset = 0]) {
×
556
    _v3storage[2] = array[offset + 2];
×
557
    _v3storage[1] = array[offset + 1];
×
558
    _v3storage[0] = array[offset + 0];
×
559
  }
560

561
  set xy(Vector2 arg) {
×
562
    final argStorage = arg._v2storage;
×
563
    _v3storage[1] = argStorage[1];
×
564
    _v3storage[0] = argStorage[0];
×
565
  }
566

567
  set xz(Vector2 arg) {
×
568
    final argStorage = arg._v2storage;
×
569
    _v3storage[2] = argStorage[1];
×
570
    _v3storage[0] = argStorage[0];
×
571
  }
572

573
  set yx(Vector2 arg) {
×
574
    final argStorage = arg._v2storage;
×
575
    _v3storage[1] = argStorage[0];
×
576
    _v3storage[0] = argStorage[1];
×
577
  }
578

579
  set yz(Vector2 arg) {
×
580
    final argStorage = arg._v2storage;
×
581
    _v3storage[2] = argStorage[1];
×
582
    _v3storage[1] = argStorage[0];
×
583
  }
584

585
  set zx(Vector2 arg) {
×
586
    final argStorage = arg._v2storage;
×
587
    _v3storage[2] = argStorage[0];
×
588
    _v3storage[0] = argStorage[1];
×
589
  }
590

591
  set zy(Vector2 arg) {
×
592
    final argStorage = arg._v2storage;
×
593
    _v3storage[2] = argStorage[0];
×
594
    _v3storage[1] = argStorage[1];
×
595
  }
596

597
  set xyz(Vector3 arg) {
×
598
    final argStorage = arg._v3storage;
×
599
    _v3storage[2] = argStorage[2];
×
600
    _v3storage[1] = argStorage[1];
×
601
    _v3storage[0] = argStorage[0];
×
602
  }
603

604
  set xzy(Vector3 arg) {
×
605
    final argStorage = arg._v3storage;
×
606
    _v3storage[0] = argStorage[0];
×
607
    _v3storage[2] = argStorage[1];
×
608
    _v3storage[1] = argStorage[2];
×
609
  }
610

611
  set yxz(Vector3 arg) {
×
612
    final argStorage = arg._v3storage;
×
613
    _v3storage[2] = argStorage[2];
×
614
    _v3storage[1] = argStorage[0];
×
615
    _v3storage[0] = argStorage[1];
×
616
  }
617

618
  set yzx(Vector3 arg) {
×
619
    final argStorage = arg._v3storage;
×
620
    _v3storage[2] = argStorage[1];
×
621
    _v3storage[1] = argStorage[0];
×
622
    _v3storage[0] = argStorage[2];
×
623
  }
624

625
  set zxy(Vector3 arg) {
×
626
    final argStorage = arg._v3storage;
×
627
    _v3storage[2] = argStorage[0];
×
628
    _v3storage[0] = argStorage[1];
×
629
    _v3storage[1] = argStorage[2];
×
630
  }
631

632
  set zyx(Vector3 arg) {
×
633
    final argStorage = arg._v3storage;
×
634
    _v3storage[2] = argStorage[0];
×
635
    _v3storage[1] = argStorage[1];
×
636
    _v3storage[0] = argStorage[2];
×
637
  }
638

639
  set r(double arg) => x = arg;
×
640
  set g(double arg) => y = arg;
×
641
  set b(double arg) => z = arg;
×
642
  set s(double arg) => x = arg;
×
643
  set t(double arg) => y = arg;
×
644
  set p(double arg) => z = arg;
×
645
  set x(double arg) => _v3storage[0] = arg;
24✔
646
  set y(double arg) => _v3storage[1] = arg;
24✔
647
  set z(double arg) => _v3storage[2] = arg;
24✔
648
  set rg(Vector2 arg) => xy = arg;
×
649
  set rb(Vector2 arg) => xz = arg;
×
650
  set gr(Vector2 arg) => yx = arg;
×
651
  set gb(Vector2 arg) => yz = arg;
×
652
  set br(Vector2 arg) => zx = arg;
×
653
  set bg(Vector2 arg) => zy = arg;
×
654
  set rgb(Vector3 arg) => xyz = arg;
×
655
  set rbg(Vector3 arg) => xzy = arg;
×
656
  set grb(Vector3 arg) => yxz = arg;
×
657
  set gbr(Vector3 arg) => yzx = arg;
×
658
  set brg(Vector3 arg) => zxy = arg;
×
659
  set bgr(Vector3 arg) => zyx = arg;
×
660
  set st(Vector2 arg) => xy = arg;
×
661
  set sp(Vector2 arg) => xz = arg;
×
662
  set ts(Vector2 arg) => yx = arg;
×
663
  set tp(Vector2 arg) => yz = arg;
×
664
  set ps(Vector2 arg) => zx = arg;
×
665
  set pt(Vector2 arg) => zy = arg;
×
666
  set stp(Vector3 arg) => xyz = arg;
×
667
  set spt(Vector3 arg) => xzy = arg;
×
668
  set tsp(Vector3 arg) => yxz = arg;
×
669
  set tps(Vector3 arg) => yzx = arg;
×
670
  set pst(Vector3 arg) => zxy = arg;
×
671
  set pts(Vector3 arg) => zyx = arg;
×
672
  Vector2 get xx => Vector2(_v3storage[0], _v3storage[0]);
×
673
  Vector2 get xy => Vector2(_v3storage[0], _v3storage[1]);
×
674
  Vector2 get xz => Vector2(_v3storage[0], _v3storage[2]);
×
675
  Vector2 get yx => Vector2(_v3storage[1], _v3storage[0]);
×
676
  Vector2 get yy => Vector2(_v3storage[1], _v3storage[1]);
×
677
  Vector2 get yz => Vector2(_v3storage[1], _v3storage[2]);
×
678
  Vector2 get zx => Vector2(_v3storage[2], _v3storage[0]);
×
679
  Vector2 get zy => Vector2(_v3storage[2], _v3storage[1]);
×
680
  Vector2 get zz => Vector2(_v3storage[2], _v3storage[2]);
×
681
  Vector3 get xxx => Vector3(_v3storage[0], _v3storage[0], _v3storage[0]);
×
682
  Vector3 get xxy => Vector3(_v3storage[0], _v3storage[0], _v3storage[1]);
×
683
  Vector3 get xxz => Vector3(_v3storage[0], _v3storage[0], _v3storage[2]);
×
684
  Vector3 get xyx => Vector3(_v3storage[0], _v3storage[1], _v3storage[0]);
×
685
  Vector3 get xyy => Vector3(_v3storage[0], _v3storage[1], _v3storage[1]);
×
686
  Vector3 get xyz => Vector3(_v3storage[0], _v3storage[1], _v3storage[2]);
×
687
  Vector3 get xzx => Vector3(_v3storage[0], _v3storage[2], _v3storage[0]);
×
688
  Vector3 get xzy => Vector3(_v3storage[0], _v3storage[2], _v3storage[1]);
×
689
  Vector3 get xzz => Vector3(_v3storage[0], _v3storage[2], _v3storage[2]);
×
690
  Vector3 get yxx => Vector3(_v3storage[1], _v3storage[0], _v3storage[0]);
×
691
  Vector3 get yxy => Vector3(_v3storage[1], _v3storage[0], _v3storage[1]);
×
692
  Vector3 get yxz => Vector3(_v3storage[1], _v3storage[0], _v3storage[2]);
×
693
  Vector3 get yyx => Vector3(_v3storage[1], _v3storage[1], _v3storage[0]);
×
694
  Vector3 get yyy => Vector3(_v3storage[1], _v3storage[1], _v3storage[1]);
×
695
  Vector3 get yyz => Vector3(_v3storage[1], _v3storage[1], _v3storage[2]);
×
696
  Vector3 get yzx => Vector3(_v3storage[1], _v3storage[2], _v3storage[0]);
×
697
  Vector3 get yzy => Vector3(_v3storage[1], _v3storage[2], _v3storage[1]);
×
698
  Vector3 get yzz => Vector3(_v3storage[1], _v3storage[2], _v3storage[2]);
×
699
  Vector3 get zxx => Vector3(_v3storage[2], _v3storage[0], _v3storage[0]);
×
700
  Vector3 get zxy => Vector3(_v3storage[2], _v3storage[0], _v3storage[1]);
×
701
  Vector3 get zxz => Vector3(_v3storage[2], _v3storage[0], _v3storage[2]);
×
702
  Vector3 get zyx => Vector3(_v3storage[2], _v3storage[1], _v3storage[0]);
×
703
  Vector3 get zyy => Vector3(_v3storage[2], _v3storage[1], _v3storage[1]);
×
704
  Vector3 get zyz => Vector3(_v3storage[2], _v3storage[1], _v3storage[2]);
×
705
  Vector3 get zzx => Vector3(_v3storage[2], _v3storage[2], _v3storage[0]);
×
706
  Vector3 get zzy => Vector3(_v3storage[2], _v3storage[2], _v3storage[1]);
×
707
  Vector3 get zzz => Vector3(_v3storage[2], _v3storage[2], _v3storage[2]);
×
708
  Vector4 get xxxx =>
×
709
      Vector4(_v3storage[0], _v3storage[0], _v3storage[0], _v3storage[0]);
×
710
  Vector4 get xxxy =>
×
711
      Vector4(_v3storage[0], _v3storage[0], _v3storage[0], _v3storage[1]);
×
712
  Vector4 get xxxz =>
×
713
      Vector4(_v3storage[0], _v3storage[0], _v3storage[0], _v3storage[2]);
×
714
  Vector4 get xxyx =>
×
715
      Vector4(_v3storage[0], _v3storage[0], _v3storage[1], _v3storage[0]);
×
716
  Vector4 get xxyy =>
×
717
      Vector4(_v3storage[0], _v3storage[0], _v3storage[1], _v3storage[1]);
×
718
  Vector4 get xxyz =>
×
719
      Vector4(_v3storage[0], _v3storage[0], _v3storage[1], _v3storage[2]);
×
720
  Vector4 get xxzx =>
×
721
      Vector4(_v3storage[0], _v3storage[0], _v3storage[2], _v3storage[0]);
×
722
  Vector4 get xxzy =>
×
723
      Vector4(_v3storage[0], _v3storage[0], _v3storage[2], _v3storage[1]);
×
724
  Vector4 get xxzz =>
×
725
      Vector4(_v3storage[0], _v3storage[0], _v3storage[2], _v3storage[2]);
×
726
  Vector4 get xyxx =>
×
727
      Vector4(_v3storage[0], _v3storage[1], _v3storage[0], _v3storage[0]);
×
728
  Vector4 get xyxy =>
×
729
      Vector4(_v3storage[0], _v3storage[1], _v3storage[0], _v3storage[1]);
×
730
  Vector4 get xyxz =>
×
731
      Vector4(_v3storage[0], _v3storage[1], _v3storage[0], _v3storage[2]);
×
732
  Vector4 get xyyx =>
×
733
      Vector4(_v3storage[0], _v3storage[1], _v3storage[1], _v3storage[0]);
×
734
  Vector4 get xyyy =>
×
735
      Vector4(_v3storage[0], _v3storage[1], _v3storage[1], _v3storage[1]);
×
736
  Vector4 get xyyz =>
×
737
      Vector4(_v3storage[0], _v3storage[1], _v3storage[1], _v3storage[2]);
×
738
  Vector4 get xyzx =>
×
739
      Vector4(_v3storage[0], _v3storage[1], _v3storage[2], _v3storage[0]);
×
740
  Vector4 get xyzy =>
×
741
      Vector4(_v3storage[0], _v3storage[1], _v3storage[2], _v3storage[1]);
×
742
  Vector4 get xyzz =>
×
743
      Vector4(_v3storage[0], _v3storage[1], _v3storage[2], _v3storage[2]);
×
744
  Vector4 get xzxx =>
×
745
      Vector4(_v3storage[0], _v3storage[2], _v3storage[0], _v3storage[0]);
×
746
  Vector4 get xzxy =>
×
747
      Vector4(_v3storage[0], _v3storage[2], _v3storage[0], _v3storage[1]);
×
748
  Vector4 get xzxz =>
×
749
      Vector4(_v3storage[0], _v3storage[2], _v3storage[0], _v3storage[2]);
×
750
  Vector4 get xzyx =>
×
751
      Vector4(_v3storage[0], _v3storage[2], _v3storage[1], _v3storage[0]);
×
752
  Vector4 get xzyy =>
×
753
      Vector4(_v3storage[0], _v3storage[2], _v3storage[1], _v3storage[1]);
×
754
  Vector4 get xzyz =>
×
755
      Vector4(_v3storage[0], _v3storage[2], _v3storage[1], _v3storage[2]);
×
756
  Vector4 get xzzx =>
×
757
      Vector4(_v3storage[0], _v3storage[2], _v3storage[2], _v3storage[0]);
×
758
  Vector4 get xzzy =>
×
759
      Vector4(_v3storage[0], _v3storage[2], _v3storage[2], _v3storage[1]);
×
760
  Vector4 get xzzz =>
×
761
      Vector4(_v3storage[0], _v3storage[2], _v3storage[2], _v3storage[2]);
×
762
  Vector4 get yxxx =>
×
763
      Vector4(_v3storage[1], _v3storage[0], _v3storage[0], _v3storage[0]);
×
764
  Vector4 get yxxy =>
×
765
      Vector4(_v3storage[1], _v3storage[0], _v3storage[0], _v3storage[1]);
×
766
  Vector4 get yxxz =>
×
767
      Vector4(_v3storage[1], _v3storage[0], _v3storage[0], _v3storage[2]);
×
768
  Vector4 get yxyx =>
×
769
      Vector4(_v3storage[1], _v3storage[0], _v3storage[1], _v3storage[0]);
×
770
  Vector4 get yxyy =>
×
771
      Vector4(_v3storage[1], _v3storage[0], _v3storage[1], _v3storage[1]);
×
772
  Vector4 get yxyz =>
×
773
      Vector4(_v3storage[1], _v3storage[0], _v3storage[1], _v3storage[2]);
×
774
  Vector4 get yxzx =>
×
775
      Vector4(_v3storage[1], _v3storage[0], _v3storage[2], _v3storage[0]);
×
776
  Vector4 get yxzy =>
×
777
      Vector4(_v3storage[1], _v3storage[0], _v3storage[2], _v3storage[1]);
×
778
  Vector4 get yxzz =>
×
779
      Vector4(_v3storage[1], _v3storage[0], _v3storage[2], _v3storage[2]);
×
780
  Vector4 get yyxx =>
×
781
      Vector4(_v3storage[1], _v3storage[1], _v3storage[0], _v3storage[0]);
×
782
  Vector4 get yyxy =>
×
783
      Vector4(_v3storage[1], _v3storage[1], _v3storage[0], _v3storage[1]);
×
784
  Vector4 get yyxz =>
×
785
      Vector4(_v3storage[1], _v3storage[1], _v3storage[0], _v3storage[2]);
×
786
  Vector4 get yyyx =>
×
787
      Vector4(_v3storage[1], _v3storage[1], _v3storage[1], _v3storage[0]);
×
788
  Vector4 get yyyy =>
×
789
      Vector4(_v3storage[1], _v3storage[1], _v3storage[1], _v3storage[1]);
×
790
  Vector4 get yyyz =>
×
791
      Vector4(_v3storage[1], _v3storage[1], _v3storage[1], _v3storage[2]);
×
792
  Vector4 get yyzx =>
×
793
      Vector4(_v3storage[1], _v3storage[1], _v3storage[2], _v3storage[0]);
×
794
  Vector4 get yyzy =>
×
795
      Vector4(_v3storage[1], _v3storage[1], _v3storage[2], _v3storage[1]);
×
796
  Vector4 get yyzz =>
×
797
      Vector4(_v3storage[1], _v3storage[1], _v3storage[2], _v3storage[2]);
×
798
  Vector4 get yzxx =>
×
799
      Vector4(_v3storage[1], _v3storage[2], _v3storage[0], _v3storage[0]);
×
800
  Vector4 get yzxy =>
×
801
      Vector4(_v3storage[1], _v3storage[2], _v3storage[0], _v3storage[1]);
×
802
  Vector4 get yzxz =>
×
803
      Vector4(_v3storage[1], _v3storage[2], _v3storage[0], _v3storage[2]);
×
804
  Vector4 get yzyx =>
×
805
      Vector4(_v3storage[1], _v3storage[2], _v3storage[1], _v3storage[0]);
×
806
  Vector4 get yzyy =>
×
807
      Vector4(_v3storage[1], _v3storage[2], _v3storage[1], _v3storage[1]);
×
808
  Vector4 get yzyz =>
×
809
      Vector4(_v3storage[1], _v3storage[2], _v3storage[1], _v3storage[2]);
×
810
  Vector4 get yzzx =>
×
811
      Vector4(_v3storage[1], _v3storage[2], _v3storage[2], _v3storage[0]);
×
812
  Vector4 get yzzy =>
×
813
      Vector4(_v3storage[1], _v3storage[2], _v3storage[2], _v3storage[1]);
×
814
  Vector4 get yzzz =>
×
815
      Vector4(_v3storage[1], _v3storage[2], _v3storage[2], _v3storage[2]);
×
816
  Vector4 get zxxx =>
×
817
      Vector4(_v3storage[2], _v3storage[0], _v3storage[0], _v3storage[0]);
×
818
  Vector4 get zxxy =>
×
819
      Vector4(_v3storage[2], _v3storage[0], _v3storage[0], _v3storage[1]);
×
820
  Vector4 get zxxz =>
×
821
      Vector4(_v3storage[2], _v3storage[0], _v3storage[0], _v3storage[2]);
×
822
  Vector4 get zxyx =>
×
823
      Vector4(_v3storage[2], _v3storage[0], _v3storage[1], _v3storage[0]);
×
824
  Vector4 get zxyy =>
×
825
      Vector4(_v3storage[2], _v3storage[0], _v3storage[1], _v3storage[1]);
×
826
  Vector4 get zxyz =>
×
827
      Vector4(_v3storage[2], _v3storage[0], _v3storage[1], _v3storage[2]);
×
828
  Vector4 get zxzx =>
×
829
      Vector4(_v3storage[2], _v3storage[0], _v3storage[2], _v3storage[0]);
×
830
  Vector4 get zxzy =>
×
831
      Vector4(_v3storage[2], _v3storage[0], _v3storage[2], _v3storage[1]);
×
832
  Vector4 get zxzz =>
×
833
      Vector4(_v3storage[2], _v3storage[0], _v3storage[2], _v3storage[2]);
×
834
  Vector4 get zyxx =>
×
835
      Vector4(_v3storage[2], _v3storage[1], _v3storage[0], _v3storage[0]);
×
836
  Vector4 get zyxy =>
×
837
      Vector4(_v3storage[2], _v3storage[1], _v3storage[0], _v3storage[1]);
×
838
  Vector4 get zyxz =>
×
839
      Vector4(_v3storage[2], _v3storage[1], _v3storage[0], _v3storage[2]);
×
840
  Vector4 get zyyx =>
×
841
      Vector4(_v3storage[2], _v3storage[1], _v3storage[1], _v3storage[0]);
×
842
  Vector4 get zyyy =>
×
843
      Vector4(_v3storage[2], _v3storage[1], _v3storage[1], _v3storage[1]);
×
844
  Vector4 get zyyz =>
×
845
      Vector4(_v3storage[2], _v3storage[1], _v3storage[1], _v3storage[2]);
×
846
  Vector4 get zyzx =>
×
847
      Vector4(_v3storage[2], _v3storage[1], _v3storage[2], _v3storage[0]);
×
848
  Vector4 get zyzy =>
×
849
      Vector4(_v3storage[2], _v3storage[1], _v3storage[2], _v3storage[1]);
×
850
  Vector4 get zyzz =>
×
851
      Vector4(_v3storage[2], _v3storage[1], _v3storage[2], _v3storage[2]);
×
852
  Vector4 get zzxx =>
×
853
      Vector4(_v3storage[2], _v3storage[2], _v3storage[0], _v3storage[0]);
×
854
  Vector4 get zzxy =>
×
855
      Vector4(_v3storage[2], _v3storage[2], _v3storage[0], _v3storage[1]);
×
856
  Vector4 get zzxz =>
×
857
      Vector4(_v3storage[2], _v3storage[2], _v3storage[0], _v3storage[2]);
×
858
  Vector4 get zzyx =>
×
859
      Vector4(_v3storage[2], _v3storage[2], _v3storage[1], _v3storage[0]);
×
860
  Vector4 get zzyy =>
×
861
      Vector4(_v3storage[2], _v3storage[2], _v3storage[1], _v3storage[1]);
×
862
  Vector4 get zzyz =>
×
863
      Vector4(_v3storage[2], _v3storage[2], _v3storage[1], _v3storage[2]);
×
864
  Vector4 get zzzx =>
×
865
      Vector4(_v3storage[2], _v3storage[2], _v3storage[2], _v3storage[0]);
×
866
  Vector4 get zzzy =>
×
867
      Vector4(_v3storage[2], _v3storage[2], _v3storage[2], _v3storage[1]);
×
868
  Vector4 get zzzz =>
×
869
      Vector4(_v3storage[2], _v3storage[2], _v3storage[2], _v3storage[2]);
×
870
  double get r => x;
×
871
  double get g => y;
×
872
  double get b => z;
×
873
  double get s => x;
×
874
  double get t => y;
×
875
  double get p => z;
×
876
  double get x => _v3storage[0];
36✔
877
  double get y => _v3storage[1];
36✔
878
  double get z => _v3storage[2];
36✔
879
  Vector2 get rr => xx;
×
880
  Vector2 get rg => xy;
×
881
  Vector2 get rb => xz;
×
882
  Vector2 get gr => yx;
×
883
  Vector2 get gg => yy;
×
884
  Vector2 get gb => yz;
×
885
  Vector2 get br => zx;
×
886
  Vector2 get bg => zy;
×
887
  Vector2 get bb => zz;
×
888
  Vector3 get rrr => xxx;
×
889
  Vector3 get rrg => xxy;
×
890
  Vector3 get rrb => xxz;
×
891
  Vector3 get rgr => xzx;
×
892
  Vector3 get rgg => xyy;
×
893
  Vector3 get rgb => xyz;
×
894
  Vector3 get rbr => xzx;
×
895
  Vector3 get rbg => xzy;
×
896
  Vector3 get rbb => xzz;
×
897
  Vector3 get grr => yxx;
×
898
  Vector3 get grg => yxy;
×
899
  Vector3 get grb => yxz;
×
900
  Vector3 get ggr => yyx;
×
901
  Vector3 get ggg => yyy;
×
902
  Vector3 get ggb => yyz;
×
903
  Vector3 get gbr => yxz;
×
904
  Vector3 get gbg => yzy;
×
905
  Vector3 get gbb => yzz;
×
906
  Vector3 get brr => zxx;
×
907
  Vector3 get brg => zxy;
×
908
  Vector3 get brb => zxz;
×
909
  Vector3 get bgr => zyx;
×
910
  Vector3 get bgg => zyy;
×
911
  Vector3 get bgb => zyz;
×
912
  Vector3 get bbr => zzx;
×
913
  Vector3 get bbg => zzy;
×
914
  Vector3 get bbb => zzz;
×
915
  Vector4 get rrrr => xxxx;
×
916
  Vector4 get rrrg => xxxy;
×
917
  Vector4 get rrrb => xxxz;
×
918
  Vector4 get rrgr => xxyx;
×
919
  Vector4 get rrgg => xxyy;
×
920
  Vector4 get rrgb => xxyz;
×
921
  Vector4 get rrbr => xxzx;
×
922
  Vector4 get rrbg => xxzy;
×
923
  Vector4 get rrbb => xxzz;
×
924
  Vector4 get rgrr => xyxx;
×
925
  Vector4 get rgrg => xyxy;
×
926
  Vector4 get rgrb => xyxz;
×
927
  Vector4 get rggr => xyyx;
×
928
  Vector4 get rggg => xyyy;
×
929
  Vector4 get rggb => xyyz;
×
930
  Vector4 get rgbr => xyzx;
×
931
  Vector4 get rgbg => xyzy;
×
932
  Vector4 get rgbb => xyzz;
×
933
  Vector4 get rbrr => xzxx;
×
934
  Vector4 get rbrg => xzxy;
×
935
  Vector4 get rbrb => xzxz;
×
936
  Vector4 get rbgr => xzyx;
×
937
  Vector4 get rbgg => xzyy;
×
938
  Vector4 get rbgb => xzyz;
×
939
  Vector4 get rbbr => xzzx;
×
940
  Vector4 get rbbg => xzzy;
×
941
  Vector4 get rbbb => xzzz;
×
942
  Vector4 get grrr => yxxx;
×
943
  Vector4 get grrg => yxxy;
×
944
  Vector4 get grrb => yxxz;
×
945
  Vector4 get grgr => yxyx;
×
946
  Vector4 get grgg => yxyy;
×
947
  Vector4 get grgb => yxyz;
×
948
  Vector4 get grbr => yxzx;
×
949
  Vector4 get grbg => yxzy;
×
950
  Vector4 get grbb => yxzz;
×
951
  Vector4 get ggrr => yyxx;
×
952
  Vector4 get ggrg => yyxy;
×
953
  Vector4 get ggrb => yyxz;
×
954
  Vector4 get gggr => yyyx;
×
955
  Vector4 get gggg => yyyy;
×
956
  Vector4 get gggb => yyyz;
×
957
  Vector4 get ggbr => yyzx;
×
958
  Vector4 get ggbg => yyzy;
×
959
  Vector4 get ggbb => yyzz;
×
960
  Vector4 get gbrr => yzxx;
×
961
  Vector4 get gbrg => yzxy;
×
962
  Vector4 get gbrb => yzxz;
×
963
  Vector4 get gbgr => yzyx;
×
964
  Vector4 get gbgg => yzyy;
×
965
  Vector4 get gbgb => yzyz;
×
966
  Vector4 get gbbr => yzzx;
×
967
  Vector4 get gbbg => yzzy;
×
968
  Vector4 get gbbb => yzzz;
×
969
  Vector4 get brrr => zxxx;
×
970
  Vector4 get brrg => zxxy;
×
971
  Vector4 get brrb => zxxz;
×
972
  Vector4 get brgr => zxyx;
×
973
  Vector4 get brgg => zxyy;
×
974
  Vector4 get brgb => zxyz;
×
975
  Vector4 get brbr => zxzx;
×
976
  Vector4 get brbg => zxzy;
×
977
  Vector4 get brbb => zxzz;
×
978
  Vector4 get bgrr => zyxx;
×
979
  Vector4 get bgrg => zyxy;
×
980
  Vector4 get bgrb => zyxz;
×
981
  Vector4 get bggr => zyyx;
×
982
  Vector4 get bggg => zyyy;
×
983
  Vector4 get bggb => zyyz;
×
984
  Vector4 get bgbr => zyzx;
×
985
  Vector4 get bgbg => zyzy;
×
986
  Vector4 get bgbb => zyzz;
×
987
  Vector4 get bbrr => zzxx;
×
988
  Vector4 get bbrg => zzxy;
×
989
  Vector4 get bbrb => zzxz;
×
990
  Vector4 get bbgr => zzyx;
×
991
  Vector4 get bbgg => zzyy;
×
992
  Vector4 get bbgb => zzyz;
×
993
  Vector4 get bbbr => zzzx;
×
994
  Vector4 get bbbg => zzzy;
×
995
  Vector4 get bbbb => zzzz;
×
996
  Vector2 get ss => xx;
×
997
  Vector2 get st => xy;
×
998
  Vector2 get sp => xz;
×
999
  Vector2 get ts => yx;
×
1000
  Vector2 get tt => yy;
×
1001
  Vector2 get tp => yz;
×
1002
  Vector2 get ps => zx;
×
1003
  Vector2 get pt => zy;
×
1004
  Vector2 get pp => zz;
×
1005
  Vector3 get sss => xxx;
×
1006
  Vector3 get sst => xxy;
×
1007
  Vector3 get ssp => xxz;
×
1008
  Vector3 get sts => xyx;
×
1009
  Vector3 get stt => xyy;
×
1010
  Vector3 get stp => xyz;
×
1011
  Vector3 get sps => xzx;
×
1012
  Vector3 get spt => xzy;
×
1013
  Vector3 get spp => xzz;
×
1014
  Vector3 get tss => yxx;
×
1015
  Vector3 get tst => yxy;
×
1016
  Vector3 get tsp => yxz;
×
1017
  Vector3 get tts => yyx;
×
1018
  Vector3 get ttt => yyy;
×
1019
  Vector3 get ttp => yyz;
×
1020
  Vector3 get tps => yzx;
×
1021
  Vector3 get tpt => yzy;
×
1022
  Vector3 get tpp => yzz;
×
1023
  Vector3 get pss => zxx;
×
1024
  Vector3 get pst => zxy;
×
1025
  Vector3 get psp => zxz;
×
1026
  Vector3 get pts => zyx;
×
1027
  Vector3 get ptt => zyy;
×
1028
  Vector3 get ptp => zyz;
×
1029
  Vector3 get pps => zzx;
×
1030
  Vector3 get ppt => zzy;
×
1031
  Vector3 get ppp => zzz;
×
1032
  Vector4 get ssss => xxxx;
×
1033
  Vector4 get ssst => xxxy;
×
1034
  Vector4 get sssp => xxxz;
×
1035
  Vector4 get ssts => xxyx;
×
1036
  Vector4 get sstt => xxyy;
×
1037
  Vector4 get sstp => xxyz;
×
1038
  Vector4 get ssps => xxzx;
×
1039
  Vector4 get sspt => xxzy;
×
1040
  Vector4 get sspp => xxzz;
×
1041
  Vector4 get stss => xyxx;
×
1042
  Vector4 get stst => xyxy;
×
1043
  Vector4 get stsp => xyxz;
×
1044
  Vector4 get stts => xyyx;
×
1045
  Vector4 get sttt => xyyy;
×
1046
  Vector4 get sttp => xyyz;
×
1047
  Vector4 get stps => xyzx;
×
1048
  Vector4 get stpt => xyzy;
×
1049
  Vector4 get stpp => xyzz;
×
1050
  Vector4 get spss => xzxx;
×
1051
  Vector4 get spst => xzxy;
×
1052
  Vector4 get spsp => xzxz;
×
1053
  Vector4 get spts => xzyx;
×
1054
  Vector4 get sptt => xzyy;
×
1055
  Vector4 get sptp => xzyz;
×
1056
  Vector4 get spps => xzzx;
×
1057
  Vector4 get sppt => xzzy;
×
1058
  Vector4 get sppp => xzzz;
×
1059
  Vector4 get tsss => yxxx;
×
1060
  Vector4 get tsst => yxxy;
×
1061
  Vector4 get tssp => yxxz;
×
1062
  Vector4 get tsts => yxyx;
×
1063
  Vector4 get tstt => yxyy;
×
1064
  Vector4 get tstp => yxyz;
×
1065
  Vector4 get tsps => yxzx;
×
1066
  Vector4 get tspt => yxzy;
×
1067
  Vector4 get tspp => yxzz;
×
1068
  Vector4 get ttss => yyxx;
×
1069
  Vector4 get ttst => yyxy;
×
1070
  Vector4 get ttsp => yyxz;
×
1071
  Vector4 get ttts => yyyx;
×
1072
  Vector4 get tttt => yyyy;
×
1073
  Vector4 get tttp => yyyz;
×
1074
  Vector4 get ttps => yyzx;
×
1075
  Vector4 get ttpt => yyzy;
×
1076
  Vector4 get ttpp => yyzz;
×
1077
  Vector4 get tpss => yzxx;
×
1078
  Vector4 get tpst => yzxy;
×
1079
  Vector4 get tpsp => yzxz;
×
1080
  Vector4 get tpts => yzyx;
×
1081
  Vector4 get tptt => yzyy;
×
1082
  Vector4 get tptp => yzyz;
×
1083
  Vector4 get tpps => yzzx;
×
1084
  Vector4 get tppt => yzzy;
×
1085
  Vector4 get tppp => yzzz;
×
1086
  Vector4 get psss => zxxx;
×
1087
  Vector4 get psst => zxxy;
×
1088
  Vector4 get pssp => zxxz;
×
1089
  Vector4 get psts => zxyx;
×
1090
  Vector4 get pstt => zxyy;
×
1091
  Vector4 get pstp => zxyz;
×
1092
  Vector4 get psps => zxzx;
×
1093
  Vector4 get pspt => zxzy;
×
1094
  Vector4 get pspp => zxzz;
×
1095
  Vector4 get ptss => zyxx;
×
1096
  Vector4 get ptst => zyxy;
×
1097
  Vector4 get ptsp => zyxz;
×
1098
  Vector4 get ptts => zyyx;
×
1099
  Vector4 get pttt => zyyy;
×
1100
  Vector4 get pttp => zyyz;
×
1101
  Vector4 get ptps => zyzx;
×
1102
  Vector4 get ptpt => zyzy;
×
1103
  Vector4 get ptpp => zyzz;
×
1104
  Vector4 get ppss => zzxx;
×
1105
  Vector4 get ppst => zzxy;
×
1106
  Vector4 get ppsp => zzxz;
×
1107
  Vector4 get ppts => zzyx;
×
1108
  Vector4 get pptt => zzyy;
×
1109
  Vector4 get pptp => zzyz;
×
1110
  Vector4 get ppps => zzzx;
×
1111
  Vector4 get pppt => zzzy;
×
1112
  Vector4 get pppp => zzzz;
×
1113
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc