| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- import { TempNode } from '../core/TempNode.js';
 
- import { ConstNode } from '../core/ConstNode.js';
 
- import { FunctionNode } from '../core/FunctionNode.js';
 
- class LuminanceNode extends TempNode {
 
- 	constructor( rgb ) {
 
- 		super( 'f' );
 
- 		this.rgb = rgb;
 
- 	}
 
- 	generate( builder, output ) {
 
- 		const luminance = builder.include( LuminanceNode.Nodes.luminance );
 
- 		return builder.format( luminance + '( ' + this.rgb.build( builder, 'v3' ) + ' )', this.getType( builder ), output );
 
- 	}
 
- 	copy( source ) {
 
- 		super.copy( source );
 
- 		this.rgb = source.rgb;
 
- 		return this;
 
- 	}
 
- 	toJSON( meta ) {
 
- 		let data = this.getJSONNode( meta );
 
- 		if ( ! data ) {
 
- 			data = this.createJSONNode( meta );
 
- 			data.rgb = this.rgb.toJSON( meta ).uuid;
 
- 		}
 
- 		return data;
 
- 	}
 
- }
 
- LuminanceNode.Nodes = ( function () {
 
- 	const LUMA = new ConstNode( 'vec3 LUMA vec3( 0.2125, 0.7154, 0.0721 )' );
 
- 	// Algorithm from Chapter 10 of Graphics Shaders
 
- 	const luminance = new FunctionNode( /* glsl */`
 
- 		float luminance( vec3 rgb ) {
 
- 			return dot( rgb, LUMA );
 
- 		}`
 
- 	, [ LUMA ] );
 
- 	return {
 
- 		LUMA: LUMA,
 
- 		luminance: luminance
 
- 	};
 
- } )();
 
- LuminanceNode.prototype.nodeType = 'Luminance';
 
- export { LuminanceNode };
 
 
  |