81 lines
1.9 KiB
JavaScript
81 lines
1.9 KiB
JavaScript
|
|
import * as interpolate from './interpolation';
|
|
|
|
|
|
function Options() {
|
|
/* Settings common to all implemented algorithms */
|
|
this.successCallback = null;
|
|
this.verbose = false;
|
|
this.polygons = false;
|
|
this.polygons_full = false;
|
|
this.linearRing = true;
|
|
this.noQuadTree = false;
|
|
this.noFrame = false;
|
|
}
|
|
|
|
|
|
/* Compose settings specific to IsoBands algorithm */
|
|
function isoBandOptions(userSettings) {
|
|
var i,
|
|
key,
|
|
val,
|
|
bandOptions,
|
|
optionKeys;
|
|
|
|
bandOptions = new Options();
|
|
userSettings = userSettings ? userSettings : {};
|
|
optionKeys = Object.keys(bandOptions);
|
|
|
|
for(i = 0; i < optionKeys.length; i++) {
|
|
key = optionKeys[i];
|
|
val = userSettings[key];
|
|
if ((typeof val !== 'undefined') && (val !== null))
|
|
bandOptions[key] = val;
|
|
}
|
|
|
|
/* restore compatibility */
|
|
bandOptions.polygons_full = !bandOptions.polygons;
|
|
|
|
/* add interpolation functions (not yet user customizable) */
|
|
bandOptions.interpolate = interpolate.linear_ab;
|
|
bandOptions.interpolate_a = interpolate.linear_a;
|
|
bandOptions.interpolate_b = interpolate.linear_b;
|
|
|
|
return bandOptions;
|
|
}
|
|
|
|
|
|
/* Compose settings specific to IsoLines algorithm */
|
|
function isoLineOptions(userSettings) {
|
|
var i,
|
|
key,
|
|
val,
|
|
lineOptions,
|
|
optionKeys;
|
|
|
|
lineOptions = new Options();
|
|
userSettings = userSettings ? userSettings : {};
|
|
optionKeys = Object.keys(lineOptions);
|
|
|
|
for(i = 0; i < optionKeys.length; i++) {
|
|
key = optionKeys[i];
|
|
val = userSettings[key];
|
|
if ((typeof val !== 'undefined') && (val !== null))
|
|
lineOptions[key] = val;
|
|
}
|
|
|
|
/* restore compatibility */
|
|
lineOptions.polygons_full = !lineOptions.polygons;
|
|
|
|
/* add interpolation functions (not yet user customizable) */
|
|
lineOptions.interpolate = interpolate.linear;
|
|
|
|
return lineOptions;
|
|
}
|
|
|
|
|
|
export {
|
|
isoBandOptions,
|
|
isoLineOptions
|
|
};
|