@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
40 lines (35 loc) • 1.18 kB
text/typescript
import {Object3D} from 'three';
import {PolyScene} from '../../../scene/PolyScene';
// import {BaseActorNodeType} from '../../../nodes/actor/_Base';
import {ActorBuilderNode} from '../ActorsManager';
// export function objectsForActorNode(node: BaseActorNodeType) {
// const matchedObjects: Object3D[] = [];
// const scene = node.scene();
// const actorsManager = scene.actorsManager;
// const parentNode = actorsManager.parentActorBuilderNode(node);
// scene.threejsScene().traverse((object) => {
// const nodeIds = actorsManager.objectActorNodeIds(object);
// if (!parentNode) {
// return;
// }
// if (!nodeIds) {
// return;
// }
// if (!nodeIds.includes(parentNode.graphNodeId())) {
// return;
// }
// matchedObjects.push(object);
// });
// return matchedObjects;
// }
export function actorNodesForObject(object: Object3D, scene: PolyScene) {
const actorsManager = scene.actorsManager;
const nodeIds = actorsManager.objectActorNodeIds(object);
if (!nodeIds) {
return;
}
const actorBuilderNodes = nodeIds
.map((nodeId) => scene.graph.nodeFromId(nodeId) as ActorBuilderNode)
.filter((node) => node);
return actorBuilderNodes;
}