Просмотр исходного кода

TSL: Add member type support for layout function parameter (#31838)

sunag 7 месяцев назад
Родитель
Сommit
c97c6d9890
1 измененных файлов с 31 добавлено и 0 удалено
  1. 31 0
      src/nodes/core/ParameterNode.js

+ 31 - 0
src/nodes/core/ParameterNode.js

@@ -1,4 +1,5 @@
 import { nodeObject } from '../tsl/TSLBase.js';
+import { error } from '../../utils.js';
 import PropertyNode from './PropertyNode.js';
 
 /**
@@ -35,6 +36,36 @@ class ParameterNode extends PropertyNode {
 
 	}
 
+	/**
+	 * Gets the type of a member variable in the parameter node.
+	 *
+	 * @param {NodeBuilder} builder - The node builder.
+	 * @param {string} name - The name of the member variable.
+	 * @returns {string}
+	 */
+	getMemberType( builder, name ) {
+
+		const type = this.getNodeType( builder );
+		const struct = builder.getStructTypeNode( type );
+
+		let memberType;
+
+		if ( struct !== null ) {
+
+			memberType = struct.getMemberType( builder, name );
+
+		} else {
+
+			error( `TSL: Member "${ name }" not found in struct "${ type }".` );
+
+			memberType = 'float';
+
+		}
+
+		return memberType;
+
+	}
+
 	getHash() {
 
 		return this.uuid;

粤ICP备19079148号