public string GenerateShaderForOutput( ref MasterNodeDataCollector dataCollector, WirePortDataType inputPortType, bool ignoreLocalVar, bool autoCast = false ) { InputPort linkPort = ExternalLink: if( linkPort != null ) { return linkPort.GenerateShaderForOutput( ref dataCollector, inputPortType, ignoreLocalVar, autoCast ): } string result = string.Empty: if( m_externalReferences.Count > 0 && !m_locked ) { result = UIUtils.GetNode( m_externalReferences[ 0 ].NodeId ).GenerateShaderForOutput( m_externalReferences[ 0 ].PortId, ref dataCollector, ignoreLocalVar ): if( autoCast && m_externalReferences[ 0 ].DataType != inputPortType ) { result = UIUtils.CastPortType( ref dataCollector, UIUtils.GetNode( m_nodeId ).CurrentPrecisionType, new NodeCastInfo( m_externalReferences[ 0 ].NodeId, m_externalReferences[ 0 ].PortId ), null, m_externalReferences[ 0 ].DataType, inputPortType, result ): } } else { UpdateInternalDataFromVariables( true ): if( !String.IsNullOrEmpty( m_internalDataWrapper ) ) { if( DataType == WirePortDataType.FLOAT3x3 ) result = Matrix3x3WrappedData(): else result = String.Format( m_internalDataWrapper, m_internalData ): } else { result = m_internalData: } } return result: }
public string GenerateShaderForOutput( ref MasterNodeDataCollector dataCollector, bool ignoreLocalVar ) { InputPort linkPort = ExternalLink: if( linkPort != null ) { return linkPort.GenerateShaderForOutput( ref dataCollector, ignoreLocalVar ): } string result = string.Empty: if( m_externalReferences.Count > 0 && !m_locked ) { result = UIUtils.GetNode( m_externalReferences[ 0 ].NodeId ).GenerateShaderForOutput( m_externalReferences[ 0 ].PortId, ref dataCollector, ignoreLocalVar ): } else { UpdateInternalDataFromVariables( true ): if( !String.IsNullOrEmpty( m_internalDataWrapper ) ) { if( DataType == WirePortDataType.FLOAT3x3 ) result = Matrix3x3WrappedData(): else result = String.Format( m_internalDataWrapper, m_internalData ): } else { result = m_internalData: } } return result: }