1 |
- {"version":3,"file":"EllipseGeometryLibrary-12b8d523.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\nvar EllipseGeometryLibrary = {};\n\nvar rotAxis = new Cartesian3();\nvar tempVec = new Cartesian3();\nvar unitQuat = new Quaternion();\nvar 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 var 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 var cosThetaSquared = Math.cos(theta);\n cosThetaSquared = cosThetaSquared * cosThetaSquared;\n\n var sinThetaSquared = Math.sin(theta);\n sinThetaSquared = sinThetaSquared * sinThetaSquared;\n\n var radius = ab / Math.sqrt(bSqr * cosThetaSquared + aSqr * sinThetaSquared);\n var 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\nvar scratchCartesian1 = new Cartesian3();\nvar scratchCartesian2 = new Cartesian3();\nvar scratchCartesian3 = new Cartesian3();\nvar 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 var ellipsoid = options.ellipsoid;\n var height = options.height;\n var extrudedHeight = options.extrudedHeight;\n var size = extrude ? (positions.length / 3) * 2 : positions.length / 3;\n\n var finalPositions = new Float64Array(size * 3);\n\n var length = positions.length;\n var bottomOffset = extrude ? length : 0;\n for (var i = 0; i < length; i += 3) {\n var i1 = i + 1;\n var i2 = i + 2;\n\n var position = Cartesian3.fromArray(positions, i, scratchCartesian1);\n ellipsoid.scaleToGeodeticSurface(position, position);\n\n var extrudedPosition = Cartesian3.clone(position, scratchCartesian2);\n var normal = ellipsoid.geodeticSurfaceNormal(position, scratchNormal);\n var 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\nvar unitPosScratch = new Cartesian3();\nvar eastVecScratch = new Cartesian3();\nvar 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 var semiMinorAxis = options.semiMinorAxis;\n var semiMajorAxis = options.semiMajorAxis;\n var rotation = options.rotation;\n var 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 var granularity = options.granularity * 8.0;\n\n var aSqr = semiMinorAxis * semiMinorAxis;\n var bSqr = semiMajorAxis * semiMajorAxis;\n var ab = semiMajorAxis * semiMinorAxis;\n\n var mag = Cartesian3.magnitude(center);\n\n var unitPos = Cartesian3.normalize(center, unitPosScratch);\n var eastVec = Cartesian3.cross(Cartesian3.UNIT_Z, center, eastVecScratch);\n eastVec = Cartesian3.normalize(eastVec, eastVec);\n var northVec = Cartesian3.cross(unitPos, eastVec, northVecScratch);\n\n // The number of points in the first quadrant\n var numPts = 1 + Math.ceil(CesiumMath.PI_OVER_TWO / granularity);\n\n var deltaTheta = CesiumMath.PI_OVER_TWO / (numPts - 1);\n var 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 var size = 2 * (numPts * (numPts + 2));\n var positions = addFillPositions ? new Array(size * 3) : undefined;\n var positionIndex = 0;\n var position = scratchCartesian1;\n var reflectedPosition = scratchCartesian2;\n\n var outerPositionsLength = numPts * 4 * 3;\n var outerRightIndex = outerPositionsLength - 1;\n var outerLeftIndex = 0;\n var outerPositions = addEdgePositions\n ? new Array(outerPositionsLength)\n : undefined;\n\n var i;\n var j;\n var numInterior;\n var t;\n var 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 var 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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"}
|