{"version":3,"file":"RectangleGeometryLibrary-80323cc0.js","sources":["../../../../Source/Core/RectangleGeometryLibrary.js"],"sourcesContent":["import Cartesian3 from \"./Cartesian3.js\";\nimport Cartographic from \"./Cartographic.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\nimport GeographicProjection from \"./GeographicProjection.js\";\nimport CesiumMath from \"./Math.js\";\nimport Matrix2 from \"./Matrix2.js\";\nimport Rectangle from \"./Rectangle.js\";\n\nconst cos = Math.cos;\nconst sin = Math.sin;\nconst sqrt = Math.sqrt;\n\n/**\n * @private\n */\nconst RectangleGeometryLibrary = {};\n\n/**\n * @private\n */\nRectangleGeometryLibrary.computePosition = function (\n computedOptions,\n ellipsoid,\n computeST,\n row,\n col,\n position,\n st\n) {\n const radiiSquared = ellipsoid.radiiSquared;\n const nwCorner = computedOptions.nwCorner;\n const rectangle = computedOptions.boundingRectangle;\n\n let stLatitude =\n nwCorner.latitude -\n computedOptions.granYCos * row +\n col * computedOptions.granXSin;\n const cosLatitude = cos(stLatitude);\n const nZ = sin(stLatitude);\n const kZ = radiiSquared.z * nZ;\n\n let stLongitude =\n nwCorner.longitude +\n row * computedOptions.granYSin +\n col * computedOptions.granXCos;\n const nX = cosLatitude * cos(stLongitude);\n const nY = cosLatitude * sin(stLongitude);\n\n const kX = radiiSquared.x * nX;\n const kY = radiiSquared.y * nY;\n\n const gamma = sqrt(kX * nX + kY * nY + kZ * nZ);\n\n position.x = kX / gamma;\n position.y = kY / gamma;\n position.z = kZ / gamma;\n\n if (computeST) {\n const stNwCorner = computedOptions.stNwCorner;\n if (defined(stNwCorner)) {\n stLatitude =\n stNwCorner.latitude -\n computedOptions.stGranYCos * row +\n col * computedOptions.stGranXSin;\n stLongitude =\n stNwCorner.longitude +\n row * computedOptions.stGranYSin +\n col * computedOptions.stGranXCos;\n\n st.x = (stLongitude - computedOptions.stWest) * computedOptions.lonScalar;\n st.y = (stLatitude - computedOptions.stSouth) * computedOptions.latScalar;\n } else {\n st.x = (stLongitude - rectangle.west) * computedOptions.lonScalar;\n st.y = (stLatitude - rectangle.south) * computedOptions.latScalar;\n }\n }\n};\n\nconst rotationMatrixScratch = new Matrix2();\nlet nwCartesian = new Cartesian3();\nconst centerScratch = new Cartographic();\nlet centerCartesian = new Cartesian3();\nconst proj = new GeographicProjection();\n\nfunction getRotationOptions(\n nwCorner,\n rotation,\n granularityX,\n granularityY,\n center,\n width,\n height\n) {\n const cosRotation = Math.cos(rotation);\n const granYCos = granularityY * cosRotation;\n const granXCos = granularityX * cosRotation;\n\n const sinRotation = Math.sin(rotation);\n const granYSin = granularityY * sinRotation;\n const granXSin = granularityX * sinRotation;\n\n nwCartesian = proj.project(nwCorner, nwCartesian);\n\n nwCartesian = Cartesian3.subtract(nwCartesian, centerCartesian, nwCartesian);\n const rotationMatrix = Matrix2.fromRotation(rotation, rotationMatrixScratch);\n nwCartesian = Matrix2.multiplyByVector(\n rotationMatrix,\n nwCartesian,\n nwCartesian\n );\n nwCartesian = Cartesian3.add(nwCartesian, centerCartesian, nwCartesian);\n nwCorner = proj.unproject(nwCartesian, nwCorner);\n\n width -= 1;\n height -= 1;\n\n const latitude = nwCorner.latitude;\n const latitude0 = latitude + width * granXSin;\n const latitude1 = latitude - granYCos * height;\n const latitude2 = latitude - granYCos * height + width * granXSin;\n\n const north = Math.max(latitude, latitude0, latitude1, latitude2);\n const south = Math.min(latitude, latitude0, latitude1, latitude2);\n\n const longitude = nwCorner.longitude;\n const longitude0 = longitude + width * granXCos;\n const longitude1 = longitude + height * granYSin;\n const longitude2 = longitude + height * granYSin + width * granXCos;\n\n const east = Math.max(longitude, longitude0, longitude1, longitude2);\n const west = Math.min(longitude, longitude0, longitude1, longitude2);\n\n return {\n north: north,\n south: south,\n east: east,\n west: west,\n granYCos: granYCos,\n granYSin: granYSin,\n granXCos: granXCos,\n granXSin: granXSin,\n nwCorner: nwCorner,\n };\n}\n\n/**\n * @private\n */\nRectangleGeometryLibrary.computeOptions = function (\n rectangle,\n granularity,\n rotation,\n stRotation,\n boundingRectangleScratch,\n nwCornerResult,\n stNwCornerResult\n) {\n let east = rectangle.east;\n let west = rectangle.west;\n let north = rectangle.north;\n let south = rectangle.south;\n\n let northCap = false;\n let southCap = false;\n\n if (north === CesiumMath.PI_OVER_TWO) {\n northCap = true;\n }\n if (south === -CesiumMath.PI_OVER_TWO) {\n southCap = true;\n }\n\n let dx;\n const dy = north - south;\n if (west > east) {\n dx = CesiumMath.TWO_PI - west + east;\n } else {\n dx = east - west;\n }\n\n const width = Math.ceil(dx / granularity) + 1;\n const height = Math.ceil(dy / granularity) + 1;\n const granularityX = dx / (width - 1);\n const granularityY = dy / (height - 1);\n\n const nwCorner = Rectangle.northwest(rectangle, nwCornerResult);\n const center = Rectangle.center(rectangle, centerScratch);\n if (rotation !== 0 || stRotation !== 0) {\n if (center.longitude < nwCorner.longitude) {\n center.longitude += CesiumMath.TWO_PI;\n }\n centerCartesian = proj.project(center, centerCartesian);\n }\n\n const granYCos = granularityY;\n const granXCos = granularityX;\n const granYSin = 0.0;\n const granXSin = 0.0;\n\n const boundingRectangle = Rectangle.clone(\n rectangle,\n boundingRectangleScratch\n );\n\n const computedOptions = {\n granYCos: granYCos,\n granYSin: granYSin,\n granXCos: granXCos,\n granXSin: granXSin,\n nwCorner: nwCorner,\n boundingRectangle: boundingRectangle,\n width: width,\n height: height,\n northCap: northCap,\n southCap: southCap,\n };\n\n if (rotation !== 0) {\n const rotationOptions = getRotationOptions(\n nwCorner,\n rotation,\n granularityX,\n granularityY,\n center,\n width,\n height\n );\n north = rotationOptions.north;\n south = rotationOptions.south;\n east = rotationOptions.east;\n west = rotationOptions.west;\n\n //>>includeStart('debug', pragmas.debug);\n if (\n north < -CesiumMath.PI_OVER_TWO ||\n north > CesiumMath.PI_OVER_TWO ||\n south < -CesiumMath.PI_OVER_TWO ||\n south > CesiumMath.PI_OVER_TWO\n ) {\n throw new DeveloperError(\n \"Rotated rectangle is invalid. It crosses over either the north or south pole.\"\n );\n }\n //>>includeEnd('debug')\n\n computedOptions.granYCos = rotationOptions.granYCos;\n computedOptions.granYSin = rotationOptions.granYSin;\n computedOptions.granXCos = rotationOptions.granXCos;\n computedOptions.granXSin = rotationOptions.granXSin;\n\n boundingRectangle.north = north;\n boundingRectangle.south = south;\n boundingRectangle.east = east;\n boundingRectangle.west = west;\n }\n\n if (stRotation !== 0) {\n rotation = rotation - stRotation;\n const stNwCorner = Rectangle.northwest(boundingRectangle, stNwCornerResult);\n\n const stRotationOptions = getRotationOptions(\n stNwCorner,\n rotation,\n granularityX,\n granularityY,\n center,\n width,\n height\n );\n\n computedOptions.stGranYCos = stRotationOptions.granYCos;\n computedOptions.stGranXCos = stRotationOptions.granXCos;\n computedOptions.stGranYSin = stRotationOptions.granYSin;\n computedOptions.stGranXSin = stRotationOptions.granXSin;\n computedOptions.stNwCorner = stNwCorner;\n computedOptions.stWest = stRotationOptions.west;\n computedOptions.stSouth = stRotationOptions.south;\n }\n\n return computedOptions;\n};\nexport default RectangleGeometryLibrary;\n"],"names":["defined","Matrix2","Cartesian3","Cartographic","GeographicProjection","CesiumMath","Rectangle","DeveloperError"],"mappings":"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"}