Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /*************************************/

        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);
            }
        }