using Enigmos.Ports; using Enigmos.Ports.DataPorts; using Nocturnis.DataStructures; using TabulaSmaragdina.Constants; namespace Enigmos.Modules.ComputationalModules.Binary; public partial class MinModule : BinaryComputationalModule { private DataOutPort Output1 { get; set; } private DataOutPort Output2 { get; set; } private DataOutPort Output3 { get; set; } public override IEnumerable Ports => base.Ports.Union(new[] { Output1, Output2, Output3 }); public override void Init() { base.Init(); Output1 = GetPort("Output1"); Output2 = GetPort("Output2"); Output3 = GetPort("Output3"); Input1.SetDataType(EnigmosConstant.DataPortTypes.Real); Input2.SetDataType(EnigmosConstant.DataPortTypes.Real); Output1.SetDataType(EnigmosConstant.DataPortTypes.Real); Output2.SetDataType(EnigmosConstant.DataPortTypes.Real); Output3.SetDataType(EnigmosConstant.DataPortTypes.Real); PostInit(); } protected override void Compute(IDataPackage input1, IDataPackage input2) { if (input1.Real < input2.Real) { Output1.ResultData.Real = input1.Real; Output2.ResultData.Real = input1.Real; Output3.ResultData.Real = input1.Real; } else { Output1.ResultData.Real = input2.Real; Output2.ResultData.Real = input2.Real; Output3.ResultData.Real = input2.Real; } } }