| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | 
							- // Amplify Shader Editor - Visual Shader Editing Tool
 
- // Copyright (c) Amplify Creations, Lda <info@amplify.pt>
 
- //https://docs.unity3d.com/Manual/SL-BuiltinFunctions.html
 
- using System;
 
- using UnityEngine;
 
- namespace AmplifyShaderEditor
 
- {
 
- 	[Serializable]
 
- 	public class HelperParentNode : ParentNode
 
- 	{
 
- 		[SerializeField]
 
- 		protected string m_funcType = string.Empty;
 
- 		[SerializeField]
 
- 		protected string m_funcLWFormatOverride = string.Empty;
 
- 		[SerializeField]
 
- 		protected string m_funcHDFormatOverride = string.Empty;
 
- 		protected string m_localVarName = null;
 
- 		protected override void CommonInit( int uniqueId )
 
- 		{
 
- 			base.CommonInit( uniqueId );
 
- 			AddInputPort( WirePortDataType.FLOAT, false, Constants.EmptyPortValue );
 
- 			AddOutputPort( WirePortDataType.FLOAT, Constants.EmptyPortValue );
 
- 			m_useInternalPortData = true;
 
- 		}
 
- 		public override string GetIncludes()
 
- 		{
 
- 			return Constants.UnityCgLibFuncs;
 
- 		}
 
- 		public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
 
- 		{
 
- 			if( m_outputPorts[ 0 ].IsLocalValue( dataCollector.PortCategory ) )
 
- 				return GetOutputVectorItem( 0, outputId, m_outputPorts[ 0 ].LocalValue( dataCollector.PortCategory ) );
 
- 			base.GenerateShaderForOutput( outputId, ref dataCollector, ignoreLocalvar );
 
- 			if( !( dataCollector.IsTemplate && dataCollector.IsSRP ) )
 
- 				dataCollector.AddToIncludes( UniqueId, Constants.UnityCgLibFuncs );
 
- 			string concatResults = string.Empty;
 
- 			bool first = true;
 
- 			for( int i = 0; i < m_inputPorts.Count; i++ )
 
- 			{
 
- 				if( m_inputPorts[ i ].Visible )
 
- 				{
 
- 					if( !first )
 
- 					{
 
- 						concatResults += " , ";
 
- 					}
 
- 					else
 
- 					{
 
- 						first = false;
 
- 					}
 
- 					string result = string.Empty;
 
- 					if( m_inputPorts[ i ].IsConnected )
 
- 					{
 
- 						result = m_inputPorts[ i ].GeneratePortInstructions( ref dataCollector );
 
- 					}
 
- 					else
 
- 					{
 
- 						result = m_inputPorts[ i ].WrappedInternalData;
 
- 					}
 
- 					concatResults += result;
 
- 				}
 
- 			}
 
- 			string finalResult = m_funcType + "( " + concatResults + " )";
 
- 			if( dataCollector.IsTemplate )
 
- 			{
 
- 				if( dataCollector.TemplateDataCollectorInstance.CurrentSRPType == TemplateSRPType.URP && !string.IsNullOrEmpty( m_funcLWFormatOverride ) )
 
- 				{
 
- 					finalResult = string.Format( m_funcLWFormatOverride, concatResults );
 
- 				}
 
- 				else if( dataCollector.TemplateDataCollectorInstance.CurrentSRPType == TemplateSRPType.HDRP && !string.IsNullOrEmpty( m_funcHDFormatOverride ) )
 
- 				{
 
- 					finalResult = string.Format( m_funcHDFormatOverride, concatResults );
 
- 				}
 
- 			}
 
- 			RegisterLocalVariable( 0, finalResult, ref dataCollector, m_localVarName );
 
- 			return GetOutputVectorItem( 0, outputId, m_outputPorts[ 0 ].LocalValue( dataCollector.PortCategory ) );
 
- 		}
 
- 	}
 
- }
 
 
  |