1 line
22 KiB
Plaintext
1 line
22 KiB
Plaintext
{"version":3,"file":"EllipseGeometryLibrary-4ab591fa.js","sources":["../../../../Source/Core/EllipseGeometryLibrary.js"],"sourcesContent":["import Cartesian3 from \"./Cartesian3.js\";\nimport CesiumMath from \"./Math.js\";\nimport Matrix3 from \"./Matrix3.js\";\nimport Quaternion from \"./Quaternion.js\";\n\nconst EllipseGeometryLibrary = {};\n\nconst rotAxis = new Cartesian3();\nconst tempVec = new Cartesian3();\nconst unitQuat = new Quaternion();\nconst rotMtx = new Matrix3();\n\nfunction pointOnEllipsoid(\n theta,\n rotation,\n northVec,\n eastVec,\n aSqr,\n ab,\n bSqr,\n mag,\n unitPos,\n result\n) {\n const azimuth = theta + rotation;\n\n Cartesian3.multiplyByScalar(eastVec, Math.cos(azimuth), rotAxis);\n Cartesian3.multiplyByScalar(northVec, Math.sin(azimuth), tempVec);\n Cartesian3.add(rotAxis, tempVec, rotAxis);\n\n let cosThetaSquared = Math.cos(theta);\n cosThetaSquared = cosThetaSquared * cosThetaSquared;\n\n let sinThetaSquared = Math.sin(theta);\n sinThetaSquared = sinThetaSquared * sinThetaSquared;\n\n const radius =\n ab / Math.sqrt(bSqr * cosThetaSquared + aSqr * sinThetaSquared);\n const angle = radius / mag;\n\n // Create the quaternion to rotate the position vector to the boundary of the ellipse.\n Quaternion.fromAxisAngle(rotAxis, angle, unitQuat);\n Matrix3.fromQuaternion(unitQuat, rotMtx);\n\n Matrix3.multiplyByVector(rotMtx, unitPos, result);\n Cartesian3.normalize(result, result);\n Cartesian3.multiplyByScalar(result, mag, result);\n return result;\n}\n\nconst scratchCartesian1 = new Cartesian3();\nconst scratchCartesian2 = new Cartesian3();\nconst scratchCartesian3 = new Cartesian3();\nconst scratchNormal = new Cartesian3();\n/**\n * Returns the positions raised to the given heights\n * @private\n */\nEllipseGeometryLibrary.raisePositionsToHeight = function (\n positions,\n options,\n extrude\n) {\n const ellipsoid = options.ellipsoid;\n const height = options.height;\n const extrudedHeight = options.extrudedHeight;\n const size = extrude ? (positions.length / 3) * 2 : positions.length / 3;\n\n const finalPositions = new Float64Array(size * 3);\n\n const length = positions.length;\n const bottomOffset = extrude ? length : 0;\n for (let i = 0; i < length; i += 3) {\n const i1 = i + 1;\n const i2 = i + 2;\n\n const position = Cartesian3.fromArray(positions, i, scratchCartesian1);\n ellipsoid.scaleToGeodeticSurface(position, position);\n\n const extrudedPosition = Cartesian3.clone(position, scratchCartesian2);\n const normal = ellipsoid.geodeticSurfaceNormal(position, scratchNormal);\n const scaledNormal = Cartesian3.multiplyByScalar(\n normal,\n height,\n scratchCartesian3\n );\n Cartesian3.add(position, scaledNormal, position);\n\n if (extrude) {\n Cartesian3.multiplyByScalar(normal, extrudedHeight, scaledNormal);\n Cartesian3.add(extrudedPosition, scaledNormal, extrudedPosition);\n\n finalPositions[i + bottomOffset] = extrudedPosition.x;\n finalPositions[i1 + bottomOffset] = extrudedPosition.y;\n finalPositions[i2 + bottomOffset] = extrudedPosition.z;\n }\n\n finalPositions[i] = position.x;\n finalPositions[i1] = position.y;\n finalPositions[i2] = position.z;\n }\n\n return finalPositions;\n};\n\nconst unitPosScratch = new Cartesian3();\nconst eastVecScratch = new Cartesian3();\nconst northVecScratch = new Cartesian3();\n/**\n * Returns an array of positions that make up the ellipse.\n * @private\n */\nEllipseGeometryLibrary.computeEllipsePositions = function (\n options,\n addFillPositions,\n addEdgePositions\n) {\n const semiMinorAxis = options.semiMinorAxis;\n const semiMajorAxis = options.semiMajorAxis;\n const rotation = options.rotation;\n const center = options.center;\n\n // Computing the arc-length of the ellipse is too expensive to be practical. Estimating it using the\n // arc length of the sphere is too inaccurate and creates sharp edges when either the semi-major or\n // semi-minor axis is much bigger than the other. Instead, scale the angle delta to make\n // the distance along the ellipse boundary more closely match the granularity.\n const granularity = options.granularity * 8.0;\n\n const aSqr = semiMinorAxis * semiMinorAxis;\n const bSqr = semiMajorAxis * semiMajorAxis;\n const ab = semiMajorAxis * semiMinorAxis;\n\n const mag = Cartesian3.magnitude(center);\n\n const unitPos = Cartesian3.normalize(center, unitPosScratch);\n let eastVec = Cartesian3.cross(Cartesian3.UNIT_Z, center, eastVecScratch);\n eastVec = Cartesian3.normalize(eastVec, eastVec);\n const northVec = Cartesian3.cross(unitPos, eastVec, northVecScratch);\n\n // The number of points in the first quadrant\n let numPts = 1 + Math.ceil(CesiumMath.PI_OVER_TWO / granularity);\n\n const deltaTheta = CesiumMath.PI_OVER_TWO / (numPts - 1);\n let theta = CesiumMath.PI_OVER_TWO - numPts * deltaTheta;\n if (theta < 0.0) {\n numPts -= Math.ceil(Math.abs(theta) / deltaTheta);\n }\n\n // If the number of points were three, the ellipse\n // would be tessellated like below:\n //\n // *---*\n // / | \\ | \\\n // *---*---*---*\n // / | \\ | \\ | \\ | \\\n // / .*---*---*---*. \\\n // * ` | \\ | \\ | \\ | `*\n // \\`.*---*---*---*.`/\n // \\ | \\ | \\ | \\ | /\n // *---*---*---*\n // \\ | \\ | /\n // *---*\n // The first and last column have one position and fan to connect to the adjacent column.\n // Each other vertical column contains an even number of positions.\n const size = 2 * (numPts * (numPts + 2));\n const positions = addFillPositions ? new Array(size * 3) : undefined;\n let positionIndex = 0;\n let position = scratchCartesian1;\n let reflectedPosition = scratchCartesian2;\n\n const outerPositionsLength = numPts * 4 * 3;\n let outerRightIndex = outerPositionsLength - 1;\n let outerLeftIndex = 0;\n const outerPositions = addEdgePositions\n ? new Array(outerPositionsLength)\n : undefined;\n\n let i;\n let j;\n let numInterior;\n let t;\n let interiorPosition;\n\n // Compute points in the 'eastern' half of the ellipse\n theta = CesiumMath.PI_OVER_TWO;\n position = pointOnEllipsoid(\n theta,\n rotation,\n northVec,\n eastVec,\n aSqr,\n ab,\n bSqr,\n mag,\n unitPos,\n position\n );\n if (addFillPositions) {\n positions[positionIndex++] = position.x;\n positions[positionIndex++] = position.y;\n positions[positionIndex++] = position.z;\n }\n if (addEdgePositions) {\n outerPositions[outerRightIndex--] = position.z;\n outerPositions[outerRightIndex--] = position.y;\n outerPositions[outerRightIndex--] = position.x;\n }\n theta = CesiumMath.PI_OVER_TWO - deltaTheta;\n for (i = 1; i < numPts + 1; ++i) {\n position = pointOnEllipsoid(\n theta,\n rotation,\n northVec,\n eastVec,\n aSqr,\n ab,\n bSqr,\n mag,\n unitPos,\n position\n );\n reflectedPosition = pointOnEllipsoid(\n Math.PI - theta,\n rotation,\n northVec,\n eastVec,\n aSqr,\n ab,\n bSqr,\n mag,\n unitPos,\n reflectedPosition\n );\n\n if (addFillPositions) {\n positions[positionIndex++] = position.x;\n positions[positionIndex++] = position.y;\n positions[positionIndex++] = position.z;\n\n numInterior = 2 * i + 2;\n for (j = 1; j < numInterior - 1; ++j) {\n t = j / (numInterior - 1);\n interiorPosition = Cartesian3.lerp(\n position,\n reflectedPosition,\n t,\n scratchCartesian3\n );\n positions[positionIndex++] = interiorPosition.x;\n positions[positionIndex++] = interiorPosition.y;\n positions[positionIndex++] = interiorPosition.z;\n }\n\n positions[positionIndex++] = reflectedPosition.x;\n positions[positionIndex++] = reflectedPosition.y;\n positions[positionIndex++] = reflectedPosition.z;\n }\n\n if (addEdgePositions) {\n outerPositions[outerRightIndex--] = position.z;\n outerPositions[outerRightIndex--] = position.y;\n outerPositions[outerRightIndex--] = position.x;\n outerPositions[outerLeftIndex++] = reflectedPosition.x;\n outerPositions[outerLeftIndex++] = reflectedPosition.y;\n outerPositions[outerLeftIndex++] = reflectedPosition.z;\n }\n\n theta = CesiumMath.PI_OVER_TWO - (i + 1) * deltaTheta;\n }\n\n // Compute points in the 'western' half of the ellipse\n for (i = numPts; i > 1; --i) {\n theta = CesiumMath.PI_OVER_TWO - (i - 1) * deltaTheta;\n\n position = pointOnEllipsoid(\n -theta,\n rotation,\n northVec,\n eastVec,\n aSqr,\n ab,\n bSqr,\n mag,\n unitPos,\n position\n );\n reflectedPosition = pointOnEllipsoid(\n theta + Math.PI,\n rotation,\n northVec,\n eastVec,\n aSqr,\n ab,\n bSqr,\n mag,\n unitPos,\n reflectedPosition\n );\n\n if (addFillPositions) {\n positions[positionIndex++] = position.x;\n positions[positionIndex++] = position.y;\n positions[positionIndex++] = position.z;\n\n numInterior = 2 * (i - 1) + 2;\n for (j = 1; j < numInterior - 1; ++j) {\n t = j / (numInterior - 1);\n interiorPosition = Cartesian3.lerp(\n position,\n reflectedPosition,\n t,\n scratchCartesian3\n );\n positions[positionIndex++] = interiorPosition.x;\n positions[positionIndex++] = interiorPosition.y;\n positions[positionIndex++] = interiorPosition.z;\n }\n\n positions[positionIndex++] = reflectedPosition.x;\n positions[positionIndex++] = reflectedPosition.y;\n positions[positionIndex++] = reflectedPosition.z;\n }\n\n if (addEdgePositions) {\n outerPositions[outerRightIndex--] = position.z;\n outerPositions[outerRightIndex--] = position.y;\n outerPositions[outerRightIndex--] = position.x;\n outerPositions[outerLeftIndex++] = reflectedPosition.x;\n outerPositions[outerLeftIndex++] = reflectedPosition.y;\n outerPositions[outerLeftIndex++] = reflectedPosition.z;\n }\n }\n\n theta = CesiumMath.PI_OVER_TWO;\n position = pointOnEllipsoid(\n -theta,\n rotation,\n northVec,\n eastVec,\n aSqr,\n ab,\n bSqr,\n mag,\n unitPos,\n position\n );\n\n const r = {};\n if (addFillPositions) {\n positions[positionIndex++] = position.x;\n positions[positionIndex++] = position.y;\n positions[positionIndex++] = position.z;\n r.positions = positions;\n r.numPts = numPts;\n }\n if (addEdgePositions) {\n outerPositions[outerRightIndex--] = position.z;\n outerPositions[outerRightIndex--] = position.y;\n outerPositions[outerRightIndex--] = position.x;\n r.outerPositions = outerPositions;\n }\n\n return r;\n};\nexport default EllipseGeometryLibrary;\n"],"names":["Cartesian3","Quaternion","Matrix3","CesiumMath"],"mappings":"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"} |