@math.gl/core 3.6.2 → 4.0.0-alpha.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.
Files changed (135) hide show
  1. package/dist/classes/base/math-array.d.ts +3 -3
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/{esm/classes → classes}/base/math-array.js +3 -2
  4. package/dist/classes/base/math-array.js.map +1 -0
  5. package/dist/classes/base/matrix.d.ts.map +1 -1
  6. package/dist/{esm/classes → classes}/base/matrix.js +3 -3
  7. package/dist/classes/base/matrix.js.map +1 -0
  8. package/dist/{esm/classes → classes}/base/vector.js +3 -3
  9. package/dist/classes/base/vector.js.map +1 -0
  10. package/dist/classes/euler.d.ts +1 -1
  11. package/dist/classes/euler.d.ts.map +1 -1
  12. package/dist/{esm/classes → classes}/euler.js +4 -4
  13. package/dist/classes/euler.js.map +1 -0
  14. package/dist/classes/matrix3.d.ts +1 -1
  15. package/dist/classes/matrix3.d.ts.map +1 -1
  16. package/dist/{esm/classes → classes}/matrix3.js +4 -4
  17. package/dist/classes/matrix3.js.map +1 -0
  18. package/dist/classes/matrix4.d.ts +1 -1
  19. package/dist/classes/matrix4.d.ts.map +1 -1
  20. package/dist/{esm/classes → classes}/matrix4.js +3 -3
  21. package/dist/classes/matrix4.js.map +1 -0
  22. package/dist/classes/pose.d.ts +1 -1
  23. package/dist/classes/pose.d.ts.map +1 -1
  24. package/dist/{esm/classes → classes}/pose.js +3 -3
  25. package/dist/classes/pose.js.map +1 -0
  26. package/dist/classes/quaternion.d.ts +1 -1
  27. package/dist/classes/quaternion.d.ts.map +1 -1
  28. package/dist/{esm/classes → classes}/quaternion.js +3 -3
  29. package/dist/classes/quaternion.js.map +1 -0
  30. package/dist/classes/spherical-coordinates.d.ts +3 -3
  31. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  32. package/dist/{esm/classes → classes}/spherical-coordinates.js +3 -3
  33. package/dist/classes/spherical-coordinates.js.map +1 -0
  34. package/dist/classes/vector2.d.ts.map +1 -1
  35. package/dist/{esm/classes → classes}/vector2.js +4 -4
  36. package/dist/classes/vector2.js.map +1 -0
  37. package/dist/classes/vector3.d.ts.map +1 -1
  38. package/dist/{esm/classes → classes}/vector3.js +4 -4
  39. package/dist/classes/vector3.js.map +1 -0
  40. package/dist/classes/vector4.d.ts +1 -1
  41. package/dist/classes/vector4.d.ts.map +1 -1
  42. package/dist/{esm/classes → classes}/vector4.js +4 -4
  43. package/dist/classes/vector4.js.map +1 -0
  44. package/dist/{es5/docs → docs}/README.md +0 -0
  45. package/dist/index.cjs +2335 -0
  46. package/dist/index.js +16 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/{esm/lib → lib}/assert.js +0 -0
  49. package/dist/lib/assert.js.map +1 -0
  50. package/dist/lib/common.d.ts +1 -1
  51. package/dist/lib/common.d.ts.map +1 -1
  52. package/dist/{esm/lib → lib}/common.js +3 -7
  53. package/dist/lib/common.js.map +1 -0
  54. package/dist/{esm/lib → lib}/gl-matrix-extras.js +0 -0
  55. package/dist/lib/gl-matrix-extras.js.map +1 -0
  56. package/dist/{esm/lib → lib}/gl-matrix.d.js +0 -0
  57. package/dist/{es5/lib → lib}/gl-matrix.d.js.map +0 -0
  58. package/dist/{esm/lib → lib}/math-utils.js +0 -0
  59. package/dist/lib/math-utils.js.map +1 -0
  60. package/dist/lib/validators.d.ts +1 -1
  61. package/dist/lib/validators.d.ts.map +1 -1
  62. package/dist/{esm/lib → lib}/validators.js +1 -1
  63. package/dist/lib/validators.js.map +1 -0
  64. package/package.json +7 -6
  65. package/src/classes/base/math-array.ts +10 -6
  66. package/src/classes/base/matrix.ts +1 -1
  67. package/src/classes/base/vector.ts +1 -1
  68. package/src/classes/euler.ts +4 -4
  69. package/src/classes/matrix3.ts +8 -4
  70. package/src/classes/matrix4.ts +7 -2
  71. package/src/classes/quaternion.ts +6 -4
  72. package/src/classes/spherical-coordinates.ts +2 -1
  73. package/src/classes/vector2.ts +1 -0
  74. package/src/classes/vector3.ts +1 -0
  75. package/src/classes/vector4.ts +6 -4
  76. package/src/lib/common.ts +3 -7
  77. package/src/lib/validators.ts +2 -2
  78. package/dist/es5/classes/base/math-array.js +0 -348
  79. package/dist/es5/classes/base/math-array.js.map +0 -1
  80. package/dist/es5/classes/base/matrix.js +0 -108
  81. package/dist/es5/classes/base/matrix.js.map +0 -1
  82. package/dist/es5/classes/base/vector.js +0 -210
  83. package/dist/es5/classes/base/vector.js.map +0 -1
  84. package/dist/es5/classes/euler.js +0 -654
  85. package/dist/es5/classes/euler.js.map +0 -1
  86. package/dist/es5/classes/matrix3.js +0 -284
  87. package/dist/es5/classes/matrix3.js.map +0 -1
  88. package/dist/es5/classes/matrix4.js +0 -574
  89. package/dist/es5/classes/matrix4.js.map +0 -1
  90. package/dist/es5/classes/pose.js +0 -159
  91. package/dist/es5/classes/pose.js.map +0 -1
  92. package/dist/es5/classes/quaternion.js +0 -323
  93. package/dist/es5/classes/quaternion.js.map +0 -1
  94. package/dist/es5/classes/spherical-coordinates.js +0 -208
  95. package/dist/es5/classes/spherical-coordinates.js.map +0 -1
  96. package/dist/es5/classes/vector2.js +0 -156
  97. package/dist/es5/classes/vector2.js.map +0 -1
  98. package/dist/es5/classes/vector3.js +0 -213
  99. package/dist/es5/classes/vector3.js.map +0 -1
  100. package/dist/es5/classes/vector4.js +0 -185
  101. package/dist/es5/classes/vector4.js.map +0 -1
  102. package/dist/es5/index.js +0 -236
  103. package/dist/es5/index.js.map +0 -1
  104. package/dist/es5/lib/assert.js +0 -13
  105. package/dist/es5/lib/assert.js.map +0 -1
  106. package/dist/es5/lib/common.js +0 -255
  107. package/dist/es5/lib/common.js.map +0 -1
  108. package/dist/es5/lib/gl-matrix-extras.js +0 -61
  109. package/dist/es5/lib/gl-matrix-extras.js.map +0 -1
  110. package/dist/es5/lib/gl-matrix.d.js +0 -2
  111. package/dist/es5/lib/math-utils.js +0 -34
  112. package/dist/es5/lib/math-utils.js.map +0 -1
  113. package/dist/es5/lib/validators.js +0 -53
  114. package/dist/es5/lib/validators.js.map +0 -1
  115. package/dist/esm/classes/base/math-array.js.map +0 -1
  116. package/dist/esm/classes/base/matrix.js.map +0 -1
  117. package/dist/esm/classes/base/vector.js.map +0 -1
  118. package/dist/esm/classes/euler.js.map +0 -1
  119. package/dist/esm/classes/matrix3.js.map +0 -1
  120. package/dist/esm/classes/matrix4.js.map +0 -1
  121. package/dist/esm/classes/pose.js.map +0 -1
  122. package/dist/esm/classes/quaternion.js.map +0 -1
  123. package/dist/esm/classes/spherical-coordinates.js.map +0 -1
  124. package/dist/esm/classes/vector2.js.map +0 -1
  125. package/dist/esm/classes/vector3.js.map +0 -1
  126. package/dist/esm/classes/vector4.js.map +0 -1
  127. package/dist/esm/docs/README.md +0 -0
  128. package/dist/esm/index.js +0 -16
  129. package/dist/esm/index.js.map +0 -1
  130. package/dist/esm/lib/assert.js.map +0 -1
  131. package/dist/esm/lib/common.js.map +0 -1
  132. package/dist/esm/lib/gl-matrix-extras.js.map +0 -1
  133. package/dist/esm/lib/gl-matrix.d.js.map +0 -1
  134. package/dist/esm/lib/math-utils.js.map +0 -1
  135. package/dist/esm/lib/validators.js.map +0 -1
