/// <summary> /// Notification: GUI window changed its values (sync GUI -> module is needed). /// </summary> public override void OnGuiWindowChanged() { if (hsvForm == null) { return; } dH = Convert.ToDouble(hsvForm.numericHue.Value); if (!double.TryParse(hsvForm.textSaturation.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out mS)) { mS = 1.0; } if (!double.TryParse(hsvForm.textValue.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out mV)) { mV = 1.0; } if (!double.TryParse(hsvForm.textGamma.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out gamma)) { gamma = 1.0; } parallel = hsvForm.checkParallel.Checked; slow = hsvForm.checkSlow.Checked; // Update 'param'. List <string> pars = new List <string>(); if (dH != 0.0) { pars.Add(string.Format(CultureInfo.InvariantCulture, "dH={0:g}", dH)); } if (mS != 1.0) { pars.Add(string.Format(CultureInfo.InvariantCulture, "mulS={0:g5}", mS)); } if (mV != 1.0) { pars.Add(string.Format(CultureInfo.InvariantCulture, "mulV={0:g5}", mV)); } if (gamma != 1.0) { pars.Add(string.Format(CultureInfo.InvariantCulture, "gamma={0:g5}", gamma)); } if (parallel) { pars.Add("par"); } if (slow) { pars.Add("slow"); } param = string.Join(",", pars); paramDirty = false; ParamUpdated?.Invoke(this); }
/*************************************/ private static string ToText(ParamUpdated update) { if (update != null && update.Param != null && update.OldParam != null) { string newTypeText = (update.Param.DataType != null) ? update.Param.DataType.ToText(true) : "unknow"; string oldTypeText = (update.OldParam.DataType != null) ? update.OldParam.DataType.ToText(true) : "unknow"; return("Parameter " + update.OldParam.Name + " of type " + oldTypeText + " replaced with parameter " + update.Name + " of type " + newTypeText); } else { return("Undefined param replaced"); } }
/*******************************************/ protected virtual void UpdateInput(ParamUpdated update) { int index = Params.Input.FindIndex(x => x.Name.ToLower() == update.Name.ToLower()); if (index >= 0) { IGH_Param oldParam = Params.Input[index]; IGH_Param newParam = update.Param.ToGH_Param(); MoveLinks(oldParam, newParam); newParam.DataMapping = oldParam.DataMapping; newParam.Simplify = oldParam.Simplify; newParam.Reverse = oldParam.Reverse; Params.UnregisterInputParameter(oldParam); Params.RegisterInputParam(newParam, index); } }
/*******************************************/ protected virtual void UpdateOutput(ParamUpdated update) { int index = Params.Output.FindIndex(x => x.Name == update.Name); if (index >= 0) { IGH_Param oldParam = Params.Output[index]; IGH_Param newParam = update.Param.ToGH_Param(); // The Recipient property is still empty at this stage so we need to make sure recipient params are still finding their source newParam.NewInstanceGuid(oldParam.InstanceGuid); newParam.DataMapping = oldParam.DataMapping; newParam.Simplify = oldParam.Simplify; newParam.Reverse = oldParam.Reverse; MoveLinks(oldParam, newParam); oldParam.Recipients.Clear(); Params.UnregisterOutputParameter(oldParam); Params.RegisterOutputParam(newParam, index); } }