{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-triangle-grid/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-triangle-grid/dist/cjs/index.cjs","sourcesContent":[null,"import {\n BBox,\n Feature,\n Polygon,\n FeatureCollection,\n GeoJsonProperties,\n} from \"geojson\";\nimport { distance } from \"@turf/distance\";\nimport { intersect } from \"@turf/intersect\";\nimport { polygon, featureCollection, Units } from \"@turf/helpers\";\n\n/**\n * Creates a grid of triangular polygons.\n *\n * @function\n * @param {BBox} bbox extent of grid in [minX, minY, maxX, maxY] order\n * @param {number} cellSide dimension of each grid cell. Two triangles are created in each cell.\n * @param {Object} [options={}] Optional parameters\n * @param {Units} [options.units='kilometers'] used in calculating cellSide. Supports all valid Turf {@link https://github.com/Turfjs/turf/blob/master/packages/turf-helpers/README_UNITS.md Units}\n * @param {Feature} [options.mask] if passed a Polygon or MultiPolygon, the grid Points will be created only inside it\n * @param {Object} [options.properties={}] passed to each point of the grid\n * @returns {FeatureCollection} grid of polygons\n * @example\n * var bbox = [-95, 30 ,-85, 40];\n * var cellSide = 50;\n * var options = {units: 'miles'};\n *\n * var triangleGrid = turf.triangleGrid(bbox, cellSide, options);\n *\n * //addToMap\n * var addToMap = [triangleGrid];\n */\nfunction triangleGrid

(\n bbox: BBox,\n cellSide: number,\n options: {\n units?: Units;\n properties?: P;\n mask?: Feature;\n } = {}\n): FeatureCollection {\n // Containers\n var results: Feature[] = [];\n\n // Input Validation is being handled by Typescript\n\n // if (cellSide === null || cellSide === undefined) throw new Error('cellSide is required');\n // if (!isNumber(cellSide)) throw new Error('cellSide is invalid');\n // if (!bbox) throw new Error('bbox is required');\n // if (!Array.isArray(bbox)) throw new Error('bbox must be array');\n // if (bbox.length !== 4) throw new Error('bbox must contain 4 numbers');\n // if (mask && ['Polygon', 'MultiPolygon'].indexOf(getType(mask)) === -1) throw new Error('options.mask must be a (Multi)Polygon');\n\n // Main\n var xFraction =\n cellSide / distance([bbox[0], bbox[1]], [bbox[2], bbox[1]], options);\n var cellWidth = xFraction * (bbox[2] - bbox[0]);\n var yFraction =\n cellSide / distance([bbox[0], bbox[1]], [bbox[0], bbox[3]], options);\n var cellHeight = yFraction * (bbox[3] - bbox[1]);\n\n var xi = 0;\n var currentX = bbox[0];\n while (currentX <= bbox[2]) {\n var yi = 0;\n var currentY = bbox[1];\n while (currentY <= bbox[3]) {\n var cellTriangle1 = null;\n var cellTriangle2 = null;\n\n if (xi % 2 === 0 && yi % 2 === 0) {\n cellTriangle1 = polygon(\n [\n [\n [currentX, currentY],\n [currentX, currentY + cellHeight],\n [currentX + cellWidth, currentY],\n [currentX, currentY],\n ],\n ],\n options.properties\n );\n cellTriangle2 = polygon(\n [\n [\n [currentX, currentY + cellHeight],\n [currentX + cellWidth, currentY + cellHeight],\n [currentX + cellWidth, currentY],\n [currentX, currentY + cellHeight],\n ],\n ],\n options.properties\n );\n } else if (xi % 2 === 0 && yi % 2 === 1) {\n cellTriangle1 = polygon(\n [\n [\n [currentX, currentY],\n [currentX + cellWidth, currentY + cellHeight],\n [currentX + cellWidth, currentY],\n [currentX, currentY],\n ],\n ],\n options.properties\n );\n cellTriangle2 = polygon(\n [\n [\n [currentX, currentY],\n [currentX, currentY + cellHeight],\n [currentX + cellWidth, currentY + cellHeight],\n [currentX, currentY],\n ],\n ],\n options.properties\n );\n } else if (yi % 2 === 0 && xi % 2 === 1) {\n cellTriangle1 = polygon(\n [\n [\n [currentX, currentY],\n [currentX, currentY + cellHeight],\n [currentX + cellWidth, currentY + cellHeight],\n [currentX, currentY],\n ],\n ],\n options.properties\n );\n cellTriangle2 = polygon(\n [\n [\n [currentX, currentY],\n [currentX + cellWidth, currentY + cellHeight],\n [currentX + cellWidth, currentY],\n [currentX, currentY],\n ],\n ],\n options.properties\n );\n } else if (yi % 2 === 1 && xi % 2 === 1) {\n cellTriangle1 = polygon(\n [\n [\n [currentX, currentY],\n [currentX, currentY + cellHeight],\n [currentX + cellWidth, currentY],\n [currentX, currentY],\n ],\n ],\n options.properties\n );\n cellTriangle2 = polygon(\n [\n [\n [currentX, currentY + cellHeight],\n [currentX + cellWidth, currentY + cellHeight],\n [currentX + cellWidth, currentY],\n [currentX, currentY + cellHeight],\n ],\n ],\n options.properties\n );\n }\n if (options.mask) {\n if (intersect(featureCollection([options.mask, cellTriangle1!])))\n results.push(cellTriangle1!);\n if (intersect(featureCollection([options.mask, cellTriangle2!])))\n results.push(cellTriangle2!);\n } else {\n results.push(cellTriangle1!);\n results.push(cellTriangle2!);\n }\n\n currentY += cellHeight;\n yi++;\n }\n xi++;\n currentX += cellWidth;\n }\n return featureCollection(results);\n}\n\nexport { triangleGrid };\nexport default triangleGrid;\n"]}