1234567891011121314151617181920212223242526272829303132 |
- import TempNode from '../core/TempNode.js';
- import { vec2, add, sub, mul, cos, sin } from '../shadernode/ShaderNodeBaseElements.js';
- class RotateUVNode extends TempNode {
- constructor( uvNode, rotationNode, centerNode = vec2( .5 ) ) {
- super( 'vec2' );
- this.uvNode = uvNode;
- this.rotationNode = rotationNode;
- this.centerNode = centerNode;
- }
- construct() {
- const { uvNode, rotationNode, centerNode } = this;
- const cosAngle = cos( rotationNode );
- const sinAngle = sin( rotationNode );
- return vec2(
- add( add( mul( cosAngle, sub( uvNode.x, centerNode.x ) ), mul( sinAngle, sub( uvNode.y, centerNode.y ) ) ), centerNode.x ),
- add( sub( mul( cosAngle, sub( uvNode.y, centerNode.y ) ), mul( sinAngle, sub( uvNode.x, centerNode.x ) ) ), centerNode.y )
- );
- }
- }
- export default RotateUVNode;
|