PositionEditor.js 726 B

123456789101112131415161718192021222324252627282930
  1. import { SelectInput, Element } from '../../libs/flow.module.js';
  2. import { BaseNode } from '../core/BaseNode.js';
  3. import { PositionNode } from 'three/nodes';
  4. export class PositionEditor extends BaseNode {
  5. constructor() {
  6. const node = new PositionNode();
  7. super( 'Position', 3, node, 200 );
  8. const optionsField = new SelectInput( [
  9. { name: 'Local', value: PositionNode.LOCAL },
  10. { name: 'World', value: PositionNode.WORLD },
  11. { name: 'View', value: PositionNode.VIEW },
  12. { name: 'View Direction', value: PositionNode.VIEW_DIRECTION }
  13. ], PositionNode.LOCAL ).onChange( () => {
  14. node.scope = optionsField.getValue();
  15. this.invalidate();
  16. } );
  17. this.add( new Element().add( optionsField ) );
  18. }
  19. }