UNPKG

@polygonjs/polygonjs

Version:

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

23 lines (19 loc) 883 B
import {CADGroupSopNode} from '../../CADGroup'; import {Box3, Vector3} from 'three'; import {CoreEntity} from '../../../../../core/geometry/CoreEntity'; import {CoreEntitySelectionState, updateSelectionState} from './GroupCommon'; const bbox = new Box3(); const bboxHalfSize = new Vector3(); const entityPosition = new Vector3(); export class GroupByBoundingBoxHelper { constructor(private node: CADGroupSopNode) {} evalForEntities(allEntities: CoreEntity[], selectionStates: CoreEntitySelectionState) { bboxHalfSize.copy(this.node.pv.boundingBoxSize).multiplyScalar(0.5); bbox.min.copy(this.node.pv.boundingBoxCenter).sub(bboxHalfSize); bbox.max.copy(this.node.pv.boundingBoxCenter).add(bboxHalfSize); for (const entity of allEntities) { entity.position(entityPosition); updateSelectionState(selectionStates, entity, bbox.containsPoint(entityPosition)); } } }