@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
28 lines (27 loc) • 951 B
JavaScript
;
import { markedAsInstance } from "../../GeometryUtils";
import { InstanceAttrib } from "../../Instancer";
import { Attribute } from "../../Attribute";
import { ThreejsPoint } from "./ThreejsPoint";
export function positionAttributeNameFromBufferGeometry(geometry) {
return markedAsInstance(geometry) ? InstanceAttrib.POSITION : Attribute.POSITION;
}
export function pointsCountFromBufferGeometry(geometry) {
const attribName = positionAttributeNameFromBufferGeometry(geometry);
if (!attribName) {
return 0;
}
const positionAttribute = geometry.getAttribute(attribName);
if (!positionAttribute) {
return 0;
}
return positionAttribute.count;
}
export function pointsFromThreejsObject(object) {
const pointsCount = pointsCountFromBufferGeometry(object.geometry);
const points = new Array(pointsCount);
for (let i = 0; i < pointsCount; i++) {
points[i] = new ThreejsPoint(object, i);
}
return points;
}