12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { LabelElement } from 'flow';
- import { BaseNodeEditor } from '../BaseNodeEditor.js';
- import { nodeObject, float } from 'three/tsl';
- import { setInputAestheticsFromType, setOutputAestheticsFromType } from '../DataTypeLib.js';
- export class SplitEditor extends BaseNodeEditor {
- constructor() {
- super( 'Split', null, 175 );
- let node = null;
- const inputElement = setInputAestheticsFromType( new LabelElement( 'Input' ), 'node' ).onConnect( () => {
- node = inputElement.getLinkedObject();
- if ( node !== null ) {
- xElement.setObject( nodeObject( node ).x );
- yElement.setObject( nodeObject( node ).y );
- zElement.setObject( nodeObject( node ).z );
- wElement.setObject( nodeObject( node ).w );
- } else {
- xElement.setObject( float() );
- yElement.setObject( float() );
- zElement.setObject( float() );
- wElement.setObject( float() );
- }
- } );
- const xElement = setOutputAestheticsFromType( new LabelElement( 'x | r' ), 'Number' ).setObject( float() );
- const yElement = setOutputAestheticsFromType( new LabelElement( 'y | g' ), 'Number' ).setObject( float() );
- const zElement = setOutputAestheticsFromType( new LabelElement( 'z | b' ), 'Number' ).setObject( float() );
- const wElement = setOutputAestheticsFromType( new LabelElement( 'w | a' ), 'Number' ).setObject( float() );
- this.add( inputElement )
- .add( xElement )
- .add( yElement )
- .add( zElement )
- .add( wElement );
- }
- }
|