node-ejs-renderer/node_modules/three/examples/jsm/nodes/accessors/UVNode.js

48 lines
724 B
JavaScript
Raw Permalink Normal View History

2024-06-09 13:55:01 -04:00
import { addNodeClass } from '../core/Node.js';
import AttributeNode from '../core/AttributeNode.js';
import { nodeObject } from '../shadernode/ShaderNode.js';
class UVNode extends AttributeNode {
constructor( index = 0 ) {
super( null, 'vec2' );
this.isUVNode = true;
this.index = index;
}
getAttributeName( /*builder*/ ) {
const index = this.index;
return 'uv' + ( index > 0 ? index : '' );
}
serialize( data ) {
super.serialize( data );
data.index = this.index;
}
deserialize( data ) {
super.deserialize( data );
this.index = data.index;
}
}
export default UVNode;
export const uv = ( ...params ) => nodeObject( new UVNode( ...params ) );
addNodeClass( 'UVNode', UVNode );