@itwin/core-geometry 4.8.0-dev.17 → 4.8.0-dev.19
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/Constant.d.ts +4 -3
- package/lib/cjs/Constant.d.ts.map +1 -1
- package/lib/cjs/Constant.js +4 -3
- package/lib/cjs/Constant.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.d.ts +0 -1
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurve.js +0 -1
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/esm/Constant.d.ts +4 -3
- package/lib/esm/Constant.d.ts.map +1 -1
- package/lib/esm/Constant.js +4 -3
- package/lib/esm/Constant.js.map +1 -1
- package/lib/esm/curve/CurveCurve.d.ts +0 -1
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurve.js +0 -1
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/package.json +3 -3
package/lib/cjs/Constant.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module CartesianGeometry
|
|
3
3
|
*/
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
4
|
+
/**
|
|
5
|
+
* Commonly used constant values.
|
|
6
|
+
* @public
|
|
6
7
|
*/
|
|
7
8
|
export declare class Constant {
|
|
8
9
|
/** symbolic name for 1 millimeter: 0.001 meter */
|
|
@@ -13,7 +14,7 @@ export declare class Constant {
|
|
|
13
14
|
static readonly oneMeter: number;
|
|
14
15
|
/** symbolic name for 1 kilometer: 1000 meter */
|
|
15
16
|
static readonly oneKilometer: number;
|
|
16
|
-
/** Diameter of the earth in
|
|
17
|
+
/** Diameter of the earth in meters. */
|
|
17
18
|
static readonly diameterOfEarth: number;
|
|
18
19
|
/** circumference of the earth in meters. */
|
|
19
20
|
static readonly circumferenceOfEarth: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constant.d.ts","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"Constant.d.ts","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,QAAQ;IACnB,mDAAmD;IACnD,gBAAuB,aAAa,EAAE,MAAM,CAAS;IACrD,kDAAkD;IAClD,gBAAuB,aAAa,EAAE,MAAM,CAAQ;IACpD,4CAA4C;IAC5C,gBAAuB,QAAQ,EAAE,MAAM,CAAO;IAC9C,gDAAgD;IAChD,gBAAuB,YAAY,EAAE,MAAM,CAAU;IACrD,uCAAuC;IACvC,gBAAuB,eAAe,EAAE,MAAM,CAAmC;IACjF,4CAA4C;IAC5C,gBAAuB,oBAAoB,EAAE,MAAM,CAAmC;IACtF,4DAA4D;IAC5D,gBAAuB,gBAAgB;;;MAGrC;CACH"}
|
package/lib/cjs/Constant.js
CHANGED
|
@@ -8,8 +8,9 @@ exports.Constant = void 0;
|
|
|
8
8
|
/** @packageDocumentation
|
|
9
9
|
* @module CartesianGeometry
|
|
10
10
|
*/
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
11
|
+
/**
|
|
12
|
+
* Commonly used constant values.
|
|
13
|
+
* @public
|
|
13
14
|
*/
|
|
14
15
|
class Constant {
|
|
15
16
|
}
|
|
@@ -22,7 +23,7 @@ Constant.oneCentimeter = 0.01;
|
|
|
22
23
|
Constant.oneMeter = 1.0;
|
|
23
24
|
/** symbolic name for 1 kilometer: 1000 meter */
|
|
24
25
|
Constant.oneKilometer = 1000.0;
|
|
25
|
-
/** Diameter of the earth in
|
|
26
|
+
/** Diameter of the earth in meters. */
|
|
26
27
|
Constant.diameterOfEarth = 12742.0 * Constant.oneKilometer;
|
|
27
28
|
/** circumference of the earth in meters. */
|
|
28
29
|
Constant.circumferenceOfEarth = 40075.0 * Constant.oneKilometer;
|
package/lib/cjs/Constant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constant.js","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"Constant.js","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH;;;GAGG;AACH,MAAa,QAAQ;;AAArB,4BAkBC;AAjBC,mDAAmD;AAC5B,sBAAa,GAAW,KAAK,CAAC;AACrD,kDAAkD;AAC3B,sBAAa,GAAW,IAAI,CAAC;AACpD,4CAA4C;AACrB,iBAAQ,GAAW,GAAG,CAAC;AAC9C,gDAAgD;AACzB,qBAAY,GAAW,MAAM,CAAC;AACrD,uCAAuC;AAChB,wBAAe,GAAW,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;AACjF,4CAA4C;AACrB,6BAAoB,GAAW,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;AACtF,4DAA4D;AACrC,yBAAgB,GAAG;IACxC,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,SAAS;CACnB,CAAC","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\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\n/**\r\n * Commonly used constant values.\r\n * @public\r\n */\r\nexport class Constant {\r\n /** symbolic name for 1 millimeter: 0.001 meter */\r\n public static readonly oneMillimeter: number = 0.001;\r\n /** symbolic name for 1 centimeter: 0.01 meter */\r\n public static readonly oneCentimeter: number = 0.01;\r\n /** symbolic name for 1 meter: 1.0 meter */\r\n public static readonly oneMeter: number = 1.0;\r\n /** symbolic name for 1 kilometer: 1000 meter */\r\n public static readonly oneKilometer: number = 1000.0;\r\n /** Diameter of the earth in meters. */\r\n public static readonly diameterOfEarth: number = 12742.0 * Constant.oneKilometer;\r\n /** circumference of the earth in meters. */\r\n public static readonly circumferenceOfEarth: number = 40075.0 * Constant.oneKilometer;\r\n /** radius of the earth using WGS-84 ellipsoid, in meters */\r\n public static readonly earthRadiusWGS84 = {\r\n polar: 6356752.3142,\r\n equator: 6378137.0,\r\n };\r\n}\r\n"]}
|
|
@@ -33,7 +33,6 @@ export declare class CurveCurve {
|
|
|
33
33
|
* Return full 3d xyz intersections of 2 curves.
|
|
34
34
|
* * Implemented for combinations of LineSegment3d, LineString3d, Arc3d.
|
|
35
35
|
* * Not Implemented for bspline and bezier curves.
|
|
36
|
-
* @beta
|
|
37
36
|
* @param curveA first curve
|
|
38
37
|
* @param extendA true to allow curveA to extend
|
|
39
38
|
* @param curveB second curve
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurveCurve.d.ts","sourceRoot":"","sources":["../../../src/curve/CurveCurve.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;GAGG;AACH,qBAAa,UAAU;IACrB;;;;;;;OAOG;WACW,mBAAmB,CAC/B,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAG5B;;;;;;;;OAQG;WACW,4BAA4B,CACxC,YAAY,EAAE,QAAQ,GAAG,SAAS,EAClC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAK5B
|
|
1
|
+
{"version":3,"file":"CurveCurve.d.ts","sourceRoot":"","sources":["../../../src/curve/CurveCurve.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;GAGG;AACH,qBAAa,UAAU;IACrB;;;;;;;OAOG;WACW,mBAAmB,CAC/B,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAG5B;;;;;;;;OAQG;WACW,4BAA4B,CACxC,YAAY,EAAE,QAAQ,GAAG,SAAS,EAClC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAK5B;;;;;;;;;KASC;WACa,oBAAoB,CAChC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GACrE,uBAAuB,EAAE;IAK5B;;;;OAIG;WACW,iCAAiC,CAC7C,UAAU,EAAE,cAAc,EAAE,EAAE,SAAS,GAAE,MAAqC,GAC7E,uBAAuB,EAAE;IAW5B;;;;;;;;;;;;OAYG;WACW,6BAA6B,CACzC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GACtD,uBAAuB,EAAE;IAM5B;;;;;;;;;;OAUG;WACW,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,uBAAuB,GAAG,SAAS;CAkBtH"}
|
|
@@ -46,7 +46,6 @@ class CurveCurve {
|
|
|
46
46
|
* Return full 3d xyz intersections of 2 curves.
|
|
47
47
|
* * Implemented for combinations of LineSegment3d, LineString3d, Arc3d.
|
|
48
48
|
* * Not Implemented for bspline and bezier curves.
|
|
49
|
-
* @beta
|
|
50
49
|
* @param curveA first curve
|
|
51
50
|
* @param extendA true to allow curveA to extend
|
|
52
51
|
* @param curveB second curve
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurveCurve.js","sourceRoot":"","sources":["../../../src/curve/CurveCurve.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0CAAuC;AAKvC,4FAAyF;AACzF,oFAAiF;AACjF,sFAAmF;AAEnF;;;GAGG;AACH,MAAa,UAAU;IACrB;;;;;;;OAOG;IACI,MAAM,CAAC,mBAAmB,CAC/B,MAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,OAAgB,EAChB,YAAoB,mBAAQ,CAAC,mBAAmB;QAEhD,OAAO,UAAU,CAAC,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACzG,CAAC;IACD;;;;;;;;OAQG;IACI,MAAM,CAAC,4BAA4B,CACxC,YAAkC,EAClC,MAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,OAAgB,EAChB,YAAoB,mBAAQ,CAAC,mBAAmB;QAEhD,MAAM,OAAO,GAAG,IAAI,6CAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC7F,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IACD
|
|
1
|
+
{"version":3,"file":"CurveCurve.js","sourceRoot":"","sources":["../../../src/curve/CurveCurve.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0CAAuC;AAKvC,4FAAyF;AACzF,oFAAiF;AACjF,sFAAmF;AAEnF;;;GAGG;AACH,MAAa,UAAU;IACrB;;;;;;;OAOG;IACI,MAAM,CAAC,mBAAmB,CAC/B,MAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,OAAgB,EAChB,YAAoB,mBAAQ,CAAC,mBAAmB;QAEhD,OAAO,UAAU,CAAC,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACzG,CAAC;IACD;;;;;;;;OAQG;IACI,MAAM,CAAC,4BAA4B,CACxC,YAAkC,EAClC,MAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,OAAgB,EAChB,YAAoB,mBAAQ,CAAC,mBAAmB;QAEhD,MAAM,OAAO,GAAG,IAAI,6CAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC7F,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IACD;;;;;;;;;KASC;IACM,MAAM,CAAC,oBAAoB,CAChC,MAAgB,EAAE,OAAgB,EAAE,MAAgB,EAAE,OAAgB;QAEtE,MAAM,OAAO,GAAG,IAAI,+CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,iCAAiC,CAC7C,UAA4B,EAAE,YAAoB,mBAAQ,CAAC,mBAAmB;QAE9E,MAAM,OAAO,GAAG,IAAI,6CAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IACD;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,6BAA6B,CACzC,MAAgB,EAAE,MAAgB,EAAE,WAAmB;QAEvD,MAAM,OAAO,GAAG,IAAI,qDAAyB,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,mBAAmB,GAAG,WAAW,CAAC;QAC1C,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IACD;;;;;;;;;;OAUG;IACI,MAAM,CAAC,8BAA8B,CAAC,MAAgB,EAAE,MAAgB;QAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACxF,IAAI,CAAC,eAAe,CAAC,MAAM;YACzB,OAAO,SAAS,CAAC;QACnB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7F,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,CAAC;gBACT,SAAS,GAAG,MAAM,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AA5HD,gCA4HC","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 Curve\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { CurveLocationDetailPair } from \"./CurveLocationDetail\";\r\nimport { CurvePrimitive } from \"./CurvePrimitive\";\r\nimport { AnyCurve } from \"./CurveTypes\";\r\nimport { CurveCurveCloseApproachXY } from \"./internalContexts/CurveCurveCloseApproachXY\";\r\nimport { CurveCurveIntersectXY } from \"./internalContexts/CurveCurveIntersectXY\";\r\nimport { CurveCurveIntersectXYZ } from \"./internalContexts/CurveCurveIntersectXYZ\";\r\n\r\n/**\r\n * `CurveCurve` has static method for various computations that work on a pair of curves or curve collections.\r\n * @public\r\n */\r\nexport class CurveCurve {\r\n /**\r\n * Return xy intersections of 2 curves.\r\n * @param curveA first curve\r\n * @param extendA true to allow curveA to extend\r\n * @param curveB second curve\r\n * @param extendB true to allow curveB to extend\r\n * @param tolerance optional distance tolerance for coincidence\r\n */\r\n public static intersectionXYPairs(\r\n curveA: AnyCurve,\r\n extendA: boolean,\r\n curveB: AnyCurve,\r\n extendB: boolean,\r\n tolerance: number = Geometry.smallMetricDistance,\r\n ): CurveLocationDetailPair[] {\r\n return CurveCurve.intersectionProjectedXYPairs(undefined, curveA, extendA, curveB, extendB, tolerance);\r\n }\r\n /**\r\n * Return xy intersections of 2 projected curves.\r\n * @param worldToLocal transform (possibly perspective) defining the local coordinates in which to compute xy intersections\r\n * @param curveA first curve\r\n * @param extendA true to allow curveA to extend\r\n * @param curveB second curve\r\n * @param extendB true to allow curveB to extend\r\n * @param tolerance optional distance tolerance for coincidence\r\n */\r\n public static intersectionProjectedXYPairs(\r\n worldToLocal: Matrix4d | undefined,\r\n curveA: AnyCurve,\r\n extendA: boolean,\r\n curveB: AnyCurve,\r\n extendB: boolean,\r\n tolerance: number = Geometry.smallMetricDistance,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveIntersectXY(worldToLocal, extendA, curveB, extendB, tolerance);\r\n curveA.dispatchToGeometryHandler(handler);\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Return full 3d xyz intersections of 2 curves.\r\n * * Implemented for combinations of LineSegment3d, LineString3d, Arc3d.\r\n * * Not Implemented for bspline and bezier curves.\r\n * @param curveA first curve\r\n * @param extendA true to allow curveA to extend\r\n * @param curveB second curve\r\n * @param extendB true to allow curveB to extend\r\n * @returns array of intersections structured as CurveLocationDetailPair[]\r\n */\r\n public static intersectionXYZPairs(\r\n curveA: AnyCurve, extendA: boolean, curveB: AnyCurve, extendB: boolean,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveIntersectXYZ(extendA, curveB, extendB);\r\n curveA.dispatchToGeometryHandler(handler);\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Return xy intersections of input curves.\r\n * @param primitives input curves to intersect\r\n * @param tolerance optional distance tolerance for coincidence\r\n */\r\n public static allIntersectionsAmongPrimitivesXY(\r\n primitives: CurvePrimitive[], tolerance: number = Geometry.smallMetricDistance,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveIntersectXY(undefined, false, undefined, false, tolerance);\r\n for (let i = 0; i < primitives.length; i++) {\r\n const curveA = primitives[i];\r\n for (let j = i + 1; j < primitives.length; j++) {\r\n handler.resetGeometry(primitives[j]);\r\n curveA.dispatchToGeometryHandler(handler);\r\n }\r\n }\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Return at least one XY close approach between 2 curves.\r\n * * Close approach xy-distances are measured without regard to z. This is equivalent to their separation distance\r\n * as seen in the top view, or as measured between their projections onto the xy-plane.\r\n * * If more than one approach is returned, one of them is the closest approach.\r\n * * If an input curve is a `CurveCollection`, then close approaches are computed to each `CurvePrimitive` child.\r\n * This can lead to many returned pairs, especially when both inputs are `CurveCollection`s. If an input curve is\r\n * an `AnyRegion` then close approaches are computed only to the boundary curves, not to the interior.\r\n * @param curveA first curve\r\n * @param curveB second curve\r\n * @param maxDistance maximum xy-distance to consider between the curves.\r\n * Close approaches further than this xy-distance are not returned.\r\n */\r\n public static closeApproachProjectedXYPairs(\r\n curveA: AnyCurve, curveB: AnyCurve, maxDistance: number,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveCloseApproachXY(curveB);\r\n handler.maxDistanceToAccept = maxDistance;\r\n curveA.dispatchToGeometryHandler(handler);\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Convenience method that calls [[closeApproachProjectedXYPairs]] with a large `maxDistance`\r\n * and returns a detail pair representing the closest xy-approach between the curves.\r\n * * There may be many detail pairs that represent \"closest\" xy-approach, including coincident interval pairs,\r\n * isolated intersections, or close approaches within tolerance of each other. This method makes no attempt to\r\n * distinguish among them, and returns a pair whose `detail.point` values are separated by the smallest xy distance\r\n * found among the pairs.\r\n * @param curveA first curve\r\n * @param curveB second curve\r\n * @return detail pair of closest xy-approach, undefined if not found\r\n */\r\n public static closestApproachProjectedXYPair(curveA: AnyCurve, curveB: AnyCurve): CurveLocationDetailPair | undefined {\r\n const range = curveA.range();\r\n range.extendRange(curveB.range());\r\n const maxDistance = range.low.distanceXY(range.high);\r\n const closeApproaches = this.closeApproachProjectedXYPairs(curveA, curveB, maxDistance);\r\n if (!closeApproaches.length)\r\n return undefined;\r\n let iMin = 0;\r\n let minDistXY = 2 * maxDistance;\r\n for (let i = 0; i < closeApproaches.length; ++i) {\r\n const distXY = closeApproaches[i].detailA.point.distanceXY(closeApproaches[i].detailB.point);\r\n if (distXY < minDistXY) {\r\n iMin = i;\r\n minDistXY = distXY;\r\n }\r\n }\r\n return closeApproaches[iMin];\r\n }\r\n}\r\n"]}
|
package/lib/esm/Constant.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module CartesianGeometry
|
|
3
3
|
*/
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
4
|
+
/**
|
|
5
|
+
* Commonly used constant values.
|
|
6
|
+
* @public
|
|
6
7
|
*/
|
|
7
8
|
export declare class Constant {
|
|
8
9
|
/** symbolic name for 1 millimeter: 0.001 meter */
|
|
@@ -13,7 +14,7 @@ export declare class Constant {
|
|
|
13
14
|
static readonly oneMeter: number;
|
|
14
15
|
/** symbolic name for 1 kilometer: 1000 meter */
|
|
15
16
|
static readonly oneKilometer: number;
|
|
16
|
-
/** Diameter of the earth in
|
|
17
|
+
/** Diameter of the earth in meters. */
|
|
17
18
|
static readonly diameterOfEarth: number;
|
|
18
19
|
/** circumference of the earth in meters. */
|
|
19
20
|
static readonly circumferenceOfEarth: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constant.d.ts","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"Constant.d.ts","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,QAAQ;IACnB,mDAAmD;IACnD,gBAAuB,aAAa,EAAE,MAAM,CAAS;IACrD,kDAAkD;IAClD,gBAAuB,aAAa,EAAE,MAAM,CAAQ;IACpD,4CAA4C;IAC5C,gBAAuB,QAAQ,EAAE,MAAM,CAAO;IAC9C,gDAAgD;IAChD,gBAAuB,YAAY,EAAE,MAAM,CAAU;IACrD,uCAAuC;IACvC,gBAAuB,eAAe,EAAE,MAAM,CAAmC;IACjF,4CAA4C;IAC5C,gBAAuB,oBAAoB,EAAE,MAAM,CAAmC;IACtF,4DAA4D;IAC5D,gBAAuB,gBAAgB;;;MAGrC;CACH"}
|
package/lib/esm/Constant.js
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module CartesianGeometry
|
|
7
7
|
*/
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
8
|
+
/**
|
|
9
|
+
* Commonly used constant values.
|
|
10
|
+
* @public
|
|
10
11
|
*/
|
|
11
12
|
export class Constant {
|
|
12
13
|
}
|
|
@@ -18,7 +19,7 @@ Constant.oneCentimeter = 0.01;
|
|
|
18
19
|
Constant.oneMeter = 1.0;
|
|
19
20
|
/** symbolic name for 1 kilometer: 1000 meter */
|
|
20
21
|
Constant.oneKilometer = 1000.0;
|
|
21
|
-
/** Diameter of the earth in
|
|
22
|
+
/** Diameter of the earth in meters. */
|
|
22
23
|
Constant.diameterOfEarth = 12742.0 * Constant.oneKilometer;
|
|
23
24
|
/** circumference of the earth in meters. */
|
|
24
25
|
Constant.circumferenceOfEarth = 40075.0 * Constant.oneKilometer;
|
package/lib/esm/Constant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constant.js","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"Constant.js","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH;;;GAGG;AACH,MAAM,OAAO,QAAQ;;AACnB,mDAAmD;AAC5B,sBAAa,GAAW,KAAK,CAAC;AACrD,kDAAkD;AAC3B,sBAAa,GAAW,IAAI,CAAC;AACpD,4CAA4C;AACrB,iBAAQ,GAAW,GAAG,CAAC;AAC9C,gDAAgD;AACzB,qBAAY,GAAW,MAAM,CAAC;AACrD,uCAAuC;AAChB,wBAAe,GAAW,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;AACjF,4CAA4C;AACrB,6BAAoB,GAAW,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;AACtF,4DAA4D;AACrC,yBAAgB,GAAG;IACxC,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,SAAS;CACnB,CAAC","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\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\n/**\r\n * Commonly used constant values.\r\n * @public\r\n */\r\nexport class Constant {\r\n /** symbolic name for 1 millimeter: 0.001 meter */\r\n public static readonly oneMillimeter: number = 0.001;\r\n /** symbolic name for 1 centimeter: 0.01 meter */\r\n public static readonly oneCentimeter: number = 0.01;\r\n /** symbolic name for 1 meter: 1.0 meter */\r\n public static readonly oneMeter: number = 1.0;\r\n /** symbolic name for 1 kilometer: 1000 meter */\r\n public static readonly oneKilometer: number = 1000.0;\r\n /** Diameter of the earth in meters. */\r\n public static readonly diameterOfEarth: number = 12742.0 * Constant.oneKilometer;\r\n /** circumference of the earth in meters. */\r\n public static readonly circumferenceOfEarth: number = 40075.0 * Constant.oneKilometer;\r\n /** radius of the earth using WGS-84 ellipsoid, in meters */\r\n public static readonly earthRadiusWGS84 = {\r\n polar: 6356752.3142,\r\n equator: 6378137.0,\r\n };\r\n}\r\n"]}
|
|
@@ -33,7 +33,6 @@ export declare class CurveCurve {
|
|
|
33
33
|
* Return full 3d xyz intersections of 2 curves.
|
|
34
34
|
* * Implemented for combinations of LineSegment3d, LineString3d, Arc3d.
|
|
35
35
|
* * Not Implemented for bspline and bezier curves.
|
|
36
|
-
* @beta
|
|
37
36
|
* @param curveA first curve
|
|
38
37
|
* @param extendA true to allow curveA to extend
|
|
39
38
|
* @param curveB second curve
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurveCurve.d.ts","sourceRoot":"","sources":["../../../src/curve/CurveCurve.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;GAGG;AACH,qBAAa,UAAU;IACrB;;;;;;;OAOG;WACW,mBAAmB,CAC/B,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAG5B;;;;;;;;OAQG;WACW,4BAA4B,CACxC,YAAY,EAAE,QAAQ,GAAG,SAAS,EAClC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAK5B
|
|
1
|
+
{"version":3,"file":"CurveCurve.d.ts","sourceRoot":"","sources":["../../../src/curve/CurveCurve.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;GAGG;AACH,qBAAa,UAAU;IACrB;;;;;;;OAOG;WACW,mBAAmB,CAC/B,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAG5B;;;;;;;;OAQG;WACW,4BAA4B,CACxC,YAAY,EAAE,QAAQ,GAAG,SAAS,EAClC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAqC,GAC/C,uBAAuB,EAAE;IAK5B;;;;;;;;;KASC;WACa,oBAAoB,CAChC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GACrE,uBAAuB,EAAE;IAK5B;;;;OAIG;WACW,iCAAiC,CAC7C,UAAU,EAAE,cAAc,EAAE,EAAE,SAAS,GAAE,MAAqC,GAC7E,uBAAuB,EAAE;IAW5B;;;;;;;;;;;;OAYG;WACW,6BAA6B,CACzC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GACtD,uBAAuB,EAAE;IAM5B;;;;;;;;;;OAUG;WACW,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,uBAAuB,GAAG,SAAS;CAkBtH"}
|
|
@@ -43,7 +43,6 @@ export class CurveCurve {
|
|
|
43
43
|
* Return full 3d xyz intersections of 2 curves.
|
|
44
44
|
* * Implemented for combinations of LineSegment3d, LineString3d, Arc3d.
|
|
45
45
|
* * Not Implemented for bspline and bezier curves.
|
|
46
|
-
* @beta
|
|
47
46
|
* @param curveA first curve
|
|
48
47
|
* @param extendA true to allow curveA to extend
|
|
49
48
|
* @param curveB second curve
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurveCurve.js","sourceRoot":"","sources":["../../../src/curve/CurveCurve.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEnF;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB;;;;;;;OAOG;IACI,MAAM,CAAC,mBAAmB,CAC/B,MAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,OAAgB,EAChB,YAAoB,QAAQ,CAAC,mBAAmB;QAEhD,OAAO,UAAU,CAAC,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACzG,CAAC;IACD;;;;;;;;OAQG;IACI,MAAM,CAAC,4BAA4B,CACxC,YAAkC,EAClC,MAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,OAAgB,EAChB,YAAoB,QAAQ,CAAC,mBAAmB;QAEhD,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC7F,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IACD
|
|
1
|
+
{"version":3,"file":"CurveCurve.js","sourceRoot":"","sources":["../../../src/curve/CurveCurve.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 Curve\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { CurveLocationDetailPair } from \"./CurveLocationDetail\";\r\nimport { CurvePrimitive } from \"./CurvePrimitive\";\r\nimport { AnyCurve } from \"./CurveTypes\";\r\nimport { CurveCurveCloseApproachXY } from \"./internalContexts/CurveCurveCloseApproachXY\";\r\nimport { CurveCurveIntersectXY } from \"./internalContexts/CurveCurveIntersectXY\";\r\nimport { CurveCurveIntersectXYZ } from \"./internalContexts/CurveCurveIntersectXYZ\";\r\n\r\n/**\r\n * `CurveCurve` has static method for various computations that work on a pair of curves or curve collections.\r\n * @public\r\n */\r\nexport class CurveCurve {\r\n /**\r\n * Return xy intersections of 2 curves.\r\n * @param curveA first curve\r\n * @param extendA true to allow curveA to extend\r\n * @param curveB second curve\r\n * @param extendB true to allow curveB to extend\r\n * @param tolerance optional distance tolerance for coincidence\r\n */\r\n public static intersectionXYPairs(\r\n curveA: AnyCurve,\r\n extendA: boolean,\r\n curveB: AnyCurve,\r\n extendB: boolean,\r\n tolerance: number = Geometry.smallMetricDistance,\r\n ): CurveLocationDetailPair[] {\r\n return CurveCurve.intersectionProjectedXYPairs(undefined, curveA, extendA, curveB, extendB, tolerance);\r\n }\r\n /**\r\n * Return xy intersections of 2 projected curves.\r\n * @param worldToLocal transform (possibly perspective) defining the local coordinates in which to compute xy intersections\r\n * @param curveA first curve\r\n * @param extendA true to allow curveA to extend\r\n * @param curveB second curve\r\n * @param extendB true to allow curveB to extend\r\n * @param tolerance optional distance tolerance for coincidence\r\n */\r\n public static intersectionProjectedXYPairs(\r\n worldToLocal: Matrix4d | undefined,\r\n curveA: AnyCurve,\r\n extendA: boolean,\r\n curveB: AnyCurve,\r\n extendB: boolean,\r\n tolerance: number = Geometry.smallMetricDistance,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveIntersectXY(worldToLocal, extendA, curveB, extendB, tolerance);\r\n curveA.dispatchToGeometryHandler(handler);\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Return full 3d xyz intersections of 2 curves.\r\n * * Implemented for combinations of LineSegment3d, LineString3d, Arc3d.\r\n * * Not Implemented for bspline and bezier curves.\r\n * @param curveA first curve\r\n * @param extendA true to allow curveA to extend\r\n * @param curveB second curve\r\n * @param extendB true to allow curveB to extend\r\n * @returns array of intersections structured as CurveLocationDetailPair[]\r\n */\r\n public static intersectionXYZPairs(\r\n curveA: AnyCurve, extendA: boolean, curveB: AnyCurve, extendB: boolean,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveIntersectXYZ(extendA, curveB, extendB);\r\n curveA.dispatchToGeometryHandler(handler);\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Return xy intersections of input curves.\r\n * @param primitives input curves to intersect\r\n * @param tolerance optional distance tolerance for coincidence\r\n */\r\n public static allIntersectionsAmongPrimitivesXY(\r\n primitives: CurvePrimitive[], tolerance: number = Geometry.smallMetricDistance,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveIntersectXY(undefined, false, undefined, false, tolerance);\r\n for (let i = 0; i < primitives.length; i++) {\r\n const curveA = primitives[i];\r\n for (let j = i + 1; j < primitives.length; j++) {\r\n handler.resetGeometry(primitives[j]);\r\n curveA.dispatchToGeometryHandler(handler);\r\n }\r\n }\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Return at least one XY close approach between 2 curves.\r\n * * Close approach xy-distances are measured without regard to z. This is equivalent to their separation distance\r\n * as seen in the top view, or as measured between their projections onto the xy-plane.\r\n * * If more than one approach is returned, one of them is the closest approach.\r\n * * If an input curve is a `CurveCollection`, then close approaches are computed to each `CurvePrimitive` child.\r\n * This can lead to many returned pairs, especially when both inputs are `CurveCollection`s. If an input curve is\r\n * an `AnyRegion` then close approaches are computed only to the boundary curves, not to the interior.\r\n * @param curveA first curve\r\n * @param curveB second curve\r\n * @param maxDistance maximum xy-distance to consider between the curves.\r\n * Close approaches further than this xy-distance are not returned.\r\n */\r\n public static closeApproachProjectedXYPairs(\r\n curveA: AnyCurve, curveB: AnyCurve, maxDistance: number,\r\n ): CurveLocationDetailPair[] {\r\n const handler = new CurveCurveCloseApproachXY(curveB);\r\n handler.maxDistanceToAccept = maxDistance;\r\n curveA.dispatchToGeometryHandler(handler);\r\n return handler.grabPairedResults();\r\n }\r\n /**\r\n * Convenience method that calls [[closeApproachProjectedXYPairs]] with a large `maxDistance`\r\n * and returns a detail pair representing the closest xy-approach between the curves.\r\n * * There may be many detail pairs that represent \"closest\" xy-approach, including coincident interval pairs,\r\n * isolated intersections, or close approaches within tolerance of each other. This method makes no attempt to\r\n * distinguish among them, and returns a pair whose `detail.point` values are separated by the smallest xy distance\r\n * found among the pairs.\r\n * @param curveA first curve\r\n * @param curveB second curve\r\n * @return detail pair of closest xy-approach, undefined if not found\r\n */\r\n public static closestApproachProjectedXYPair(curveA: AnyCurve, curveB: AnyCurve): CurveLocationDetailPair | undefined {\r\n const range = curveA.range();\r\n range.extendRange(curveB.range());\r\n const maxDistance = range.low.distanceXY(range.high);\r\n const closeApproaches = this.closeApproachProjectedXYPairs(curveA, curveB, maxDistance);\r\n if (!closeApproaches.length)\r\n return undefined;\r\n let iMin = 0;\r\n let minDistXY = 2 * maxDistance;\r\n for (let i = 0; i < closeApproaches.length; ++i) {\r\n const distXY = closeApproaches[i].detailA.point.distanceXY(closeApproaches[i].detailB.point);\r\n if (distXY < minDistXY) {\r\n iMin = i;\r\n minDistXY = distXY;\r\n }\r\n }\r\n return closeApproaches[iMin];\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/core-geometry",
|
|
3
|
-
"version": "4.8.0-dev.
|
|
3
|
+
"version": "4.8.0-dev.19",
|
|
4
4
|
"description": "iTwin.js Core Geometry library",
|
|
5
5
|
"main": "lib/cjs/core-geometry.js",
|
|
6
6
|
"module": "lib/esm/core-geometry.js",
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"nyc": "^15.1.0",
|
|
36
36
|
"rimraf": "^3.0.2",
|
|
37
37
|
"typescript": "~5.3.3",
|
|
38
|
-
"@itwin/build-tools": "4.8.0-dev.
|
|
38
|
+
"@itwin/build-tools": "4.8.0-dev.19"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"flatbuffers": "~1.12.0",
|
|
42
|
-
"@itwin/core-bentley": "4.8.0-dev.
|
|
42
|
+
"@itwin/core-bentley": "4.8.0-dev.19"
|
|
43
43
|
},
|
|
44
44
|
"nyc": {
|
|
45
45
|
"extends": "./node_modules/@itwin/build-tools/.nycrc",
|