UNPKG

@polygonjs/polygonjs

Version:

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

32 lines (27 loc) 1.05 kB
import {BufferGeometry} from 'three'; import {TetGeometry} from '../TetGeometry'; import {BaseSopOperation} from '../../../../../engine/operations/sop/_Base'; import {ObjectType} from '../../../Constant'; import {TetTesselationParams} from '../TetCommon'; import {SphereBuilder} from '../../../builders/SphereBuilder'; import {CoreGeometryBuilderMerge} from '../../three/builders/Merge'; export function tetToSphere(tetGeometry: TetGeometry, tesselationParams: TetTesselationParams) { const {tetrahedrons} = tetGeometry; const geometries: BufferGeometry[] = []; tetrahedrons.forEach((tet) => { const {radius, center} = tet.sphere; const geometry = SphereBuilder.create({ radius: radius, widthSegments: 32, heightSegments: 32, asLines: true, open: false, }); geometry.translate(center.x, center.y, center.z); geometries.push(geometry); }); const mergedGeometry = CoreGeometryBuilderMerge.merge(geometries); if (mergedGeometry) { return BaseSopOperation.createObject(mergedGeometry, ObjectType.LINE_SEGMENTS); } }