UNPKG

polygonjs-engine

Version:

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

33 lines (32 loc) 1.06 kB
import {BaseSopOperation} from "./_Base"; import {CoreGeometry} from "../../geometry/Geometry"; const POSITION = "position"; export class PeakSopOperation extends BaseSopOperation { static type() { return "peak"; } cook(input_contents, params) { const core_group = input_contents[0]; let core_geometry, point; for (let object of core_group.objects()) { object.traverse((child_object) => { let geometry; if ((geometry = child_object.geometry) != null) { core_geometry = new CoreGeometry(geometry); for (point of core_geometry.points()) { const normal = point.normal(); const position = point.position(); const new_position = position.clone().add(normal.multiplyScalar(params.amount)); point.setPosition(new_position); } const attrib = core_geometry.geometry().getAttribute(POSITION); attrib.needsUpdate = true; } }); } return input_contents[0]; } } PeakSopOperation.DEFAULT_PARAMS = { amount: 1 };