// Collection of math functions // // 1. Combine components together // 2. Has async init to load wasm modules // 'use strict'; const inherits = require('inherits'); const Multimath = require('multimath'); const mm_unsharp_mask = require('./mm_unsharp_mask'); const mm_resize = require('./mm_resize'); function MathLib(requested_features) { const __requested_features = requested_features || []; let features = { js: __requested_features.indexOf('js') >= 0, wasm: __requested_features.indexOf('wasm') >= 0 }; Multimath.call(this, features); this.features = { js: features.js, wasm: features.wasm && this.has_wasm() }; this.use(mm_unsharp_mask); this.use(mm_resize); } inherits(MathLib, Multimath); MathLib.prototype.resizeAndUnsharp = function resizeAndUnsharp(options, cache) { let result = this.resize(options, cache); if (options.unsharpAmount) { this.unsharp_mask( result, options.toWidth, options.toHeight, options.unsharpAmount, options.unsharpRadius, options.unsharpThreshold ); } return result; }; module.exports = MathLib;