@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
50 lines (49 loc) • 1.63 kB
JavaScript
;
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;
}
}