UNPKG

@prescott/geo-pattern

Version:

Create beautiful generative geometric background images from a string.

49 lines 1.87 kB
"use strict"; 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