UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

31 lines (30 loc) 1.06 kB
"use strict"; import { isBooleanTrue } from "../../../../../core/BooleanValue"; export class ByExpressionHelper { constructor(node) { this.node = node; } async evalForEntities(entities) { const param = this.node.p.expression; if (this.node.p.expression.hasExpression() && param.expressionController && param.expressionController.entitiesDependent()) { await this._evalEntityDependentExpression(entities, param.expressionController); } else { this._evalExpressionsWithoutEntityDependentExpression(entities); } } async _evalEntityDependentExpression(entities, expressionController) { await expressionController.computeExpressionForEntities(entities, (entity, value) => { if (value) { this.node.entitySelectionHelper.select(entity); } }); } _evalExpressionsWithoutEntityDependentExpression(entities) { const value = isBooleanTrue(this.node.pv.expression); if (value) { for (const entity of entities) { this.node.entitySelectionHelper.select(entity); } } } }