12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import TempNode from '../core/TempNode.js';
- import { addNodeClass } from '../core/Node.js';
- import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
- class PackingNode extends TempNode {
- constructor( scope, node ) {
- super();
- this.scope = scope;
- this.node = node;
- }
- getNodeType( builder ) {
- return this.node.getNodeType( builder );
- }
- setup() {
- const { scope, node } = this;
- let result = null;
- if ( scope === PackingNode.DIRECTION_TO_COLOR ) {
- result = node.mul( 0.5 ).add( 0.5 );
- } else if ( scope === PackingNode.COLOR_TO_DIRECTION ) {
- result = node.mul( 2.0 ).sub( 1 );
- }
- return result;
- }
- }
- PackingNode.DIRECTION_TO_COLOR = 'directionToColor';
- PackingNode.COLOR_TO_DIRECTION = 'colorToDirection';
- export default PackingNode;
- export const directionToColor = nodeProxy( PackingNode, PackingNode.DIRECTION_TO_COLOR );
- export const colorToDirection = nodeProxy( PackingNode, PackingNode.COLOR_TO_DIRECTION );
- addNodeElement( 'directionToColor', directionToColor );
- addNodeElement( 'colorToDirection', colorToDirection );
- addNodeClass( 'PackingNode', PackingNode );
|