RotateUVNode.js 739 B

1234567891011121314151617181920212223242526272829303132333435
  1. import TempNode from '../core/TempNode.js';
  2. import { addNodeClass } from '../core/Node.js';
  3. import { addNodeElement, nodeProxy, vec2 } from '../shadernode/ShaderNode.js';
  4. class RotateUVNode extends TempNode {
  5. constructor( uvNode, rotationNode, centerNode = vec2( 0.5 ) ) {
  6. super( 'vec2' );
  7. this.uvNode = uvNode;
  8. this.rotationNode = rotationNode;
  9. this.centerNode = centerNode;
  10. }
  11. setup() {
  12. const { uvNode, rotationNode, centerNode } = this;
  13. const vector = uvNode.sub( centerNode );
  14. return vector.rotate( rotationNode ).add( centerNode );
  15. }
  16. }
  17. export default RotateUVNode;
  18. export const rotateUV = nodeProxy( RotateUVNode );
  19. addNodeElement( 'rotateUV', rotateUV );
  20. addNodeClass( 'RotateUVNode', RotateUVNode );