UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

62 lines (58 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.posterize = exports.default = void 0; var _TempNode = _interopRequireDefault(require("../core/TempNode.js")); var _TSLBase = require("../tsl/TSLBase.js"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Represents a posterize effect which reduces the number of colors * in an image, resulting in a more blocky and stylized appearance. * * @augments TempNode */ class PosterizeNode extends _TempNode.default { static get type() { return 'PosterizeNode'; } /** * Constructs a new posterize node. * * @param {Node} sourceNode - The input color. * @param {Node} stepsNode - Controls the intensity of the posterization effect. A lower number results in a more blocky appearance. */ constructor(sourceNode, stepsNode) { super(); /** * The input color. * * @type {Node} */ this.sourceNode = sourceNode; /** * Controls the intensity of the posterization effect. A lower number results in a more blocky appearance. * * @type {Node} */ this.stepsNode = stepsNode; } setup() { const { sourceNode, stepsNode } = this; return sourceNode.mul(stepsNode).floor().div(stepsNode); } } var _default = exports.default = PosterizeNode; /** * TSL function for creating a posterize node. * * @tsl * @function * @param {Node} sourceNode - The input color. * @param {Node} stepsNode - Controls the intensity of the posterization effect. A lower number results in a more blocky appearance. * @returns {PosterizeNode} */ const posterize = exports.posterize = /*@__PURE__*/(0, _TSLBase.nodeProxy)(PosterizeNode).setParameterLength(2);