📄 RenderOutputNode.js
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 2 |
🧱 Classes | 1 |
📦 Imports | 6 |
📊 Variables & Constants | 3 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 src/nodes/display/RenderOutputNode.js
📦 Imports¶
Name | Source |
---|---|
TempNode |
../core/TempNode.js |
addMethodChaining |
../tsl/TSLCore.js |
nodeObject |
../tsl/TSLCore.js |
NoColorSpace |
../../constants.js |
NoToneMapping |
../../constants.js |
ColorManagement |
../../math/ColorManagement.js |
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
outputNode |
any |
let/var | this.colorNode \|\| context.color |
✗ |
toneMapping |
any |
let/var | ( this.toneMapping !== null ? this.toneMapping : context.toneMapping ) \|\| N... |
✗ |
outputColorSpace |
any |
let/var | ( this.outputColorSpace !== null ? this.outputColorSpace : context.outputColo... |
✗ |
Functions¶
RenderOutputNode.setup({ context }: any): any
¶
Parameters:
{ context }
any
Returns: any
Calls:
outputNode.toneMapping
outputNode.workingToColorSpace
Internal Comments:
Code
setup( { context } ) {
let outputNode = this.colorNode || context.color;
// tone mapping
const toneMapping = ( this.toneMapping !== null ? this.toneMapping : context.toneMapping ) || NoToneMapping;
const outputColorSpace = ( this.outputColorSpace !== null ? this.outputColorSpace : context.outputColorSpace ) || NoColorSpace;
if ( toneMapping !== NoToneMapping ) {
outputNode = outputNode.toneMapping( toneMapping );
}
// working to output color space
if ( outputColorSpace !== NoColorSpace && outputColorSpace !== ColorManagement.workingColorSpace ) {
outputNode = outputNode.workingToColorSpace( outputColorSpace );
}
return outputNode;
}
renderOutput(color: Node, toneMapping: number, outputColorSpace: string): RenderOutputNode
¶
Parameters:
color
Node
toneMapping
number
outputColorSpace
string
Returns: RenderOutputNode
Calls:
nodeObject (from ../tsl/TSLCore.js)
Code
Classes¶
RenderOutputNode
¶
Class Code
class RenderOutputNode extends TempNode {
static get type() {
return 'RenderOutputNode';
}
/**
* Constructs a new render output node.
*
* @param {Node} colorNode - The color node to process.
* @param {?number} toneMapping - The tone mapping type.
* @param {?string} outputColorSpace - The output color space.
*/
constructor( colorNode, toneMapping, outputColorSpace ) {
super( 'vec4' );
/**
* The color node to process.
*
* @type {Node}
*/
this.colorNode = colorNode;
/**
* The tone mapping type.
*
* @type {?number}
*/
this.toneMapping = toneMapping;
/**
* The output color space.
*
* @type {?string}
*/
this.outputColorSpace = outputColorSpace;
/**
* This flag can be used for type testing.
*
* @type {boolean}
* @readonly
* @default true
*/
this.isRenderOutputNode = true;
}
setup( { context } ) {
let outputNode = this.colorNode || context.color;
// tone mapping
const toneMapping = ( this.toneMapping !== null ? this.toneMapping : context.toneMapping ) || NoToneMapping;
const outputColorSpace = ( this.outputColorSpace !== null ? this.outputColorSpace : context.outputColorSpace ) || NoColorSpace;
if ( toneMapping !== NoToneMapping ) {
outputNode = outputNode.toneMapping( toneMapping );
}
// working to output color space
if ( outputColorSpace !== NoColorSpace && outputColorSpace !== ColorManagement.workingColorSpace ) {
outputNode = outputNode.workingToColorSpace( outputColorSpace );
}
return outputNode;
}
}
Methods¶
setup({ context }: any): any
¶
Code
setup( { context } ) {
let outputNode = this.colorNode || context.color;
// tone mapping
const toneMapping = ( this.toneMapping !== null ? this.toneMapping : context.toneMapping ) || NoToneMapping;
const outputColorSpace = ( this.outputColorSpace !== null ? this.outputColorSpace : context.outputColorSpace ) || NoColorSpace;
if ( toneMapping !== NoToneMapping ) {
outputNode = outputNode.toneMapping( toneMapping );
}
// working to output color space
if ( outputColorSpace !== NoColorSpace && outputColorSpace !== ColorManagement.workingColorSpace ) {
outputNode = outputNode.workingToColorSpace( outputColorSpace );
}
return outputNode;
}