@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
28 lines (22 loc) • 988 B
text/typescript
import {PolyScene} from '../PolyScene';
import {Object3D} from 'three';
import {CorePath, objectsByMask, CorePathObjCallback} from '../../../core/geometry/CorePath';
import {CoreObjectType, ObjectContent} from '../../../core/geometry/ObjectContent';
export const ROOT_NAME = '/';
export class ObjectsController {
constructor(private scene: PolyScene) {}
findObjectByMask<T extends CoreObjectType>(mask: string): ObjectContent<T> | undefined {
return CorePath.findObjectByMask(mask, this.scene.threejsScene());
}
objectsByMask<T extends CoreObjectType>(mask: string, parent?: ObjectContent<T>): ObjectContent<T>[] {
return objectsByMask(mask, parent || this.scene.threejsScene(), false);
}
traverseObjectsWithMask<T extends CoreObjectType>(
mask: string,
callback: CorePathObjCallback<T>,
object: Object3D | undefined,
invertMask: boolean = false
) {
CorePath.traverseObjectsWithMaskInObject(mask, object || this.scene.threejsScene(), callback, invertMask);
}
}