Comparing version 1.4.0 to 1.5.0
{ | ||
"name": "xdim", | ||
"version": "1.4.0", | ||
"version": "1.5.0", | ||
"description": "Multi-Dimensional Functions. Create, Query, and Transform Multi-Dimensional Data.", | ||
@@ -44,4 +44,4 @@ "main": "src/xdim.js", | ||
"dependencies": { | ||
"iter-fun": "^0.1.2" | ||
"iter-fun": "^0.2.0" | ||
} | ||
} |
@@ -220,3 +220,8 @@ # xdim | ||
column: [60, 62] // from the 61st to the 63rd column (counting from the left) | ||
} | ||
}, | ||
// optional | ||
// order to return point values | ||
// in left-to-right major order | ||
order: ["band", "row", "column"] | ||
}); | ||
@@ -223,0 +228,0 @@ ``` |
@@ -165,6 +165,6 @@ const layoutCache = {}; | ||
function iterClip({ data, layout, rect = {}, sizes = {}, useLayoutCache = true }) { | ||
function iterClip({ data, layout, order, rect = {}, sizes = {}, useLayoutCache = true }) { | ||
if (!data) throw new Error("[xdim] must specify data"); | ||
if (!layout) throw new Error("[xdim] must specify layout"); | ||
const points = iterPoints({ sizes, rect }); | ||
const points = iterPoints({ order, sizes, rect }); | ||
return wrapNextFunction(function next() { | ||
@@ -441,5 +441,5 @@ const { value: point, done } = points.next(); | ||
// iterate over all the points, saving memory vs array | ||
function iterPoints({ sizes, rect = {} }) { | ||
function iterPoints({ order, sizes, rect = {} }) { | ||
// names sorted by shortest dimension to longest dimension | ||
const names = Object.keys(sizes).sort((a, b) => sizes[a] - sizes[b]); | ||
const names = Array.isArray(order) ? order : Object.keys(sizes).sort((a, b) => sizes[a] - sizes[b]); | ||
@@ -446,0 +446,0 @@ const iters = new Array(names.length); |
45994
409
+ Addediter-fun@0.2.0(transitive)
- Removediter-fun@0.1.2(transitive)
Updatediter-fun@^0.2.0