PackingNode.js 742 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import TempNode from '../core/TempNode.js';
  2. import { mul } from '../shadernode/ShaderNodeBaseElements.js';
  3. class PackingNode extends TempNode {
  4. constructor( scope, node ) {
  5. super();
  6. this.scope = scope;
  7. this.node = node;
  8. }
  9. getNodeType( builder ) {
  10. return this.node.getNodeType( builder );
  11. }
  12. construct() {
  13. const { scope, node } = this;
  14. let result = null;
  15. if ( scope === PackingNode.DIRECTION_TO_COLOR ) {
  16. result = mul( node, 0.5 ).add( 0.5 );
  17. } else if ( scope === PackingNode.COLOR_TO_DIRECTION ) {
  18. result = mul( node, 2.0 ).sub( 1 );
  19. }
  20. return result;
  21. }
  22. }
  23. PackingNode.DIRECTION_TO_COLOR = 'directionToColor';
  24. PackingNode.COLOR_TO_DIRECTION = 'colorToDirection';
  25. export default PackingNode;