36 lines
		
	
	
		
			739 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			739 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import TempNode from '../core/TempNode.js';
 | 
						|
import { addNodeClass } from '../core/Node.js';
 | 
						|
import { addNodeElement, nodeProxy, vec2 } from '../shadernode/ShaderNode.js';
 | 
						|
 | 
						|
class RotateUVNode extends TempNode {
 | 
						|
 | 
						|
	constructor( uvNode, rotationNode, centerNode = vec2( 0.5 ) ) {
 | 
						|
 | 
						|
		super( 'vec2' );
 | 
						|
 | 
						|
		this.uvNode = uvNode;
 | 
						|
		this.rotationNode = rotationNode;
 | 
						|
		this.centerNode = centerNode;
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	setup() {
 | 
						|
 | 
						|
		const { uvNode, rotationNode, centerNode } = this;
 | 
						|
 | 
						|
		const vector = uvNode.sub( centerNode );
 | 
						|
 | 
						|
		return vector.rotate( rotationNode ).add( centerNode );
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
export default RotateUVNode;
 | 
						|
 | 
						|
export const rotateUV = nodeProxy( RotateUVNode );
 | 
						|
 | 
						|
addNodeElement( 'rotateUV', rotateUV );
 | 
						|
 | 
						|
addNodeClass( 'RotateUVNode', RotateUVNode );
 |