@itwin/core-geometry 4.2.0-dev.31 → 4.2.0-dev.33
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/lib/cjs/Geometry.d.ts +2 -2
- package/lib/cjs/Geometry.js +2 -2
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +93 -91
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +171 -152
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.d.ts +13 -11
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurve.js +14 -12
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.d.ts +8 -7
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +2 -1
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +1 -2
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +2 -2
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts +1 -1
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +2 -2
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +20 -12
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +63 -14
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +31 -24
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +85 -83
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +8 -7
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +123 -95
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.d.ts +2 -2
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js +9 -5
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.d.ts +12 -16
- package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.js +21 -26
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry4d/Map4d.d.ts +14 -8
- package/lib/cjs/geometry4d/Map4d.d.ts.map +1 -1
- package/lib/cjs/geometry4d/Map4d.js +38 -16
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js +7 -10
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js +7 -1
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/Geometry.d.ts +2 -2
- package/lib/esm/Geometry.js +2 -2
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +93 -91
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +171 -152
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCurve.d.ts +13 -11
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurve.js +14 -12
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.d.ts +8 -7
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +2 -1
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +1 -2
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +2 -2
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts +1 -1
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +2 -2
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +20 -12
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +63 -14
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +31 -24
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +85 -83
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +8 -7
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +124 -96
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.d.ts +2 -2
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js +9 -5
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.d.ts +12 -16
- package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.js +21 -26
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry4d/Map4d.d.ts +14 -8
- package/lib/esm/geometry4d/Map4d.d.ts.map +1 -1
- package/lib/esm/geometry4d/Map4d.js +38 -16
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js +7 -10
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js +7 -1
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/package.json +3 -3
|
@@ -5,7 +5,8 @@ import { BeJSONFunctions } from "../Geometry";
|
|
|
5
5
|
import { Point3d, Vector3d } from "../geometry3d/Point3dVector3d";
|
|
6
6
|
import { Transform } from "../geometry3d/Transform";
|
|
7
7
|
import { Matrix4d } from "./Matrix4d";
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Map4 carries two Matrix4d which are inverses of each other.
|
|
9
10
|
* @public
|
|
10
11
|
*/
|
|
11
12
|
export declare class Map4d implements BeJSONFunctions {
|
|
@@ -20,7 +21,8 @@ export declare class Map4d implements BeJSONFunctions {
|
|
|
20
21
|
static createRefs(matrix0: Matrix4d, matrix1: Matrix4d): Map4d;
|
|
21
22
|
/** Create an identity map. */
|
|
22
23
|
static createIdentity(): Map4d;
|
|
23
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Create a Map4d with given transform pair.
|
|
24
26
|
* @returns undefined if the transforms are not inverses of each other.
|
|
25
27
|
*/
|
|
26
28
|
static createTransform(transform0: Transform, transform1?: Transform): Map4d | undefined;
|
|
@@ -46,26 +48,30 @@ export declare class Map4d implements BeJSONFunctions {
|
|
|
46
48
|
toJSON(): any;
|
|
47
49
|
/** Test if both matrices are almost equal to those */
|
|
48
50
|
isAlmostEqual(other: Map4d): boolean;
|
|
49
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Create a map between a frustum and world coordinates.
|
|
50
53
|
* @param origin lower left of frustum
|
|
51
|
-
* @param uVector Vector from lower left rear to lower right rear
|
|
52
|
-
* @param vVector Vector from lower left rear to upper left rear
|
|
54
|
+
* @param uVector Vector from lower left rear to lower right rear.
|
|
55
|
+
* @param vVector Vector from lower left rear to upper left rear.
|
|
53
56
|
* @param wVector Vector from lower left rear to lower left front, i.e. lower left rear towards eye.
|
|
54
57
|
* @param fraction front size divided by rear size.
|
|
55
58
|
*/
|
|
56
59
|
static createVectorFrustum(origin: Point3d, uVector: Vector3d, vVector: Vector3d, wVector: Vector3d, fraction: number): Map4d | undefined;
|
|
57
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Multiply this*other. The output matrices are
|
|
58
62
|
* * output matrix0 = `this.matrix0 * other.matrix0`
|
|
59
63
|
* * output matrix1 = 'other.matrix1 * this.matrix1`
|
|
60
64
|
*/
|
|
61
65
|
multiplyMapMap(other: Map4d): Map4d;
|
|
62
66
|
/** Exchange the two matrices of the map. */
|
|
63
67
|
reverseInPlace(): void;
|
|
64
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* Return a Map4d whose transform0 is
|
|
65
70
|
* other.transform0 * this.transform0 * other.transform1
|
|
66
71
|
*/
|
|
67
72
|
sandwich0This1(other: Map4d): Map4d;
|
|
68
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Return a Map4d whose transform0 is
|
|
69
75
|
* other.transform1 * this.transform0 * other.transform0
|
|
70
76
|
*/
|
|
71
77
|
sandwich1This0(other: Map4d): Map4d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map4d.d.ts","sourceRoot":"","sources":["../../../src/geometry4d/Map4d.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"Map4d.d.ts","sourceRoot":"","sources":["../../../src/geometry4d/Map4d.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;GAGG;AACH,qBAAa,KAAM,YAAW,eAAe;IAC3C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO;IAIP,iEAAiE;IACjE,IAAW,UAAU,IAAI,QAAQ,CAEhC;IACD,iEAAiE;IACjE,IAAW,UAAU,IAAI,QAAQ,CAEhC;IACD,oEAAoE;WACtD,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAG7D,8BAA8B;WAChB,cAAc,IAAI,KAAK;IAGrC;;;OAGG;WACW,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS;IAY/F;;;;;;OAMG;WACW,YAAY,CACxB,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,GAC3E,KAAK,GAAG,SAAS;IAUpB,uCAAuC;IAChC,OAAO,CAAC,KAAK,EAAE,KAAK;IAI3B,mCAAmC;IAC5B,KAAK,IAAI,KAAK;IAGrB,8CAA8C;IACvC,WAAW;IAIlB,6GAA6G;IACtG,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAOnC,6GAA6G;WAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK;IAKzC,gEAAgE;IACzD,MAAM,IAAI,GAAG;IAGpB,sDAAsD;IAC/C,aAAa,CAAC,KAAK,EAAE,KAAK;IAGjC;;;;;;;OAOG;WACW,mBAAmB,CAC/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GACzF,KAAK,GAAG,SAAS;IA4BpB;;;;OAIG;IACI,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAM1C,4CAA4C;IACrC,cAAc;IAKrB;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAM1C;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;CAM3C"}
|
|
@@ -11,7 +11,8 @@ exports.Map4d = void 0;
|
|
|
11
11
|
const Matrix3d_1 = require("../geometry3d/Matrix3d");
|
|
12
12
|
const Transform_1 = require("../geometry3d/Transform");
|
|
13
13
|
const Matrix4d_1 = require("./Matrix4d");
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Map4 carries two Matrix4d which are inverses of each other.
|
|
15
16
|
* @public
|
|
16
17
|
*/
|
|
17
18
|
class Map4d {
|
|
@@ -20,16 +21,23 @@ class Map4d {
|
|
|
20
21
|
this._matrix1 = matrix1;
|
|
21
22
|
}
|
|
22
23
|
/** Return a reference to (not copy of) the "forward" Matrix4d */
|
|
23
|
-
get transform0() {
|
|
24
|
+
get transform0() {
|
|
25
|
+
return this._matrix0;
|
|
26
|
+
}
|
|
24
27
|
/** Return a reference to (not copy of) the "reverse" Matrix4d */
|
|
25
|
-
get transform1() {
|
|
28
|
+
get transform1() {
|
|
29
|
+
return this._matrix1;
|
|
30
|
+
}
|
|
26
31
|
/** Create a Map4d, capturing the references to the two matrices. */
|
|
27
32
|
static createRefs(matrix0, matrix1) {
|
|
28
33
|
return new Map4d(matrix0, matrix1);
|
|
29
34
|
}
|
|
30
35
|
/** Create an identity map. */
|
|
31
|
-
static createIdentity() {
|
|
32
|
-
|
|
36
|
+
static createIdentity() {
|
|
37
|
+
return new Map4d(Matrix4d_1.Matrix4d.createIdentity(), Matrix4d_1.Matrix4d.createIdentity());
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a Map4d with given transform pair.
|
|
33
41
|
* @returns undefined if the transforms are not inverses of each other.
|
|
34
42
|
*/
|
|
35
43
|
static createTransform(transform0, transform1) {
|
|
@@ -63,11 +71,19 @@ class Map4d {
|
|
|
63
71
|
return undefined;
|
|
64
72
|
}
|
|
65
73
|
/** Copy contents from another Map4d */
|
|
66
|
-
setFrom(other) {
|
|
74
|
+
setFrom(other) {
|
|
75
|
+
this._matrix0.setFrom(other._matrix0);
|
|
76
|
+
this._matrix1.setFrom(other._matrix1);
|
|
77
|
+
}
|
|
67
78
|
/** Return a clone of this Map4d */
|
|
68
|
-
clone() {
|
|
79
|
+
clone() {
|
|
80
|
+
return new Map4d(this._matrix0.clone(), this._matrix1.clone());
|
|
81
|
+
}
|
|
69
82
|
/** Reinitialize this Map4d as an identity. */
|
|
70
|
-
setIdentity() {
|
|
83
|
+
setIdentity() {
|
|
84
|
+
this._matrix0.setIdentity();
|
|
85
|
+
this._matrix1.setIdentity();
|
|
86
|
+
}
|
|
71
87
|
/** Set this map4d from a json object that the two Matrix4d values as properties named matrix0 and matrix1 */
|
|
72
88
|
setFromJSON(json) {
|
|
73
89
|
if (json.matrix0 && json.matrix1) {
|
|
@@ -84,15 +100,18 @@ class Map4d {
|
|
|
84
100
|
return result;
|
|
85
101
|
}
|
|
86
102
|
/** Return a json object `{matrix0: value0, matrix1: value1}` */
|
|
87
|
-
toJSON() {
|
|
103
|
+
toJSON() {
|
|
104
|
+
return { matrix0: this._matrix0.toJSON(), matrix1: this._matrix1.toJSON() };
|
|
105
|
+
}
|
|
88
106
|
/** Test if both matrices are almost equal to those */
|
|
89
107
|
isAlmostEqual(other) {
|
|
90
108
|
return this._matrix0.isAlmostEqual(other._matrix0) && this._matrix1.isAlmostEqual(other._matrix1);
|
|
91
109
|
}
|
|
92
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* Create a map between a frustum and world coordinates.
|
|
93
112
|
* @param origin lower left of frustum
|
|
94
|
-
* @param uVector Vector from lower left rear to lower right rear
|
|
95
|
-
* @param vVector Vector from lower left rear to upper left rear
|
|
113
|
+
* @param uVector Vector from lower left rear to lower right rear.
|
|
114
|
+
* @param vVector Vector from lower left rear to upper left rear.
|
|
96
115
|
* @param wVector Vector from lower left rear to lower left front, i.e. lower left rear towards eye.
|
|
97
116
|
* @param fraction front size divided by rear size.
|
|
98
117
|
*/
|
|
@@ -121,7 +140,8 @@ class Map4d {
|
|
|
121
140
|
*/
|
|
122
141
|
return result;
|
|
123
142
|
}
|
|
124
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* Multiply this*other. The output matrices are
|
|
125
145
|
* * output matrix0 = `this.matrix0 * other.matrix0`
|
|
126
146
|
* * output matrix1 = 'other.matrix1 * this.matrix1`
|
|
127
147
|
*/
|
|
@@ -134,18 +154,20 @@ class Map4d {
|
|
|
134
154
|
this._matrix0 = this._matrix1;
|
|
135
155
|
this._matrix1 = temp;
|
|
136
156
|
}
|
|
137
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Return a Map4d whose transform0 is
|
|
138
159
|
* other.transform0 * this.transform0 * other.transform1
|
|
139
160
|
*/
|
|
140
161
|
sandwich0This1(other) {
|
|
141
162
|
return new Map4d(other._matrix0.multiplyMatrixMatrix(this._matrix0.multiplyMatrixMatrix(other._matrix1)), other._matrix0.multiplyMatrixMatrix(this._matrix1.multiplyMatrixMatrix(other._matrix1)));
|
|
142
163
|
}
|
|
143
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* Return a Map4d whose transform0 is
|
|
144
166
|
* other.transform1 * this.transform0 * other.transform0
|
|
145
167
|
*/
|
|
146
168
|
sandwich1This0(other) {
|
|
147
169
|
return new Map4d(other._matrix1.multiplyMatrixMatrix(this._matrix0.multiplyMatrixMatrix(other._matrix0)), other._matrix1.multiplyMatrixMatrix(this._matrix1.multiplyMatrixMatrix(other._matrix0)));
|
|
148
170
|
}
|
|
149
|
-
}
|
|
171
|
+
}
|
|
150
172
|
exports.Map4d = Map4d;
|
|
151
173
|
//# sourceMappingURL=Map4d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map4d.js","sourceRoot":"","sources":["../../../src/geometry4d/Map4d.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Numerics\r\n */\r\n\r\nimport { BeJSONFunctions } from \"../Geometry\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"./Matrix4d\";\r\n\r\n/** Map4 carries two Matrix4d which are inverses of each other.\r\n * @public\r\n */\r\nexport class Map4d implements BeJSONFunctions {\r\n private _matrix0: Matrix4d;\r\n private _matrix1: Matrix4d;\r\n private constructor(matrix0: Matrix4d, matrix1: Matrix4d) {\r\n this._matrix0 = matrix0;\r\n this._matrix1 = matrix1;\r\n }\r\n /** Return a reference to (not copy of) the \"forward\" Matrix4d */\r\n public get transform0(): Matrix4d { return this._matrix0; }\r\n /** Return a reference to (not copy of) the \"reverse\" Matrix4d */\r\n public get transform1(): Matrix4d { return this._matrix1; }\r\n /** Create a Map4d, capturing the references to the two matrices. */\r\n public static createRefs(matrix0: Matrix4d, matrix1: Matrix4d) {\r\n return new Map4d(matrix0, matrix1);\r\n }\r\n /** Create an identity map. */\r\n public static createIdentity(): Map4d { return new Map4d(Matrix4d.createIdentity(), Matrix4d.createIdentity()); }\r\n /** Create a Map4d with given transform pair.\r\n * @returns undefined if the transforms are not inverses of each other.\r\n */\r\n public static createTransform(transform0: Transform, transform1?: Transform): Map4d | undefined {\r\n if (transform1 === undefined) {\r\n transform1 = transform0.inverse();\r\n if (transform1 === undefined)\r\n return undefined;\r\n } else {\r\n const product = transform0.multiplyTransformTransform(transform1);\r\n if (!product.isIdentity)\r\n return undefined;\r\n }\r\n return new Map4d(Matrix4d.createTransform(transform0), Matrix4d.createTransform(transform1));\r\n }\r\n /**\r\n * Create a mapping the scales and translates (no rotation) between boxes.\r\n * @param lowA low point of box A\r\n * @param highA high point of box A\r\n * @param lowB low point of box B\r\n * @param highB high point of box B\r\n */\r\n public static createBoxMap(lowA: Point3d, highA: Point3d, lowB: Point3d, highB: Point3d, result?: Map4d): Map4d | undefined {\r\n const t0 = Matrix4d.createBoxToBox(lowA, highA, lowB, highB, result ? result.transform0 : undefined);\r\n const t1 = Matrix4d.createBoxToBox(lowB, highB, lowA, highA, result ? result.transform1 : undefined);\r\n if (t0 && t1) {\r\n if (result)\r\n return result;\r\n return new Map4d(t0, t1);\r\n }\r\n return undefined;\r\n }\r\n /** Copy contents from another Map4d */\r\n public setFrom(other: Map4d) { this._matrix0.setFrom(other._matrix0), this._matrix1.setFrom(other._matrix1); }\r\n /** Return a clone of this Map4d */\r\n public clone(): Map4d { return new Map4d(this._matrix0.clone(), this._matrix1.clone()); }\r\n /** Reinitialize this Map4d as an identity. */\r\n public setIdentity() { this._matrix0.setIdentity(); this._matrix1.setIdentity(); }\r\n /** Set this map4d from a json object that the two Matrix4d values as properties named matrix0 and matrix1 */\r\n public setFromJSON(json: any): void {\r\n if (json.matrix0 && json.matrix1) {\r\n this._matrix0.setFromJSON(json.matrix0);\r\n this._matrix1.setFromJSON(json.matrix1);\r\n } else\r\n this.setIdentity();\r\n }\r\n /** Create a map4d from a json object that the two Matrix4d values as properties named matrix0 and matrix1 */\r\n public static fromJSON(json?: any): Map4d {\r\n const result = new Map4d(Matrix4d.createIdentity(), Matrix4d.createIdentity());\r\n result.setFromJSON(json);\r\n return result;\r\n }\r\n /** Return a json object `{matrix0: value0, matrix1: value1}` */\r\n public toJSON(): any { return { matrix0: this._matrix0.toJSON(), matrix1: this._matrix1.toJSON() }; }\r\n /** Test if both matrices are almost equal to those */\r\n public isAlmostEqual(other: Map4d) {\r\n return this._matrix0.isAlmostEqual(other._matrix0) && this._matrix1.isAlmostEqual(other._matrix1);\r\n }\r\n /** Create a map between a frustum and world coordinates.\r\n * @param origin lower left of frustum\r\n * @param uVector Vector from lower left rear to lower right rear\r\n * @param vVector Vector from lower left rear to upper left rear\r\n * @param wVector Vector from lower left rear to lower left front, i.e. lower left rear towards eye.\r\n * @param fraction front size divided by rear size.\r\n */\r\n public static createVectorFrustum(origin: Point3d, uVector: Vector3d, vVector: Vector3d, wVector: Vector3d, fraction: number): Map4d | undefined {\r\n fraction = Math.max(fraction, 1.0e-8);\r\n const slabToWorld = Transform.createOriginAndMatrix(origin, Matrix3d.createColumns(uVector, vVector, wVector));\r\n const worldToSlab = slabToWorld.inverse();\r\n if (!worldToSlab)\r\n return undefined;\r\n const worldToSlabMap = new Map4d(Matrix4d.createTransform(worldToSlab), Matrix4d.createTransform(slabToWorld));\r\n const slabToNPCMap = new Map4d(Matrix4d.createRowValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, fraction, 0, 0, 0, fraction - 1.0, 1), Matrix4d.createRowValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1.0 / fraction, 0, 0, 0, (1.0 - fraction) / fraction, 1));\r\n const result = slabToNPCMap.multiplyMapMap(worldToSlabMap);\r\n /*\r\n let numIdentity = 0;\r\n const productA = worldToSlabMap.matrix0.multiplyMatrixMatrix(worldToSlabMap.matrix1);\r\n if (productA.isIdentity())\r\n numIdentity++;\r\n const productB = slabToNPCMap.matrix0.multiplyMatrixMatrix(slabToNPCMap.matrix1);\r\n if (productB.isIdentity())\r\n numIdentity++;\r\n const product = result.matrix0.multiplyMatrixMatrix(result.matrix1);\r\n if (product.isIdentity())\r\n numIdentity++;\r\n if (numIdentity === 3)\r\n return result;\r\n */\r\n return result;\r\n }\r\n /** multiply this*other. The output matrices are\r\n * * output matrix0 = `this.matrix0 * other.matrix0`\r\n * * output matrix1 = 'other.matrix1 * this.matrix1`\r\n */\r\n public multiplyMapMap(other: Map4d): Map4d {\r\n return new Map4d(this._matrix0.multiplyMatrixMatrix(other._matrix0), other._matrix1.multiplyMatrixMatrix(this._matrix1));\r\n }\r\n /** Exchange the two matrices of the map. */\r\n public reverseInPlace() {\r\n const temp = this._matrix0;\r\n this._matrix0 = this._matrix1;\r\n this._matrix1 = temp;\r\n }\r\n /** return a Map4d whose transform0 is\r\n * other.transform0 * this.transform0 * other.transform1\r\n */\r\n public sandwich0This1(other: Map4d): Map4d {\r\n return new Map4d(other._matrix0.multiplyMatrixMatrix(this._matrix0.multiplyMatrixMatrix(other._matrix1)), other._matrix0.multiplyMatrixMatrix(this._matrix1.multiplyMatrixMatrix(other._matrix1)));\r\n }\r\n /** return a Map4d whose transform0 is\r\n * other.transform1 * this.transform0 * other.transform0\r\n */\r\n public sandwich1This0(other: Map4d): Map4d {\r\n return new Map4d(other._matrix1.multiplyMatrixMatrix(this._matrix0.multiplyMatrixMatrix(other._matrix0)), other._matrix1.multiplyMatrixMatrix(this._matrix1.multiplyMatrixMatrix(other._matrix0)));\r\n }\r\n} // Map4d\r\n"]}
|
|
1
|
+
{"version":3,"file":"Map4d.js","sourceRoot":"","sources":["../../../src/geometry4d/Map4d.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Numerics\r\n */\r\n\r\nimport { BeJSONFunctions } from \"../Geometry\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"./Matrix4d\";\r\n\r\n/**\r\n * Map4 carries two Matrix4d which are inverses of each other.\r\n * @public\r\n */\r\nexport class Map4d implements BeJSONFunctions {\r\n private _matrix0: Matrix4d;\r\n private _matrix1: Matrix4d;\r\n private constructor(matrix0: Matrix4d, matrix1: Matrix4d) {\r\n this._matrix0 = matrix0;\r\n this._matrix1 = matrix1;\r\n }\r\n /** Return a reference to (not copy of) the \"forward\" Matrix4d */\r\n public get transform0(): Matrix4d {\r\n return this._matrix0;\r\n }\r\n /** Return a reference to (not copy of) the \"reverse\" Matrix4d */\r\n public get transform1(): Matrix4d {\r\n return this._matrix1;\r\n }\r\n /** Create a Map4d, capturing the references to the two matrices. */\r\n public static createRefs(matrix0: Matrix4d, matrix1: Matrix4d) {\r\n return new Map4d(matrix0, matrix1);\r\n }\r\n /** Create an identity map. */\r\n public static createIdentity(): Map4d {\r\n return new Map4d(Matrix4d.createIdentity(), Matrix4d.createIdentity());\r\n }\r\n /**\r\n * Create a Map4d with given transform pair.\r\n * @returns undefined if the transforms are not inverses of each other.\r\n */\r\n public static createTransform(transform0: Transform, transform1?: Transform): Map4d | undefined {\r\n if (transform1 === undefined) {\r\n transform1 = transform0.inverse();\r\n if (transform1 === undefined)\r\n return undefined;\r\n } else {\r\n const product = transform0.multiplyTransformTransform(transform1);\r\n if (!product.isIdentity)\r\n return undefined;\r\n }\r\n return new Map4d(Matrix4d.createTransform(transform0), Matrix4d.createTransform(transform1));\r\n }\r\n /**\r\n * Create a mapping the scales and translates (no rotation) between boxes.\r\n * @param lowA low point of box A\r\n * @param highA high point of box A\r\n * @param lowB low point of box B\r\n * @param highB high point of box B\r\n */\r\n public static createBoxMap(\r\n lowA: Point3d, highA: Point3d, lowB: Point3d, highB: Point3d, result?: Map4d,\r\n ): Map4d | undefined {\r\n const t0 = Matrix4d.createBoxToBox(lowA, highA, lowB, highB, result ? result.transform0 : undefined);\r\n const t1 = Matrix4d.createBoxToBox(lowB, highB, lowA, highA, result ? result.transform1 : undefined);\r\n if (t0 && t1) {\r\n if (result)\r\n return result;\r\n return new Map4d(t0, t1);\r\n }\r\n return undefined;\r\n }\r\n /** Copy contents from another Map4d */\r\n public setFrom(other: Map4d) {\r\n this._matrix0.setFrom(other._matrix0);\r\n this._matrix1.setFrom(other._matrix1);\r\n }\r\n /** Return a clone of this Map4d */\r\n public clone(): Map4d {\r\n return new Map4d(this._matrix0.clone(), this._matrix1.clone());\r\n }\r\n /** Reinitialize this Map4d as an identity. */\r\n public setIdentity() {\r\n this._matrix0.setIdentity();\r\n this._matrix1.setIdentity();\r\n }\r\n /** Set this map4d from a json object that the two Matrix4d values as properties named matrix0 and matrix1 */\r\n public setFromJSON(json: any): void {\r\n if (json.matrix0 && json.matrix1) {\r\n this._matrix0.setFromJSON(json.matrix0);\r\n this._matrix1.setFromJSON(json.matrix1);\r\n } else\r\n this.setIdentity();\r\n }\r\n /** Create a map4d from a json object that the two Matrix4d values as properties named matrix0 and matrix1 */\r\n public static fromJSON(json?: any): Map4d {\r\n const result = new Map4d(Matrix4d.createIdentity(), Matrix4d.createIdentity());\r\n result.setFromJSON(json);\r\n return result;\r\n }\r\n /** Return a json object `{matrix0: value0, matrix1: value1}` */\r\n public toJSON(): any {\r\n return { matrix0: this._matrix0.toJSON(), matrix1: this._matrix1.toJSON() };\r\n }\r\n /** Test if both matrices are almost equal to those */\r\n public isAlmostEqual(other: Map4d) {\r\n return this._matrix0.isAlmostEqual(other._matrix0) && this._matrix1.isAlmostEqual(other._matrix1);\r\n }\r\n /**\r\n * Create a map between a frustum and world coordinates.\r\n * @param origin lower left of frustum\r\n * @param uVector Vector from lower left rear to lower right rear.\r\n * @param vVector Vector from lower left rear to upper left rear.\r\n * @param wVector Vector from lower left rear to lower left front, i.e. lower left rear towards eye.\r\n * @param fraction front size divided by rear size.\r\n */\r\n public static createVectorFrustum(\r\n origin: Point3d, uVector: Vector3d, vVector: Vector3d, wVector: Vector3d, fraction: number,\r\n ): Map4d | undefined {\r\n fraction = Math.max(fraction, 1.0e-8);\r\n const slabToWorld = Transform.createOriginAndMatrix(origin, Matrix3d.createColumns(uVector, vVector, wVector));\r\n const worldToSlab = slabToWorld.inverse();\r\n if (!worldToSlab)\r\n return undefined;\r\n const worldToSlabMap = new Map4d(Matrix4d.createTransform(worldToSlab), Matrix4d.createTransform(slabToWorld));\r\n const slabToNPCMap = new Map4d(\r\n Matrix4d.createRowValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, fraction, 0, 0, 0, fraction - 1.0, 1),\r\n Matrix4d.createRowValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1.0 / fraction, 0, 0, 0, (1.0 - fraction) / fraction, 1),\r\n );\r\n const result = slabToNPCMap.multiplyMapMap(worldToSlabMap);\r\n /*\r\n let numIdentity = 0;\r\n const productA = worldToSlabMap.matrix0.multiplyMatrixMatrix(worldToSlabMap.matrix1);\r\n if (productA.isIdentity())\r\n numIdentity++;\r\n const productB = slabToNPCMap.matrix0.multiplyMatrixMatrix(slabToNPCMap.matrix1);\r\n if (productB.isIdentity())\r\n numIdentity++;\r\n const product = result.matrix0.multiplyMatrixMatrix(result.matrix1);\r\n if (product.isIdentity())\r\n numIdentity++;\r\n if (numIdentity === 3)\r\n return result;\r\n */\r\n return result;\r\n }\r\n /**\r\n * Multiply this*other. The output matrices are\r\n * * output matrix0 = `this.matrix0 * other.matrix0`\r\n * * output matrix1 = 'other.matrix1 * this.matrix1`\r\n */\r\n public multiplyMapMap(other: Map4d): Map4d {\r\n return new Map4d(\r\n this._matrix0.multiplyMatrixMatrix(other._matrix0),\r\n other._matrix1.multiplyMatrixMatrix(this._matrix1),\r\n );\r\n }\r\n /** Exchange the two matrices of the map. */\r\n public reverseInPlace() {\r\n const temp = this._matrix0;\r\n this._matrix0 = this._matrix1;\r\n this._matrix1 = temp;\r\n }\r\n /**\r\n * Return a Map4d whose transform0 is\r\n * other.transform0 * this.transform0 * other.transform1\r\n */\r\n public sandwich0This1(other: Map4d): Map4d {\r\n return new Map4d(\r\n other._matrix0.multiplyMatrixMatrix(this._matrix0.multiplyMatrixMatrix(other._matrix1)),\r\n other._matrix0.multiplyMatrixMatrix(this._matrix1.multiplyMatrixMatrix(other._matrix1)),\r\n );\r\n }\r\n /**\r\n * Return a Map4d whose transform0 is\r\n * other.transform1 * this.transform0 * other.transform0\r\n */\r\n public sandwich1This0(other: Map4d): Map4d {\r\n return new Map4d(\r\n other._matrix1.multiplyMatrixMatrix(this._matrix0.multiplyMatrixMatrix(other._matrix0)),\r\n other._matrix1.multiplyMatrixMatrix(this._matrix1.multiplyMatrixMatrix(other._matrix0)),\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolyfaceBuilder.d.ts","sourceRoot":"","sources":["../../../src/polyface/PolyfaceBuilder.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAG1E,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAO,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAW,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAMvF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"PolyfaceBuilder.d.ts","sourceRoot":"","sources":["../../../src/polyface/PolyfaceBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,6 @@ const IndexedEdgeMatcher_1 = require("./IndexedEdgeMatcher");
|
|
|
43
43
|
const IndexedPolyfaceVisitor_1 = require("./IndexedPolyfaceVisitor");
|
|
44
44
|
const Polyface_1 = require("./Polyface");
|
|
45
45
|
const PolyfaceQuery_1 = require("./PolyfaceQuery");
|
|
46
|
-
/* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/prefer-for-of */
|
|
47
46
|
/**
|
|
48
47
|
* A FacetSector
|
|
49
48
|
* * initially holds coordinate data for a place where xyz and sectionDerivative are known
|
|
@@ -1186,16 +1185,14 @@ class PolyfaceBuilder extends GeometryHandler_1.NullGeometryHandler {
|
|
|
1186
1185
|
this.addBetweenLineStringsWithStoredIndices(strokeA, strokeB);
|
|
1187
1186
|
}
|
|
1188
1187
|
else if (stroke0 instanceof ParityRegion_1.ParityRegion) {
|
|
1189
|
-
for (
|
|
1190
|
-
this.addBetweenRotatedStrokeSets(
|
|
1188
|
+
for (const child of stroke0.children) {
|
|
1189
|
+
this.addBetweenRotatedStrokeSets(child, transformA, vA, transformB, vB);
|
|
1191
1190
|
}
|
|
1192
1191
|
}
|
|
1193
1192
|
else if (stroke0 instanceof CurveCollection_1.CurveChain) {
|
|
1194
|
-
const
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
if (cpA instanceof LineString3d_1.LineString3d) {
|
|
1198
|
-
this.addBetweenRotatedStrokeSets(cpA, transformA, vA, transformB, vB);
|
|
1193
|
+
for (const child of stroke0.children) {
|
|
1194
|
+
if (child instanceof LineString3d_1.LineString3d) {
|
|
1195
|
+
this.addBetweenRotatedStrokeSets(child, transformA, vA, transformB, vB);
|
|
1199
1196
|
}
|
|
1200
1197
|
}
|
|
1201
1198
|
}
|
|
@@ -1230,8 +1227,8 @@ class PolyfaceBuilder extends GeometryHandler_1.NullGeometryHandler {
|
|
|
1230
1227
|
let stroke0;
|
|
1231
1228
|
let stroke1;
|
|
1232
1229
|
const sectionMaps = [];
|
|
1233
|
-
for (
|
|
1234
|
-
sectionMaps.push(StrokeCountChain_1.StrokeCountSection.createForParityRegionOrChain(
|
|
1230
|
+
for (const contour of contours) {
|
|
1231
|
+
sectionMaps.push(StrokeCountChain_1.StrokeCountSection.createForParityRegionOrChain(contour.curves, this._options));
|
|
1235
1232
|
}
|
|
1236
1233
|
if (StrokeCountChain_1.StrokeCountSection.enforceStrokeCountCompatibility(sectionMaps)) {
|
|
1237
1234
|
StrokeCountChain_1.StrokeCountSection.enforceCompatibleDistanceSums(sectionMaps);
|