📄 ArrayNode.js
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 5 |
🧱 Classes | 1 |
📦 Imports | 3 |
📊 Variables & Constants | 4 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 src/nodes/core/ArrayNode.js
📦 Imports¶
Name | Source |
---|---|
TempNode |
./TempNode.js |
addMethodChaining |
../tsl/TSLCore.js |
nodeObject |
../tsl/TSLCore.js |
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
node |
any |
let/var | *not shown* |
✗ |
values |
any |
let/var | params[ 0 ] |
✗ |
nodeType |
any |
let/var | params[ 0 ] |
✗ |
count |
any |
let/var | params[ 1 ] |
✗ |
Functions¶
ArrayNode.getArrayCount(): number
¶
JSDoc:
/**
* Returns the number of elements in the node array.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {number} The number of elements in the node array.
*/
Returns: number
ArrayNode.getNodeType(builder: NodeBuilder): string
¶
JSDoc:
/**
* Returns the node's type.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {string} The type of the node.
*/
Parameters:
builder
NodeBuilder
Returns: string
Calls:
this.values[ 0 ].getNodeType
Code
ArrayNode.getElementType(builder: NodeBuilder): string
¶
JSDoc:
/**
* Returns the node's type.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {string} The type of the node.
*/
Parameters:
builder
NodeBuilder
Returns: string
Calls:
this.getNodeType
ArrayNode.generate(builder: NodeBuilder): string
¶
JSDoc:
/**
* This method builds the output node and returns the resulting array as a shader string.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {string} The generated shader string.
*/
Parameters:
builder
NodeBuilder
Returns: string
Calls:
this.getNodeType
builder.generateArray
Code
array(params: any[]): ArrayNode
¶
Parameters:
params
any[]
Returns: ArrayNode
Calls:
nodeObject (from ../tsl/TSLCore.js)
Code
Classes¶
ArrayNode
¶
Class Code
class ArrayNode extends TempNode {
static get type() {
return 'ArrayNode';
}
/**
* Constructs a new array node.
*
* @param {?string} nodeType - The data type of the elements.
* @param {number} count - Size of the array.
* @param {?Array<Node>} [values=null] - Array default values.
*/
constructor( nodeType, count, values = null ) {
super( nodeType );
/**
* Array size.
*
* @type {number}
*/
this.count = count;
/**
* Array default values.
*
* @type {?Array<Node>}
*/
this.values = values;
/**
* This flag can be used for type testing.
*
* @type {boolean}
* @readonly
* @default true
*/
this.isArrayNode = true;
}
/**
* Returns the number of elements in the node array.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {number} The number of elements in the node array.
*/
getArrayCount( /*builder*/ ) {
return this.count;
}
/**
* Returns the node's type.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {string} The type of the node.
*/
getNodeType( builder ) {
if ( this.nodeType === null ) {
this.nodeType = this.values[ 0 ].getNodeType( builder );
}
return this.nodeType;
}
/**
* Returns the node's type.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {string} The type of the node.
*/
getElementType( builder ) {
return this.getNodeType( builder );
}
/**
* This method builds the output node and returns the resulting array as a shader string.
*
* @param {NodeBuilder} builder - The current node builder.
* @return {string} The generated shader string.
*/
generate( builder ) {
const type = this.getNodeType( builder );
return builder.generateArray( type, this.count, this.values );
}
}