{"version":3,"file":"PolylineVolumeGeometryLibrary-738776c0.js","sources":["../../../../Source/Core/CornerType.js","../../../../Source/Core/oneTimeWarning.js","../../../../Source/Core/PolylineVolumeGeometryLibrary.js"],"sourcesContent":["/**\n * Style options for corners.\n *\n * @demo The {@link https://sandcastle.cesium.com/index.html?src=Corridor.html&label=Geometries|Corridor Demo}\n * demonstrates the three corner types, as used by {@link CorridorGraphics}.\n *\n * @enum {Number}\n */\nconst CornerType = {\n /**\n * \n *\n * Corner has a smooth edge.\n * @type {Number}\n * @constant\n */\n ROUNDED: 0,\n\n /**\n * \n *\n * Corner point is the intersection of adjacent edges.\n * @type {Number}\n * @constant\n */\n MITERED: 1,\n\n /**\n * \n *\n * Corner is clipped.\n * @type {Number}\n * @constant\n */\n BEVELED: 2,\n};\nexport default Object.freeze(CornerType);\n","import defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\n\nconst warnings = {};\n\n/**\n * Logs a one time message to the console. Use this function instead of\n * console.log directly since this does not log duplicate messages\n * unless it is called from multiple workers.\n *\n * @function oneTimeWarning\n *\n * @param {String} identifier The unique identifier for this warning.\n * @param {String} [message=identifier] The message to log to the console.\n *\n * @example\n * for(let i=0;i>includeStart('debug', pragmas.debug);\n if (!defined(identifier)) {\n throw new DeveloperError(\"identifier is required.\");\n }\n //>>includeEnd('debug');\n\n if (!defined(warnings[identifier])) {\n warnings[identifier] = true;\n console.warn(defaultValue(message, identifier));\n }\n}\n\noneTimeWarning.geometryOutlines =\n \"Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.\";\n\noneTimeWarning.geometryZIndex =\n \"Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored\";\n\noneTimeWarning.geometryHeightReference =\n \"Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored\";\noneTimeWarning.geometryExtrudedHeightReference =\n \"Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored\";\nexport default oneTimeWarning;\n","import Cartesian2 from \"./Cartesian2.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Cartesian4 from \"./Cartesian4.js\";\nimport Cartographic from \"./Cartographic.js\";\nimport CornerType from \"./CornerType.js\";\nimport EllipsoidTangentPlane from \"./EllipsoidTangentPlane.js\";\nimport CesiumMath from \"./Math.js\";\nimport Matrix3 from \"./Matrix3.js\";\nimport Matrix4 from \"./Matrix4.js\";\nimport PolylinePipeline from \"./PolylinePipeline.js\";\nimport Quaternion from \"./Quaternion.js\";\nimport Transforms from \"./Transforms.js\";\nimport oneTimeWarning from \"../Core/oneTimeWarning.js\";\n\nconst scratch2Array = [new Cartesian3(), new Cartesian3()];\nconst scratchCartesian1 = new Cartesian3();\nconst scratchCartesian2 = new Cartesian3();\nconst scratchCartesian3 = new Cartesian3();\nconst scratchCartesian4 = new Cartesian3();\nconst scratchCartesian5 = new Cartesian3();\nconst scratchCartesian6 = new Cartesian3();\nconst scratchCartesian7 = new Cartesian3();\nconst scratchCartesian8 = new Cartesian3();\nconst scratchCartesian9 = new Cartesian3();\n\nconst scratch1 = new Cartesian3();\nconst scratch2 = new Cartesian3();\n\n/**\n * @private\n */\nconst PolylineVolumeGeometryLibrary = {};\n\nlet cartographic = new Cartographic();\nfunction scaleToSurface(positions, ellipsoid) {\n const heights = new Array(positions.length);\n for (let i = 0; i < positions.length; i++) {\n const pos = positions[i];\n cartographic = ellipsoid.cartesianToCartographic(pos, cartographic);\n heights[i] = cartographic.height;\n positions[i] = ellipsoid.scaleToGeodeticSurface(pos, pos);\n }\n return heights;\n}\n\nfunction subdivideHeights(points, h0, h1, granularity) {\n const p0 = points[0];\n const p1 = points[1];\n const angleBetween = Cartesian3.angleBetween(p0, p1);\n const numPoints = Math.ceil(angleBetween / granularity);\n const heights = new Array(numPoints);\n let i;\n if (h0 === h1) {\n for (i = 0; i < numPoints; i++) {\n heights[i] = h0;\n }\n heights.push(h1);\n return heights;\n }\n\n const dHeight = h1 - h0;\n const heightPerVertex = dHeight / numPoints;\n\n for (i = 1; i < numPoints; i++) {\n const h = h0 + i * heightPerVertex;\n heights[i] = h;\n }\n\n heights[0] = h0;\n heights.push(h1);\n return heights;\n}\n\nconst nextScratch = new Cartesian3();\nconst prevScratch = new Cartesian3();\n\nfunction computeRotationAngle(start, end, position, ellipsoid) {\n const tangentPlane = new EllipsoidTangentPlane(position, ellipsoid);\n const next = tangentPlane.projectPointOntoPlane(\n Cartesian3.add(position, start, nextScratch),\n nextScratch\n );\n const prev = tangentPlane.projectPointOntoPlane(\n Cartesian3.add(position, end, prevScratch),\n prevScratch\n );\n const angle = Cartesian2.angleBetween(next, prev);\n\n return prev.x * next.y - prev.y * next.x >= 0.0 ? -angle : angle;\n}\n\nconst negativeX = new Cartesian3(-1, 0, 0);\nlet transform = new Matrix4();\nconst translation = new Matrix4();\nlet rotationZ = new Matrix3();\nconst scaleMatrix = Matrix3.IDENTITY.clone();\nconst westScratch = new Cartesian3();\nconst finalPosScratch = new Cartesian4();\nconst heightCartesian = new Cartesian3();\nfunction addPosition(\n center,\n left,\n shape,\n finalPositions,\n ellipsoid,\n height,\n xScalar,\n repeat\n) {\n let west = westScratch;\n let finalPosition = finalPosScratch;\n transform = Transforms.eastNorthUpToFixedFrame(center, ellipsoid, transform);\n\n west = Matrix4.multiplyByPointAsVector(transform, negativeX, west);\n west = Cartesian3.normalize(west, west);\n const angle = computeRotationAngle(west, left, center, ellipsoid);\n rotationZ = Matrix3.fromRotationZ(angle, rotationZ);\n\n heightCartesian.z = height;\n transform = Matrix4.multiplyTransformation(\n transform,\n Matrix4.fromRotationTranslation(rotationZ, heightCartesian, translation),\n transform\n );\n const scale = scaleMatrix;\n scale[0] = xScalar;\n\n for (let j = 0; j < repeat; j++) {\n for (let i = 0; i < shape.length; i += 3) {\n finalPosition = Cartesian3.fromArray(shape, i, finalPosition);\n finalPosition = Matrix3.multiplyByVector(\n scale,\n finalPosition,\n finalPosition\n );\n finalPosition = Matrix4.multiplyByPoint(\n transform,\n finalPosition,\n finalPosition\n );\n finalPositions.push(finalPosition.x, finalPosition.y, finalPosition.z);\n }\n }\n\n return finalPositions;\n}\n\nconst centerScratch = new Cartesian3();\nfunction addPositions(\n centers,\n left,\n shape,\n finalPositions,\n ellipsoid,\n heights,\n xScalar\n) {\n for (let i = 0; i < centers.length; i += 3) {\n const center = Cartesian3.fromArray(centers, i, centerScratch);\n finalPositions = addPosition(\n center,\n left,\n shape,\n finalPositions,\n ellipsoid,\n heights[i / 3],\n xScalar,\n 1\n );\n }\n return finalPositions;\n}\n\nfunction convertShapeTo3DDuplicate(shape2D, boundingRectangle) {\n //orientate 2D shape to XZ plane center at (0, 0, 0), duplicate points\n const length = shape2D.length;\n const shape = new Array(length * 6);\n let index = 0;\n const xOffset = boundingRectangle.x + boundingRectangle.width / 2;\n const yOffset = boundingRectangle.y + boundingRectangle.height / 2;\n\n let point = shape2D[0];\n shape[index++] = point.x - xOffset;\n shape[index++] = 0.0;\n shape[index++] = point.y - yOffset;\n for (let i = 1; i < length; i++) {\n point = shape2D[i];\n const x = point.x - xOffset;\n const z = point.y - yOffset;\n shape[index++] = x;\n shape[index++] = 0.0;\n shape[index++] = z;\n\n shape[index++] = x;\n shape[index++] = 0.0;\n shape[index++] = z;\n }\n point = shape2D[0];\n shape[index++] = point.x - xOffset;\n shape[index++] = 0.0;\n shape[index++] = point.y - yOffset;\n\n return shape;\n}\n\nfunction convertShapeTo3D(shape2D, boundingRectangle) {\n //orientate 2D shape to XZ plane center at (0, 0, 0)\n const length = shape2D.length;\n const shape = new Array(length * 3);\n let index = 0;\n const xOffset = boundingRectangle.x + boundingRectangle.width / 2;\n const yOffset = boundingRectangle.y + boundingRectangle.height / 2;\n\n for (let i = 0; i < length; i++) {\n shape[index++] = shape2D[i].x - xOffset;\n shape[index++] = 0;\n shape[index++] = shape2D[i].y - yOffset;\n }\n\n return shape;\n}\n\nconst quaterion = new Quaternion();\nconst startPointScratch = new Cartesian3();\nconst rotMatrix = new Matrix3();\nfunction computeRoundCorner(\n pivot,\n startPoint,\n endPoint,\n cornerType,\n leftIsOutside,\n ellipsoid,\n finalPositions,\n shape,\n height,\n duplicatePoints\n) {\n const angle = Cartesian3.angleBetween(\n Cartesian3.subtract(startPoint, pivot, scratch1),\n Cartesian3.subtract(endPoint, pivot, scratch2)\n );\n const granularity =\n cornerType === CornerType.BEVELED\n ? 0\n : Math.ceil(angle / CesiumMath.toRadians(5));\n\n let m;\n if (leftIsOutside) {\n m = Matrix3.fromQuaternion(\n Quaternion.fromAxisAngle(\n Cartesian3.negate(pivot, scratch1),\n angle / (granularity + 1),\n quaterion\n ),\n rotMatrix\n );\n } else {\n m = Matrix3.fromQuaternion(\n Quaternion.fromAxisAngle(pivot, angle / (granularity + 1), quaterion),\n rotMatrix\n );\n }\n\n let left;\n let surfacePoint;\n startPoint = Cartesian3.clone(startPoint, startPointScratch);\n if (granularity > 0) {\n const repeat = duplicatePoints ? 2 : 1;\n for (let i = 0; i < granularity; i++) {\n startPoint = Matrix3.multiplyByVector(m, startPoint, startPoint);\n left = Cartesian3.subtract(startPoint, pivot, scratch1);\n left = Cartesian3.normalize(left, left);\n if (!leftIsOutside) {\n left = Cartesian3.negate(left, left);\n }\n surfacePoint = ellipsoid.scaleToGeodeticSurface(startPoint, scratch2);\n finalPositions = addPosition(\n surfacePoint,\n left,\n shape,\n finalPositions,\n ellipsoid,\n height,\n 1,\n repeat\n );\n }\n } else {\n left = Cartesian3.subtract(startPoint, pivot, scratch1);\n left = Cartesian3.normalize(left, left);\n if (!leftIsOutside) {\n left = Cartesian3.negate(left, left);\n }\n surfacePoint = ellipsoid.scaleToGeodeticSurface(startPoint, scratch2);\n finalPositions = addPosition(\n surfacePoint,\n left,\n shape,\n finalPositions,\n ellipsoid,\n height,\n 1,\n 1\n );\n\n endPoint = Cartesian3.clone(endPoint, startPointScratch);\n left = Cartesian3.subtract(endPoint, pivot, scratch1);\n left = Cartesian3.normalize(left, left);\n if (!leftIsOutside) {\n left = Cartesian3.negate(left, left);\n }\n surfacePoint = ellipsoid.scaleToGeodeticSurface(endPoint, scratch2);\n finalPositions = addPosition(\n surfacePoint,\n left,\n shape,\n finalPositions,\n ellipsoid,\n height,\n 1,\n 1\n );\n }\n\n return finalPositions;\n}\n\nPolylineVolumeGeometryLibrary.removeDuplicatesFromShape = function (\n shapePositions\n) {\n const length = shapePositions.length;\n const cleanedPositions = [];\n for (let i0 = length - 1, i1 = 0; i1 < length; i0 = i1++) {\n const v0 = shapePositions[i0];\n const v1 = shapePositions[i1];\n\n if (!Cartesian2.equals(v0, v1)) {\n cleanedPositions.push(v1); // Shallow copy!\n }\n }\n\n return cleanedPositions;\n};\n\nPolylineVolumeGeometryLibrary.angleIsGreaterThanPi = function (\n forward,\n backward,\n position,\n ellipsoid\n) {\n const tangentPlane = new EllipsoidTangentPlane(position, ellipsoid);\n const next = tangentPlane.projectPointOntoPlane(\n Cartesian3.add(position, forward, nextScratch),\n nextScratch\n );\n const prev = tangentPlane.projectPointOntoPlane(\n Cartesian3.add(position, backward, prevScratch),\n prevScratch\n );\n\n return prev.x * next.y - prev.y * next.x >= 0.0;\n};\n\nconst scratchForwardProjection = new Cartesian3();\nconst scratchBackwardProjection = new Cartesian3();\n\nPolylineVolumeGeometryLibrary.computePositions = function (\n positions,\n shape2D,\n boundingRectangle,\n geometry,\n duplicatePoints\n) {\n const ellipsoid = geometry._ellipsoid;\n const heights = scaleToSurface(positions, ellipsoid);\n const granularity = geometry._granularity;\n const cornerType = geometry._cornerType;\n const shapeForSides = duplicatePoints\n ? convertShapeTo3DDuplicate(shape2D, boundingRectangle)\n : convertShapeTo3D(shape2D, boundingRectangle);\n const shapeForEnds = duplicatePoints\n ? convertShapeTo3D(shape2D, boundingRectangle)\n : undefined;\n const heightOffset = boundingRectangle.height / 2;\n const width = boundingRectangle.width / 2;\n let length = positions.length;\n let finalPositions = [];\n let ends = duplicatePoints ? [] : undefined;\n\n let forward = scratchCartesian1;\n let backward = scratchCartesian2;\n let cornerDirection = scratchCartesian3;\n let surfaceNormal = scratchCartesian4;\n let pivot = scratchCartesian5;\n let start = scratchCartesian6;\n let end = scratchCartesian7;\n let left = scratchCartesian8;\n let previousPosition = scratchCartesian9;\n\n let position = positions[0];\n let nextPosition = positions[1];\n surfaceNormal = ellipsoid.geodeticSurfaceNormal(position, surfaceNormal);\n forward = Cartesian3.subtract(nextPosition, position, forward);\n forward = Cartesian3.normalize(forward, forward);\n left = Cartesian3.cross(surfaceNormal, forward, left);\n left = Cartesian3.normalize(left, left);\n let h0 = heights[0];\n let h1 = heights[1];\n if (duplicatePoints) {\n ends = addPosition(\n position,\n left,\n shapeForEnds,\n ends,\n ellipsoid,\n h0 + heightOffset,\n 1,\n 1\n );\n }\n previousPosition = Cartesian3.clone(position, previousPosition);\n position = nextPosition;\n backward = Cartesian3.negate(forward, backward);\n let subdividedHeights;\n let subdividedPositions;\n for (let i = 1; i < length - 1; i++) {\n const repeat = duplicatePoints ? 2 : 1;\n nextPosition = positions[i + 1];\n if (position.equals(nextPosition)) {\n oneTimeWarning(\n \"Positions are too close and are considered equivalent with rounding error.\"\n );\n continue;\n }\n forward = Cartesian3.subtract(nextPosition, position, forward);\n forward = Cartesian3.normalize(forward, forward);\n cornerDirection = Cartesian3.add(forward, backward, cornerDirection);\n cornerDirection = Cartesian3.normalize(cornerDirection, cornerDirection);\n surfaceNormal = ellipsoid.geodeticSurfaceNormal(position, surfaceNormal);\n\n const forwardProjection = Cartesian3.multiplyByScalar(\n surfaceNormal,\n Cartesian3.dot(forward, surfaceNormal),\n scratchForwardProjection\n );\n Cartesian3.subtract(forward, forwardProjection, forwardProjection);\n Cartesian3.normalize(forwardProjection, forwardProjection);\n\n const backwardProjection = Cartesian3.multiplyByScalar(\n surfaceNormal,\n Cartesian3.dot(backward, surfaceNormal),\n scratchBackwardProjection\n );\n Cartesian3.subtract(backward, backwardProjection, backwardProjection);\n Cartesian3.normalize(backwardProjection, backwardProjection);\n\n const doCorner = !CesiumMath.equalsEpsilon(\n Math.abs(Cartesian3.dot(forwardProjection, backwardProjection)),\n 1.0,\n CesiumMath.EPSILON7\n );\n\n if (doCorner) {\n cornerDirection = Cartesian3.cross(\n cornerDirection,\n surfaceNormal,\n cornerDirection\n );\n cornerDirection = Cartesian3.cross(\n surfaceNormal,\n cornerDirection,\n cornerDirection\n );\n cornerDirection = Cartesian3.normalize(cornerDirection, cornerDirection);\n const scalar =\n 1 /\n Math.max(\n 0.25,\n Cartesian3.magnitude(\n Cartesian3.cross(cornerDirection, backward, scratch1)\n )\n );\n const leftIsOutside = PolylineVolumeGeometryLibrary.angleIsGreaterThanPi(\n forward,\n backward,\n position,\n ellipsoid\n );\n if (leftIsOutside) {\n pivot = Cartesian3.add(\n position,\n Cartesian3.multiplyByScalar(\n cornerDirection,\n scalar * width,\n cornerDirection\n ),\n pivot\n );\n start = Cartesian3.add(\n pivot,\n Cartesian3.multiplyByScalar(left, width, start),\n start\n );\n scratch2Array[0] = Cartesian3.clone(previousPosition, scratch2Array[0]);\n scratch2Array[1] = Cartesian3.clone(start, scratch2Array[1]);\n subdividedHeights = subdivideHeights(\n scratch2Array,\n h0 + heightOffset,\n h1 + heightOffset,\n granularity\n );\n subdividedPositions = PolylinePipeline.generateArc({\n positions: scratch2Array,\n granularity: granularity,\n ellipsoid: ellipsoid,\n });\n finalPositions = addPositions(\n subdividedPositions,\n left,\n shapeForSides,\n finalPositions,\n ellipsoid,\n subdividedHeights,\n 1\n );\n left = Cartesian3.cross(surfaceNormal, forward, left);\n left = Cartesian3.normalize(left, left);\n end = Cartesian3.add(\n pivot,\n Cartesian3.multiplyByScalar(left, width, end),\n end\n );\n if (\n cornerType === CornerType.ROUNDED ||\n cornerType === CornerType.BEVELED\n ) {\n computeRoundCorner(\n pivot,\n start,\n end,\n cornerType,\n leftIsOutside,\n ellipsoid,\n finalPositions,\n shapeForSides,\n h1 + heightOffset,\n duplicatePoints\n );\n } else {\n cornerDirection = Cartesian3.negate(cornerDirection, cornerDirection);\n finalPositions = addPosition(\n position,\n cornerDirection,\n shapeForSides,\n finalPositions,\n ellipsoid,\n h1 + heightOffset,\n scalar,\n repeat\n );\n }\n previousPosition = Cartesian3.clone(end, previousPosition);\n } else {\n pivot = Cartesian3.add(\n position,\n Cartesian3.multiplyByScalar(\n cornerDirection,\n scalar * width,\n cornerDirection\n ),\n pivot\n );\n start = Cartesian3.add(\n pivot,\n Cartesian3.multiplyByScalar(left, -width, start),\n start\n );\n scratch2Array[0] = Cartesian3.clone(previousPosition, scratch2Array[0]);\n scratch2Array[1] = Cartesian3.clone(start, scratch2Array[1]);\n subdividedHeights = subdivideHeights(\n scratch2Array,\n h0 + heightOffset,\n h1 + heightOffset,\n granularity\n );\n subdividedPositions = PolylinePipeline.generateArc({\n positions: scratch2Array,\n granularity: granularity,\n ellipsoid: ellipsoid,\n });\n finalPositions = addPositions(\n subdividedPositions,\n left,\n shapeForSides,\n finalPositions,\n ellipsoid,\n subdividedHeights,\n 1\n );\n left = Cartesian3.cross(surfaceNormal, forward, left);\n left = Cartesian3.normalize(left, left);\n end = Cartesian3.add(\n pivot,\n Cartesian3.multiplyByScalar(left, -width, end),\n end\n );\n if (\n cornerType === CornerType.ROUNDED ||\n cornerType === CornerType.BEVELED\n ) {\n computeRoundCorner(\n pivot,\n start,\n end,\n cornerType,\n leftIsOutside,\n ellipsoid,\n finalPositions,\n shapeForSides,\n h1 + heightOffset,\n duplicatePoints\n );\n } else {\n finalPositions = addPosition(\n position,\n cornerDirection,\n shapeForSides,\n finalPositions,\n ellipsoid,\n h1 + heightOffset,\n scalar,\n repeat\n );\n }\n previousPosition = Cartesian3.clone(end, previousPosition);\n }\n backward = Cartesian3.negate(forward, backward);\n } else {\n finalPositions = addPosition(\n previousPosition,\n left,\n shapeForSides,\n finalPositions,\n ellipsoid,\n h0 + heightOffset,\n 1,\n 1\n );\n previousPosition = position;\n }\n h0 = h1;\n h1 = heights[i + 1];\n position = nextPosition;\n }\n\n scratch2Array[0] = Cartesian3.clone(previousPosition, scratch2Array[0]);\n scratch2Array[1] = Cartesian3.clone(position, scratch2Array[1]);\n subdividedHeights = subdivideHeights(\n scratch2Array,\n h0 + heightOffset,\n h1 + heightOffset,\n granularity\n );\n subdividedPositions = PolylinePipeline.generateArc({\n positions: scratch2Array,\n granularity: granularity,\n ellipsoid: ellipsoid,\n });\n finalPositions = addPositions(\n subdividedPositions,\n left,\n shapeForSides,\n finalPositions,\n ellipsoid,\n subdividedHeights,\n 1\n );\n if (duplicatePoints) {\n ends = addPosition(\n position,\n left,\n shapeForEnds,\n ends,\n ellipsoid,\n h1 + heightOffset,\n 1,\n 1\n );\n }\n\n length = finalPositions.length;\n const posLength = duplicatePoints ? length + ends.length : length;\n const combinedPositions = new Float64Array(posLength);\n combinedPositions.set(finalPositions);\n if (duplicatePoints) {\n combinedPositions.set(ends, length);\n }\n\n return combinedPositions;\n};\nexport default PolylineVolumeGeometryLibrary;\n"],"names":["defined","DeveloperError","defaultValue","Cartesian3","Cartographic","EllipsoidTangentPlane","Cartesian2","Matrix4","Matrix3","Cartesian4","Transforms","Quaternion","CornerType","CesiumMath","PolylinePipeline"],"mappings":"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"}