mirror of
https://github.com/jiawanlong/Cesium-Examples.git
synced 2025-07-07 08:47:29 +00:00
48 lines
714 B
JavaScript
48 lines
714 B
JavaScript
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 );
|