polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
33 lines (26 loc) • 1.02 kB
text/typescript
import {CoreGeometryUtilCircle} from './Circle';
import {ShapeBufferGeometry} from 'three/src/geometries/ShapeBufferGeometry';
import {Shape} from 'three/src/extras/core/Shape';
import {Vector3} from 'three/src/math/Vector3';
export class CoreGeometryUtilShape {
static geometry_from_points(positions: Vector3[]) {
const positions_2d = CoreGeometryUtilCircle.positions(1, positions.length);
const shape = new Shape();
const first_position_2d = positions_2d[0];
shape.moveTo(first_position_2d.x, first_position_2d.y);
positions_2d.forEach((position_2d, i) => {
if (i > 0) {
shape.lineTo(position_2d.x, position_2d.y);
}
});
const geometry = new ShapeBufferGeometry(shape);
const position_array = geometry.attributes['position'].array as number[];
positions.forEach(function (position, i) {
// const position = point.position()
position_array[3 * i + 0] = position.x;
position_array[3 * i + 1] = position.y;
position_array[3 * i + 2] = position.z;
});
return geometry;
}
}