@itwin/core-common 3.0.0-dev.84 → 3.0.0-dev.85
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 +1248 -1248
- package/README.md +11 -11
- package/lib/cjs/AuthorizationClient.js.map +1 -1
- package/lib/cjs/BackgroundMapProvider.js.map +1 -1
- package/lib/cjs/Base64EncodedString.js.map +1 -1
- package/lib/cjs/BlobReader.js.map +1 -1
- package/lib/cjs/ChangedElements.js.map +1 -1
- package/lib/cjs/ChangedEntities.js.map +1 -1
- package/lib/cjs/ClipStyle.js.map +1 -1
- package/lib/cjs/CloudStorage.js.map +1 -1
- package/lib/cjs/CloudStorageTileCache.js.map +1 -1
- package/lib/cjs/Code.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/ContextRealityModel.js.map +1 -1
- package/lib/cjs/DisplayStyleSettings.js.map +1 -1
- package/lib/cjs/ECSqlReader.js.map +1 -1
- package/lib/cjs/ECSqlTypes.js.map +1 -1
- package/lib/cjs/EntityProps.js.map +1 -1
- package/lib/cjs/FeatureGates.js.map +1 -1
- package/lib/cjs/FeatureIndex.js.map +1 -1
- package/lib/cjs/Fonts.js.map +1 -1
- package/lib/cjs/Frustum.js.map +1 -1
- package/lib/cjs/IModelError.js.map +1 -1
- package/lib/cjs/Image.js.map +1 -1
- package/lib/cjs/Localization.d.ts +12 -6
- package/lib/cjs/Localization.d.ts.map +1 -1
- package/lib/cjs/Localization.js +1 -0
- package/lib/cjs/Localization.js.map +1 -1
- package/lib/cjs/MapImagerySettings.js.map +1 -1
- package/lib/cjs/ModelClipGroup.js.map +1 -1
- package/lib/cjs/ModelProps.js.map +1 -1
- package/lib/cjs/OctEncodedNormal.js.map +1 -1
- package/lib/cjs/PlanarClipMask.js.map +1 -1
- package/lib/cjs/QPoint.js.map +1 -1
- package/lib/cjs/Render.js.map +1 -1
- package/lib/cjs/RpcInterface.js.map +1 -1
- package/lib/cjs/RpcManager.js.map +1 -1
- package/lib/cjs/SpatialClassification.js.map +1 -1
- package/lib/cjs/SubCategoryAppearance.js.map +1 -1
- package/lib/cjs/Thumbnail.js.map +1 -1
- package/lib/cjs/TxnAction.js.map +1 -1
- package/lib/cjs/ViewDetails.js.map +1 -1
- package/lib/cjs/ViewProps.js.map +1 -1
- package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/cjs/core-common.js.map +1 -1
- package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
- package/lib/cjs/geometry/AreaPattern.js.map +1 -1
- package/lib/cjs/geometry/Cartographic.js.map +1 -1
- package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
- package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/cjs/geometry/LineStyle.js.map +1 -1
- package/lib/cjs/geometry/Projection.js.map +1 -1
- package/lib/cjs/geometry/TextString.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
- package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
- package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
- package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
- package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/cjs/tile/ElementGraphics.js.map +1 -1
- package/lib/esm/AuthorizationClient.js.map +1 -1
- package/lib/esm/BackgroundMapProvider.js.map +1 -1
- package/lib/esm/Base64EncodedString.js.map +1 -1
- package/lib/esm/BlobReader.js.map +1 -1
- package/lib/esm/ChangedElements.js.map +1 -1
- package/lib/esm/ChangedEntities.js.map +1 -1
- package/lib/esm/ClipStyle.js.map +1 -1
- package/lib/esm/CloudStorage.js.map +1 -1
- package/lib/esm/CloudStorageTileCache.js.map +1 -1
- package/lib/esm/Code.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/ContextRealityModel.js.map +1 -1
- package/lib/esm/DisplayStyleSettings.js.map +1 -1
- package/lib/esm/ECSqlReader.js.map +1 -1
- package/lib/esm/ECSqlTypes.js.map +1 -1
- package/lib/esm/EntityProps.js.map +1 -1
- package/lib/esm/FeatureGates.js.map +1 -1
- package/lib/esm/FeatureIndex.js.map +1 -1
- package/lib/esm/Fonts.js.map +1 -1
- package/lib/esm/Frustum.js.map +1 -1
- package/lib/esm/IModelError.js.map +1 -1
- package/lib/esm/Image.js.map +1 -1
- package/lib/esm/Localization.d.ts +12 -6
- package/lib/esm/Localization.d.ts.map +1 -1
- package/lib/esm/Localization.js +1 -0
- package/lib/esm/Localization.js.map +1 -1
- package/lib/esm/MapImagerySettings.js.map +1 -1
- package/lib/esm/ModelClipGroup.js.map +1 -1
- package/lib/esm/ModelProps.js.map +1 -1
- package/lib/esm/OctEncodedNormal.js.map +1 -1
- package/lib/esm/PlanarClipMask.js.map +1 -1
- package/lib/esm/QPoint.js.map +1 -1
- package/lib/esm/Render.js.map +1 -1
- package/lib/esm/RpcInterface.js.map +1 -1
- package/lib/esm/RpcManager.js.map +1 -1
- package/lib/esm/SpatialClassification.js.map +1 -1
- package/lib/esm/SubCategoryAppearance.js.map +1 -1
- package/lib/esm/Thumbnail.js.map +1 -1
- package/lib/esm/TxnAction.js.map +1 -1
- package/lib/esm/ViewDetails.js.map +1 -1
- package/lib/esm/ViewProps.js.map +1 -1
- package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/esm/core-common.js.map +1 -1
- package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
- package/lib/esm/geometry/AreaPattern.js.map +1 -1
- package/lib/esm/geometry/Cartographic.js.map +1 -1
- package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
- package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/esm/geometry/LineStyle.js.map +1 -1
- package/lib/esm/geometry/Projection.js.map +1 -1
- package/lib/esm/geometry/TextString.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
- package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/esm/rpc/TestRpcManager.js.map +1 -1
- package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
- package/lib/esm/rpc/core/RpcControl.js.map +1 -1
- package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
- package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
- package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
- package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/esm/tile/ElementGraphics.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubCategoryAppearance.js","sourceRoot":"","sources":["../../src/SubCategoryAppearance.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Symbology\n */\n\nimport { Id64, Id64String, JsonUtils } from \"@itwin/core-bentley\";\nimport { ColorDef, ColorDefProps } from \"./ColorDef\";\n\n/** Parameters that define the way geometry on a [[SubCategory]] appears.\n * SubCategoryAppearance describes the intrinsic appearance of geometry belonging to that SubCategory, independent of a particular [[ViewState]].\n * Aspects of a SubCategory's appearance can be overridden in the context of a particular [[ViewState]] through the use of [[SubCategoryOverride]]s.\n * @public\n */\nexport class SubCategoryAppearance {\n /** The color of the geometry.\n * @note The transparency component of the color is ignored.\n * @see [[SubCategoryAppearance.transparency]].\n */\n public readonly color: ColorDef;\n /** The line width, in pixels.\n * @note The renderer will clamp values to the integer range [1, 32].\n */\n public readonly weight: number;\n /** The display priority used to control which geometry draws in front of other geometry within a 2D view.\n * The priority is a number in the range [-8388576,8388576].\n * Where two pieces of geometry overlap, the one with the larger priority value draws on top of the one with the smaller priority.\n * If they have equal priorities, the order in which they draw is undefined, and z-fighting may result.\n * @note This property has no effect in 3D views unless [[PlanProjectionSettings]] are in effect.\n */\n public readonly priority: number;\n /** A value in the range [0, 1] indicating the transparency of the geometry where 0.0 means \"fully opaque\" and 1.0 means \"fully transparent\". */\n public readonly transparency: number;\n /** If true, geometry belonging to this SubCategory is not drawn. */\n public readonly invisible: boolean;\n /** @internal */\n public readonly dontPlot: boolean;\n /** @internal */\n public readonly dontSnap: boolean;\n /** @internal */\n public readonly dontLocate: boolean;\n /** The element ID of the line style used to draw curves, or an invalid ID if no line style is specified. */\n public readonly styleId: Id64String;\n /** The element ID of the material applied to surfaces, or an invalid ID if no material is specified. */\n public readonly materialId: Id64String;\n /** @internal */\n protected readonly _fillColor?: ColorDef;\n /** @internal */\n protected readonly _fillTransparency?: number;\n\n /** The fill color of geometry marked as being filled.\n * @note The transparency component of the fill color is ignored.\n * @see [[SubCategoryAppearance.fillTransparency]].\n */\n public get fillColor(): ColorDef { return (undefined !== this._fillColor ? this._fillColor : this.color); }\n /** A value in the range [0, 1] indicating the fill transparency of the geometry where 0.0 means \"fully opaque\" and 1.0 means \"fully transparent\". */\n public get fillTransparency(): number { return (undefined !== this._fillTransparency ? this._fillTransparency : this.transparency); }\n\n constructor(props?: SubCategoryAppearance.Props) {\n if (!props) {\n this.color = ColorDef.black;\n this.weight = 0;\n this.priority = 0;\n this.transparency = 0;\n this.invisible = this.dontPlot = this.dontSnap = this.dontLocate = false;\n this.styleId = Id64.invalid;\n this.materialId = Id64.invalid;\n return;\n }\n\n this.invisible = JsonUtils.asBool(props.invisible);\n this.dontSnap = JsonUtils.asBool(props.dontSnap);\n this.dontLocate = JsonUtils.asBool(props.dontLocate);\n this.dontPlot = JsonUtils.asBool(props.dontPlot);\n this.color = ColorDef.fromJSON(props.color);\n this.weight = JsonUtils.asInt(props.weight);\n this.styleId = Id64.fromJSON(props.style);\n this.priority = JsonUtils.asInt(props.priority);\n this.materialId = Id64.fromJSON(props.material);\n this.transparency = JsonUtils.asDouble(props.transp);\n if (props.fill)\n this._fillColor = ColorDef.fromJSON(props.fill);\n if (props.transpFill)\n this._fillTransparency = JsonUtils.asDouble(props.transpFill);\n }\n\n public equals(other: SubCategoryAppearance): boolean {\n return this.invisible === other.invisible &&\n this.dontPlot === other.dontPlot &&\n this.dontSnap === other.dontSnap &&\n this.dontLocate === other.dontLocate &&\n this.color.equals(other.color) &&\n this.weight === other.weight &&\n this.priority === other.priority &&\n this.styleId === other.styleId &&\n this.materialId === other.materialId &&\n this.transparency === other.transparency &&\n this.fillColor.equals(other.fillColor) &&\n this.fillTransparency === other.fillTransparency;\n }\n\n /** @internal */\n public toJSON(): SubCategoryAppearance.Props {\n const val: SubCategoryAppearance.Props = { color: this.color.toJSON() };\n if (this.invisible)\n val.invisible = true;\n\n if (this.dontPlot)\n val.dontPlot = true;\n\n if (this.dontSnap)\n val.dontSnap = true;\n\n if (this.dontLocate)\n val.dontLocate = true;\n\n if (0 !== this.weight)\n val.weight = this.weight;\n\n if (0 !== this.priority)\n val.priority = this.priority;\n\n if (Id64.isValid(this.styleId))\n val.style = this.styleId;\n\n if (Id64.isValid(this.materialId))\n val.material = this.materialId;\n\n if (0.0 !== this.transparency)\n val.transp = this.transparency;\n\n if (this._fillColor)\n val.fill = this._fillColor.toJSON();\n\n if (this._fillTransparency)\n val.transpFill = this._fillTransparency;\n\n return val;\n }\n\n public clone(): SubCategoryAppearance { return new SubCategoryAppearance(this.toJSON()); }\n\n public static defaults = new SubCategoryAppearance();\n}\n\n/** @public */\nexport namespace SubCategoryAppearance { // eslint-disable-line no-redeclare\n /** Properties used to create a SubCategoryAppearance\n * @see [[SubCategoryAppearance]]\n */\n export interface Props {\n /** @see [[SubCategoryAppearance.color]]. Defaults to black. */\n color?: ColorDefProps;\n /** @see [[SubCategoryAppearance.fillColor]]. Defaults to [[SubCategoryAppearance.color]]. */\n fill?: ColorDefProps;\n /** @see [[SubCategoryAppearance.invisible]]. Defaults to false. */\n invisible?: boolean;\n /** @internal */\n dontPlot?: boolean;\n /** @internal */\n dontSnap?: boolean;\n /** @internal */\n dontLocate?: boolean;\n /** @see [[SubCategoryAppearance.weight]]. Defaults to 0. */\n weight?: number;\n /** @see [[SubCategoryAppearance.styleId]]. Defaults to an invalid ID indicating \"no line style\". */\n style?: Id64String;\n /** @see [[SubCategoryAppearance.priority]]. Defaults to 0. */\n priority?: number;\n /** @see [[SubCategoryAppearance.materialId]]. Defaults to an invalid ID indicating \"no material\". */\n material?: Id64String;\n /** @see [[SubCategoryAppearance.transparency]]. Defaults to 0. */\n transp?: number;\n /** @see [[SubCategoryAppearance.fillTransparency]]. Defaults to [[SubCategoryAppearance.transparency]]. */\n transpFill?: number;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SubCategoryAppearance.js","sourceRoot":"","sources":["../../src/SubCategoryAppearance.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 Symbology\r\n */\r\n\r\nimport { Id64, Id64String, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ColorDef, ColorDefProps } from \"./ColorDef\";\r\n\r\n/** Parameters that define the way geometry on a [[SubCategory]] appears.\r\n * SubCategoryAppearance describes the intrinsic appearance of geometry belonging to that SubCategory, independent of a particular [[ViewState]].\r\n * Aspects of a SubCategory's appearance can be overridden in the context of a particular [[ViewState]] through the use of [[SubCategoryOverride]]s.\r\n * @public\r\n */\r\nexport class SubCategoryAppearance {\r\n /** The color of the geometry.\r\n * @note The transparency component of the color is ignored.\r\n * @see [[SubCategoryAppearance.transparency]].\r\n */\r\n public readonly color: ColorDef;\r\n /** The line width, in pixels.\r\n * @note The renderer will clamp values to the integer range [1, 32].\r\n */\r\n public readonly weight: number;\r\n /** The display priority used to control which geometry draws in front of other geometry within a 2D view.\r\n * The priority is a number in the range [-8388576,8388576].\r\n * Where two pieces of geometry overlap, the one with the larger priority value draws on top of the one with the smaller priority.\r\n * If they have equal priorities, the order in which they draw is undefined, and z-fighting may result.\r\n * @note This property has no effect in 3D views unless [[PlanProjectionSettings]] are in effect.\r\n */\r\n public readonly priority: number;\r\n /** A value in the range [0, 1] indicating the transparency of the geometry where 0.0 means \"fully opaque\" and 1.0 means \"fully transparent\". */\r\n public readonly transparency: number;\r\n /** If true, geometry belonging to this SubCategory is not drawn. */\r\n public readonly invisible: boolean;\r\n /** @internal */\r\n public readonly dontPlot: boolean;\r\n /** @internal */\r\n public readonly dontSnap: boolean;\r\n /** @internal */\r\n public readonly dontLocate: boolean;\r\n /** The element ID of the line style used to draw curves, or an invalid ID if no line style is specified. */\r\n public readonly styleId: Id64String;\r\n /** The element ID of the material applied to surfaces, or an invalid ID if no material is specified. */\r\n public readonly materialId: Id64String;\r\n /** @internal */\r\n protected readonly _fillColor?: ColorDef;\r\n /** @internal */\r\n protected readonly _fillTransparency?: number;\r\n\r\n /** The fill color of geometry marked as being filled.\r\n * @note The transparency component of the fill color is ignored.\r\n * @see [[SubCategoryAppearance.fillTransparency]].\r\n */\r\n public get fillColor(): ColorDef { return (undefined !== this._fillColor ? this._fillColor : this.color); }\r\n /** A value in the range [0, 1] indicating the fill transparency of the geometry where 0.0 means \"fully opaque\" and 1.0 means \"fully transparent\". */\r\n public get fillTransparency(): number { return (undefined !== this._fillTransparency ? this._fillTransparency : this.transparency); }\r\n\r\n constructor(props?: SubCategoryAppearance.Props) {\r\n if (!props) {\r\n this.color = ColorDef.black;\r\n this.weight = 0;\r\n this.priority = 0;\r\n this.transparency = 0;\r\n this.invisible = this.dontPlot = this.dontSnap = this.dontLocate = false;\r\n this.styleId = Id64.invalid;\r\n this.materialId = Id64.invalid;\r\n return;\r\n }\r\n\r\n this.invisible = JsonUtils.asBool(props.invisible);\r\n this.dontSnap = JsonUtils.asBool(props.dontSnap);\r\n this.dontLocate = JsonUtils.asBool(props.dontLocate);\r\n this.dontPlot = JsonUtils.asBool(props.dontPlot);\r\n this.color = ColorDef.fromJSON(props.color);\r\n this.weight = JsonUtils.asInt(props.weight);\r\n this.styleId = Id64.fromJSON(props.style);\r\n this.priority = JsonUtils.asInt(props.priority);\r\n this.materialId = Id64.fromJSON(props.material);\r\n this.transparency = JsonUtils.asDouble(props.transp);\r\n if (props.fill)\r\n this._fillColor = ColorDef.fromJSON(props.fill);\r\n if (props.transpFill)\r\n this._fillTransparency = JsonUtils.asDouble(props.transpFill);\r\n }\r\n\r\n public equals(other: SubCategoryAppearance): boolean {\r\n return this.invisible === other.invisible &&\r\n this.dontPlot === other.dontPlot &&\r\n this.dontSnap === other.dontSnap &&\r\n this.dontLocate === other.dontLocate &&\r\n this.color.equals(other.color) &&\r\n this.weight === other.weight &&\r\n this.priority === other.priority &&\r\n this.styleId === other.styleId &&\r\n this.materialId === other.materialId &&\r\n this.transparency === other.transparency &&\r\n this.fillColor.equals(other.fillColor) &&\r\n this.fillTransparency === other.fillTransparency;\r\n }\r\n\r\n /** @internal */\r\n public toJSON(): SubCategoryAppearance.Props {\r\n const val: SubCategoryAppearance.Props = { color: this.color.toJSON() };\r\n if (this.invisible)\r\n val.invisible = true;\r\n\r\n if (this.dontPlot)\r\n val.dontPlot = true;\r\n\r\n if (this.dontSnap)\r\n val.dontSnap = true;\r\n\r\n if (this.dontLocate)\r\n val.dontLocate = true;\r\n\r\n if (0 !== this.weight)\r\n val.weight = this.weight;\r\n\r\n if (0 !== this.priority)\r\n val.priority = this.priority;\r\n\r\n if (Id64.isValid(this.styleId))\r\n val.style = this.styleId;\r\n\r\n if (Id64.isValid(this.materialId))\r\n val.material = this.materialId;\r\n\r\n if (0.0 !== this.transparency)\r\n val.transp = this.transparency;\r\n\r\n if (this._fillColor)\r\n val.fill = this._fillColor.toJSON();\r\n\r\n if (this._fillTransparency)\r\n val.transpFill = this._fillTransparency;\r\n\r\n return val;\r\n }\r\n\r\n public clone(): SubCategoryAppearance { return new SubCategoryAppearance(this.toJSON()); }\r\n\r\n public static defaults = new SubCategoryAppearance();\r\n}\r\n\r\n/** @public */\r\nexport namespace SubCategoryAppearance { // eslint-disable-line no-redeclare\r\n /** Properties used to create a SubCategoryAppearance\r\n * @see [[SubCategoryAppearance]]\r\n */\r\n export interface Props {\r\n /** @see [[SubCategoryAppearance.color]]. Defaults to black. */\r\n color?: ColorDefProps;\r\n /** @see [[SubCategoryAppearance.fillColor]]. Defaults to [[SubCategoryAppearance.color]]. */\r\n fill?: ColorDefProps;\r\n /** @see [[SubCategoryAppearance.invisible]]. Defaults to false. */\r\n invisible?: boolean;\r\n /** @internal */\r\n dontPlot?: boolean;\r\n /** @internal */\r\n dontSnap?: boolean;\r\n /** @internal */\r\n dontLocate?: boolean;\r\n /** @see [[SubCategoryAppearance.weight]]. Defaults to 0. */\r\n weight?: number;\r\n /** @see [[SubCategoryAppearance.styleId]]. Defaults to an invalid ID indicating \"no line style\". */\r\n style?: Id64String;\r\n /** @see [[SubCategoryAppearance.priority]]. Defaults to 0. */\r\n priority?: number;\r\n /** @see [[SubCategoryAppearance.materialId]]. Defaults to an invalid ID indicating \"no material\". */\r\n material?: Id64String;\r\n /** @see [[SubCategoryAppearance.transparency]]. Defaults to 0. */\r\n transp?: number;\r\n /** @see [[SubCategoryAppearance.fillTransparency]]. Defaults to [[SubCategoryAppearance.transparency]]. */\r\n transpFill?: number;\r\n }\r\n}\r\n"]}
|
package/lib/esm/Thumbnail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thumbnail.js","sourceRoot":"","sources":["../../src/Thumbnail.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\n/** Metadata about a thumbnail image. Often this is redundant with information in the image itself, but is held\n * outside of the image so it can be obtained without having to decode the image data.\n * @see [[ThumbnailProps]]\n * @public\n */\nexport interface ThumbnailFormatProps {\n /** X size of the image, in pixels. */\n width: number;\n /** Y size of image, in pixels. */\n height: number;\n /** Encoding of the image */\n format: \"jpeg\" | \"png\";\n}\n\n/** Describes a thumbnail image for an [[IModel]] or [ViewDefinition]($backend).\n * @see [IModelDb.Views.getThumbnail]($backend) or [IModelConnection.Views.getThumbnail]($frontend) to obtain a thumbnail for a view.\n * @public\n */\nexport interface ThumbnailProps extends ThumbnailFormatProps {\n /** The image encoded as specified by [[ThumbnailFormatProps.format]]. */\n image: Uint8Array;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Thumbnail.js","sourceRoot":"","sources":["../../src/Thumbnail.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","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 Rendering\r\n */\r\n\r\n/** Metadata about a thumbnail image. Often this is redundant with information in the image itself, but is held\r\n * outside of the image so it can be obtained without having to decode the image data.\r\n * @see [[ThumbnailProps]]\r\n * @public\r\n */\r\nexport interface ThumbnailFormatProps {\r\n /** X size of the image, in pixels. */\r\n width: number;\r\n /** Y size of image, in pixels. */\r\n height: number;\r\n /** Encoding of the image */\r\n format: \"jpeg\" | \"png\";\r\n}\r\n\r\n/** Describes a thumbnail image for an [[IModel]] or [ViewDefinition]($backend).\r\n * @see [IModelDb.Views.getThumbnail]($backend) or [IModelConnection.Views.getThumbnail]($frontend) to obtain a thumbnail for a view.\r\n * @public\r\n */\r\nexport interface ThumbnailProps extends ThumbnailFormatProps {\r\n /** The image encoded as specified by [[ThumbnailFormatProps.format]]. */\r\n image: Uint8Array;\r\n}\r\n"]}
|
package/lib/esm/TxnAction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TxnAction.js","sourceRoot":"","sources":["../../src/TxnAction.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,SAaX;AAbD,WAAY,SAAS;IACnB,yCAAyC;IACzC,yCAAQ,CAAA;IACR,mIAAmI;IACnI,6CAAU,CAAA;IACV,iFAAiF;IACjF,+CAAW,CAAA;IACX,uIAAuI;IACvI,+CAAW,CAAA;IACX,6IAA6I;IAC7I,mDAAa,CAAA;IACb,4GAA4G;IAC5G,2CAAS,CAAA;AACX,CAAC,EAbW,SAAS,KAAT,SAAS,QAapB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module iModels\n */\n\n/** Describes the types of actions associated with [Txns]($docs/learning/InteractiveEditing.md).\n * @public\n */\nexport enum TxnAction {\n /** Not currently processing anything. */\n None = 0,\n /** Processing a commit initiated by a call to [IModelDb.saveChanges]($backend) or [BriefcaseConnection.saveChanges]($frontend). */\n Commit = 1,\n /** Abandoning the current Txn, e.g., via [IModelDb.abandonChanges]($backend). */\n Abandon = 2,\n /** Reversing a previously-committed changeset, e.g., via [TxnManager.reverseTxns]($backend) [BriefcaseTxns.reverseTxns]($frontend). */\n Reverse = 3,\n /** Reinstating a previously reversed changeset, e.g., via [TxnManager.reinstateTxn]($backend) or [BriefcaseTxns.reinstateTxn]($frontend). */\n Reinstate = 4,\n /** Merging a changeset produced by a different briefcase, e.g., via [BriefcaseDb.pullChanges]($backend). */\n Merge = 5,\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TxnAction.js","sourceRoot":"","sources":["../../src/TxnAction.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,SAaX;AAbD,WAAY,SAAS;IACnB,yCAAyC;IACzC,yCAAQ,CAAA;IACR,mIAAmI;IACnI,6CAAU,CAAA;IACV,iFAAiF;IACjF,+CAAW,CAAA;IACX,uIAAuI;IACvI,+CAAW,CAAA;IACX,6IAA6I;IAC7I,mDAAa,CAAA;IACb,4GAA4G;IAC5G,2CAAS,CAAA;AACX,CAAC,EAbW,SAAS,KAAT,SAAS,QAapB","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 iModels\r\n */\r\n\r\n/** Describes the types of actions associated with [Txns]($docs/learning/InteractiveEditing.md).\r\n * @public\r\n */\r\nexport enum TxnAction {\r\n /** Not currently processing anything. */\r\n None = 0,\r\n /** Processing a commit initiated by a call to [IModelDb.saveChanges]($backend) or [BriefcaseConnection.saveChanges]($frontend). */\r\n Commit = 1,\r\n /** Abandoning the current Txn, e.g., via [IModelDb.abandonChanges]($backend). */\r\n Abandon = 2,\r\n /** Reversing a previously-committed changeset, e.g., via [TxnManager.reverseTxns]($backend) [BriefcaseTxns.reverseTxns]($frontend). */\r\n Reverse = 3,\r\n /** Reinstating a previously reversed changeset, e.g., via [TxnManager.reinstateTxn]($backend) or [BriefcaseTxns.reinstateTxn]($frontend). */\r\n Reinstate = 4,\r\n /** Merging a changeset produced by a different briefcase, e.g., via [BriefcaseDb.pullChanges]($backend). */\r\n Merge = 5,\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewDetails.js","sourceRoot":"","sources":["../../src/ViewDetails.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { BeEvent, Id64, Id64String, JsonUtils } from \"@itwin/core-bentley\";\nimport { ClipVector, ClipVectorProps, Geometry, XAndY } from \"@itwin/core-geometry\";\nimport { ModelClipGroupProps, ModelClipGroups } from \"./ModelClipGroup\";\n\n/** Properties of a [[ViewDefinitionProps]] stored as JSON.\n * @see [[ViewDefinitionProps.jsonProperties]].\n * @see [[ViewDetails3dProps]] for additional properties specific to 3d views.\n * @public\n */\nexport interface ViewDetailsProps {\n /** Id of the aux coord system. Default: invalid. */\n acs?: Id64String;\n /** Aspect ratio skew (x/y) used to exaggerate the y axis of the view. Default: 1.0. */\n aspectSkew?: number;\n /** Grid orientation. Default: WorldXY. */\n gridOrient?: GridOrientationType;\n /** Default: 10. */\n gridPerRef?: number;\n /** Default: 1.0. */\n gridSpaceX?: number;\n /** Default: same as gridSpaceX. */\n gridSpaceY?: number;\n /** Describes the [ClipVector]($core-geometry) applied to the view. */\n clip?: ClipVectorProps;\n}\n\n/** Describes the orientation of the grid displayed within a [Viewport]($frontend).\n * @public\n */\nexport enum GridOrientationType {\n /** Oriented with the view. */\n View = 0,\n /** Top */\n WorldXY = 1,\n /** Right */\n WorldYZ = 2,\n /** Front */\n WorldXZ = 3,\n /** Oriented by the auxiliary coordinate system. */\n AuxCoord = 4,\n}\n\n/** Properties of a [[ViewDefinition3dProps]] stored as JSON.\n * @see [[ViewDefinition3dProps.jsonProperties]].\n * @public\n */\nexport interface ViewDetails3dProps extends ViewDetailsProps {\n /** Whether viewing tools are prohibited from operating in 3 dimensions on this view. Default: false. */\n disable3dManipulations?: boolean;\n /** Defines how to clip groups of models. */\n modelClipGroups?: ModelClipGroupProps[];\n}\n\n/** Encapsulates access to optional view details stored in JSON properties.\n * @see [[ViewDetailsProps]] for the JSON representation.\n * @see [ViewDefinition.details]($backend) and [ViewState.details]($frontend).\n * @public\n */\nexport class ViewDetails {\n /** @internal */\n protected readonly _json: ViewDetailsProps;\n private _clipVector?: ClipVector;\n\n /** Event raised just before assignment to the [[clipVector]] property. */\n public readonly onClipVectorChanged = new BeEvent<(newClip: ClipVector | undefined) => void>();\n\n /** @internal */\n public constructor(jsonProperties: { viewDetails?: ViewDetailsProps }) {\n if (!jsonProperties.viewDetails)\n jsonProperties.viewDetails = {};\n\n this._json = jsonProperties.viewDetails;\n }\n\n /** The Id of the auxiliary coordinate system for the view. */\n public get auxiliaryCoordinateSystemId(): Id64String {\n return Id64.fromJSON(this._json.acs);\n }\n public set auxiliaryCoordinateSystemId(id: Id64String) {\n this._json.acs = Id64.isValidId64(id) ? id : undefined;\n }\n\n /** Maximum aspect ratio skew. Apps can override this by changing its value. */\n public static maxSkew = 25;\n\n /** The aspect ratio skew (x/y, usually 1.0) used to exaggerate the y axis of the view. */\n public get aspectRatioSkew(): number {\n const maxSkew = ViewDetails.maxSkew;\n const skew = JsonUtils.asDouble(this._json.aspectSkew, 1.0);\n return Geometry.clamp(skew, 1 / maxSkew, maxSkew);\n }\n public set aspectRatioSkew(skew: number) {\n this._json.aspectSkew = 1.0 !== skew ? skew : undefined;\n }\n\n /** The orientation of the view's grid. */\n public get gridOrientation(): GridOrientationType {\n return JsonUtils.asInt(this._json.gridOrient, GridOrientationType.WorldXY);\n }\n public set gridOrientation(orientation: GridOrientationType) {\n this._json.gridOrient = GridOrientationType.WorldXY === orientation ? undefined : orientation;\n }\n\n /** The number of grids per ref for the view. */\n public get gridsPerRef(): number {\n return JsonUtils.asInt(this._json.gridPerRef, 10);\n }\n public set gridsPerRef(gridsPerRef: number) {\n this._json.gridPerRef = 10 === gridsPerRef ? undefined : gridsPerRef;\n }\n\n /** The grid spacing for the view. */\n public get gridSpacing(): XAndY {\n const x = JsonUtils.asDouble(this._json.gridSpaceX, 1.0);\n const y = JsonUtils.asDouble(this._json.gridSpaceY, x);\n return { x, y };\n }\n public set gridSpacing(spacing: XAndY) {\n this._json.gridSpaceX = 1.0 !== spacing.x ? spacing.x : undefined;\n this._json.gridSpaceY = spacing.x !== spacing.y ? spacing.y : undefined;\n }\n\n /** Clipping volume for the view.\n * @note Do *not* modify the returned ClipVector. If you wish to change the ClipVector, clone the returned ClipVector, modify it as desired, and pass the clone back to the setter.\n */\n public get clipVector(): ClipVector | undefined {\n if (undefined === this._clipVector) {\n const clip = this._json.clip;\n this._clipVector = (undefined !== clip ? ClipVector.fromJSON(clip) : ClipVector.createEmpty());\n }\n\n return this._clipVector.isValid ? this._clipVector : undefined;\n }\n public set clipVector(clip: ClipVector | undefined) {\n if (!clip)\n clip = ClipVector.createEmpty();\n\n this.onClipVectorChanged.raiseEvent(clip.isValid ? clip : undefined);\n this._clipVector = clip;\n if (clip.isValid)\n this._json.clip = clip.toJSON();\n else\n delete this._json.clip;\n }\n\n /** Returns the internal JSON representation. This is *not* a copy.\n * @internal\n */\n public getJSON(): Readonly<ViewDetailsProps> {\n return this._json;\n }\n}\n\n/** Encapsulates access to optional 3d view details stored in JSON properties.\n * @see [[ViewDetails3dProps]] for the JSON representation.\n * @public\n */\nexport class ViewDetails3d extends ViewDetails {\n private _modelClipGroups?: ModelClipGroups;\n\n private get _json3d(): ViewDetails3dProps {\n return this._json as ViewDetails3dProps;\n }\n\n /** Event raised when just before assignment to the [[modelClipGroups]] property. */\n public readonly onModelClipGroupsChanged = new BeEvent<(newGroups: ModelClipGroups) => void>();\n\n /** @internal */\n public constructor(jsonProperties: { viewDetails?: ViewDetails3dProps }) {\n super(jsonProperties);\n }\n\n /** Controls whether viewing tools are allowed to operate on the view in 3 dimensions. */\n public get allow3dManipulations(): boolean {\n return !JsonUtils.asBool(this._json3d.disable3dManipulations, false);\n }\n public set allow3dManipulations(allow: boolean) {\n this._json3d.disable3dManipulations = allow ? undefined : true;\n }\n\n /** Groups of models associated with [ClipVector]($core-geometry)s by which those models should be clipped.\n * If the view and the model both have a clip vector defined, geometry in the model will be clipped by the intersection of the two clip vectors.\n * [[ViewFlags.clipVolume]] has no effect on model clips, only the view clip - model clips are always applied.\n * @note Do **not** modify the returned object directly. Instead, clone it, modify the clone, and pass the clone to the property setter.\n */\n public get modelClipGroups(): ModelClipGroups {\n if (!this._modelClipGroups)\n this._modelClipGroups = ModelClipGroups.fromJSON(this._json3d.modelClipGroups);\n\n return this._modelClipGroups;\n }\n public set modelClipGroups(groups: ModelClipGroups) {\n this.onModelClipGroupsChanged.raiseEvent(groups);\n this._modelClipGroups = groups;\n this._json3d.modelClipGroups = groups.toJSON();\n }\n\n /** Returns the internal JSON representation. This is *not* a copy.\n * @internal\n */\n public override getJSON(): Readonly<ViewDetails3dProps> {\n return this._json3d;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ViewDetails.js","sourceRoot":"","sources":["../../src/ViewDetails.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 Views\r\n */\r\n\r\nimport { BeEvent, Id64, Id64String, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ClipVector, ClipVectorProps, Geometry, XAndY } from \"@itwin/core-geometry\";\r\nimport { ModelClipGroupProps, ModelClipGroups } from \"./ModelClipGroup\";\r\n\r\n/** Properties of a [[ViewDefinitionProps]] stored as JSON.\r\n * @see [[ViewDefinitionProps.jsonProperties]].\r\n * @see [[ViewDetails3dProps]] for additional properties specific to 3d views.\r\n * @public\r\n */\r\nexport interface ViewDetailsProps {\r\n /** Id of the aux coord system. Default: invalid. */\r\n acs?: Id64String;\r\n /** Aspect ratio skew (x/y) used to exaggerate the y axis of the view. Default: 1.0. */\r\n aspectSkew?: number;\r\n /** Grid orientation. Default: WorldXY. */\r\n gridOrient?: GridOrientationType;\r\n /** Default: 10. */\r\n gridPerRef?: number;\r\n /** Default: 1.0. */\r\n gridSpaceX?: number;\r\n /** Default: same as gridSpaceX. */\r\n gridSpaceY?: number;\r\n /** Describes the [ClipVector]($core-geometry) applied to the view. */\r\n clip?: ClipVectorProps;\r\n}\r\n\r\n/** Describes the orientation of the grid displayed within a [Viewport]($frontend).\r\n * @public\r\n */\r\nexport enum GridOrientationType {\r\n /** Oriented with the view. */\r\n View = 0,\r\n /** Top */\r\n WorldXY = 1,\r\n /** Right */\r\n WorldYZ = 2,\r\n /** Front */\r\n WorldXZ = 3,\r\n /** Oriented by the auxiliary coordinate system. */\r\n AuxCoord = 4,\r\n}\r\n\r\n/** Properties of a [[ViewDefinition3dProps]] stored as JSON.\r\n * @see [[ViewDefinition3dProps.jsonProperties]].\r\n * @public\r\n */\r\nexport interface ViewDetails3dProps extends ViewDetailsProps {\r\n /** Whether viewing tools are prohibited from operating in 3 dimensions on this view. Default: false. */\r\n disable3dManipulations?: boolean;\r\n /** Defines how to clip groups of models. */\r\n modelClipGroups?: ModelClipGroupProps[];\r\n}\r\n\r\n/** Encapsulates access to optional view details stored in JSON properties.\r\n * @see [[ViewDetailsProps]] for the JSON representation.\r\n * @see [ViewDefinition.details]($backend) and [ViewState.details]($frontend).\r\n * @public\r\n */\r\nexport class ViewDetails {\r\n /** @internal */\r\n protected readonly _json: ViewDetailsProps;\r\n private _clipVector?: ClipVector;\r\n\r\n /** Event raised just before assignment to the [[clipVector]] property. */\r\n public readonly onClipVectorChanged = new BeEvent<(newClip: ClipVector | undefined) => void>();\r\n\r\n /** @internal */\r\n public constructor(jsonProperties: { viewDetails?: ViewDetailsProps }) {\r\n if (!jsonProperties.viewDetails)\r\n jsonProperties.viewDetails = {};\r\n\r\n this._json = jsonProperties.viewDetails;\r\n }\r\n\r\n /** The Id of the auxiliary coordinate system for the view. */\r\n public get auxiliaryCoordinateSystemId(): Id64String {\r\n return Id64.fromJSON(this._json.acs);\r\n }\r\n public set auxiliaryCoordinateSystemId(id: Id64String) {\r\n this._json.acs = Id64.isValidId64(id) ? id : undefined;\r\n }\r\n\r\n /** Maximum aspect ratio skew. Apps can override this by changing its value. */\r\n public static maxSkew = 25;\r\n\r\n /** The aspect ratio skew (x/y, usually 1.0) used to exaggerate the y axis of the view. */\r\n public get aspectRatioSkew(): number {\r\n const maxSkew = ViewDetails.maxSkew;\r\n const skew = JsonUtils.asDouble(this._json.aspectSkew, 1.0);\r\n return Geometry.clamp(skew, 1 / maxSkew, maxSkew);\r\n }\r\n public set aspectRatioSkew(skew: number) {\r\n this._json.aspectSkew = 1.0 !== skew ? skew : undefined;\r\n }\r\n\r\n /** The orientation of the view's grid. */\r\n public get gridOrientation(): GridOrientationType {\r\n return JsonUtils.asInt(this._json.gridOrient, GridOrientationType.WorldXY);\r\n }\r\n public set gridOrientation(orientation: GridOrientationType) {\r\n this._json.gridOrient = GridOrientationType.WorldXY === orientation ? undefined : orientation;\r\n }\r\n\r\n /** The number of grids per ref for the view. */\r\n public get gridsPerRef(): number {\r\n return JsonUtils.asInt(this._json.gridPerRef, 10);\r\n }\r\n public set gridsPerRef(gridsPerRef: number) {\r\n this._json.gridPerRef = 10 === gridsPerRef ? undefined : gridsPerRef;\r\n }\r\n\r\n /** The grid spacing for the view. */\r\n public get gridSpacing(): XAndY {\r\n const x = JsonUtils.asDouble(this._json.gridSpaceX, 1.0);\r\n const y = JsonUtils.asDouble(this._json.gridSpaceY, x);\r\n return { x, y };\r\n }\r\n public set gridSpacing(spacing: XAndY) {\r\n this._json.gridSpaceX = 1.0 !== spacing.x ? spacing.x : undefined;\r\n this._json.gridSpaceY = spacing.x !== spacing.y ? spacing.y : undefined;\r\n }\r\n\r\n /** Clipping volume for the view.\r\n * @note Do *not* modify the returned ClipVector. If you wish to change the ClipVector, clone the returned ClipVector, modify it as desired, and pass the clone back to the setter.\r\n */\r\n public get clipVector(): ClipVector | undefined {\r\n if (undefined === this._clipVector) {\r\n const clip = this._json.clip;\r\n this._clipVector = (undefined !== clip ? ClipVector.fromJSON(clip) : ClipVector.createEmpty());\r\n }\r\n\r\n return this._clipVector.isValid ? this._clipVector : undefined;\r\n }\r\n public set clipVector(clip: ClipVector | undefined) {\r\n if (!clip)\r\n clip = ClipVector.createEmpty();\r\n\r\n this.onClipVectorChanged.raiseEvent(clip.isValid ? clip : undefined);\r\n this._clipVector = clip;\r\n if (clip.isValid)\r\n this._json.clip = clip.toJSON();\r\n else\r\n delete this._json.clip;\r\n }\r\n\r\n /** Returns the internal JSON representation. This is *not* a copy.\r\n * @internal\r\n */\r\n public getJSON(): Readonly<ViewDetailsProps> {\r\n return this._json;\r\n }\r\n}\r\n\r\n/** Encapsulates access to optional 3d view details stored in JSON properties.\r\n * @see [[ViewDetails3dProps]] for the JSON representation.\r\n * @public\r\n */\r\nexport class ViewDetails3d extends ViewDetails {\r\n private _modelClipGroups?: ModelClipGroups;\r\n\r\n private get _json3d(): ViewDetails3dProps {\r\n return this._json as ViewDetails3dProps;\r\n }\r\n\r\n /** Event raised when just before assignment to the [[modelClipGroups]] property. */\r\n public readonly onModelClipGroupsChanged = new BeEvent<(newGroups: ModelClipGroups) => void>();\r\n\r\n /** @internal */\r\n public constructor(jsonProperties: { viewDetails?: ViewDetails3dProps }) {\r\n super(jsonProperties);\r\n }\r\n\r\n /** Controls whether viewing tools are allowed to operate on the view in 3 dimensions. */\r\n public get allow3dManipulations(): boolean {\r\n return !JsonUtils.asBool(this._json3d.disable3dManipulations, false);\r\n }\r\n public set allow3dManipulations(allow: boolean) {\r\n this._json3d.disable3dManipulations = allow ? undefined : true;\r\n }\r\n\r\n /** Groups of models associated with [ClipVector]($core-geometry)s by which those models should be clipped.\r\n * If the view and the model both have a clip vector defined, geometry in the model will be clipped by the intersection of the two clip vectors.\r\n * [[ViewFlags.clipVolume]] has no effect on model clips, only the view clip - model clips are always applied.\r\n * @note Do **not** modify the returned object directly. Instead, clone it, modify the clone, and pass the clone to the property setter.\r\n */\r\n public get modelClipGroups(): ModelClipGroups {\r\n if (!this._modelClipGroups)\r\n this._modelClipGroups = ModelClipGroups.fromJSON(this._json3d.modelClipGroups);\r\n\r\n return this._modelClipGroups;\r\n }\r\n public set modelClipGroups(groups: ModelClipGroups) {\r\n this.onModelClipGroupsChanged.raiseEvent(groups);\r\n this._modelClipGroups = groups;\r\n this._json3d.modelClipGroups = groups.toJSON();\r\n }\r\n\r\n /** Returns the internal JSON representation. This is *not* a copy.\r\n * @internal\r\n */\r\n public override getJSON(): Readonly<ViewDetails3dProps> {\r\n return this._json3d;\r\n }\r\n}\r\n"]}
|
package/lib/esm/ViewProps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewProps.js","sourceRoot":"","sources":["../../src/ViewProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { Id64Array, Id64String } from \"@itwin/core-bentley\";\nimport { AngleProps, Range3dProps, TransformProps, XYProps, XYZProps, YawPitchRollProps } from \"@itwin/core-geometry\";\nimport { CameraProps } from \"./Camera\";\nimport { DisplayStyleProps } from \"./DisplayStyleSettings\";\nimport { DefinitionElementProps, DisplayStyleLoadProps, ElementProps, SheetProps } from \"./ElementProps\";\nimport { EntityQueryParams } from \"./EntityProps\";\nimport { ViewDetails3dProps, ViewDetailsProps } from \"./ViewDetails\";\n\n/** As part of a [[ViewStateProps]], describes the [[SpatialViewDefinition]] from which a [SectionDrawing]($backend) was generated.\n * @see [[SectionDrawingProps]]\n * @public\n */\nexport interface SectionDrawingViewProps {\n /** The Id of the spatial view from which the SectionDrawing was generated. */\n spatialView: Id64String;\n /** If true, the spatial view should be displayed in the context of the drawing view. */\n displaySpatialView: boolean;\n /** Transform from drawing coordinates to spatial coordinates. If undefined, use identity transform. */\n drawingToSpatialTransform?: TransformProps;\n}\n\n/** Returned from [IModelDb.Views.getViewStateData]($backend).\n * @public\n */\nexport interface ViewStateProps {\n viewDefinitionProps: ViewDefinitionProps;\n categorySelectorProps: CategorySelectorProps;\n modelSelectorProps?: ModelSelectorProps;\n displayStyleProps: DisplayStyleProps;\n /** Sheet-specific properties, if this is a view of a [SheetModel]($backend). */\n sheetProps?: SheetProps;\n /** The Ids of the [ViewAttachment]($backend)s contained within the [SheetModel]($backend), if this is a sheet view. */\n sheetAttachments?: Id64Array;\n /** For a [DrawingViewState]($frontend), the extents of the [DrawingModel]($backend), used for determining the upper limits of the view's extents. */\n modelExtents?: Range3dProps;\n /** Information about the [SectionDrawing]($backend) relevant to displaying a drawing view. */\n sectionDrawing?: SectionDrawingViewProps;\n}\n\n/** Options for loading a [[ViewStateProps]] via [IModelConnection.Views.load]($frontend) or [IModelDb.Views.getViewStateData]($backend).\n * @public\n */\nexport interface ViewStateLoadProps {\n /** Options for loading the view's [[DisplayStyleProps]]. */\n displayStyle?: DisplayStyleLoadProps;\n}\n\n/** Properties that define a ModelSelector\n * @public\n */\nexport interface ModelSelectorProps extends DefinitionElementProps {\n models: Id64Array;\n}\n\n/** Properties that define a CategorySelector\n * @public\n */\nexport interface CategorySelectorProps extends DefinitionElementProps {\n categories: Id64Array;\n}\n\n/** Parameters for performing a query on [ViewDefinition]($backend) classes.\n * @public\n */\nexport interface ViewQueryParams extends EntityQueryParams {\n wantPrivate?: boolean;\n}\n\n/** Parameters used to construct a ViewDefinition\n * @public\n */\nexport interface ViewDefinitionProps extends DefinitionElementProps {\n categorySelectorId: Id64String;\n displayStyleId: Id64String;\n description?: string;\n jsonProperties?: {\n /** Additional properties of the view. */\n viewDetails?: ViewDetailsProps;\n };\n}\n\n/** Parameters to construct a ViewDefinition3d\n * @public\n */\nexport interface ViewDefinition3dProps extends ViewDefinitionProps {\n /** if true, camera is valid. */\n cameraOn: boolean;\n /** The lower left back corner of the view frustum. */\n origin: XYZProps;\n /** The extent of the view frustum. */\n extents: XYZProps;\n /** Rotation of the view frustum (could be undefined if going Matrix3d -> YawPitchRoll). */\n angles?: YawPitchRollProps;\n /** The camera used for this view. */\n camera: CameraProps;\n jsonProperties?: {\n /** Additional properties of the view. */\n viewDetails?: ViewDetails3dProps;\n };\n}\n\n/** Parameters to construct a SpatialViewDefinition\n * @public\n */\nexport interface SpatialViewDefinitionProps extends ViewDefinition3dProps {\n modelSelectorId: Id64String;\n}\n\n/** Parameters used to construct a ViewDefinition2d\n * @public\n */\nexport interface ViewDefinition2dProps extends ViewDefinitionProps {\n baseModelId: Id64String;\n origin: XYProps;\n delta: XYProps;\n angle: AngleProps;\n}\n\n/** @public */\nexport interface AuxCoordSystemProps extends ElementProps {\n type?: number;\n description?: string;\n}\n\n/** Properties of AuxCoordSystem2d\n * @public\n */\nexport interface AuxCoordSystem2dProps extends AuxCoordSystemProps {\n /** Origin of the AuxCoordSystem2d */\n origin?: XYProps;\n /** Rotation angle */\n angle?: AngleProps;\n}\n\n/** Properties of AuxCoordSystem3d\n * @public\n */\nexport interface AuxCoordSystem3dProps extends AuxCoordSystemProps {\n /** Origin of the AuxCoordSystem3d */\n origin?: XYZProps;\n /** Yaw angle */\n yaw?: AngleProps;\n /** Pitch angle */\n pitch?: AngleProps;\n /** Roll angle */\n roll?: AngleProps;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ViewProps.js","sourceRoot":"","sources":["../../src/ViewProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","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 Views\r\n */\r\n\r\nimport { Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { AngleProps, Range3dProps, TransformProps, XYProps, XYZProps, YawPitchRollProps } from \"@itwin/core-geometry\";\r\nimport { CameraProps } from \"./Camera\";\r\nimport { DisplayStyleProps } from \"./DisplayStyleSettings\";\r\nimport { DefinitionElementProps, DisplayStyleLoadProps, ElementProps, SheetProps } from \"./ElementProps\";\r\nimport { EntityQueryParams } from \"./EntityProps\";\r\nimport { ViewDetails3dProps, ViewDetailsProps } from \"./ViewDetails\";\r\n\r\n/** As part of a [[ViewStateProps]], describes the [[SpatialViewDefinition]] from which a [SectionDrawing]($backend) was generated.\r\n * @see [[SectionDrawingProps]]\r\n * @public\r\n */\r\nexport interface SectionDrawingViewProps {\r\n /** The Id of the spatial view from which the SectionDrawing was generated. */\r\n spatialView: Id64String;\r\n /** If true, the spatial view should be displayed in the context of the drawing view. */\r\n displaySpatialView: boolean;\r\n /** Transform from drawing coordinates to spatial coordinates. If undefined, use identity transform. */\r\n drawingToSpatialTransform?: TransformProps;\r\n}\r\n\r\n/** Returned from [IModelDb.Views.getViewStateData]($backend).\r\n * @public\r\n */\r\nexport interface ViewStateProps {\r\n viewDefinitionProps: ViewDefinitionProps;\r\n categorySelectorProps: CategorySelectorProps;\r\n modelSelectorProps?: ModelSelectorProps;\r\n displayStyleProps: DisplayStyleProps;\r\n /** Sheet-specific properties, if this is a view of a [SheetModel]($backend). */\r\n sheetProps?: SheetProps;\r\n /** The Ids of the [ViewAttachment]($backend)s contained within the [SheetModel]($backend), if this is a sheet view. */\r\n sheetAttachments?: Id64Array;\r\n /** For a [DrawingViewState]($frontend), the extents of the [DrawingModel]($backend), used for determining the upper limits of the view's extents. */\r\n modelExtents?: Range3dProps;\r\n /** Information about the [SectionDrawing]($backend) relevant to displaying a drawing view. */\r\n sectionDrawing?: SectionDrawingViewProps;\r\n}\r\n\r\n/** Options for loading a [[ViewStateProps]] via [IModelConnection.Views.load]($frontend) or [IModelDb.Views.getViewStateData]($backend).\r\n * @public\r\n */\r\nexport interface ViewStateLoadProps {\r\n /** Options for loading the view's [[DisplayStyleProps]]. */\r\n displayStyle?: DisplayStyleLoadProps;\r\n}\r\n\r\n/** Properties that define a ModelSelector\r\n * @public\r\n */\r\nexport interface ModelSelectorProps extends DefinitionElementProps {\r\n models: Id64Array;\r\n}\r\n\r\n/** Properties that define a CategorySelector\r\n * @public\r\n */\r\nexport interface CategorySelectorProps extends DefinitionElementProps {\r\n categories: Id64Array;\r\n}\r\n\r\n/** Parameters for performing a query on [ViewDefinition]($backend) classes.\r\n * @public\r\n */\r\nexport interface ViewQueryParams extends EntityQueryParams {\r\n wantPrivate?: boolean;\r\n}\r\n\r\n/** Parameters used to construct a ViewDefinition\r\n * @public\r\n */\r\nexport interface ViewDefinitionProps extends DefinitionElementProps {\r\n categorySelectorId: Id64String;\r\n displayStyleId: Id64String;\r\n description?: string;\r\n jsonProperties?: {\r\n /** Additional properties of the view. */\r\n viewDetails?: ViewDetailsProps;\r\n };\r\n}\r\n\r\n/** Parameters to construct a ViewDefinition3d\r\n * @public\r\n */\r\nexport interface ViewDefinition3dProps extends ViewDefinitionProps {\r\n /** if true, camera is valid. */\r\n cameraOn: boolean;\r\n /** The lower left back corner of the view frustum. */\r\n origin: XYZProps;\r\n /** The extent of the view frustum. */\r\n extents: XYZProps;\r\n /** Rotation of the view frustum (could be undefined if going Matrix3d -> YawPitchRoll). */\r\n angles?: YawPitchRollProps;\r\n /** The camera used for this view. */\r\n camera: CameraProps;\r\n jsonProperties?: {\r\n /** Additional properties of the view. */\r\n viewDetails?: ViewDetails3dProps;\r\n };\r\n}\r\n\r\n/** Parameters to construct a SpatialViewDefinition\r\n * @public\r\n */\r\nexport interface SpatialViewDefinitionProps extends ViewDefinition3dProps {\r\n modelSelectorId: Id64String;\r\n}\r\n\r\n/** Parameters used to construct a ViewDefinition2d\r\n * @public\r\n */\r\nexport interface ViewDefinition2dProps extends ViewDefinitionProps {\r\n baseModelId: Id64String;\r\n origin: XYProps;\r\n delta: XYProps;\r\n angle: AngleProps;\r\n}\r\n\r\n/** @public */\r\nexport interface AuxCoordSystemProps extends ElementProps {\r\n type?: number;\r\n description?: string;\r\n}\r\n\r\n/** Properties of AuxCoordSystem2d\r\n * @public\r\n */\r\nexport interface AuxCoordSystem2dProps extends AuxCoordSystemProps {\r\n /** Origin of the AuxCoordSystem2d */\r\n origin?: XYProps;\r\n /** Rotation angle */\r\n angle?: AngleProps;\r\n}\r\n\r\n/** Properties of AuxCoordSystem3d\r\n * @public\r\n */\r\nexport interface AuxCoordSystem3dProps extends AuxCoordSystemProps {\r\n /** Origin of the AuxCoordSystem3d */\r\n origin?: XYZProps;\r\n /** Yaw angle */\r\n yaw?: AngleProps;\r\n /** Pitch angle */\r\n pitch?: AngleProps;\r\n /** Roll angle */\r\n roll?: AngleProps;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WhiteOnWhiteReversalSettings.js","sourceRoot":"","sources":["../../src/WhiteOnWhiteReversalSettings.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAYH;;;;;;GAMG;AACH,MAAM,OAAO,4BAA4B;IAOvC,YAAoB,gBAAyB;QAC3C,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC;IAChD,CAAC;IAKD,uCAAuC;IAChC,MAAM,CAAC,QAAQ,CAAC,KAAiC;QACtD,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,qBAAqB,EAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACtE,CAAC;IAED,mHAAmH;IAC5G,MAAM;QACX,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,KAAmC;QAC/C,OAAO,IAAI,KAAK,KAAK,CAAC;IACxB,CAAC;;AAhBc,sCAAS,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;AACnD,oCAAO,GAAG,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module DisplayStyles\n */\n\n/** JSON representation of a [[WhiteOnWhiteReversalSettings]].\n * @public\n */\nexport interface WhiteOnWhiteReversalProps {\n /** Default: false.\n * @see [[WhiteOnWhiteReversalSettings.ignoreBackgroundColor]].\n */\n ignoreBackgroundColor?: boolean;\n}\n\n/** As part of a [[DisplayStyleSettings]], controls how white-on-white reversal is applied to make white geometry more\n * visible in the view.\n * By default, pure white geometry is displayed as black instead if the [[DisplayStyleSettings.backgroundColor]] is also pure white.\n * These settings are only applied if the display style's [[ViewFlags.whiteOnWhiteReversal]] flag is enabled.\n * @see [[DisplayStyleSettings.whiteOnWhiteReversal]] to change these settings for a display style.\n * @public\n */\nexport class WhiteOnWhiteReversalSettings {\n /** If true, white-on-white reversal ignores the display style's background color; otherwise, white-on-white reversal applies only\n * if the background color is pure white.\n * @see [[DisplayStyleSettings.backgroundColor]] to change the background color.\n */\n public readonly ignoreBackgroundColor: boolean;\n\n private constructor(ignoreBackground: boolean) {\n this.ignoreBackgroundColor = ignoreBackground;\n }\n\n private static _noIgnore = new WhiteOnWhiteReversalSettings(true);\n private static _ignore = new WhiteOnWhiteReversalSettings(false);\n\n /** Create from JSON representation. */\n public static fromJSON(props?: WhiteOnWhiteReversalProps): WhiteOnWhiteReversalSettings {\n return props?.ignoreBackgroundColor ? this._noIgnore : this._ignore;\n }\n\n /** Convert to JSON representation. The JSON representation is `undefined` if these settings match the defaults. */\n public toJSON(): WhiteOnWhiteReversalProps | undefined {\n return this.ignoreBackgroundColor ? { ignoreBackgroundColor: true } : undefined;\n }\n\n /** Returns true if `this` is equivalent to `other`. */\n public equals(other: WhiteOnWhiteReversalSettings): boolean {\n return this === other;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"WhiteOnWhiteReversalSettings.js","sourceRoot":"","sources":["../../src/WhiteOnWhiteReversalSettings.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAYH;;;;;;GAMG;AACH,MAAM,OAAO,4BAA4B;IAOvC,YAAoB,gBAAyB;QAC3C,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC;IAChD,CAAC;IAKD,uCAAuC;IAChC,MAAM,CAAC,QAAQ,CAAC,KAAiC;QACtD,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,qBAAqB,EAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACtE,CAAC;IAED,mHAAmH;IAC5G,MAAM;QACX,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,KAAmC;QAC/C,OAAO,IAAI,KAAK,KAAK,CAAC;IACxB,CAAC;;AAhBc,sCAAS,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;AACnD,oCAAO,GAAG,IAAI,4BAA4B,CAAC,KAAK,CAAC,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/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\n/** JSON representation of a [[WhiteOnWhiteReversalSettings]].\r\n * @public\r\n */\r\nexport interface WhiteOnWhiteReversalProps {\r\n /** Default: false.\r\n * @see [[WhiteOnWhiteReversalSettings.ignoreBackgroundColor]].\r\n */\r\n ignoreBackgroundColor?: boolean;\r\n}\r\n\r\n/** As part of a [[DisplayStyleSettings]], controls how white-on-white reversal is applied to make white geometry more\r\n * visible in the view.\r\n * By default, pure white geometry is displayed as black instead if the [[DisplayStyleSettings.backgroundColor]] is also pure white.\r\n * These settings are only applied if the display style's [[ViewFlags.whiteOnWhiteReversal]] flag is enabled.\r\n * @see [[DisplayStyleSettings.whiteOnWhiteReversal]] to change these settings for a display style.\r\n * @public\r\n */\r\nexport class WhiteOnWhiteReversalSettings {\r\n /** If true, white-on-white reversal ignores the display style's background color; otherwise, white-on-white reversal applies only\r\n * if the background color is pure white.\r\n * @see [[DisplayStyleSettings.backgroundColor]] to change the background color.\r\n */\r\n public readonly ignoreBackgroundColor: boolean;\r\n\r\n private constructor(ignoreBackground: boolean) {\r\n this.ignoreBackgroundColor = ignoreBackground;\r\n }\r\n\r\n private static _noIgnore = new WhiteOnWhiteReversalSettings(true);\r\n private static _ignore = new WhiteOnWhiteReversalSettings(false);\r\n\r\n /** Create from JSON representation. */\r\n public static fromJSON(props?: WhiteOnWhiteReversalProps): WhiteOnWhiteReversalSettings {\r\n return props?.ignoreBackgroundColor ? this._noIgnore : this._ignore;\r\n }\r\n\r\n /** Convert to JSON representation. The JSON representation is `undefined` if these settings match the defaults. */\r\n public toJSON(): WhiteOnWhiteReversalProps | undefined {\r\n return this.ignoreBackgroundColor ? { ignoreBackgroundColor: true } : undefined;\r\n }\r\n\r\n /** Returns true if `this` is equivalent to `other`. */\r\n public equals(other: WhiteOnWhiteReversalSettings): boolean {\r\n return this === other;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-common.js","sourceRoot":"","sources":["../../src/core-common.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nexport * from \"./AmbientOcclusion\";\nexport * from \"./AnalysisStyle\";\nexport * from \"./AuthorizationClient\";\nexport * from \"./BackgroundMapProvider\";\nexport * from \"./BackgroundMapSettings\";\nexport * from \"./Base64EncodedString\";\nexport * from \"./BriefcaseTypes\";\nexport * from \"./Camera\";\nexport * from \"./ChangedElements\";\nexport * from \"./ChangedEntities\";\nexport * from \"./ChangesetProps\";\nexport * from \"./ClipStyle\";\nexport * from \"./CloudStorage\";\nexport * from \"./CloudStorageTileCache\";\nexport * from \"./Code\";\nexport * from \"./ColorByName\";\nexport * from \"./ColorDef\";\nexport * from \"./CommonLoggerCategory\";\nexport * from \"./ContextRealityModel\";\nexport * from \"./DisplayStyleSettings\";\nexport * from \"./domains/FunctionalElementProps\";\nexport * from \"./domains/GenericElementProps\";\nexport * from \"./ECSqlTypes\";\nexport * from \"./ElementProps\";\nexport * from \"./EmphasizeElementsProps\";\nexport * from \"./EntityProps\";\nexport * from \"./FeatureGates\";\nexport * from \"./FeatureIndex\";\nexport * from \"./FeatureSymbology\";\nexport * from \"./FeatureTable\";\nexport * from \"./Fonts\";\nexport * from \"./Frustum\";\nexport * from \"./GeoCoordinateServices\";\nexport * from \"./geometry/AdditionalTransform\";\nexport * from \"./geometry/AreaPattern\";\nexport * from \"./geometry/BoundingSphere\";\nexport * from \"./geometry/Cartographic\";\nexport * from \"./geometry/CoordinateReferenceSystem\";\nexport * from \"./geometry/ElementGeometry\";\nexport * from \"./geometry/FrustumPlanes\";\nexport * from \"./geometry/GeodeticDatum\";\nexport * from \"./geometry/GeodeticEllipsoid\";\nexport * from \"./geometry/GeometryStream\";\nexport * from \"./geometry/ImageGraphic\";\nexport * from \"./geometry/LineStyle\";\nexport * from \"./geometry/Placement\";\nexport * from \"./geometry/Projection\";\nexport * from \"./geometry/TextString\";\nexport * from \"./GeometryContainment\";\nexport * from \"./GeometryParams\";\nexport * from \"./GeometrySummary\";\nexport * from \"./Gradient\";\nexport * from \"./GraphicParams\";\nexport * from \"./GroundPlane\";\nexport * from \"./HiddenLine\";\nexport * from \"./Hilite\";\nexport * from \"./HSLColor\";\nexport * from \"./HSVColor\";\nexport * from \"./Image\";\nexport * from \"./IModel\";\nexport * from \"./IModelError\";\nexport * from \"./IModelVersion\";\nexport * from \"./ipc/IpcSocket\";\nexport * from \"./ipc/IpcWebSocket\";\nexport * from \"./IpcAppProps\";\nexport * from \"./LightSettings\";\nexport * from \"./LinePixels\";\nexport * from \"./Localization\";\nexport * from \"./MapImagerySettings\";\nexport * from \"./MapLayerSettings\";\nexport * from \"./MassProperties\";\nexport * from \"./MaterialProps\";\nexport * from \"./ModelClipGroup\";\nexport * from \"./ModelProps\";\nexport * from \"./NativeAppProps\";\nexport * from \"./OctEncodedNormal\";\nexport * from \"./ConcurrentQuery\";\nexport * from \"./ECSqlReader\";\nexport * from \"./PlanarClipMask\";\nexport * from \"./ModelGeometryChanges\";\nexport * from \"./PlanProjectionSettings\";\nexport * from \"./QPoint\";\nexport * from \"./Render\";\nexport * from \"./RenderMaterial\";\nexport * from \"./RenderSchedule\";\nexport * from \"./RenderTexture\";\nexport * from \"./RgbColor\";\nexport * from \"./rpc/core/RpcConfiguration\";\nexport * from \"./rpc/DevToolsRpcInterface\";\nexport * from \"./rpc/IModelReadRpcInterface\";\nexport * from \"./rpc/IModelTileRpcInterface\";\nexport * from \"./rpc/SnapshotIModelRpcInterface\";\nexport * from \"./rpc/TestRpcManager\";\nexport * from \"./rpc/WipRpcInterface\";\nexport * from \"./RpcInterface\";\nexport * from \"./RpcManager\";\nexport * from \"./SessionProps\";\nexport * from \"./SkyBox\";\nexport * from \"./Snapping\";\nexport * from \"./SolarCalculate\";\nexport * from \"./SolarShadows\";\nexport * from \"./SpatialClassification\";\nexport * from \"./SubCategoryAppearance\";\nexport * from \"./SubCategoryOverride\";\nexport * from \"./TerrainSettings\";\nexport * from \"./TextureMapping\";\nexport * from \"./TextureProps\";\nexport * from \"./ThematicDisplay\";\nexport * from \"./Thumbnail\";\nexport * from \"./TileProps\";\nexport * from \"./Tween\";\nexport * from \"./TxnAction\";\nexport * from \"./ViewDetails\";\nexport * from \"./ViewFlags\";\nexport * from \"./ViewProps\";\nexport * from \"./rpc/core/RpcConstants\";\nexport * from \"./rpc/core/RpcControl\";\nexport * from \"./rpc/core/RpcInvocation\";\nexport * from \"./rpc/core/RpcMarshaling\";\nexport * from \"./rpc/core/RpcOperation\";\nexport * from \"./rpc/core/RpcPendingQueue\";\nexport * from \"./rpc/core/RpcProtocol\";\nexport * from \"./rpc/core/RpcRegistry\";\nexport * from \"./rpc/core/RpcRequest\";\nexport * from \"./rpc/core/RpcRequestContext\";\nexport * from \"./rpc/core/RpcRoutingToken\";\nexport * from \"./rpc/core/RpcPush\";\nexport * from \"./rpc/web/BentleyCloudRpcManager\";\nexport * from \"./rpc/web/BentleyCloudRpcProtocol\";\nexport * from \"./rpc/web/OpenAPI\";\nexport * from \"./rpc/web/RpcMultipart\";\nexport * from \"./rpc/web/WebAppRpcProtocol\";\nexport * from \"./rpc/web/WebAppRpcRequest\";\nexport * from \"./tile/B3dmTileIO\";\nexport * from \"./tile/CompositeTileIO\";\nexport * from \"./tile/ElementGraphics\";\nexport * from \"./tile/GltfTileIO\";\nexport * from \"./tile/I3dmTileIO\";\nexport * from \"./tile/IModelTileIO\";\nexport * from \"./tile/PntsTileIO\";\nexport * from \"./tile/TileIO\";\nexport * from \"./tile/TileMetadata\";\nexport * from \"./WhiteOnWhiteReversalSettings\";\n\n/** @docs-package-description\n * The core-common package contains classes for working with iModels that can be used in both [frontend]($docs/learning/frontend/index.md) and [backend]($docs/learning/backend/index.md).\n */\n/**\n * @docs-group-description Entities\n * Definitions of the \"props\" interfaces and types that define the [wire format]($docs/learning/wireformat.md) for communication between the frontend and backend about entities (models, elements, etc) contained in an iModel.\n */\n/**\n * @docs-group-description Codes\n * Types for working with [Codes]($docs/bis/intro/codes.md).\n */\n/**\n * @docs-group-description Geometry\n * Types for working with geometry.\n */\n/**\n * @docs-group-description Serialization\n * Types for serializing geometry\n */\n/**\n * @docs-group-description Views\n * Types for defining graphical views of the contents of an iModel.\n */\n/**\n * @docs-group-description DisplayStyles\n * Types for describing how the contents of Views should be rendered.\n */\n/**\n * @docs-group-description Rendering\n * Types describing geometry, views, and symbology for consumption by a display system.\n */\n/**\n * @docs-group-description Symbology\n * Types that define the appearance of geometry.\n */\n/**\n * @docs-group-description iModels\n * Types for working with [iModels]($docs/learning/IModels.md) in both the frontend and backend.\n */\n/**\n * @docs-group-description RpcInterface\n * Types for working with [RpcInterfaces]($docs/learning/RpcInterface.md).\n */\n/**\n * @docs-group-description IpcSocket\n * Types for working with [IpcInterfaces]($docs/learning/IpcInterface.md).\n */\n/**\n * @docs-group-description ECSQL\n * Types for working with [ECSQL]($docs/learning/ECSQL.md), [Spatial Queries]($docs/learning/SpatialQueries.md), and [ECSQL Geometry Functions]($docs/learning/GeometrySqlFuncs.md).\n */\n/**\n * @docs-group-description Logging\n * Logger categories used by this package.\n */\n/**\n * @docs-group-description CloudStorage\n * Types for working with Cloud Storage.\n */\n/**\n * @docs-group-description Tween\n * Tweening library adapted from tween.js.\n */\n/**\n * @docs-group-description Tile\n * Types for working with 3d tile formats.\n */\n/**\n * @docs-group-description Utils\n * Miscellaneous utility classes.\n */\n/**\n * @docs-group-description NativeApp\n * [Native applications]($docs/learning/NativeApps.md)\n */\n/**\n * @docs-group-description Localization\n * Classes for internationalization and localization of your app.\n */\n/**\n * @docs-group-description Authorization\n * Classes for managing AccessToken used for all requests in other classes.\n */\n"]}
|
|
1
|
+
{"version":3,"file":"core-common.js","sourceRoot":"","sources":["../../src/core-common.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\nexport * from \"./AmbientOcclusion\";\r\nexport * from \"./AnalysisStyle\";\r\nexport * from \"./AuthorizationClient\";\r\nexport * from \"./BackgroundMapProvider\";\r\nexport * from \"./BackgroundMapSettings\";\r\nexport * from \"./Base64EncodedString\";\r\nexport * from \"./BriefcaseTypes\";\r\nexport * from \"./Camera\";\r\nexport * from \"./ChangedElements\";\r\nexport * from \"./ChangedEntities\";\r\nexport * from \"./ChangesetProps\";\r\nexport * from \"./ClipStyle\";\r\nexport * from \"./CloudStorage\";\r\nexport * from \"./CloudStorageTileCache\";\r\nexport * from \"./Code\";\r\nexport * from \"./ColorByName\";\r\nexport * from \"./ColorDef\";\r\nexport * from \"./CommonLoggerCategory\";\r\nexport * from \"./ContextRealityModel\";\r\nexport * from \"./DisplayStyleSettings\";\r\nexport * from \"./domains/FunctionalElementProps\";\r\nexport * from \"./domains/GenericElementProps\";\r\nexport * from \"./ECSqlTypes\";\r\nexport * from \"./ElementProps\";\r\nexport * from \"./EmphasizeElementsProps\";\r\nexport * from \"./EntityProps\";\r\nexport * from \"./FeatureGates\";\r\nexport * from \"./FeatureIndex\";\r\nexport * from \"./FeatureSymbology\";\r\nexport * from \"./FeatureTable\";\r\nexport * from \"./Fonts\";\r\nexport * from \"./Frustum\";\r\nexport * from \"./GeoCoordinateServices\";\r\nexport * from \"./geometry/AdditionalTransform\";\r\nexport * from \"./geometry/AreaPattern\";\r\nexport * from \"./geometry/BoundingSphere\";\r\nexport * from \"./geometry/Cartographic\";\r\nexport * from \"./geometry/CoordinateReferenceSystem\";\r\nexport * from \"./geometry/ElementGeometry\";\r\nexport * from \"./geometry/FrustumPlanes\";\r\nexport * from \"./geometry/GeodeticDatum\";\r\nexport * from \"./geometry/GeodeticEllipsoid\";\r\nexport * from \"./geometry/GeometryStream\";\r\nexport * from \"./geometry/ImageGraphic\";\r\nexport * from \"./geometry/LineStyle\";\r\nexport * from \"./geometry/Placement\";\r\nexport * from \"./geometry/Projection\";\r\nexport * from \"./geometry/TextString\";\r\nexport * from \"./GeometryContainment\";\r\nexport * from \"./GeometryParams\";\r\nexport * from \"./GeometrySummary\";\r\nexport * from \"./Gradient\";\r\nexport * from \"./GraphicParams\";\r\nexport * from \"./GroundPlane\";\r\nexport * from \"./HiddenLine\";\r\nexport * from \"./Hilite\";\r\nexport * from \"./HSLColor\";\r\nexport * from \"./HSVColor\";\r\nexport * from \"./Image\";\r\nexport * from \"./IModel\";\r\nexport * from \"./IModelError\";\r\nexport * from \"./IModelVersion\";\r\nexport * from \"./ipc/IpcSocket\";\r\nexport * from \"./ipc/IpcWebSocket\";\r\nexport * from \"./IpcAppProps\";\r\nexport * from \"./LightSettings\";\r\nexport * from \"./LinePixels\";\r\nexport * from \"./Localization\";\r\nexport * from \"./MapImagerySettings\";\r\nexport * from \"./MapLayerSettings\";\r\nexport * from \"./MassProperties\";\r\nexport * from \"./MaterialProps\";\r\nexport * from \"./ModelClipGroup\";\r\nexport * from \"./ModelProps\";\r\nexport * from \"./NativeAppProps\";\r\nexport * from \"./OctEncodedNormal\";\r\nexport * from \"./ConcurrentQuery\";\r\nexport * from \"./ECSqlReader\";\r\nexport * from \"./PlanarClipMask\";\r\nexport * from \"./ModelGeometryChanges\";\r\nexport * from \"./PlanProjectionSettings\";\r\nexport * from \"./QPoint\";\r\nexport * from \"./Render\";\r\nexport * from \"./RenderMaterial\";\r\nexport * from \"./RenderSchedule\";\r\nexport * from \"./RenderTexture\";\r\nexport * from \"./RgbColor\";\r\nexport * from \"./rpc/core/RpcConfiguration\";\r\nexport * from \"./rpc/DevToolsRpcInterface\";\r\nexport * from \"./rpc/IModelReadRpcInterface\";\r\nexport * from \"./rpc/IModelTileRpcInterface\";\r\nexport * from \"./rpc/SnapshotIModelRpcInterface\";\r\nexport * from \"./rpc/TestRpcManager\";\r\nexport * from \"./rpc/WipRpcInterface\";\r\nexport * from \"./RpcInterface\";\r\nexport * from \"./RpcManager\";\r\nexport * from \"./SessionProps\";\r\nexport * from \"./SkyBox\";\r\nexport * from \"./Snapping\";\r\nexport * from \"./SolarCalculate\";\r\nexport * from \"./SolarShadows\";\r\nexport * from \"./SpatialClassification\";\r\nexport * from \"./SubCategoryAppearance\";\r\nexport * from \"./SubCategoryOverride\";\r\nexport * from \"./TerrainSettings\";\r\nexport * from \"./TextureMapping\";\r\nexport * from \"./TextureProps\";\r\nexport * from \"./ThematicDisplay\";\r\nexport * from \"./Thumbnail\";\r\nexport * from \"./TileProps\";\r\nexport * from \"./Tween\";\r\nexport * from \"./TxnAction\";\r\nexport * from \"./ViewDetails\";\r\nexport * from \"./ViewFlags\";\r\nexport * from \"./ViewProps\";\r\nexport * from \"./rpc/core/RpcConstants\";\r\nexport * from \"./rpc/core/RpcControl\";\r\nexport * from \"./rpc/core/RpcInvocation\";\r\nexport * from \"./rpc/core/RpcMarshaling\";\r\nexport * from \"./rpc/core/RpcOperation\";\r\nexport * from \"./rpc/core/RpcPendingQueue\";\r\nexport * from \"./rpc/core/RpcProtocol\";\r\nexport * from \"./rpc/core/RpcRegistry\";\r\nexport * from \"./rpc/core/RpcRequest\";\r\nexport * from \"./rpc/core/RpcRequestContext\";\r\nexport * from \"./rpc/core/RpcRoutingToken\";\r\nexport * from \"./rpc/core/RpcPush\";\r\nexport * from \"./rpc/web/BentleyCloudRpcManager\";\r\nexport * from \"./rpc/web/BentleyCloudRpcProtocol\";\r\nexport * from \"./rpc/web/OpenAPI\";\r\nexport * from \"./rpc/web/RpcMultipart\";\r\nexport * from \"./rpc/web/WebAppRpcProtocol\";\r\nexport * from \"./rpc/web/WebAppRpcRequest\";\r\nexport * from \"./tile/B3dmTileIO\";\r\nexport * from \"./tile/CompositeTileIO\";\r\nexport * from \"./tile/ElementGraphics\";\r\nexport * from \"./tile/GltfTileIO\";\r\nexport * from \"./tile/I3dmTileIO\";\r\nexport * from \"./tile/IModelTileIO\";\r\nexport * from \"./tile/PntsTileIO\";\r\nexport * from \"./tile/TileIO\";\r\nexport * from \"./tile/TileMetadata\";\r\nexport * from \"./WhiteOnWhiteReversalSettings\";\r\n\r\n/** @docs-package-description\r\n * The core-common package contains classes for working with iModels that can be used in both [frontend]($docs/learning/frontend/index.md) and [backend]($docs/learning/backend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Entities\r\n * Definitions of the \"props\" interfaces and types that define the [wire format]($docs/learning/wireformat.md) for communication between the frontend and backend about entities (models, elements, etc) contained in an iModel.\r\n */\r\n/**\r\n * @docs-group-description Codes\r\n * Types for working with [Codes]($docs/bis/intro/codes.md).\r\n */\r\n/**\r\n * @docs-group-description Geometry\r\n * Types for working with geometry.\r\n */\r\n/**\r\n * @docs-group-description Serialization\r\n * Types for serializing geometry\r\n */\r\n/**\r\n * @docs-group-description Views\r\n * Types for defining graphical views of the contents of an iModel.\r\n */\r\n/**\r\n * @docs-group-description DisplayStyles\r\n * Types for describing how the contents of Views should be rendered.\r\n */\r\n/**\r\n * @docs-group-description Rendering\r\n * Types describing geometry, views, and symbology for consumption by a display system.\r\n */\r\n/**\r\n * @docs-group-description Symbology\r\n * Types that define the appearance of geometry.\r\n */\r\n/**\r\n * @docs-group-description iModels\r\n * Types for working with [iModels]($docs/learning/IModels.md) in both the frontend and backend.\r\n */\r\n/**\r\n * @docs-group-description RpcInterface\r\n * Types for working with [RpcInterfaces]($docs/learning/RpcInterface.md).\r\n */\r\n/**\r\n * @docs-group-description IpcSocket\r\n * Types for working with [IpcInterfaces]($docs/learning/IpcInterface.md).\r\n */\r\n/**\r\n * @docs-group-description ECSQL\r\n * Types for working with [ECSQL]($docs/learning/ECSQL.md), [Spatial Queries]($docs/learning/SpatialQueries.md), and [ECSQL Geometry Functions]($docs/learning/GeometrySqlFuncs.md).\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package.\r\n */\r\n/**\r\n * @docs-group-description CloudStorage\r\n * Types for working with Cloud Storage.\r\n */\r\n/**\r\n * @docs-group-description Tween\r\n * Tweening library adapted from tween.js.\r\n */\r\n/**\r\n * @docs-group-description Tile\r\n * Types for working with 3d tile formats.\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description NativeApp\r\n * [Native applications]($docs/learning/NativeApps.md)\r\n */\r\n/**\r\n * @docs-group-description Localization\r\n * Classes for internationalization and localization of your app.\r\n */\r\n/**\r\n * @docs-group-description Authorization\r\n * Classes for managing AccessToken used for all requests in other classes.\r\n */\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdditionalTransform.js","sourceRoot":"","sources":["../../../src/geometry/AdditionalTransform.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,wBAAwB;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAuBhD;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAoB;IAY/B,YAAY,IAAgC;QAC1C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACzB;IACH,CAAC;IAED;iBACa;IACN,MAAM,CAAC,QAAQ,CAAC,IAA+B;QACpD,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;iBACa;IACN,MAAM;QACX,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACvJ,CAAC;IAED;kBACc;IACP,MAAM,CAAC,KAA2B;QACvC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,mBAAmB;YACrF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,mBAAmB;YAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,mBAAmB;YAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,iBAAiB;YACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;CACF;AAUD;;;;;EAKE;AACF,MAAM,OAAO,mBAAmB;IAK9B,YAAmB,IAA+B;QAChD,IAAI,IAAI;YACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjI,CAAC;IAED;iBACa;IACN,MAAM,CAAC,QAAQ,CAAC,IAA8B;QACnD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;iBACa;IACN,MAAM;QACX,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7D,CAAC;IAED;kBACc;IACP,MAAM,CAAC,KAA0B;QACtC,IAAI,CAAC,IAAI,CAAC,oBAAoB,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,KAAK,SAAS,CAAC;YAC1F,OAAO,KAAK,CAAC;QAEf,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAqB,CAAC;YAC7F,OAAO,KAAK,CAAC;QAEf,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Geometry\n */\n// cspell:ignore Helmert\n\nimport { Geometry } from \"@itwin/core-geometry\";\n\n/** An affine transformation with an additional Z Offset.\n * The equations are:\n * given a = scale * cos(rotation) and b = scale * sin(rotation)\n * X = a * x - b * y + translationX\n * Y = b * x + a * y + translationY\n * Z = z + translationZ\n * @public\n */\nexport interface Helmert2DWithZOffsetProps {\n /** The X post translation */\n translationX: number;\n /** The Y post-translation */\n translationY: number;\n /** The Z post-translation or Z offset*/\n translationZ: number;\n /** The rotation in the trigonometric (CCW) direction in degrees. */\n rotDeg: number;\n /** The scale. This scale applies to both X and Y axises. Does not apply to Z. */\n scale: number;\n}\n\n/** An affine transformation with an additional Z Offset.\n * The equations are:\n * given a = scale * cos(rotation) and b = scale * sin(rotation)\n * X = a * x - b * y + translationX\n * Y = b * x + a * y + translationY\n * Z = z + translationZ\n *\n * Note that the class only implements the definition and not the operation.\n * @public\n */\nexport class Helmert2DWithZOffset implements Helmert2DWithZOffsetProps {\n /** The X post translation */\n public translationX!: number;\n /** The Y post-translation */\n public translationY!: number;\n /** The Z post-translation or Z offset*/\n public translationZ!: number;\n /** The rotation in the trigonometric (CCW) direction in degrees. */\n public rotDeg!: number;\n /** The scale. This scale applies to both X and Y axises. Does not apply to Z. */\n public scale!: number;\n\n constructor(data?: Helmert2DWithZOffsetProps) {\n if (data) {\n this.translationX = data.translationX;\n this.translationY = data.translationY;\n this.translationZ = data.translationZ;\n this.rotDeg = data.rotDeg;\n this.scale = data.scale;\n }\n }\n\n /** Creates an Helmert Transform from JSON representation.\n * @public */\n public static fromJSON(data: Helmert2DWithZOffsetProps): Helmert2DWithZOffset {\n return new Helmert2DWithZOffset(data);\n }\n\n /** Creates a JSON from the Helmert Transform definition\n * @public */\n public toJSON(): Helmert2DWithZOffsetProps {\n return { translationX: this.translationX, translationY: this.translationY, translationZ: this.translationZ, rotDeg: this.rotDeg, scale: this.scale };\n }\n\n /** Compares two Helmert2DWithZOffset objects applying a minuscule tolerance.\n * @public */\n public equals(other: Helmert2DWithZOffset): boolean {\n return (Math.abs(this.translationX - other.translationX) < Geometry.smallMetricDistance &&\n Math.abs(this.translationY - other.translationY) < Geometry.smallMetricDistance &&\n Math.abs(this.translationZ - other.translationZ) < Geometry.smallMetricDistance &&\n Math.abs(this.rotDeg - other.rotDeg) < Geometry.smallAngleDegrees &&\n Math.abs(this.scale - other.scale) < Geometry.smallFraction);\n }\n}\n\n/** Additional Transform definition\n * @public\n */\nexport interface AdditionalTransformProps {\n /** The properties of a 2D Helmert transform with Z offset if one is defined. */\n helmert2DWithZOffset?: Helmert2DWithZOffsetProps;\n}\n\n/** Additional Transform implementation.\n * An additional transform is a transformation that can apply to either the horizontal or vertical coordinates of a\n * geographic CRS. The transformation is applied after the latitude/longitude have been reprojected thus the process\n * is applied to the result Cartesian coordinates of the projection process.\n * @public\n*/\nexport class AdditionalTransform implements AdditionalTransformProps {\n\n /** The properties of a 2D Helmert transform with Z offset if one is defined. */\n public readonly helmert2DWithZOffset?: Helmert2DWithZOffset;\n\n public constructor(data?: AdditionalTransformProps) {\n if (data)\n this.helmert2DWithZOffset = data.helmert2DWithZOffset ? Helmert2DWithZOffset.fromJSON(data.helmert2DWithZOffset) : undefined;\n }\n\n /** Creates an Additional Transform from JSON representation.\n * @public */\n public static fromJSON(data: AdditionalTransformProps): AdditionalTransform {\n return new AdditionalTransform(data);\n }\n\n /** Creates a JSON from the Additional Transform definition\n * @public */\n public toJSON(): AdditionalTransformProps {\n return { helmert2DWithZOffset: this.helmert2DWithZOffset };\n }\n\n /** Compares two additional transforms applying a minuscule tolerance to comparing numbers.\n * @public */\n public equals(other: AdditionalTransform): boolean {\n if ((this.helmert2DWithZOffset === undefined) !== (other.helmert2DWithZOffset === undefined))\n return false;\n\n if (this.helmert2DWithZOffset && !this.helmert2DWithZOffset.equals(other.helmert2DWithZOffset!))\n return false;\n\n return true;\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"AdditionalTransform.js","sourceRoot":"","sources":["../../../src/geometry/AdditionalTransform.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,wBAAwB;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAuBhD;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAoB;IAY/B,YAAY,IAAgC;QAC1C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACzB;IACH,CAAC;IAED;iBACa;IACN,MAAM,CAAC,QAAQ,CAAC,IAA+B;QACpD,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;iBACa;IACN,MAAM;QACX,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACvJ,CAAC;IAED;kBACc;IACP,MAAM,CAAC,KAA2B;QACvC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,mBAAmB;YACrF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,mBAAmB;YAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,mBAAmB;YAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,iBAAiB;YACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;CACF;AAUD;;;;;EAKE;AACF,MAAM,OAAO,mBAAmB;IAK9B,YAAmB,IAA+B;QAChD,IAAI,IAAI;YACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjI,CAAC;IAED;iBACa;IACN,MAAM,CAAC,QAAQ,CAAC,IAA8B;QACnD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;iBACa;IACN,MAAM;QACX,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7D,CAAC;IAED;kBACc;IACP,MAAM,CAAC,KAA0B;QACtC,IAAI,CAAC,IAAI,CAAC,oBAAoB,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,KAAK,SAAS,CAAC;YAC1F,OAAO,KAAK,CAAC;QAEf,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAqB,CAAC;YAC7F,OAAO,KAAK,CAAC;QAEf,OAAO,IAAI,CAAC;IACd,CAAC;CACF","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 Geometry\r\n */\r\n// cspell:ignore Helmert\r\n\r\nimport { Geometry } from \"@itwin/core-geometry\";\r\n\r\n/** An affine transformation with an additional Z Offset.\r\n * The equations are:\r\n * given a = scale * cos(rotation) and b = scale * sin(rotation)\r\n * X = a * x - b * y + translationX\r\n * Y = b * x + a * y + translationY\r\n * Z = z + translationZ\r\n * @public\r\n */\r\nexport interface Helmert2DWithZOffsetProps {\r\n /** The X post translation */\r\n translationX: number;\r\n /** The Y post-translation */\r\n translationY: number;\r\n /** The Z post-translation or Z offset*/\r\n translationZ: number;\r\n /** The rotation in the trigonometric (CCW) direction in degrees. */\r\n rotDeg: number;\r\n /** The scale. This scale applies to both X and Y axises. Does not apply to Z. */\r\n scale: number;\r\n}\r\n\r\n/** An affine transformation with an additional Z Offset.\r\n * The equations are:\r\n * given a = scale * cos(rotation) and b = scale * sin(rotation)\r\n * X = a * x - b * y + translationX\r\n * Y = b * x + a * y + translationY\r\n * Z = z + translationZ\r\n *\r\n * Note that the class only implements the definition and not the operation.\r\n * @public\r\n */\r\nexport class Helmert2DWithZOffset implements Helmert2DWithZOffsetProps {\r\n /** The X post translation */\r\n public translationX!: number;\r\n /** The Y post-translation */\r\n public translationY!: number;\r\n /** The Z post-translation or Z offset*/\r\n public translationZ!: number;\r\n /** The rotation in the trigonometric (CCW) direction in degrees. */\r\n public rotDeg!: number;\r\n /** The scale. This scale applies to both X and Y axises. Does not apply to Z. */\r\n public scale!: number;\r\n\r\n constructor(data?: Helmert2DWithZOffsetProps) {\r\n if (data) {\r\n this.translationX = data.translationX;\r\n this.translationY = data.translationY;\r\n this.translationZ = data.translationZ;\r\n this.rotDeg = data.rotDeg;\r\n this.scale = data.scale;\r\n }\r\n }\r\n\r\n /** Creates an Helmert Transform from JSON representation.\r\n * @public */\r\n public static fromJSON(data: Helmert2DWithZOffsetProps): Helmert2DWithZOffset {\r\n return new Helmert2DWithZOffset(data);\r\n }\r\n\r\n /** Creates a JSON from the Helmert Transform definition\r\n * @public */\r\n public toJSON(): Helmert2DWithZOffsetProps {\r\n return { translationX: this.translationX, translationY: this.translationY, translationZ: this.translationZ, rotDeg: this.rotDeg, scale: this.scale };\r\n }\r\n\r\n /** Compares two Helmert2DWithZOffset objects applying a minuscule tolerance.\r\n * @public */\r\n public equals(other: Helmert2DWithZOffset): boolean {\r\n return (Math.abs(this.translationX - other.translationX) < Geometry.smallMetricDistance &&\r\n Math.abs(this.translationY - other.translationY) < Geometry.smallMetricDistance &&\r\n Math.abs(this.translationZ - other.translationZ) < Geometry.smallMetricDistance &&\r\n Math.abs(this.rotDeg - other.rotDeg) < Geometry.smallAngleDegrees &&\r\n Math.abs(this.scale - other.scale) < Geometry.smallFraction);\r\n }\r\n}\r\n\r\n/** Additional Transform definition\r\n * @public\r\n */\r\nexport interface AdditionalTransformProps {\r\n /** The properties of a 2D Helmert transform with Z offset if one is defined. */\r\n helmert2DWithZOffset?: Helmert2DWithZOffsetProps;\r\n}\r\n\r\n/** Additional Transform implementation.\r\n * An additional transform is a transformation that can apply to either the horizontal or vertical coordinates of a\r\n * geographic CRS. The transformation is applied after the latitude/longitude have been reprojected thus the process\r\n * is applied to the result Cartesian coordinates of the projection process.\r\n * @public\r\n*/\r\nexport class AdditionalTransform implements AdditionalTransformProps {\r\n\r\n /** The properties of a 2D Helmert transform with Z offset if one is defined. */\r\n public readonly helmert2DWithZOffset?: Helmert2DWithZOffset;\r\n\r\n public constructor(data?: AdditionalTransformProps) {\r\n if (data)\r\n this.helmert2DWithZOffset = data.helmert2DWithZOffset ? Helmert2DWithZOffset.fromJSON(data.helmert2DWithZOffset) : undefined;\r\n }\r\n\r\n /** Creates an Additional Transform from JSON representation.\r\n * @public */\r\n public static fromJSON(data: AdditionalTransformProps): AdditionalTransform {\r\n return new AdditionalTransform(data);\r\n }\r\n\r\n /** Creates a JSON from the Additional Transform definition\r\n * @public */\r\n public toJSON(): AdditionalTransformProps {\r\n return { helmert2DWithZOffset: this.helmert2DWithZOffset };\r\n }\r\n\r\n /** Compares two additional transforms applying a minuscule tolerance to comparing numbers.\r\n * @public */\r\n public equals(other: AdditionalTransform): boolean {\r\n if ((this.helmert2DWithZOffset === undefined) !== (other.helmert2DWithZOffset === undefined))\r\n return false;\r\n\r\n if (this.helmert2DWithZOffset && !this.helmert2DWithZOffset.equals(other.helmert2DWithZOffset!))\r\n return false;\r\n\r\n return true;\r\n }\r\n}\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaPattern.js","sourceRoot":"","sources":["../../../src/geometry/AreaPattern.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Symbology\n */\n\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\nimport {\n Angle, AngleProps, Geometry, Matrix3d, Point2d, Point3d, Transform, XYProps, XYZProps, YawPitchRollAngles, YawPitchRollProps,\n} from \"@itwin/core-geometry\";\nimport { ColorDef, ColorDefProps } from \"../ColorDef\";\n\n/** @public */\nexport namespace AreaPattern {\n /** Single hatch line definition */\n export interface HatchDefLineProps {\n /** Angle of hatch line, 0.0 if undefined */\n angle?: AngleProps;\n /** Origin point (relative to placement) the hatch passes through, 0.0,0.0 if undefined */\n through?: XYProps;\n /** Offset of successive lines. X offset staggers dashes (ignored for solid lines) and Y offset controls the distance between both solid and dashed lines, 0.0,0.0 if undefined */\n offset?: XYProps;\n /** Array of gap and dash lengths for creating non-solid hatch lines, max of 20. A positive value denotes dash, a negative value a gap, solid line if undefined */\n dashes?: number[];\n }\n\n export class HatchDefLine implements HatchDefLineProps {\n public angle?: Angle;\n public through?: Point2d;\n public offset?: Point2d;\n public dashes?: number[];\n\n public constructor(json: HatchDefLineProps) {\n this.angle = json.angle ? Angle.fromJSON(json.angle) : undefined;\n this.through = json.through ? Point2d.fromJSON(json.through) : undefined;\n this.offset = json.offset ? Point2d.fromJSON(json.offset) : undefined;\n if (json.dashes) {\n const dashes: number[] = [];\n json.dashes.forEach((dash) => dashes.push(dash));\n this.dashes = dashes;\n }\n }\n }\n\n /** Definition of a hatch, cross-hatch, or area pattern that can be applied to the interior of a planar region.\n * @see [[GeometryStreamEntryProps]]\n */\n export interface ParamsProps {\n /** Pattern offset (relative to placement), 0.0,0.0,0.0 if undefined */\n origin?: XYZProps;\n /** Pattern orientation (relative to placement), 0.0,0.0,0.0 if undefined */\n rotation?: YawPitchRollProps;\n /** Spacing of first set of parallel lines in a hatch pattern, or row spacing between area pattern tiles, 0.0 if undefined */\n space1?: number;\n /** Spacing of second set of parallel lines in a cross-hatch (leave undefined or 0 for a hatch), or column spacing between area pattern tiles, 0.0 if undefined */\n space2?: number;\n /** Angle of first set of parallel lines in a hatch pattern or area pattern tile direction, 0.0 if undefined */\n angle1?: AngleProps;\n /** Angle of second set of parallel lines in a cross-hatch, 0.0 if undefined */\n angle2?: AngleProps;\n /** Scale to apply to area pattern symbol, 1.0 if undefined */\n scale?: number;\n /** Pattern color, leave undefined to inherit color from parent element. For area patterns, does not override explicit colors stored in symbol */\n color?: ColorDefProps;\n /** Pattern weight, leave undefined to inherit weight from parent element. For area patterns, does not override explicit weights stored in symbol */\n weight?: number;\n /** Set to inhibit display of pattern boundary, not applicable when boundary is also filled, false if undefined */\n invisibleBoundary?: boolean;\n /** Set to allow snapping to pattern geometry, false if undefined */\n snappable?: boolean;\n /** [[GeometryPart]] id to use for tiled area pattern display */\n symbolId?: Id64String;\n /** Define an area pattern by supplying hatch line definitions instead of using a [[GeometryPart]] */\n defLines?: HatchDefLineProps[];\n }\n\n /** Defines a hatch, cross hatch, or area pattern. */\n export class Params {\n public origin?: Point3d;\n public rotation?: YawPitchRollAngles;\n public space1?: number;\n public space2?: number;\n public angle1?: Angle;\n public angle2?: Angle;\n public scale?: number;\n public color?: ColorDef;\n public weight?: number;\n public invisibleBoundary?: boolean;\n public snappable?: boolean;\n public symbolId?: Id64String;\n public defLines?: HatchDefLine[];\n\n /** create an AreaPattern.Params from a json object. */\n public static fromJSON(json?: ParamsProps) {\n const result = new Params();\n if (!json)\n return result;\n result.origin = json.origin ? Point3d.fromJSON(json.origin) : undefined;\n result.rotation = json.rotation ? YawPitchRollAngles.fromJSON(json.rotation) : undefined;\n result.space1 = json.space1;\n result.space2 = json.space2;\n result.angle1 = json.angle1 ? Angle.fromJSON(json.angle1) : undefined;\n result.angle2 = json.angle2 ? Angle.fromJSON(json.angle2) : undefined;\n result.scale = json.scale;\n result.color = json.color ? ColorDef.fromJSON(json.color) : undefined;\n result.weight = json.weight;\n result.invisibleBoundary = json.invisibleBoundary;\n result.snappable = json.snappable;\n result.symbolId = json.symbolId ? Id64.fromJSON(json.symbolId) : undefined;\n if (!json.defLines)\n return result;\n const defLines: HatchDefLine[] = [];\n json.defLines.forEach((defLine) => defLines.push(new HatchDefLine(defLine)));\n result.defLines = defLines;\n return result;\n }\n\n public toJSON(): ParamsProps {\n return {\n ...this,\n color: this.color?.toJSON(),\n };\n }\n\n public clone(): Params {\n return Params.fromJSON(this.toJSON());\n }\n\n public equals(other: Params): boolean {\n if (this === other)\n return true; // Same pointer\n\n if (this.scale !== other.scale ||\n this.space1 !== other.space1 ||\n this.space2 !== other.space2 ||\n this.weight !== other.weight ||\n this.invisibleBoundary !== other.invisibleBoundary ||\n this.snappable !== other.snappable)\n return false;\n\n if ((this.color === undefined) !== (other.color === undefined))\n return false;\n if (this.color && !this.color.equals(other.color!))\n return false;\n\n if ((this.angle1 === undefined) !== (other.angle1 === undefined))\n return false;\n if (this.angle1 && !this.angle1.isAlmostEqualNoPeriodShift(other.angle1!))\n return false;\n\n if ((this.angle2 === undefined) !== (other.angle2 === undefined))\n return false;\n if (this.angle2 && !this.angle2.isAlmostEqualNoPeriodShift(other.angle2!))\n return false;\n\n if ((this.origin === undefined) !== (other.origin === undefined))\n return false;\n if (this.origin && !this.origin.isAlmostEqual(other.origin!))\n return false;\n\n if ((this.rotation === undefined) !== (other.rotation === undefined))\n return false;\n if (this.rotation && !this.rotation.isAlmostEqual(other.rotation!))\n return false;\n\n if ((this.symbolId === undefined) !== (other.symbolId === undefined))\n return false;\n if (this.symbolId && !(this.symbolId === other.symbolId!))\n return false;\n\n if ((this.defLines === undefined) !== (other.defLines === undefined))\n return false;\n if (this.defLines) {\n if (this.defLines.length !== other.defLines!.length)\n return false;\n\n for (let i = 0; i < this.defLines.length; ++i) {\n const otherLine = other.defLines![i];\n const thisLine = this.defLines[i];\n\n if ((thisLine.angle === undefined) !== (otherLine.angle === undefined))\n return false;\n if (thisLine.angle && !thisLine.angle.isAlmostEqualNoPeriodShift(otherLine.angle!))\n return false;\n\n if ((thisLine.through === undefined) !== (otherLine.through === undefined))\n return false;\n if (thisLine.through && !thisLine.through.isAlmostEqual(otherLine.through!))\n return false;\n\n if ((thisLine.offset === undefined) !== (otherLine.offset === undefined))\n return false;\n if (thisLine.offset && !thisLine.offset.isAlmostEqual(otherLine.offset!))\n return false;\n\n if ((thisLine.dashes === undefined) !== (otherLine.dashes === undefined))\n return false;\n if (thisLine.dashes && thisLine.dashes.length !== otherLine.dashes!.length)\n return false;\n if (thisLine.dashes) {\n for (let dash = 0; dash < thisLine.dashes.length; ++dash) {\n if (!Geometry.isSameCoordinate(thisLine.dashes[dash], otherLine.dashes![dash]))\n return false;\n }\n }\n }\n }\n return true;\n }\n\n public static transformPatternSpace(transform: Transform, oldSpace: number, patRot: Matrix3d, angle?: Angle): number {\n let tmpRot: Matrix3d;\n if (angle && !angle.isAlmostZero) {\n const yprTriple = new YawPitchRollAngles(angle);\n const angRot = yprTriple.toMatrix3d();\n tmpRot = patRot.multiplyMatrixMatrix(angRot);\n } else {\n tmpRot = patRot;\n }\n const yDir = tmpRot.getColumn(1);\n yDir.scale(oldSpace, yDir);\n transform.multiplyVector(yDir, yDir);\n return yDir.magnitude();\n }\n\n public static getTransformPatternScale(transform: Transform): number {\n const xDir = transform.matrix.getColumn(0);\n const mag = xDir.magnitude();\n return (mag > 1.0e-10) ? mag : 1.0;\n }\n\n public applyTransform(transform: Transform): boolean {\n if (transform.isIdentity)\n return true;\n const origin = this.origin ? this.origin : Point3d.createZero();\n const rMatrix = this.rotation ? this.rotation.toMatrix3d() : Matrix3d.createIdentity();\n if (this.symbolId !== undefined) {\n this.space1 = Params.transformPatternSpace(transform, this.space1 ? this.space1 : 0.0, rMatrix, this.angle1);\n this.space2 = Params.transformPatternSpace(transform, this.space2 ? this.space2 : 0.0, rMatrix, this.angle2);\n const scale = Params.getTransformPatternScale(transform);\n this.scale = this.scale ? this.scale * scale : scale;\n } else if (this.defLines) {\n const scale = Params.getTransformPatternScale(transform);\n if (!Geometry.isSameCoordinate(scale, 1.0)) {\n this.scale = this.scale ? this.scale * scale : scale;\n for (const line of this.defLines) {\n if (line.through) {\n line.through.x *= scale;\n line.through.y *= scale;\n }\n if (line.offset) {\n line.offset.x *= scale;\n line.offset.y *= scale;\n }\n if (line.dashes) {\n for (let iDash = 0; iDash < line.dashes.length; iDash++)\n line.dashes[iDash] *= scale;\n }\n }\n }\n } else {\n this.space1 = Params.transformPatternSpace(transform, this.space1 ? this.space1 : 0.0, rMatrix, this.angle1);\n if (this.space2 && 0 !== this.space2)\n this.space2 = Params.transformPatternSpace(transform, this.space2, rMatrix, this.angle2);\n }\n\n transform.multiplyPoint3d(origin);\n rMatrix.multiplyMatrixMatrix(transform.matrix, rMatrix);\n const normalized = Matrix3d.createRigidFromMatrix3d(rMatrix);\n if (!normalized)\n return false;\n const newRotation = YawPitchRollAngles.createFromMatrix3d(normalized);\n if (undefined === newRotation)\n return false;\n this.origin = origin;\n this.rotation = newRotation;\n return true;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AreaPattern.js","sourceRoot":"","sources":["../../../src/geometry/AreaPattern.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 Symbology\r\n */\r\n\r\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n Angle, AngleProps, Geometry, Matrix3d, Point2d, Point3d, Transform, XYProps, XYZProps, YawPitchRollAngles, YawPitchRollProps,\r\n} from \"@itwin/core-geometry\";\r\nimport { ColorDef, ColorDefProps } from \"../ColorDef\";\r\n\r\n/** @public */\r\nexport namespace AreaPattern {\r\n /** Single hatch line definition */\r\n export interface HatchDefLineProps {\r\n /** Angle of hatch line, 0.0 if undefined */\r\n angle?: AngleProps;\r\n /** Origin point (relative to placement) the hatch passes through, 0.0,0.0 if undefined */\r\n through?: XYProps;\r\n /** Offset of successive lines. X offset staggers dashes (ignored for solid lines) and Y offset controls the distance between both solid and dashed lines, 0.0,0.0 if undefined */\r\n offset?: XYProps;\r\n /** Array of gap and dash lengths for creating non-solid hatch lines, max of 20. A positive value denotes dash, a negative value a gap, solid line if undefined */\r\n dashes?: number[];\r\n }\r\n\r\n export class HatchDefLine implements HatchDefLineProps {\r\n public angle?: Angle;\r\n public through?: Point2d;\r\n public offset?: Point2d;\r\n public dashes?: number[];\r\n\r\n public constructor(json: HatchDefLineProps) {\r\n this.angle = json.angle ? Angle.fromJSON(json.angle) : undefined;\r\n this.through = json.through ? Point2d.fromJSON(json.through) : undefined;\r\n this.offset = json.offset ? Point2d.fromJSON(json.offset) : undefined;\r\n if (json.dashes) {\r\n const dashes: number[] = [];\r\n json.dashes.forEach((dash) => dashes.push(dash));\r\n this.dashes = dashes;\r\n }\r\n }\r\n }\r\n\r\n /** Definition of a hatch, cross-hatch, or area pattern that can be applied to the interior of a planar region.\r\n * @see [[GeometryStreamEntryProps]]\r\n */\r\n export interface ParamsProps {\r\n /** Pattern offset (relative to placement), 0.0,0.0,0.0 if undefined */\r\n origin?: XYZProps;\r\n /** Pattern orientation (relative to placement), 0.0,0.0,0.0 if undefined */\r\n rotation?: YawPitchRollProps;\r\n /** Spacing of first set of parallel lines in a hatch pattern, or row spacing between area pattern tiles, 0.0 if undefined */\r\n space1?: number;\r\n /** Spacing of second set of parallel lines in a cross-hatch (leave undefined or 0 for a hatch), or column spacing between area pattern tiles, 0.0 if undefined */\r\n space2?: number;\r\n /** Angle of first set of parallel lines in a hatch pattern or area pattern tile direction, 0.0 if undefined */\r\n angle1?: AngleProps;\r\n /** Angle of second set of parallel lines in a cross-hatch, 0.0 if undefined */\r\n angle2?: AngleProps;\r\n /** Scale to apply to area pattern symbol, 1.0 if undefined */\r\n scale?: number;\r\n /** Pattern color, leave undefined to inherit color from parent element. For area patterns, does not override explicit colors stored in symbol */\r\n color?: ColorDefProps;\r\n /** Pattern weight, leave undefined to inherit weight from parent element. For area patterns, does not override explicit weights stored in symbol */\r\n weight?: number;\r\n /** Set to inhibit display of pattern boundary, not applicable when boundary is also filled, false if undefined */\r\n invisibleBoundary?: boolean;\r\n /** Set to allow snapping to pattern geometry, false if undefined */\r\n snappable?: boolean;\r\n /** [[GeometryPart]] id to use for tiled area pattern display */\r\n symbolId?: Id64String;\r\n /** Define an area pattern by supplying hatch line definitions instead of using a [[GeometryPart]] */\r\n defLines?: HatchDefLineProps[];\r\n }\r\n\r\n /** Defines a hatch, cross hatch, or area pattern. */\r\n export class Params {\r\n public origin?: Point3d;\r\n public rotation?: YawPitchRollAngles;\r\n public space1?: number;\r\n public space2?: number;\r\n public angle1?: Angle;\r\n public angle2?: Angle;\r\n public scale?: number;\r\n public color?: ColorDef;\r\n public weight?: number;\r\n public invisibleBoundary?: boolean;\r\n public snappable?: boolean;\r\n public symbolId?: Id64String;\r\n public defLines?: HatchDefLine[];\r\n\r\n /** create an AreaPattern.Params from a json object. */\r\n public static fromJSON(json?: ParamsProps) {\r\n const result = new Params();\r\n if (!json)\r\n return result;\r\n result.origin = json.origin ? Point3d.fromJSON(json.origin) : undefined;\r\n result.rotation = json.rotation ? YawPitchRollAngles.fromJSON(json.rotation) : undefined;\r\n result.space1 = json.space1;\r\n result.space2 = json.space2;\r\n result.angle1 = json.angle1 ? Angle.fromJSON(json.angle1) : undefined;\r\n result.angle2 = json.angle2 ? Angle.fromJSON(json.angle2) : undefined;\r\n result.scale = json.scale;\r\n result.color = json.color ? ColorDef.fromJSON(json.color) : undefined;\r\n result.weight = json.weight;\r\n result.invisibleBoundary = json.invisibleBoundary;\r\n result.snappable = json.snappable;\r\n result.symbolId = json.symbolId ? Id64.fromJSON(json.symbolId) : undefined;\r\n if (!json.defLines)\r\n return result;\r\n const defLines: HatchDefLine[] = [];\r\n json.defLines.forEach((defLine) => defLines.push(new HatchDefLine(defLine)));\r\n result.defLines = defLines;\r\n return result;\r\n }\r\n\r\n public toJSON(): ParamsProps {\r\n return {\r\n ...this,\r\n color: this.color?.toJSON(),\r\n };\r\n }\r\n\r\n public clone(): Params {\r\n return Params.fromJSON(this.toJSON());\r\n }\r\n\r\n public equals(other: Params): boolean {\r\n if (this === other)\r\n return true; // Same pointer\r\n\r\n if (this.scale !== other.scale ||\r\n this.space1 !== other.space1 ||\r\n this.space2 !== other.space2 ||\r\n this.weight !== other.weight ||\r\n this.invisibleBoundary !== other.invisibleBoundary ||\r\n this.snappable !== other.snappable)\r\n return false;\r\n\r\n if ((this.color === undefined) !== (other.color === undefined))\r\n return false;\r\n if (this.color && !this.color.equals(other.color!))\r\n return false;\r\n\r\n if ((this.angle1 === undefined) !== (other.angle1 === undefined))\r\n return false;\r\n if (this.angle1 && !this.angle1.isAlmostEqualNoPeriodShift(other.angle1!))\r\n return false;\r\n\r\n if ((this.angle2 === undefined) !== (other.angle2 === undefined))\r\n return false;\r\n if (this.angle2 && !this.angle2.isAlmostEqualNoPeriodShift(other.angle2!))\r\n return false;\r\n\r\n if ((this.origin === undefined) !== (other.origin === undefined))\r\n return false;\r\n if (this.origin && !this.origin.isAlmostEqual(other.origin!))\r\n return false;\r\n\r\n if ((this.rotation === undefined) !== (other.rotation === undefined))\r\n return false;\r\n if (this.rotation && !this.rotation.isAlmostEqual(other.rotation!))\r\n return false;\r\n\r\n if ((this.symbolId === undefined) !== (other.symbolId === undefined))\r\n return false;\r\n if (this.symbolId && !(this.symbolId === other.symbolId!))\r\n return false;\r\n\r\n if ((this.defLines === undefined) !== (other.defLines === undefined))\r\n return false;\r\n if (this.defLines) {\r\n if (this.defLines.length !== other.defLines!.length)\r\n return false;\r\n\r\n for (let i = 0; i < this.defLines.length; ++i) {\r\n const otherLine = other.defLines![i];\r\n const thisLine = this.defLines[i];\r\n\r\n if ((thisLine.angle === undefined) !== (otherLine.angle === undefined))\r\n return false;\r\n if (thisLine.angle && !thisLine.angle.isAlmostEqualNoPeriodShift(otherLine.angle!))\r\n return false;\r\n\r\n if ((thisLine.through === undefined) !== (otherLine.through === undefined))\r\n return false;\r\n if (thisLine.through && !thisLine.through.isAlmostEqual(otherLine.through!))\r\n return false;\r\n\r\n if ((thisLine.offset === undefined) !== (otherLine.offset === undefined))\r\n return false;\r\n if (thisLine.offset && !thisLine.offset.isAlmostEqual(otherLine.offset!))\r\n return false;\r\n\r\n if ((thisLine.dashes === undefined) !== (otherLine.dashes === undefined))\r\n return false;\r\n if (thisLine.dashes && thisLine.dashes.length !== otherLine.dashes!.length)\r\n return false;\r\n if (thisLine.dashes) {\r\n for (let dash = 0; dash < thisLine.dashes.length; ++dash) {\r\n if (!Geometry.isSameCoordinate(thisLine.dashes[dash], otherLine.dashes![dash]))\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public static transformPatternSpace(transform: Transform, oldSpace: number, patRot: Matrix3d, angle?: Angle): number {\r\n let tmpRot: Matrix3d;\r\n if (angle && !angle.isAlmostZero) {\r\n const yprTriple = new YawPitchRollAngles(angle);\r\n const angRot = yprTriple.toMatrix3d();\r\n tmpRot = patRot.multiplyMatrixMatrix(angRot);\r\n } else {\r\n tmpRot = patRot;\r\n }\r\n const yDir = tmpRot.getColumn(1);\r\n yDir.scale(oldSpace, yDir);\r\n transform.multiplyVector(yDir, yDir);\r\n return yDir.magnitude();\r\n }\r\n\r\n public static getTransformPatternScale(transform: Transform): number {\r\n const xDir = transform.matrix.getColumn(0);\r\n const mag = xDir.magnitude();\r\n return (mag > 1.0e-10) ? mag : 1.0;\r\n }\r\n\r\n public applyTransform(transform: Transform): boolean {\r\n if (transform.isIdentity)\r\n return true;\r\n const origin = this.origin ? this.origin : Point3d.createZero();\r\n const rMatrix = this.rotation ? this.rotation.toMatrix3d() : Matrix3d.createIdentity();\r\n if (this.symbolId !== undefined) {\r\n this.space1 = Params.transformPatternSpace(transform, this.space1 ? this.space1 : 0.0, rMatrix, this.angle1);\r\n this.space2 = Params.transformPatternSpace(transform, this.space2 ? this.space2 : 0.0, rMatrix, this.angle2);\r\n const scale = Params.getTransformPatternScale(transform);\r\n this.scale = this.scale ? this.scale * scale : scale;\r\n } else if (this.defLines) {\r\n const scale = Params.getTransformPatternScale(transform);\r\n if (!Geometry.isSameCoordinate(scale, 1.0)) {\r\n this.scale = this.scale ? this.scale * scale : scale;\r\n for (const line of this.defLines) {\r\n if (line.through) {\r\n line.through.x *= scale;\r\n line.through.y *= scale;\r\n }\r\n if (line.offset) {\r\n line.offset.x *= scale;\r\n line.offset.y *= scale;\r\n }\r\n if (line.dashes) {\r\n for (let iDash = 0; iDash < line.dashes.length; iDash++)\r\n line.dashes[iDash] *= scale;\r\n }\r\n }\r\n }\r\n } else {\r\n this.space1 = Params.transformPatternSpace(transform, this.space1 ? this.space1 : 0.0, rMatrix, this.angle1);\r\n if (this.space2 && 0 !== this.space2)\r\n this.space2 = Params.transformPatternSpace(transform, this.space2, rMatrix, this.angle2);\r\n }\r\n\r\n transform.multiplyPoint3d(origin);\r\n rMatrix.multiplyMatrixMatrix(transform.matrix, rMatrix);\r\n const normalized = Matrix3d.createRigidFromMatrix3d(rMatrix);\r\n if (!normalized)\r\n return false;\r\n const newRotation = YawPitchRollAngles.createFromMatrix3d(normalized);\r\n if (undefined === newRotation)\r\n return false;\r\n this.origin = origin;\r\n this.rotation = newRotation;\r\n return true;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cartographic.js","sourceRoot":"","sources":["../../../src/geometry/Cartographic.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Geometry\n */\n\nimport { Angle, Constant, Point3d, Range1d, Range2d, Range3d, Transform, Vector3d, XYAndZ, XYZ } from \"@itwin/core-geometry\";\nimport { assert } from \"@itwin/core-bentley\";\n\n// portions adapted from Cesium.js Copyright 2011 - 2017 Cesium Contributors\n\n/** The JSON representation of a Cartographic object.\n * @public\n **/\nexport interface CartographicProps {\n /** The longitude, specified in radians. */\n longitude: number;\n /** The latitude, specified in radians. */\n latitude: number;\n /** The height, specified in meters above the ellipsoid. */\n height: number;\n}\n\n/** A position on the earth defined by longitude, latitude, and height above the [WGS84](https://en.wikipedia.org/wiki/World_Geodetic_System) ellipsoid.\n * @public\n */\nexport class Cartographic implements CartographicProps {\n /**\n * @param longitude longitude, in radians.\n * @param latitude latitude, in radians.\n * @param height The height, in meters, above the ellipsoid.\n */\n private constructor(public longitude: number = 0, public latitude: number = 0, public height: number = 0) { }\n\n /** Create a Cartographic object with longitude, latitude, and height of zero. */\n public static createZero() {\n return new Cartographic(0, 0, 0);\n }\n\n /** Create a new Cartographic from longitude and latitude specified in radians.\n * @param args an object containing a longitude, latitude, and an optional height property. The longitude and latitude properties are numbers specified in radians. The height property, if specified, is a number which contains the height in meters above the ellipsoid; if undefined, this height will default to zero.\n * @param result The object onto which to store the result.\n */\n public static fromRadians(args: { longitude: number, latitude: number, height?: number }, result?: Cartographic) {\n if (!result)\n return new Cartographic(args.longitude, args.latitude, args.height);\n\n result.longitude = args.longitude;\n result.latitude = args.latitude;\n result.height = args.height !== undefined ? args.height : 0;\n return result;\n }\n\n /** Create a JSON representation of a Cartographic object. */\n public toJSON(): CartographicProps {\n return {\n latitude: this.latitude,\n longitude: this.longitude,\n height: this.height,\n };\n }\n\n /** Freeze this Cartographic */\n public freeze(): Readonly<this> {\n return Object.freeze(this);\n }\n\n /** longitude, in degrees */\n public get longitudeDegrees() {\n return Angle.radiansToDegrees(this.longitude);\n }\n\n /** latitude, in degrees */\n public get latitudeDegrees() {\n return Angle.radiansToDegrees(this.latitude);\n }\n\n private static _oneMinusF = 1 - (Constant.earthRadiusWGS84.equator - Constant.earthRadiusWGS84.polar) / Constant.earthRadiusWGS84.equator;\n private static _equatorOverPolar = Constant.earthRadiusWGS84.equator / Constant.earthRadiusWGS84.polar;\n /** return the geocentric latitude angle for the input geodetic latitude angle (both in radians).\n * @param geodeticLatitude geodetic latitude angle in radians\n */\n public static geocentricLatitudeFromGeodeticLatitude(geodeticLatitude: number): number {\n return Math.atan(Cartographic._oneMinusF * Cartographic._oneMinusF * Math.tan(geodeticLatitude));\n }\n /** return the parametric latitude angle for the input geodetic latitude angle (both in radians). The parametric latitude\n * is appropriate for input to the Ellipsoid methods.\n * @param geodeticLatitude geodetic latitude angle in radians\n */\n public static parametricLatitudeFromGeodeticLatitude(geodeticLatitude: number): number {\n return Math.atan(Cartographic._oneMinusF * Cartographic._oneMinusF * Cartographic._equatorOverPolar * Math.tan(geodeticLatitude));\n }\n\n /** Create a new Cartographic from longitude and latitude specified in degrees. The values in the resulting object will be in radians.\n * @param args an object containing a longitude, latitude, and an optional height property. The longitude and latitude properties are numbers specified in degrees. The height property, if specified, is a number which contains the height in meters above the ellipsoid; if undefined, this height will default to zero.\n * @param result The object onto which to store the result.\n */\n public static fromDegrees(args: { longitude: number, latitude: number, height?: number }, result?: Cartographic) {\n return Cartographic.fromRadians({ longitude: Angle.degreesToRadians(args.longitude), latitude: Angle.degreesToRadians(args.latitude), height: args.height }, result);\n }\n\n /** Create a new Cartographic from longitude and latitude in [Angle]($geometry)s. The values in the resulting object will be in radians.\n * @param args an object containing a longitude, latitude, and an optional height property. The longitude and latitude properties are Angle objects. The height property, if specified, is a number which contains the height in meters above the ellipsoid; if undefined, this height will default to zero.\n * @param result The object into which to store the result (optional)\n */\n public static fromAngles(args: { longitude: Angle, latitude: Angle, height?: number }, result?: Cartographic) {\n return Cartographic.fromRadians({ longitude: args.longitude.radians, latitude: args.latitude.radians, height: args.height }, result);\n }\n\n private static _cartesianToCartographicN = new Point3d();\n private static _cartesianToCartographicP = new Point3d();\n private static _cartesianToCartographicH = new Vector3d();\n private static _wgs84OneOverRadii = new Point3d(1.0 / 6378137.0, 1.0 / 6378137.0, 1.0 / 6356752.3142451793);\n private static _wgs84OneOverRadiiSquared = new Point3d(1.0 / (6378137.0 * 6378137.0), 1.0 / (6378137.0 * 6378137.0), 1.0 / (6356752.3142451793 * 6356752.3142451793));\n private static _wgs84RadiiSquared = new Point3d(6378137.0 * 6378137.0, 6378137.0 * 6378137.0, 6356752.3142451793 * 6356752.3142451793);\n private static _wgs84CenterToleranceSquared = 0.1;\n private static _scratchN = new Vector3d();\n private static _scratchK = new Vector3d();\n\n /** Creates a new Cartographic from an [ECEF](https://en.wikipedia.org/wiki/ECEF) position.\n * @param cartesian The position, in ECEF, to convert to cartographic representation.\n * @param [result] The object onto which to store the result.\n * @returns The modified result parameter, new Cartographic instance if none was provided, or undefined if the cartesian is at the center of the ellipsoid.\n */\n public static fromEcef(cartesian: Point3d, result?: Cartographic): Cartographic | undefined {\n const oneOverRadiiSquared = Cartographic._wgs84OneOverRadiiSquared;\n const p = Cartographic.scalePointToGeodeticSurface(cartesian, Cartographic._cartesianToCartographicP);\n\n if (!p)\n return undefined;\n\n const n = Cartographic._cartesianToCartographicN;\n Cartographic.multiplyComponents(p, oneOverRadiiSquared, n);\n Cartographic.normalize(n, n);\n\n const h = p.vectorTo(cartesian, Cartographic._cartesianToCartographicH);\n const longitude = Math.atan2(n.y, n.x);\n const latitude = Math.asin(n.z);\n const height = Math.sign(h.dotProduct(cartesian)) * h.magnitude();\n\n if (!result)\n return new Cartographic(longitude, latitude, height);\n\n result.longitude = longitude;\n result.latitude = latitude;\n result.height = height;\n return result;\n }\n\n /** Scale point to geodetic surface\n * @param point in ECEF to scale to the surface\n * @param [result] The object onto which to store the result.\n * @returns a point on the geodetic surface\n */\n public static scalePointToGeodeticSurface(point: Point3d, result?: Point3d): Point3d | undefined {\n const oneOverRadii = Cartographic._wgs84OneOverRadii;\n const oneOverRadiiSquared = Cartographic._wgs84OneOverRadiiSquared;\n const centerToleranceSquared = Cartographic._wgs84CenterToleranceSquared;\n return Cartographic._scaleToGeodeticSurface(point, oneOverRadii, oneOverRadiiSquared, centerToleranceSquared, result);\n }\n\n /** Duplicates a Cartographic. */\n public clone(result?: Cartographic): Cartographic {\n if (!result)\n return new Cartographic(this.longitude, this.latitude, this.height);\n\n result.longitude = this.longitude;\n result.latitude = this.latitude;\n result.height = this.height;\n return result;\n }\n\n /** Return true if this Cartographic is the same as right */\n public equals(right: CartographicProps): boolean {\n return (this === right) ||\n ((this.longitude === right.longitude) &&\n (this.latitude === right.latitude) &&\n (this.height === right.height));\n }\n\n /** Compares this Cartographic component-wise and returns true if they are within the provided epsilon, */\n public equalsEpsilon(right: CartographicProps, epsilon: number): boolean {\n return (this === right) ||\n ((Math.abs(this.longitude - right.longitude) <= epsilon) &&\n (Math.abs(this.latitude - right.latitude) <= epsilon) &&\n (Math.abs(this.height - right.height) <= epsilon));\n }\n\n private static normalize(cartesian: XYZ, result: XYZ) {\n const magnitude = cartesian.magnitude();\n result.x = cartesian.x / magnitude;\n result.y = cartesian.y / magnitude;\n result.z = cartesian.z / magnitude;\n }\n\n private static multiplyComponents(left: XYAndZ, right: XYAndZ, result: XYZ) {\n result.x = left.x * right.x;\n result.y = left.y * right.y;\n result.z = left.z * right.z;\n }\n\n private static scalePoint(cartesian: XYAndZ, scalar: number, result: XYZ) {\n result.x = cartesian.x * scalar;\n result.y = cartesian.y * scalar;\n result.z = cartesian.z * scalar;\n }\n\n private static addPoints(left: XYAndZ, right: XYAndZ, result: XYZ) {\n result.x = left.x + right.x;\n result.y = left.y + right.y;\n result.z = left.z + right.z;\n }\n\n /** Create a string representing this cartographic in the format '(longitude, latitude, height)'. */\n public toString(): string { return `(${this.longitude}, ${this.latitude}, ${this.height})`; }\n\n private static _scaleToGeodeticSurfaceIntersection = new Point3d();\n private static _scaleToGeodeticSurfaceGradient = new Point3d();\n private static _scaleToGeodeticSurface(cartesian: Point3d, oneOverRadii: XYAndZ, oneOverRadiiSquared: XYAndZ, centerToleranceSquared: number, result?: Point3d) {\n const positionX = cartesian.x;\n const positionY = cartesian.y;\n const positionZ = cartesian.z;\n\n const oneOverRadiiX = oneOverRadii.x;\n const oneOverRadiiY = oneOverRadii.y;\n const oneOverRadiiZ = oneOverRadii.z;\n\n const x2 = positionX * positionX * oneOverRadiiX * oneOverRadiiX;\n const y2 = positionY * positionY * oneOverRadiiY * oneOverRadiiY;\n const z2 = positionZ * positionZ * oneOverRadiiZ * oneOverRadiiZ;\n\n // Compute the squared ellipsoid norm.\n const squaredNorm = x2 + y2 + z2;\n const ratio = Math.sqrt(1.0 / squaredNorm);\n\n // As an initial approximation, assume that the radial intersection is the projection point.\n const intersection = Cartographic._scaleToGeodeticSurfaceIntersection;\n Cartographic.scalePoint(cartesian, ratio, intersection);\n\n // If the position is near the center, the iteration will not converge.\n if (squaredNorm < centerToleranceSquared) {\n return !isFinite(ratio) ? undefined : Point3d.createFrom(intersection, result);\n }\n\n const oneOverRadiiSquaredX = oneOverRadiiSquared.x;\n const oneOverRadiiSquaredY = oneOverRadiiSquared.y;\n const oneOverRadiiSquaredZ = oneOverRadiiSquared.z;\n\n // Use the gradient at the intersection point in place of the true unit normal.\n // The difference in magnitude will be absorbed in the multiplier.\n const gradient = Cartographic._scaleToGeodeticSurfaceGradient;\n gradient.x = intersection.x * oneOverRadiiSquaredX * 2.0;\n gradient.y = intersection.y * oneOverRadiiSquaredY * 2.0;\n gradient.z = intersection.z * oneOverRadiiSquaredZ * 2.0;\n\n // Compute the initial guess at the normal vector multiplier, lambda.\n let lambda = (1.0 - ratio) * cartesian.magnitude() / (0.5 * gradient.magnitude());\n let correction = 0.0;\n let func;\n let denominator;\n let xMultiplier;\n let yMultiplier;\n let zMultiplier;\n let xMultiplier2;\n let yMultiplier2;\n let zMultiplier2;\n let xMultiplier3;\n let yMultiplier3;\n let zMultiplier3;\n\n do {\n lambda -= correction;\n\n xMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredX);\n yMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredY);\n zMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredZ);\n\n xMultiplier2 = xMultiplier * xMultiplier;\n yMultiplier2 = yMultiplier * yMultiplier;\n zMultiplier2 = zMultiplier * zMultiplier;\n\n xMultiplier3 = xMultiplier2 * xMultiplier;\n yMultiplier3 = yMultiplier2 * yMultiplier;\n zMultiplier3 = zMultiplier2 * zMultiplier;\n\n func = x2 * xMultiplier2 + y2 * yMultiplier2 + z2 * zMultiplier2 - 1.0;\n\n // \"denominator\" here refers to the use of this expression in the velocity and acceleration\n // computations in the sections to follow.\n denominator = x2 * xMultiplier3 * oneOverRadiiSquaredX + y2 * yMultiplier3 * oneOverRadiiSquaredY + z2 * zMultiplier3 * oneOverRadiiSquaredZ;\n\n const derivative = -2.0 * denominator;\n\n correction = func / derivative;\n } while (Math.abs(func) > 0.01);\n\n if (!result)\n return new Point3d(positionX * xMultiplier, positionY * yMultiplier, positionZ * zMultiplier);\n\n result.x = positionX * xMultiplier;\n result.y = positionY * yMultiplier;\n result.z = positionZ * zMultiplier;\n return result;\n }\n\n /** Return an ECEF point from a Cartographic point */\n public toEcef(result?: Point3d): Point3d {\n const cosLatitude = Math.cos(this.latitude);\n const scratchN = Cartographic._scratchN;\n const scratchK = Cartographic._scratchK;\n scratchN.x = cosLatitude * Math.cos(this.longitude);\n scratchN.y = cosLatitude * Math.sin(this.longitude);\n scratchN.z = Math.sin(this.latitude);\n Cartographic.normalize(scratchN, scratchN);\n\n Cartographic.multiplyComponents(Cartographic._wgs84RadiiSquared, scratchN, scratchK);\n const gamma = Math.sqrt(scratchN.dotProduct(scratchK));\n Cartographic.scalePoint(scratchK, 1.0 / gamma, scratchK);\n Cartographic.scalePoint(scratchN, this.height, scratchN);\n\n result = result ? result : new Point3d();\n Cartographic.addPoints(scratchK, scratchN, result);\n return result;\n }\n}\n/** A cartographic range representing a rectangular region if low longitude/latitude > high then area crossing seam is indicated.\n * @public\n */\nexport class CartographicRange {\n private _ranges: Range2d[] = [];\n\n // These following are used to preserve the min/max latitude and longitudes.\n // The longitudes are raw values and may cross over the -PI or 2PI boundaries.\n private _minLongitude = 0;\n private _maxLongitude = 0;\n private _minLatitude = 0;\n private _maxLatitude = 0;\n constructor(spatialRange: Range3d, spatialToEcef: Transform) {\n // Compute 8 corners in spatial coordinate system before converting to ECEF\n // We want a box oriented in the spatial coordinate system and not in the ECEF coordinate system\n const spatialCorners = spatialRange.corners();\n const ecefCorners = spatialToEcef.multiplyPoint3dArray(spatialCorners);\n let low: Cartographic | undefined, high: Cartographic | undefined;\n\n for (const ecefCorner of ecefCorners) {\n const geoPt = Cartographic.fromEcef(ecefCorner);\n if (!geoPt)\n continue;\n if (undefined === low || undefined === high) {\n low = geoPt;\n high = geoPt.clone();\n continue;\n }\n low.latitude = Math.min(low.latitude, geoPt.latitude);\n low.longitude = Math.min(low.longitude, geoPt.longitude);\n high.latitude = Math.max(high.latitude, geoPt.latitude);\n high.longitude = Math.max(high.longitude, geoPt.longitude);\n }\n\n if (!low || !high) {\n assert(false);\n return;\n }\n\n const longitudeRanges = [];\n this._minLongitude = Math.min(low.longitude, high.longitude), this._maxLongitude = Math.max(low.longitude, high.longitude);\n if (this._maxLongitude - this._minLongitude > Angle.piRadians) {\n longitudeRanges.push(Range1d.createXX(0.0, this._minLongitude));\n longitudeRanges.push(Range1d.createXX(this._maxLongitude, Angle.pi2Radians));\n } else {\n longitudeRanges.push(Range1d.createXX(this._minLongitude, this._maxLongitude));\n }\n\n for (const longitudeRange of longitudeRanges) {\n this._minLatitude = Math.min(low.latitude, high.latitude), this._maxLatitude = Math.max(low.latitude, high.latitude);\n if (this._maxLatitude - this._minLatitude > Angle.piOver2Radians) {\n this._ranges.push(Range2d.createXYXY(longitudeRange.low, 0.0, longitudeRange.high, this._minLatitude));\n this._ranges.push(Range2d.createXYXY(longitudeRange.low, this._maxLatitude, longitudeRange.high, Angle.piRadians));\n } else {\n this._ranges.push(Range2d.createXYXY(longitudeRange.low, this._minLatitude, longitudeRange.high, this._maxLatitude));\n }\n }\n }\n\n public intersectsRange(other: CartographicRange): boolean {\n for (const range of this._ranges)\n for (const otherRange of other._ranges)\n if (range.intersectsRange(otherRange))\n return true;\n return false;\n }\n\n /** This method returns the raw latitude / longitude for the range in a Range2d object.\n * The X value represents the longitude and the Y value the latitudes.\n * Y values are kept between -PI and +PI while\n * longitude values can be expressed in any range between -2PI to +2PI\n * given the minimum longitude is always smaller numerically than the maximum longitude.\n * Note that usually the longitudes are usually by convention in the range of -PI to PI except\n * for ranges that overlap the -PI/+PI frontier in which case either representation is acceptable.\n */\n public getLongitudeLatitudeBoundingBox(): Range2d {\n return Range2d.createXYXY(this._minLongitude, this._minLatitude, this._maxLongitude, this._maxLatitude);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Cartographic.js","sourceRoot":"","sources":["../../../src/geometry/Cartographic.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 Geometry\r\n */\r\n\r\nimport { Angle, Constant, Point3d, Range1d, Range2d, Range3d, Transform, Vector3d, XYAndZ, XYZ } from \"@itwin/core-geometry\";\r\nimport { assert } from \"@itwin/core-bentley\";\r\n\r\n// portions adapted from Cesium.js Copyright 2011 - 2017 Cesium Contributors\r\n\r\n/** The JSON representation of a Cartographic object.\r\n * @public\r\n **/\r\nexport interface CartographicProps {\r\n /** The longitude, specified in radians. */\r\n longitude: number;\r\n /** The latitude, specified in radians. */\r\n latitude: number;\r\n /** The height, specified in meters above the ellipsoid. */\r\n height: number;\r\n}\r\n\r\n/** A position on the earth defined by longitude, latitude, and height above the [WGS84](https://en.wikipedia.org/wiki/World_Geodetic_System) ellipsoid.\r\n * @public\r\n */\r\nexport class Cartographic implements CartographicProps {\r\n /**\r\n * @param longitude longitude, in radians.\r\n * @param latitude latitude, in radians.\r\n * @param height The height, in meters, above the ellipsoid.\r\n */\r\n private constructor(public longitude: number = 0, public latitude: number = 0, public height: number = 0) { }\r\n\r\n /** Create a Cartographic object with longitude, latitude, and height of zero. */\r\n public static createZero() {\r\n return new Cartographic(0, 0, 0);\r\n }\r\n\r\n /** Create a new Cartographic from longitude and latitude specified in radians.\r\n * @param args an object containing a longitude, latitude, and an optional height property. The longitude and latitude properties are numbers specified in radians. The height property, if specified, is a number which contains the height in meters above the ellipsoid; if undefined, this height will default to zero.\r\n * @param result The object onto which to store the result.\r\n */\r\n public static fromRadians(args: { longitude: number, latitude: number, height?: number }, result?: Cartographic) {\r\n if (!result)\r\n return new Cartographic(args.longitude, args.latitude, args.height);\r\n\r\n result.longitude = args.longitude;\r\n result.latitude = args.latitude;\r\n result.height = args.height !== undefined ? args.height : 0;\r\n return result;\r\n }\r\n\r\n /** Create a JSON representation of a Cartographic object. */\r\n public toJSON(): CartographicProps {\r\n return {\r\n latitude: this.latitude,\r\n longitude: this.longitude,\r\n height: this.height,\r\n };\r\n }\r\n\r\n /** Freeze this Cartographic */\r\n public freeze(): Readonly<this> {\r\n return Object.freeze(this);\r\n }\r\n\r\n /** longitude, in degrees */\r\n public get longitudeDegrees() {\r\n return Angle.radiansToDegrees(this.longitude);\r\n }\r\n\r\n /** latitude, in degrees */\r\n public get latitudeDegrees() {\r\n return Angle.radiansToDegrees(this.latitude);\r\n }\r\n\r\n private static _oneMinusF = 1 - (Constant.earthRadiusWGS84.equator - Constant.earthRadiusWGS84.polar) / Constant.earthRadiusWGS84.equator;\r\n private static _equatorOverPolar = Constant.earthRadiusWGS84.equator / Constant.earthRadiusWGS84.polar;\r\n /** return the geocentric latitude angle for the input geodetic latitude angle (both in radians).\r\n * @param geodeticLatitude geodetic latitude angle in radians\r\n */\r\n public static geocentricLatitudeFromGeodeticLatitude(geodeticLatitude: number): number {\r\n return Math.atan(Cartographic._oneMinusF * Cartographic._oneMinusF * Math.tan(geodeticLatitude));\r\n }\r\n /** return the parametric latitude angle for the input geodetic latitude angle (both in radians). The parametric latitude\r\n * is appropriate for input to the Ellipsoid methods.\r\n * @param geodeticLatitude geodetic latitude angle in radians\r\n */\r\n public static parametricLatitudeFromGeodeticLatitude(geodeticLatitude: number): number {\r\n return Math.atan(Cartographic._oneMinusF * Cartographic._oneMinusF * Cartographic._equatorOverPolar * Math.tan(geodeticLatitude));\r\n }\r\n\r\n /** Create a new Cartographic from longitude and latitude specified in degrees. The values in the resulting object will be in radians.\r\n * @param args an object containing a longitude, latitude, and an optional height property. The longitude and latitude properties are numbers specified in degrees. The height property, if specified, is a number which contains the height in meters above the ellipsoid; if undefined, this height will default to zero.\r\n * @param result The object onto which to store the result.\r\n */\r\n public static fromDegrees(args: { longitude: number, latitude: number, height?: number }, result?: Cartographic) {\r\n return Cartographic.fromRadians({ longitude: Angle.degreesToRadians(args.longitude), latitude: Angle.degreesToRadians(args.latitude), height: args.height }, result);\r\n }\r\n\r\n /** Create a new Cartographic from longitude and latitude in [Angle]($geometry)s. The values in the resulting object will be in radians.\r\n * @param args an object containing a longitude, latitude, and an optional height property. The longitude and latitude properties are Angle objects. The height property, if specified, is a number which contains the height in meters above the ellipsoid; if undefined, this height will default to zero.\r\n * @param result The object into which to store the result (optional)\r\n */\r\n public static fromAngles(args: { longitude: Angle, latitude: Angle, height?: number }, result?: Cartographic) {\r\n return Cartographic.fromRadians({ longitude: args.longitude.radians, latitude: args.latitude.radians, height: args.height }, result);\r\n }\r\n\r\n private static _cartesianToCartographicN = new Point3d();\r\n private static _cartesianToCartographicP = new Point3d();\r\n private static _cartesianToCartographicH = new Vector3d();\r\n private static _wgs84OneOverRadii = new Point3d(1.0 / 6378137.0, 1.0 / 6378137.0, 1.0 / 6356752.3142451793);\r\n private static _wgs84OneOverRadiiSquared = new Point3d(1.0 / (6378137.0 * 6378137.0), 1.0 / (6378137.0 * 6378137.0), 1.0 / (6356752.3142451793 * 6356752.3142451793));\r\n private static _wgs84RadiiSquared = new Point3d(6378137.0 * 6378137.0, 6378137.0 * 6378137.0, 6356752.3142451793 * 6356752.3142451793);\r\n private static _wgs84CenterToleranceSquared = 0.1;\r\n private static _scratchN = new Vector3d();\r\n private static _scratchK = new Vector3d();\r\n\r\n /** Creates a new Cartographic from an [ECEF](https://en.wikipedia.org/wiki/ECEF) position.\r\n * @param cartesian The position, in ECEF, to convert to cartographic representation.\r\n * @param [result] The object onto which to store the result.\r\n * @returns The modified result parameter, new Cartographic instance if none was provided, or undefined if the cartesian is at the center of the ellipsoid.\r\n */\r\n public static fromEcef(cartesian: Point3d, result?: Cartographic): Cartographic | undefined {\r\n const oneOverRadiiSquared = Cartographic._wgs84OneOverRadiiSquared;\r\n const p = Cartographic.scalePointToGeodeticSurface(cartesian, Cartographic._cartesianToCartographicP);\r\n\r\n if (!p)\r\n return undefined;\r\n\r\n const n = Cartographic._cartesianToCartographicN;\r\n Cartographic.multiplyComponents(p, oneOverRadiiSquared, n);\r\n Cartographic.normalize(n, n);\r\n\r\n const h = p.vectorTo(cartesian, Cartographic._cartesianToCartographicH);\r\n const longitude = Math.atan2(n.y, n.x);\r\n const latitude = Math.asin(n.z);\r\n const height = Math.sign(h.dotProduct(cartesian)) * h.magnitude();\r\n\r\n if (!result)\r\n return new Cartographic(longitude, latitude, height);\r\n\r\n result.longitude = longitude;\r\n result.latitude = latitude;\r\n result.height = height;\r\n return result;\r\n }\r\n\r\n /** Scale point to geodetic surface\r\n * @param point in ECEF to scale to the surface\r\n * @param [result] The object onto which to store the result.\r\n * @returns a point on the geodetic surface\r\n */\r\n public static scalePointToGeodeticSurface(point: Point3d, result?: Point3d): Point3d | undefined {\r\n const oneOverRadii = Cartographic._wgs84OneOverRadii;\r\n const oneOverRadiiSquared = Cartographic._wgs84OneOverRadiiSquared;\r\n const centerToleranceSquared = Cartographic._wgs84CenterToleranceSquared;\r\n return Cartographic._scaleToGeodeticSurface(point, oneOverRadii, oneOverRadiiSquared, centerToleranceSquared, result);\r\n }\r\n\r\n /** Duplicates a Cartographic. */\r\n public clone(result?: Cartographic): Cartographic {\r\n if (!result)\r\n return new Cartographic(this.longitude, this.latitude, this.height);\r\n\r\n result.longitude = this.longitude;\r\n result.latitude = this.latitude;\r\n result.height = this.height;\r\n return result;\r\n }\r\n\r\n /** Return true if this Cartographic is the same as right */\r\n public equals(right: CartographicProps): boolean {\r\n return (this === right) ||\r\n ((this.longitude === right.longitude) &&\r\n (this.latitude === right.latitude) &&\r\n (this.height === right.height));\r\n }\r\n\r\n /** Compares this Cartographic component-wise and returns true if they are within the provided epsilon, */\r\n public equalsEpsilon(right: CartographicProps, epsilon: number): boolean {\r\n return (this === right) ||\r\n ((Math.abs(this.longitude - right.longitude) <= epsilon) &&\r\n (Math.abs(this.latitude - right.latitude) <= epsilon) &&\r\n (Math.abs(this.height - right.height) <= epsilon));\r\n }\r\n\r\n private static normalize(cartesian: XYZ, result: XYZ) {\r\n const magnitude = cartesian.magnitude();\r\n result.x = cartesian.x / magnitude;\r\n result.y = cartesian.y / magnitude;\r\n result.z = cartesian.z / magnitude;\r\n }\r\n\r\n private static multiplyComponents(left: XYAndZ, right: XYAndZ, result: XYZ) {\r\n result.x = left.x * right.x;\r\n result.y = left.y * right.y;\r\n result.z = left.z * right.z;\r\n }\r\n\r\n private static scalePoint(cartesian: XYAndZ, scalar: number, result: XYZ) {\r\n result.x = cartesian.x * scalar;\r\n result.y = cartesian.y * scalar;\r\n result.z = cartesian.z * scalar;\r\n }\r\n\r\n private static addPoints(left: XYAndZ, right: XYAndZ, result: XYZ) {\r\n result.x = left.x + right.x;\r\n result.y = left.y + right.y;\r\n result.z = left.z + right.z;\r\n }\r\n\r\n /** Create a string representing this cartographic in the format '(longitude, latitude, height)'. */\r\n public toString(): string { return `(${this.longitude}, ${this.latitude}, ${this.height})`; }\r\n\r\n private static _scaleToGeodeticSurfaceIntersection = new Point3d();\r\n private static _scaleToGeodeticSurfaceGradient = new Point3d();\r\n private static _scaleToGeodeticSurface(cartesian: Point3d, oneOverRadii: XYAndZ, oneOverRadiiSquared: XYAndZ, centerToleranceSquared: number, result?: Point3d) {\r\n const positionX = cartesian.x;\r\n const positionY = cartesian.y;\r\n const positionZ = cartesian.z;\r\n\r\n const oneOverRadiiX = oneOverRadii.x;\r\n const oneOverRadiiY = oneOverRadii.y;\r\n const oneOverRadiiZ = oneOverRadii.z;\r\n\r\n const x2 = positionX * positionX * oneOverRadiiX * oneOverRadiiX;\r\n const y2 = positionY * positionY * oneOverRadiiY * oneOverRadiiY;\r\n const z2 = positionZ * positionZ * oneOverRadiiZ * oneOverRadiiZ;\r\n\r\n // Compute the squared ellipsoid norm.\r\n const squaredNorm = x2 + y2 + z2;\r\n const ratio = Math.sqrt(1.0 / squaredNorm);\r\n\r\n // As an initial approximation, assume that the radial intersection is the projection point.\r\n const intersection = Cartographic._scaleToGeodeticSurfaceIntersection;\r\n Cartographic.scalePoint(cartesian, ratio, intersection);\r\n\r\n // If the position is near the center, the iteration will not converge.\r\n if (squaredNorm < centerToleranceSquared) {\r\n return !isFinite(ratio) ? undefined : Point3d.createFrom(intersection, result);\r\n }\r\n\r\n const oneOverRadiiSquaredX = oneOverRadiiSquared.x;\r\n const oneOverRadiiSquaredY = oneOverRadiiSquared.y;\r\n const oneOverRadiiSquaredZ = oneOverRadiiSquared.z;\r\n\r\n // Use the gradient at the intersection point in place of the true unit normal.\r\n // The difference in magnitude will be absorbed in the multiplier.\r\n const gradient = Cartographic._scaleToGeodeticSurfaceGradient;\r\n gradient.x = intersection.x * oneOverRadiiSquaredX * 2.0;\r\n gradient.y = intersection.y * oneOverRadiiSquaredY * 2.0;\r\n gradient.z = intersection.z * oneOverRadiiSquaredZ * 2.0;\r\n\r\n // Compute the initial guess at the normal vector multiplier, lambda.\r\n let lambda = (1.0 - ratio) * cartesian.magnitude() / (0.5 * gradient.magnitude());\r\n let correction = 0.0;\r\n let func;\r\n let denominator;\r\n let xMultiplier;\r\n let yMultiplier;\r\n let zMultiplier;\r\n let xMultiplier2;\r\n let yMultiplier2;\r\n let zMultiplier2;\r\n let xMultiplier3;\r\n let yMultiplier3;\r\n let zMultiplier3;\r\n\r\n do {\r\n lambda -= correction;\r\n\r\n xMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredX);\r\n yMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredY);\r\n zMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredZ);\r\n\r\n xMultiplier2 = xMultiplier * xMultiplier;\r\n yMultiplier2 = yMultiplier * yMultiplier;\r\n zMultiplier2 = zMultiplier * zMultiplier;\r\n\r\n xMultiplier3 = xMultiplier2 * xMultiplier;\r\n yMultiplier3 = yMultiplier2 * yMultiplier;\r\n zMultiplier3 = zMultiplier2 * zMultiplier;\r\n\r\n func = x2 * xMultiplier2 + y2 * yMultiplier2 + z2 * zMultiplier2 - 1.0;\r\n\r\n // \"denominator\" here refers to the use of this expression in the velocity and acceleration\r\n // computations in the sections to follow.\r\n denominator = x2 * xMultiplier3 * oneOverRadiiSquaredX + y2 * yMultiplier3 * oneOverRadiiSquaredY + z2 * zMultiplier3 * oneOverRadiiSquaredZ;\r\n\r\n const derivative = -2.0 * denominator;\r\n\r\n correction = func / derivative;\r\n } while (Math.abs(func) > 0.01);\r\n\r\n if (!result)\r\n return new Point3d(positionX * xMultiplier, positionY * yMultiplier, positionZ * zMultiplier);\r\n\r\n result.x = positionX * xMultiplier;\r\n result.y = positionY * yMultiplier;\r\n result.z = positionZ * zMultiplier;\r\n return result;\r\n }\r\n\r\n /** Return an ECEF point from a Cartographic point */\r\n public toEcef(result?: Point3d): Point3d {\r\n const cosLatitude = Math.cos(this.latitude);\r\n const scratchN = Cartographic._scratchN;\r\n const scratchK = Cartographic._scratchK;\r\n scratchN.x = cosLatitude * Math.cos(this.longitude);\r\n scratchN.y = cosLatitude * Math.sin(this.longitude);\r\n scratchN.z = Math.sin(this.latitude);\r\n Cartographic.normalize(scratchN, scratchN);\r\n\r\n Cartographic.multiplyComponents(Cartographic._wgs84RadiiSquared, scratchN, scratchK);\r\n const gamma = Math.sqrt(scratchN.dotProduct(scratchK));\r\n Cartographic.scalePoint(scratchK, 1.0 / gamma, scratchK);\r\n Cartographic.scalePoint(scratchN, this.height, scratchN);\r\n\r\n result = result ? result : new Point3d();\r\n Cartographic.addPoints(scratchK, scratchN, result);\r\n return result;\r\n }\r\n}\r\n/** A cartographic range representing a rectangular region if low longitude/latitude > high then area crossing seam is indicated.\r\n * @public\r\n */\r\nexport class CartographicRange {\r\n private _ranges: Range2d[] = [];\r\n\r\n // These following are used to preserve the min/max latitude and longitudes.\r\n // The longitudes are raw values and may cross over the -PI or 2PI boundaries.\r\n private _minLongitude = 0;\r\n private _maxLongitude = 0;\r\n private _minLatitude = 0;\r\n private _maxLatitude = 0;\r\n constructor(spatialRange: Range3d, spatialToEcef: Transform) {\r\n // Compute 8 corners in spatial coordinate system before converting to ECEF\r\n // We want a box oriented in the spatial coordinate system and not in the ECEF coordinate system\r\n const spatialCorners = spatialRange.corners();\r\n const ecefCorners = spatialToEcef.multiplyPoint3dArray(spatialCorners);\r\n let low: Cartographic | undefined, high: Cartographic | undefined;\r\n\r\n for (const ecefCorner of ecefCorners) {\r\n const geoPt = Cartographic.fromEcef(ecefCorner);\r\n if (!geoPt)\r\n continue;\r\n if (undefined === low || undefined === high) {\r\n low = geoPt;\r\n high = geoPt.clone();\r\n continue;\r\n }\r\n low.latitude = Math.min(low.latitude, geoPt.latitude);\r\n low.longitude = Math.min(low.longitude, geoPt.longitude);\r\n high.latitude = Math.max(high.latitude, geoPt.latitude);\r\n high.longitude = Math.max(high.longitude, geoPt.longitude);\r\n }\r\n\r\n if (!low || !high) {\r\n assert(false);\r\n return;\r\n }\r\n\r\n const longitudeRanges = [];\r\n this._minLongitude = Math.min(low.longitude, high.longitude), this._maxLongitude = Math.max(low.longitude, high.longitude);\r\n if (this._maxLongitude - this._minLongitude > Angle.piRadians) {\r\n longitudeRanges.push(Range1d.createXX(0.0, this._minLongitude));\r\n longitudeRanges.push(Range1d.createXX(this._maxLongitude, Angle.pi2Radians));\r\n } else {\r\n longitudeRanges.push(Range1d.createXX(this._minLongitude, this._maxLongitude));\r\n }\r\n\r\n for (const longitudeRange of longitudeRanges) {\r\n this._minLatitude = Math.min(low.latitude, high.latitude), this._maxLatitude = Math.max(low.latitude, high.latitude);\r\n if (this._maxLatitude - this._minLatitude > Angle.piOver2Radians) {\r\n this._ranges.push(Range2d.createXYXY(longitudeRange.low, 0.0, longitudeRange.high, this._minLatitude));\r\n this._ranges.push(Range2d.createXYXY(longitudeRange.low, this._maxLatitude, longitudeRange.high, Angle.piRadians));\r\n } else {\r\n this._ranges.push(Range2d.createXYXY(longitudeRange.low, this._minLatitude, longitudeRange.high, this._maxLatitude));\r\n }\r\n }\r\n }\r\n\r\n public intersectsRange(other: CartographicRange): boolean {\r\n for (const range of this._ranges)\r\n for (const otherRange of other._ranges)\r\n if (range.intersectsRange(otherRange))\r\n return true;\r\n return false;\r\n }\r\n\r\n /** This method returns the raw latitude / longitude for the range in a Range2d object.\r\n * The X value represents the longitude and the Y value the latitudes.\r\n * Y values are kept between -PI and +PI while\r\n * longitude values can be expressed in any range between -2PI to +2PI\r\n * given the minimum longitude is always smaller numerically than the maximum longitude.\r\n * Note that usually the longitudes are usually by convention in the range of -PI to PI except\r\n * for ranges that overlap the -PI/+PI frontier in which case either representation is acceptable.\r\n */\r\n public getLongitudeLatitudeBoundingBox(): Range2d {\r\n return Range2d.createXYXY(this._minLongitude, this._minLatitude, this._maxLongitude, this._maxLatitude);\r\n }\r\n}\r\n"]}
|