UNPKG

@polygonjs/polygonjs

Version:

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

41 lines (40 loc) 1.51 kB
"use strict"; import { AttribType } from "../../../../../core/geometry/Constant"; import { TypeAssert } from "../../../../poly/Assert"; import { CoreMask } from "../../../../../core/geometry/Mask"; import { defaultAttribValue } from "./Common"; export function addObjectAttributeWithoutExpression(attribType, coreGroup, params) { const coreObjects = CoreMask.filterCoreObjects(coreGroup, params, coreGroup.allCoreObjects()); const attribName = params.name; const allCoreObjects = coreGroup.allCoreObjects(); const defaultValue = defaultAttribValue(params); if (defaultValue != null) { for (let coreObject of allCoreObjects) { if (!coreObject.hasAttribute(attribName)) { coreObject.setAttribValue(attribName, defaultValue); } } } switch (attribType) { case AttribType.NUMERIC: _addNumericAttributeToObjects(coreObjects, params); return; case AttribType.STRING: _addStringAttributeToObjects(coreObjects, params); return; } TypeAssert.unreachable(attribType); } function _addNumericAttributeToObjects(coreObjects, params) { const value = [params.value1, params.value2, params.value3, params.value4][params.size - 1]; const attribName = params.name; for (let coreObject of coreObjects) { coreObject.setAttribValue(attribName, value); } } function _addStringAttributeToObjects(coreObjects, params) { const value = params.string; for (let coreObject of coreObjects) { coreObject.setAttribValue(params.name, value); } }