UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

58 lines (55 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.expression = exports.default = void 0; var _Node = _interopRequireDefault(require("../core/Node.js")); var _TSLCore = require("../tsl/TSLCore.js"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * This class can be used to implement basic expressions in shader code. * Basic examples for that are `return`, `continue` or `discard` statements. * * @augments Node */ class ExpressionNode extends _Node.default { static get type() { return 'ExpressionNode'; } /** * Constructs a new expression node. * * @param {string} [snippet=''] - The native code snippet. * @param {string} [nodeType='void'] - The node type. */ constructor(snippet = '', nodeType = 'void') { super(nodeType); /** * The native code snippet. * * @type {string} * @default '' */ this.snippet = snippet; } generate(builder, output) { const type = this.getNodeType(builder); const snippet = this.snippet; if (type === 'void') { builder.addLineFlowCode(snippet, this); } else { return builder.format(snippet, type, output); } } } var _default = exports.default = ExpressionNode; /** * TSL function for creating an expression node. * * @tsl * @function * @param {string} [snippet] - The native code snippet. * @param {?string} [nodeType='void'] - The node type. * @returns {ExpressionNode} */ const expression = exports.expression = /*@__PURE__*/(0, _TSLCore.nodeProxy)(ExpressionNode).setParameterLength(1, 2);