@prescott/geo-pattern
Version:
Create beautiful generative geometric background images from a string.
49 lines • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PatternGenerator = void 0;
const background_composers_1 = require("./background-composers");
const color_preset_1 = require("./color-preset");
const pattern_1 = require("./pattern");
const pattern_selector_1 = require("./pattern-selector");
const pattern_validator_1 = require("./pattern-validator");
class PatternGenerator {
constructor(params) {
this.seed = params.seed;
this.preset = {
fill: {
dark: "#222",
light: "#ddd",
},
stroke: {
color: "#000",
opacity: 0.02,
},
opacity: {
min: 0.02,
max: 0.15,
},
};
this.color = new color_preset_1.ColorPreset("#933c3c");
if (params.color) {
this.color.color = params.color;
}
if (params.baseColor) {
this.color.baseColor = params.baseColor;
}
const requestedPatterns = params.patterns || [];
const validator = new pattern_validator_1.PatternValidator();
validator.validate(requestedPatterns);
const structureSelector = new pattern_selector_1.PatternSelector(requestedPatterns, this.seed);
const SelectedStructure = structureSelector.select();
this.backgroundComposer = new background_composers_1.SolidBackgroundComposer(this.seed, this.color);
this.structureComposer = new SelectedStructure(this.seed, this.preset);
}
async generate() {
const pattern = new pattern_1.Pattern();
await this.backgroundComposer.compose(pattern);
await this.structureComposer.compose(pattern);
return pattern;
}
}
exports.PatternGenerator = PatternGenerator;
//# sourceMappingURL=pattern-generator.js.map