@@ -1,210 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _mathArray = _interopRequireDefault(require("./math-array"));
21
-
22
- var _validators = require("../../lib/validators");
23
-
24
- var _assert = _interopRequireDefault(require("../../lib/assert"));
25
-
26
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
27
-
28
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
29
-
30
- var Vector = function (_MathArray) {
31
- (0, _inherits2.default)(Vector, _MathArray);
32
-
33
- var _super = _createSuper(Vector);
34
-
35
- function Vector() {
36
- (0, _classCallCheck2.default)(this, Vector);
37
- return _super.apply(this, arguments);
38
- }
39
-
40
- (0, _createClass2.default)(Vector, [{
41
- key: "x",
42
- get: function get() {
43
- return this[0];
44
- },
45
- set: function set(value) {
46
- this[0] = (0, _validators.checkNumber)(value);
47
- }
48
- }, {
49
- key: "y",
50
- get: function get() {
51
- return this[1];
52
- },
53
- set: function set(value) {
54
- this[1] = (0, _validators.checkNumber)(value);
55
- }
56
- }, {
57
- key: "len",
58
- value: function len() {
59
- return Math.sqrt(this.lengthSquared());
60
- }
61
- }, {
62
- key: "magnitude",
63
- value: function magnitude() {
64
- return this.len();
65
- }
66
- }, {
67
- key: "lengthSquared",
68
- value: function lengthSquared() {
69
- var length = 0;
70
-
71
- for (var i = 0; i < this.ELEMENTS; ++i) {
72
- length += this[i] * this[i];
73
- }
74
-
75
- return length;
76
- }
77
- }, {
78
- key: "magnitudeSquared",
79
- value: function magnitudeSquared() {
80
- return this.lengthSquared();
81
- }
82
- }, {
83
- key: "distance",
84
- value: function distance(mathArray) {
85
- return Math.sqrt(this.distanceSquared(mathArray));
86
- }
87
- }, {
88
- key: "distanceSquared",
89
- value: function distanceSquared(mathArray) {
90
- var length = 0;
91
-
92
- for (var i = 0; i < this.ELEMENTS; ++i) {
93
- var dist = this[i] - mathArray[i];
94
- length += dist * dist;
95
- }
96
-
97
- return (0, _validators.checkNumber)(length);
98
- }
99
- }, {
100
- key: "dot",
101
- value: function dot(mathArray) {
102
- var product = 0;
103
-
104
- for (var i = 0; i < this.ELEMENTS; ++i) {
105
- product += this[i] * mathArray[i];
106
- }
107
-
108
- return (0, _validators.checkNumber)(product);
109
- }
110
- }, {
111
- key: "normalize",
112
- value: function normalize() {
113
- var length = this.magnitude();
114
-
115
- if (length !== 0) {
116
- for (var i = 0; i < this.ELEMENTS; ++i) {
117
- this[i] /= length;
118
- }
119
- }
120
-
121
- return this.check();
122
- }
123
- }, {
124
- key: "multiply",
125
- value: function multiply() {
126
- for (var _len = arguments.length, vectors = new Array(_len), _key = 0; _key < _len; _key++) {
127
- vectors[_key] = arguments[_key];
128
- }
129
-
130
- for (var _i = 0, _vectors = vectors; _i < _vectors.length; _i++) {
131
- var vector = _vectors[_i];
132
-
133
- for (var i = 0; i < this.ELEMENTS; ++i) {
134
- this[i] *= vector[i];
135
- }
136
- }
137
-
138
- return this.check();
139
- }
140
- }, {
141
- key: "divide",
142
- value: function divide() {
143
- for (var _len2 = arguments.length, vectors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
144
- vectors[_key2] = arguments[_key2];
145
- }
146
-
147
- for (var _i2 = 0, _vectors2 = vectors; _i2 < _vectors2.length; _i2++) {
148
- var vector = _vectors2[_i2];
149
-
150
- for (var i = 0; i < this.ELEMENTS; ++i) {
151
- this[i] /= vector[i];
152
- }
153
- }
154
-
155
- return this.check();
156
- }
157
- }, {
158
- key: "lengthSq",
159
- value: function lengthSq() {
160
- return this.lengthSquared();
161
- }
162
- }, {
163
- key: "distanceTo",
164
- value: function distanceTo(vector) {
165
- return this.distance(vector);
166
- }
167
- }, {
168
- key: "distanceToSquared",
169
- value: function distanceToSquared(vector) {
170
- return this.distanceSquared(vector);
171
- }
172
- }, {
173
- key: "getComponent",
174
- value: function getComponent(i) {
175
- (0, _assert.default)(i >= 0 && i < this.ELEMENTS, 'index is out of range');
176
- return (0, _validators.checkNumber)(this[i]);
177
- }
178
- }, {
179
- key: "setComponent",
180
- value: function setComponent(i, value) {
181
- (0, _assert.default)(i >= 0 && i < this.ELEMENTS, 'index is out of range');
182
- this[i] = value;
183
- return this.check();
184
- }
185
- }, {
186
- key: "addVectors",
187
- value: function addVectors(a, b) {
188
- return this.copy(a).add(b);
189
- }
190
- }, {
191
- key: "subVectors",
192
- value: function subVectors(a, b) {
193
- return this.copy(a).subtract(b);
194
- }
195
- }, {
196
- key: "multiplyVectors",
197
- value: function multiplyVectors(a, b) {
198
- return this.copy(a).multiply(b);
199
- }
200
- }, {
201
- key: "addScaledVector",
202
- value: function addScaledVector(a, b) {
203
- return this.add(new this.constructor(a).multiplyScalar(b));
204
- }
205
- }]);
206
- return Vector;
207
- }(_mathArray.default);
208
-
209
- exports.default = Vector;
210
- //# sourceMappingURL=vector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/classes/base/vector.ts"],"names":["Vector","value","Math","sqrt","lengthSquared","len","length","i","ELEMENTS","mathArray","distanceSquared","dist","product","magnitude","check","vectors","vector","distance","a","b","copy","add","subtract","multiply","constructor","multiplyScalar","MathArray"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport assert from '../../lib/assert';\n\n/** Base class for vectors with at least 2 elements */\nexport default abstract class Vector extends MathArray {\n // ACCESSORS\n\n get x(): number {\n return this[0];\n }\n\n set x(value: number) {\n this[0] = checkNumber(value);\n }\n\n get y(): number {\n return this[1];\n }\n\n set y(value: number) {\n this[1] = checkNumber(value);\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n *\n * @note `length` is a reserved word for Arrays, so `v.length()` will return number of elements\n * Instead we provide `len` and `magnitude`\n */\n len(): number {\n return Math.sqrt(this.lengthSquared());\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n */\n magnitude(): number {\n return this.len();\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n lengthSquared(): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n length += this[i] * this[i];\n }\n return length;\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n magnitudeSquared(): number {\n return this.lengthSquared();\n }\n\n distance(mathArray: Readonly<NumericArray>): number {\n return Math.sqrt(this.distanceSquared(mathArray));\n }\n\n distanceSquared(mathArray: Readonly<NumericArray>): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const dist = this[i] - mathArray[i];\n length += dist * dist;\n }\n return checkNumber(length);\n }\n\n dot(mathArray: Readonly<NumericArray>): number {\n let product = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n product += this[i] * mathArray[i];\n }\n return checkNumber(product);\n }\n\n // MODIFIERS\n\n normalize(): this {\n const length = this.magnitude();\n if (length !== 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= length;\n }\n }\n return this.check();\n }\n\n multiply(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= vector[i];\n }\n }\n return this.check();\n }\n\n divide(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= vector[i];\n }\n }\n return this.check();\n }\n\n // THREE.js compatibility\n\n lengthSq(): number {\n return this.lengthSquared();\n }\n distanceTo(vector: Readonly<NumericArray>): number {\n return this.distance(vector);\n }\n distanceToSquared(vector: Readonly<NumericArray>): number {\n return this.distanceSquared(vector);\n }\n\n getComponent(i: number): number {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n return checkNumber(this[i]);\n }\n\n setComponent(i: number, value: number): this {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n this[i] = value;\n return this.check();\n }\n\n addVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).add(b);\n }\n\n subVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).subtract(b);\n }\n\n multiplyVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).multiply(b);\n }\n\n addScaledVector(a: Readonly<NumericArray>, b: number): this {\n // @ts-expect-error error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return this.add(new this.constructor(a).multiplyScalar(b));\n }\n}\n"],"file":"vector.js"}