PolylineVolumeGeometryLibrary-d573ce10.js.map 42 KB

1
  1. {"version":3,"file":"PolylineVolumeGeometryLibrary-d573ce10.js","sources":["../../../../Source/Core/CornerType.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 */\nvar CornerType = {\n /**\n * <img src=\"Images/CornerTypeRounded.png\" style=\"vertical-align: middle;\" width=\"186\" height=\"189\" />\n *\n * Corner has a smooth edge.\n * @type {Number}\n * @constant\n */\n ROUNDED: 0,\n\n /**\n * <img src=\"Images/CornerTypeMitered.png\" style=\"vertical-align: middle;\" width=\"186\" height=\"189\" />\n *\n * Corner point is the intersection of adjacent edges.\n * @type {Number}\n * @constant\n */\n MITERED: 1,\n\n /**\n * <img src=\"Images/CornerTypeBeveled.png\" style=\"vertical-align: middle;\" width=\"186\" height=\"189\" />\n *\n * Corner is clipped.\n * @type {Number}\n * @constant\n */\n BEVELED: 2,\n};\nexport default Object.freeze(CornerType);\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\";\n\nvar scratch2Array = [new Cartesian3(), new Cartesian3()];\nvar scratchCartesian1 = new Cartesian3();\nvar scratchCartesian2 = new Cartesian3();\nvar scratchCartesian3 = new Cartesian3();\nvar scratchCartesian4 = new Cartesian3();\nvar scratchCartesian5 = new Cartesian3();\nvar scratchCartesian6 = new Cartesian3();\nvar scratchCartesian7 = new Cartesian3();\nvar scratchCartesian8 = new Cartesian3();\nvar scratchCartesian9 = new Cartesian3();\n\nvar scratch1 = new Cartesian3();\nvar scratch2 = new Cartesian3();\n\n/**\n * @private\n */\nvar PolylineVolumeGeometryLibrary = {};\n\nvar cartographic = new Cartographic();\nfunction scaleToSurface(positions, ellipsoid) {\n var heights = new Array(positions.length);\n for (var i = 0; i < positions.length; i++) {\n var 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 var p0 = points[0];\n var p1 = points[1];\n var angleBetween = Cartesian3.angleBetween(p0, p1);\n var numPoints = Math.ceil(angleBetween / granularity);\n var heights = new Array(numPoints);\n var 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 var dHeight = h1 - h0;\n var heightPerVertex = dHeight / numPoints;\n\n for (i = 1; i < numPoints; i++) {\n var h = h0 + i * heightPerVertex;\n heights[i] = h;\n }\n\n heights[0] = h0;\n heights.push(h1);\n return heights;\n}\n\nvar nextScratch = new Cartesian3();\nvar prevScratch = new Cartesian3();\n\nfunction computeRotationAngle(start, end, position, ellipsoid) {\n var tangentPlane = new EllipsoidTangentPlane(position, ellipsoid);\n var next = tangentPlane.projectPointOntoPlane(\n Cartesian3.add(position, start, nextScratch),\n nextScratch\n );\n var prev = tangentPlane.projectPointOntoPlane(\n Cartesian3.add(position, end, prevScratch),\n prevScratch\n );\n var angle = Cartesian2.angleBetween(next, prev);\n\n return prev.x * next.y - prev.y * next.x >= 0.0 ? -angle : angle;\n}\n\nvar negativeX = new Cartesian3(-1, 0, 0);\nvar transform = new Matrix4();\nvar translation = new Matrix4();\nvar rotationZ = new Matrix3();\nvar scaleMatrix = Matrix3.IDENTITY.clone();\nvar westScratch = new Cartesian3();\nvar finalPosScratch = new Cartesian4();\nvar heightCartesian = new Cartesian3();\nfunction addPosition(\n center,\n left,\n shape,\n finalPositions,\n ellipsoid,\n height,\n xScalar,\n repeat\n) {\n var west = westScratch;\n var finalPosition = finalPosScratch;\n transform = Transforms.eastNorthUpToFixedFrame(center, ellipsoid, transform);\n\n west = Matrix4.multiplyByPointAsVector(transform, negativeX, west);\n west = Cartesian3.normalize(west, west);\n var 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 var scale = scaleMatrix;\n scale[0] = xScalar;\n\n for (var j = 0; j < repeat; j++) {\n for (var 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\nvar centerScratch = new Cartesian3();\nfunction addPositions(\n centers,\n left,\n shape,\n finalPositions,\n ellipsoid,\n heights,\n xScalar\n) {\n for (var i = 0; i < centers.length; i += 3) {\n var 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 var length = shape2D.length;\n var shape = new Array(length * 6);\n var index = 0;\n var xOffset = boundingRectangle.x + boundingRectangle.width / 2;\n var yOffset = boundingRectangle.y + boundingRectangle.height / 2;\n\n var point = shape2D[0];\n shape[index++] = point.x - xOffset;\n shape[index++] = 0.0;\n shape[index++] = point.y - yOffset;\n for (var i = 1; i < length; i++) {\n point = shape2D[i];\n var x = point.x - xOffset;\n var 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 var length = shape2D.length;\n var shape = new Array(length * 3);\n var index = 0;\n var xOffset = boundingRectangle.x + boundingRectangle.width / 2;\n var yOffset = boundingRectangle.y + boundingRectangle.height / 2;\n\n for (var 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\nvar quaterion = new Quaternion();\nvar startPointScratch = new Cartesian3();\nvar 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 var angle = Cartesian3.angleBetween(\n Cartesian3.subtract(startPoint, pivot, scratch1),\n Cartesian3.subtract(endPoint, pivot, scratch2)\n );\n var granularity =\n cornerType === CornerType.BEVELED\n ? 0\n : Math.ceil(angle / CesiumMath.toRadians(5));\n\n var 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 var left;\n var surfacePoint;\n startPoint = Cartesian3.clone(startPoint, startPointScratch);\n if (granularity > 0) {\n var repeat = duplicatePoints ? 2 : 1;\n for (var 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 var length = shapePositions.length;\n var cleanedPositions = [];\n for (var i0 = length - 1, i1 = 0; i1 < length; i0 = i1++) {\n var v0 = shapePositions[i0];\n var 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 var tangentPlane = new EllipsoidTangentPlane(position, ellipsoid);\n var next = tangentPlane.projectPointOntoPlane(\n Cartesian3.add(position, forward, nextScratch),\n nextScratch\n );\n var 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\nvar scratchForwardProjection = new Cartesian3();\nvar scratchBackwardProjection = new Cartesian3();\n\nPolylineVolumeGeometryLibrary.computePositions = function (\n positions,\n shape2D,\n boundingRectangle,\n geometry,\n duplicatePoints\n) {\n var ellipsoid = geometry._ellipsoid;\n var heights = scaleToSurface(positions, ellipsoid);\n var granularity = geometry._granularity;\n var cornerType = geometry._cornerType;\n var shapeForSides = duplicatePoints\n ? convertShapeTo3DDuplicate(shape2D, boundingRectangle)\n : convertShapeTo3D(shape2D, boundingRectangle);\n var shapeForEnds = duplicatePoints\n ? convertShapeTo3D(shape2D, boundingRectangle)\n : undefined;\n var heightOffset = boundingRectangle.height / 2;\n var width = boundingRectangle.width / 2;\n var length = positions.length;\n var finalPositions = [];\n var ends = duplicatePoints ? [] : undefined;\n\n var forward = scratchCartesian1;\n var backward = scratchCartesian2;\n var cornerDirection = scratchCartesian3;\n var surfaceNormal = scratchCartesian4;\n var pivot = scratchCartesian5;\n var start = scratchCartesian6;\n var end = scratchCartesian7;\n var left = scratchCartesian8;\n var previousPosition = scratchCartesian9;\n\n var position = positions[0];\n var 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 var h0 = heights[0];\n var 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 var subdividedHeights;\n var subdividedPositions;\n for (var i = 1; i < length - 1; i++) {\n var repeat = duplicatePoints ? 2 : 1;\n nextPosition = positions[i + 1];\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 var 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 var 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 var 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 var scalar =\n 1 /\n Math.max(\n 0.25,\n Cartesian3.magnitude(\n Cartesian3.cross(cornerDirection, backward, scratch1)\n )\n );\n var 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 var posLength = duplicatePoints ? length + ends.length : length;\n var 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":["Cartesian3","Cartographic","EllipsoidTangentPlane","Cartesian2","Matrix4","Matrix3","Cartesian4","Transforms","Quaternion","CornerType","CesiumMath","PolylinePipeline"],"mappings":"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"}