@itwin/core-geometry 4.3.0-dev.13 → 4.3.0-dev.15
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/CHANGELOG.md +16 -1
- package/lib/cjs/bspline/BSpline1dNd.d.ts +12 -2
- package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js +27 -17
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts +30 -16
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +68 -44
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve3dH.d.ts +27 -20
- package/lib/cjs/bspline/BSplineCurve3dH.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve3dH.js +136 -87
- package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.d.ts +138 -74
- package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.js +242 -119
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
- package/lib/cjs/bspline/Bezier1dNd.d.ts +18 -4
- package/lib/cjs/bspline/Bezier1dNd.d.ts.map +1 -1
- package/lib/cjs/bspline/Bezier1dNd.js +19 -5
- package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3dH.d.ts.map +1 -1
- package/lib/cjs/bspline/BezierCurve3dH.js +2 -1
- package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/KnotVector.d.ts +30 -33
- package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
- package/lib/cjs/bspline/KnotVector.js +76 -69
- package/lib/cjs/bspline/KnotVector.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +20 -13
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +28 -21
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +3 -2
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +6 -5
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.d.ts +58 -20
- package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js +213 -62
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.d.ts +2 -3
- package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Transform.js +2 -3
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.d.ts +13 -0
- package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js +21 -0
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.d.ts +88 -64
- package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js +92 -73
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/PascalCoefficients.d.ts +8 -12
- package/lib/cjs/numerics/PascalCoefficients.d.ts.map +1 -1
- package/lib/cjs/numerics/PascalCoefficients.js +10 -12
- package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.d.ts +10 -10
- package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js +69 -42
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.d.ts +8 -8
- package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js +80 -55
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js +6 -8
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.d.ts +6 -14
- package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js +84 -262
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/serialization/SerializationHelpers.d.ts +109 -0
- package/lib/cjs/serialization/SerializationHelpers.d.ts.map +1 -0
- package/lib/cjs/serialization/SerializationHelpers.js +591 -0
- package/lib/cjs/serialization/SerializationHelpers.js.map +1 -0
- package/lib/esm/bspline/BSpline1dNd.d.ts +12 -2
- package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js +27 -17
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +30 -16
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +68 -44
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve3dH.d.ts +27 -20
- package/lib/esm/bspline/BSplineCurve3dH.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve3dH.js +137 -88
- package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.d.ts +138 -74
- package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js +242 -119
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/bspline/Bezier1dNd.d.ts +18 -4
- package/lib/esm/bspline/Bezier1dNd.d.ts.map +1 -1
- package/lib/esm/bspline/Bezier1dNd.js +19 -5
- package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3dH.d.ts.map +1 -1
- package/lib/esm/bspline/BezierCurve3dH.js +2 -1
- package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/esm/bspline/KnotVector.d.ts +30 -33
- package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
- package/lib/esm/bspline/KnotVector.js +76 -69
- package/lib/esm/bspline/KnotVector.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +20 -13
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +28 -21
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +3 -2
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +6 -5
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.d.ts +58 -20
- package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js +213 -62
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/Transform.d.ts +2 -3
- package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
- package/lib/esm/geometry3d/Transform.js +2 -3
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.d.ts +13 -0
- package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
- package/lib/esm/geometry4d/Point4d.js +21 -0
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.d.ts +88 -64
- package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js +92 -73
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/PascalCoefficients.d.ts +8 -12
- package/lib/esm/numerics/PascalCoefficients.d.ts.map +1 -1
- package/lib/esm/numerics/PascalCoefficients.js +10 -12
- package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.d.ts +10 -10
- package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBReader.js +69 -42
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.d.ts +8 -8
- package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js +80 -55
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js +7 -9
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.d.ts +6 -14
- package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js +85 -263
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/serialization/SerializationHelpers.d.ts +109 -0
- package/lib/esm/serialization/SerializationHelpers.d.ts.map +1 -0
- package/lib/esm/serialization/SerializationHelpers.js +588 -0
- package/lib/esm/serialization/SerializationHelpers.js.map +1 -0
- package/package.json +3 -3
|
@@ -52,33 +52,39 @@ class PackedMatrix3dOps {
|
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Multiply 3x3 matrix `a*b`, store in `result`.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
55
|
+
* @param a left matrix in product. ASSUMED length 9.
|
|
56
|
+
* @param b right matrix in product. ASSUMED length 9.
|
|
57
|
+
* @param result optional destination array of length 9. If insufficient length, a new array is returned. May refer to same array as `a` or `b`.
|
|
58
|
+
* @return matrix product `a*b`
|
|
57
59
|
*/
|
|
58
60
|
static multiplyMatrixMatrix(a, b, result) {
|
|
59
|
-
if (!result)
|
|
61
|
+
if (!result || result.length < 9)
|
|
60
62
|
result = new Float64Array(9);
|
|
61
63
|
PackedMatrix3dOps.loadMatrix(result, (a[0] * b[0] + a[1] * b[3] + a[2] * b[6]), (a[0] * b[1] + a[1] * b[4] + a[2] * b[7]), (a[0] * b[2] + a[1] * b[5] + a[2] * b[8]), (a[3] * b[0] + a[4] * b[3] + a[5] * b[6]), (a[3] * b[1] + a[4] * b[4] + a[5] * b[7]), (a[3] * b[2] + a[4] * b[5] + a[5] * b[8]), (a[6] * b[0] + a[7] * b[3] + a[8] * b[6]), (a[6] * b[1] + a[7] * b[4] + a[8] * b[7]), (a[6] * b[2] + a[7] * b[5] + a[8] * b[8]));
|
|
62
64
|
return result;
|
|
63
65
|
}
|
|
64
66
|
/**
|
|
65
67
|
* Multiply 3x3 matrix `a*bTranspose`, store in `result`.
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
+
* @param a left matrix in product. ASSUMED length 9.
|
|
69
|
+
* @param b transpose of right matrix in product. ASSUMED length 9.
|
|
70
|
+
* @param result optional destination array of length 9. If insufficient length, a new array is returned. May refer to same array as `a` or `b`.
|
|
71
|
+
* @return matrix product `a*b^T`
|
|
68
72
|
*/
|
|
69
73
|
static multiplyMatrixMatrixTranspose(a, b, result) {
|
|
70
|
-
if (!result)
|
|
74
|
+
if (!result || result.length < 9)
|
|
71
75
|
result = new Float64Array(9);
|
|
72
76
|
PackedMatrix3dOps.loadMatrix(result, (a[0] * b[0] + a[1] * b[1] + a[2] * b[2]), (a[0] * b[3] + a[1] * b[4] + a[2] * b[5]), (a[0] * b[6] + a[1] * b[7] + a[2] * b[8]), (a[3] * b[0] + a[4] * b[1] + a[5] * b[2]), (a[3] * b[3] + a[4] * b[4] + a[5] * b[5]), (a[3] * b[6] + a[4] * b[7] + a[5] * b[8]), (a[6] * b[0] + a[7] * b[1] + a[8] * b[2]), (a[6] * b[3] + a[7] * b[4] + a[8] * b[5]), (a[6] * b[6] + a[7] * b[7] + a[8] * b[8]));
|
|
73
77
|
return result;
|
|
74
78
|
}
|
|
75
79
|
/**
|
|
76
80
|
* Multiply 3x3 matrix `aTranspose*b`, store in `result`.
|
|
77
|
-
*
|
|
78
|
-
*
|
|
81
|
+
* @param a transpose of left matrix in product. ASSUMED length 9.
|
|
82
|
+
* @param b right matrix in product. ASSUMED length 9.
|
|
83
|
+
* @param result optional destination array of length 9. If insufficient length, a new array is returned. May refer to same array as `a` or `b`.
|
|
84
|
+
* @return matrix product `a^T*b`
|
|
79
85
|
*/
|
|
80
86
|
static multiplyMatrixTransposeMatrix(a, b, result) {
|
|
81
|
-
if (!result)
|
|
87
|
+
if (!result || result.length < 9)
|
|
82
88
|
result = new Float64Array(9);
|
|
83
89
|
PackedMatrix3dOps.loadMatrix(result, (a[0] * b[0] + a[3] * b[3] + a[6] * b[6]), (a[0] * b[1] + a[3] * b[4] + a[6] * b[7]), (a[0] * b[2] + a[3] * b[5] + a[6] * b[8]), (a[1] * b[0] + a[4] * b[3] + a[7] * b[6]), (a[1] * b[1] + a[4] * b[4] + a[7] * b[7]), (a[1] * b[2] + a[4] * b[5] + a[7] * b[8]), (a[2] * b[0] + a[5] * b[3] + a[8] * b[6]), (a[2] * b[1] + a[5] * b[4] + a[8] * b[7]), (a[2] * b[2] + a[5] * b[5] + a[8] * b[8]));
|
|
84
90
|
return result;
|
|
@@ -96,16 +102,17 @@ class PackedMatrix3dOps {
|
|
|
96
102
|
a[7] = q;
|
|
97
103
|
}
|
|
98
104
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
105
|
+
* Compute transpose of 3x3 matrix `a`, store in `dest`.
|
|
106
|
+
* @param a source matrix. ASSUMED length 9. Note that `a` is not changed unless also passed as `dest`, i.e., `copyTransposed(a,a)` transposes `a` in place.
|
|
107
|
+
* @param dest optional destination array of length 9. If insufficient length, a new array is returned. May refer to same array as `a`.
|
|
108
|
+
* @return matrix `a^T`
|
|
102
109
|
*/
|
|
103
110
|
static copyTransposed(a, dest) {
|
|
104
111
|
if (dest === a) {
|
|
105
112
|
PackedMatrix3dOps.transposeInPlace(dest);
|
|
106
113
|
}
|
|
107
114
|
else {
|
|
108
|
-
if (!dest)
|
|
115
|
+
if (!dest || dest.length < 9)
|
|
109
116
|
dest = new Float64Array(9);
|
|
110
117
|
dest[0] = a[0];
|
|
111
118
|
dest[1] = a[3];
|
|
@@ -206,11 +213,10 @@ class Matrix3d {
|
|
|
206
213
|
}
|
|
207
214
|
/**
|
|
208
215
|
* Constructor
|
|
209
|
-
* @param coffs optional coefficient array.
|
|
210
|
-
* * **WARNING:** coffs is captured (i.e., is now owned by the Matrix3d object and can be modified by it).
|
|
216
|
+
* @param coffs optional coefficient array of length at least 9 (CAPTURED). If undefined or insufficient length, a new array is created.
|
|
211
217
|
*/
|
|
212
218
|
constructor(coffs) {
|
|
213
|
-
this.coffs = coffs ? coffs : new Float64Array(9);
|
|
219
|
+
this.coffs = (coffs && coffs.length >= 9) ? coffs : new Float64Array(9);
|
|
214
220
|
this.inverseCoffs = undefined;
|
|
215
221
|
this.inverseState = InverseMatrixState.unknown;
|
|
216
222
|
}
|
|
@@ -373,13 +379,14 @@ class Matrix3d {
|
|
|
373
379
|
* Create a Matrix3d with caller-supplied coefficients and optional inverse coefficients.
|
|
374
380
|
* * The inputs are captured into (i.e., owned by) the new Matrix3d.
|
|
375
381
|
* * The caller is responsible for validity of the inverse coefficients.
|
|
382
|
+
* * If either array is insufficiently sized, it is ignored.
|
|
376
383
|
* @param coffs (required) array of 9 coefficients.
|
|
377
384
|
* @param inverseCoffs (optional) array of 9 coefficients.
|
|
378
385
|
* @returns a Matrix3d populated by a coffs array.
|
|
379
386
|
*/
|
|
380
387
|
static createCapture(coffs, inverseCoffs) {
|
|
381
388
|
const result = new Matrix3d(coffs);
|
|
382
|
-
if (inverseCoffs) {
|
|
389
|
+
if (inverseCoffs && inverseCoffs.length >= 9) {
|
|
383
390
|
result.inverseCoffs = inverseCoffs;
|
|
384
391
|
result.inverseState = InverseMatrixState.inverseStored;
|
|
385
392
|
}
|
|
@@ -1613,10 +1620,10 @@ class Matrix3d {
|
|
|
1613
1620
|
* @param y y part of multiplied point
|
|
1614
1621
|
* @param z z part of multiplied point
|
|
1615
1622
|
* @param w w part of multiplied point
|
|
1616
|
-
* @param result optional preallocated result.
|
|
1623
|
+
* @param result optional preallocated result. If length < 4, a new array is returned.
|
|
1617
1624
|
*/
|
|
1618
1625
|
static xyzPlusMatrixTimesWeightedCoordinatesToFloat64Array(origin, matrix, x, y, z, w, result) {
|
|
1619
|
-
if (!result)
|
|
1626
|
+
if (!result || result.length < 4)
|
|
1620
1627
|
result = new Float64Array(4);
|
|
1621
1628
|
result[0] = matrix.coffs[0] * x + matrix.coffs[1] * y + matrix.coffs[2] * z + origin.x * w;
|
|
1622
1629
|
result[1] = matrix.coffs[3] * x + matrix.coffs[4] * y + matrix.coffs[5] * z + origin.y * w;
|
|
@@ -1636,10 +1643,10 @@ class Matrix3d {
|
|
|
1636
1643
|
* @param x x part of multiplied point
|
|
1637
1644
|
* @param y y part of multiplied point
|
|
1638
1645
|
* @param z z part of multiplied point
|
|
1639
|
-
* @param result optional preallocated result.
|
|
1646
|
+
* @param result optional preallocated result. If length < 3, a new array is returned.
|
|
1640
1647
|
*/
|
|
1641
1648
|
static xyzPlusMatrixTimesCoordinatesToFloat64Array(origin, matrix, x, y, z, result) {
|
|
1642
|
-
if (!result)
|
|
1649
|
+
if (!result || result.length < 3)
|
|
1643
1650
|
result = new Float64Array(3);
|
|
1644
1651
|
result[0] = matrix.coffs[0] * x + matrix.coffs[1] * y + matrix.coffs[2] * z + origin.x;
|
|
1645
1652
|
result[1] = matrix.coffs[3] * x + matrix.coffs[4] * y + matrix.coffs[5] * z + origin.y;
|