UNPKG

@polygonjs/polygonjs

Version:

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

50 lines (49 loc) 1.63 kB
"use strict"; import { ObjectNamedFunction2 } from "./_Base"; import { dummyReadRefVal } from "../../core/reactivity/CoreReactivity"; import { InstanceAttrib } from "../../core/geometry/Instancer"; export class getPointInstancePosition extends ObjectNamedFunction2 { static type() { return "getPointInstancePosition"; } func(object3D, ptnum, target) { dummyReadRefVal(this.timeController.timeUniform().value); if (!object3D.geometry) { target.set(0, 0, 0); return target; } const positionAttribute = object3D.geometry.getAttribute(InstanceAttrib.POSITION); target.fromBufferAttribute(positionAttribute, ptnum); return target; } } export class getPointInstanceQuaternion extends ObjectNamedFunction2 { static type() { return "getPointInstanceQuaternion"; } func(object3D, ptnum, target) { dummyReadRefVal(this.timeController.timeUniform().value); if (!object3D.geometry) { target.identity(); return target; } const positionAttribute = object3D.geometry.getAttribute(InstanceAttrib.QUATERNION); target.fromBufferAttribute(positionAttribute, ptnum); return target; } } export class getPointInstanceScale extends ObjectNamedFunction2 { static type() { return "getPointInstanceScale"; } func(object3D, ptnum, target) { dummyReadRefVal(this.timeController.timeUniform().value); if (!object3D.geometry) { target.set(0, 0, 0); return target; } const positionAttribute = object3D.geometry.getAttribute(InstanceAttrib.SCALE); target.fromBufferAttribute(positionAttribute, ptnum); return target; } }