最新代码
This commit is contained in:
55
public/sdk/three/jsm/nodes/utils/PackingNode.js
Normal file
55
public/sdk/three/jsm/nodes/utils/PackingNode.js
Normal file
@ -0,0 +1,55 @@
|
||||
import TempNode from '../core/TempNode.js';
|
||||
import { addNodeClass } from '../core/Node.js';
|
||||
import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
|
||||
|
||||
class PackingNode extends TempNode {
|
||||
|
||||
constructor( scope, node ) {
|
||||
|
||||
super();
|
||||
|
||||
this.scope = scope;
|
||||
this.node = node;
|
||||
|
||||
}
|
||||
|
||||
getNodeType( builder ) {
|
||||
|
||||
return this.node.getNodeType( builder );
|
||||
|
||||
}
|
||||
|
||||
setup() {
|
||||
|
||||
const { scope, node } = this;
|
||||
|
||||
let result = null;
|
||||
|
||||
if ( scope === PackingNode.DIRECTION_TO_COLOR ) {
|
||||
|
||||
result = node.mul( 0.5 ).add( 0.5 );
|
||||
|
||||
} else if ( scope === PackingNode.COLOR_TO_DIRECTION ) {
|
||||
|
||||
result = node.mul( 2.0 ).sub( 1 );
|
||||
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PackingNode.DIRECTION_TO_COLOR = 'directionToColor';
|
||||
PackingNode.COLOR_TO_DIRECTION = 'colorToDirection';
|
||||
|
||||
export default PackingNode;
|
||||
|
||||
export const directionToColor = nodeProxy( PackingNode, PackingNode.DIRECTION_TO_COLOR );
|
||||
export const colorToDirection = nodeProxy( PackingNode, PackingNode.COLOR_TO_DIRECTION );
|
||||
|
||||
addNodeElement( 'directionToColor', directionToColor );
|
||||
addNodeElement( 'colorToDirection', colorToDirection );
|
||||
|
||||
addNodeClass( 'PackingNode', PackingNode );
|
Reference in New Issue
Block a user