UNPKG

@polygonjs/polygonjs

Version:

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

28 lines (27 loc) 951 B
"use strict"; 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; }