Skip to content

⬅️ Back to Table of Contents

📄 ContextNode.js

📊 Analysis Summary

Metric Count
🔧 Functions 8
🧱 Classes 1
📦 Imports 3

📚 Table of Contents

🛠️ File Location:

📂 src/nodes/core/ContextNode.js

📦 Imports

Name Source
Node ./Node.js
addMethodChaining ../tsl/TSLCore.js
nodeProxy ../tsl/TSLCore.js

Functions

ContextNode.getScope(): Node

JSDoc:

/**
     * This method is overwritten to ensure it returns the reference to {@link ContextNode#node}.
     *
     * @return {Node} A reference to {@link ContextNode#node}.
     */

Returns: Node

Calls:

  • this.node.getScope
Code
getScope() {

        return this.node.getScope();

    }

ContextNode.getNodeType(builder: NodeBuilder): string

JSDoc:

/**
     * This method is overwritten to ensure it returns the type of {@link ContextNode#node}.
     *
     * @param {NodeBuilder} builder - The current node builder.
     * @return {string} The node type.
     */

Parameters:

  • builder NodeBuilder

Returns: string

Calls:

  • this.node.getNodeType
Code
getNodeType( builder ) {

        return this.node.getNodeType( builder );

    }

ContextNode.analyze(builder: any): void

Parameters:

  • builder any

Returns: void

Calls:

  • builder.getContext
  • builder.setContext
  • this.node.build
Code
analyze( builder ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        this.node.build( builder );

        builder.setContext( previousContext );

    }

ContextNode.setup(builder: any): void

Parameters:

  • builder any

Returns: void

Calls:

  • builder.getContext
  • builder.setContext
  • this.node.build
Code
setup( builder ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        this.node.build( builder );

        builder.setContext( previousContext );

    }

ContextNode.generate(builder: any, output: any): string | Node

Parameters:

  • builder any
  • output any

Returns: string | Node

Calls:

  • builder.getContext
  • builder.setContext
  • this.node.build
Code
generate( builder, output ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        const snippet = this.node.build( builder, output );

        builder.setContext( previousContext );

        return snippet;

    }

uniformFlow(node: Node): ContextNode

Parameters:

  • node Node

Returns: ContextNode

Calls:

  • context
Code
( node ) => context( node, { uniformFlow: true } )

setName(node: Node, name: string): ContextNode

Parameters:

  • node Node
  • name string

Returns: ContextNode

Calls:

  • context
Code
( node, name ) => context( node, { nodeName: name } )

label(node: Node, name: string): ContextNode

JSDoc:

/**
 * TSL function for defining a label context value for a given node.
 *
 * @tsl
 * @function
 * @deprecated
 * @param {Node} node - The node whose context should be modified.
 * @param {string} name - The name/label to set.
 * @returns {ContextNode}
 */

Parameters:

  • node Node
  • name string

Returns: ContextNode

Calls:

  • console.warn
  • setName
Code
export function label( node, name ) {

    console.warn( 'THREE.TSL: "label()" has been deprecated. Use "setName()" instead.' ); // @deprecated r179

    return setName( node, name );

}

Classes

ContextNode

Class Code
class ContextNode extends Node {

    static get type() {

        return 'ContextNode';

    }

    /**
     * Constructs a new context node.
     *
     * @param {Node} node - The node whose context should be modified.
     * @param {Object} [value={}] - The modified context data.
     */
    constructor( node, value = {} ) {

        super();

        /**
         * This flag can be used for type testing.
         *
         * @type {boolean}
         * @readonly
         * @default true
         */
        this.isContextNode = true;

        /**
         * The node whose context should be modified.
         *
         * @type {Node}
         */
        this.node = node;

        /**
         * The modified context data.
         *
         * @type {Object}
         * @default {}
         */
        this.value = value;

    }

    /**
     * This method is overwritten to ensure it returns the reference to {@link ContextNode#node}.
     *
     * @return {Node} A reference to {@link ContextNode#node}.
     */
    getScope() {

        return this.node.getScope();

    }

    /**
     * This method is overwritten to ensure it returns the type of {@link ContextNode#node}.
     *
     * @param {NodeBuilder} builder - The current node builder.
     * @return {string} The node type.
     */
    getNodeType( builder ) {

        return this.node.getNodeType( builder );

    }

    analyze( builder ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        this.node.build( builder );

        builder.setContext( previousContext );

    }

    setup( builder ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        this.node.build( builder );

        builder.setContext( previousContext );

    }

    generate( builder, output ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        const snippet = this.node.build( builder, output );

        builder.setContext( previousContext );

        return snippet;

    }

}

Methods

getScope(): Node
Code
getScope() {

        return this.node.getScope();

    }
getNodeType(builder: NodeBuilder): string
Code
getNodeType( builder ) {

        return this.node.getNodeType( builder );

    }
analyze(builder: any): void
Code
analyze( builder ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        this.node.build( builder );

        builder.setContext( previousContext );

    }
setup(builder: any): void
Code
setup( builder ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        this.node.build( builder );

        builder.setContext( previousContext );

    }
generate(builder: any, output: any): string | Node
Code
generate( builder, output ) {

        const previousContext = builder.getContext();

        builder.setContext( { ...builder.context, ...this.value } );

        const snippet = this.node.build( builder, output );

        builder.setContext( previousContext );

        return snippet;

    }