Example #1
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            var getNumber = new GetInteger();

            getNumber.SetLowerLimit(0, false);
            getNumber.SetUpperLimit(Environment.ProcessorCount, false);
            getNumber.SetDefaultInteger(RcCore.It.EngineSettings.Threads);
            getNumber.SetCommandPrompt($"Set CPU render threads (max {Environment.ProcessorCount}, 0 for automatic)");
            var getRc = getNumber.Get();

            if (getNumber.CommandResult() != Result.Success)
            {
                return(getNumber.CommandResult());
            }
            if (getRc == GetResult.Number)
            {
                var nr   = getNumber.Number();
                var endS = nr != 1 ? "s" : "";
                RhinoApp.WriteLine($"User wants {nr} CPU thread{endS}");
                RcCore.It.EngineSettings.Threads = nr;
                return(Result.Success);
            }

            return(Result.Nothing);
        }
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            (PlugIn as Plugin)?.InitialiseCSycles();
            if (doc.Views.ActiveView.ActiveViewport.DisplayMode.Id == Guid.Parse("69E0C7A5-1C6A-46C8-B98B-8779686CD181"))
            {
                var rvp = doc.Views.ActiveView.RealtimeDisplayMode as RenderedViewport;

                if (rvp != null)
                {
                    var getNumber = new GetInteger();
                    getNumber.SetLowerLimit(1, true);
                    getNumber.SetDefaultInteger(rvp.HudMaximumPasses() + 100);
                    getNumber.SetCommandPrompt("Set new sample count");
                    var getRc = getNumber.Get();
                    if (getNumber.CommandResult() != Result.Success)
                    {
                        return(getNumber.CommandResult());
                    }
                    if (getRc == GetResult.Number)
                    {
                        var nr = getNumber.Number();
                        RhinoApp.WriteLine($"User changes samples to {nr}");
                        rvp.ChangeSamples(nr);
                        return(Result.Success);
                    }
                }
            }

            RhinoApp.WriteLine("Active view isn't rendering with Cycles");

            return(Result.Nothing);
        }
Example #3
0
        public List <OptimalItem> BuildSpectrumBin(IEnumerable <IIdentifiedSpectrum> peptides)
        {
            GetInteger chargeCalc = GetChargeCalculator();

            GetInteger missCleavageCalc = GetMissCleavageCalculator();

            IModificationCountCalculator modificationCalc = GetModificationCountCalculator();

            GetInteger nptCalc = GetNumProteaseTerminiCalculator();

            GetInteger proteinTagCalc = GetProteinTagCalculator();

            Dictionary <OptimalResultCondition, OptimalItem> resultMap = new Dictionary <OptimalResultCondition, OptimalItem>();

            foreach (IIdentifiedSpectrum mph in peptides)
            {
                int charge = chargeCalc(mph);

                int missCleavage = missCleavageCalc(mph);

                int modificationCount = modificationCalc.Calculate(mph.GetMatchSequence());

                int nptCount = nptCalc(mph);

                int proteinTag = proteinTagCalc(mph);

                OptimalResultCondition cond = new OptimalResultCondition(charge, missCleavage, nptCount, modificationCount, mph.ClassificationTag);
                if (!resultMap.ContainsKey(cond))
                {
                    OptimalItem item = new OptimalItem();
                    item.Condition = cond;
                    item.Spectra.Add(mph);
                    resultMap[cond] = item;
                }
                else
                {
                    resultMap[cond].Spectra.Add(mph);
                }
            }

            var result = resultMap.Values.ToList();

            if (this.MinimumSpectraPerGroup > 1)
            {
                result.Sort((m1, m2) => m2.Spectra.Count.CompareTo(m1.Spectra.Count));
                for (int i = result.Count - 1; i > 0; i--)
                {
                    if (result[i].Spectra.Count < this.MinimumSpectraPerGroup)
                    {
                        result[i - 1].Spectra.AddRange(result[i].Spectra);
                        result[i - 1].Condition.MergedConditions.Add(result[i].Condition);
                        result.RemoveAt(i);
                    }
                }
            }

            result.Sort((m1, m2) => m1.Condition.CompareTo(m2.Condition));
            return(result);
        }
Example #4
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            GetInteger getUserInteger = new GetInteger();

            getUserInteger.SetCommandPrompt("Enter a valid Integer only (no decimal points):");
            getUserInteger.SetDefaultInteger(1984);
            GetResult get_rn = getUserInteger.Get();

            RhinoApp.WriteLine("The Roman Numeral version of " + getUserInteger.Number() + " is " + ArabicToRoman(getUserInteger.Number()));
            return(Result.Success);
        }
Example #5
0
        public override int EnterInteger(string prompt = "Enter integer value", int defaultValue = 0)
        {
            GetInteger gI = new GetInteger();

            gI.SetCommandPrompt(prompt);
            gI.SetDefaultInteger(defaultValue);
            if (gI.Get() == GetResult.Cancel)
            {
                throw new OperationCanceledException("Operation cancelled by user");
            }
            return(gI.Number());
        }
Example #6
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            var getNumber = new GetInteger();

            getNumber.SetLowerLimit(0, false);
            getNumber.SetUpperLimit(500, false);
            getNumber.SetDefaultInteger(RcCore.It.EngineSettings.ThrottleMs);
            getNumber.SetCommandPrompt("Set throttle (in ms)");

            var toggleVerbose = new OptionToggle(RcCore.It.EngineSettings.Verbose, "No", "Yes");

            var spotlightFactor  = new OptionDouble(RcCore.It.EngineSettings.SpotlightFactor, 0.0, 1000000.0);
            var pointlightFactor = new OptionDouble(RcCore.It.EngineSettings.PointlightFactor, 0.0, 1000000.0);
            var sunlightFactor   = new OptionDouble(RcCore.It.EngineSettings.SunlightFactor, 0.0, 1000000.0);
            var arealightFactor  = new OptionDouble(RcCore.It.EngineSettings.ArealightFactor, 0.0, 1000000.0);
            var polishFactor     = new OptionDouble(RcCore.It.EngineSettings.PolishFactor, 0.0, 1000000.0);

            getNumber.AddOptionToggle("verbose", ref toggleVerbose);

            getNumber.AddOptionDouble("spotlight_factor", ref spotlightFactor);
            getNumber.AddOptionDouble("pointlight_factor", ref pointlightFactor);
            getNumber.AddOptionDouble("sunlight_factor", ref sunlightFactor);
            getNumber.AddOptionDouble("arealight_factor", ref arealightFactor);
            getNumber.AddOptionDouble("polish_factor", ref polishFactor);


            while (true)
            {
                var getRc = getNumber.Get();
                if (getNumber.CommandResult() != Result.Success)
                {
                    return(getNumber.CommandResult());
                }
                switch (getRc)
                {
                case GetResult.Nothing:
                case GetResult.Number:
                    RcCore.It.EngineSettings.ThrottleMs = getNumber.Number();
                    ReadOptions(toggleVerbose, spotlightFactor, pointlightFactor, sunlightFactor, arealightFactor, polishFactor);
                    break;

                case GetResult.Option:
                    ReadOptions(toggleVerbose, spotlightFactor, pointlightFactor, sunlightFactor, arealightFactor, polishFactor);
                    continue;

                default:
                    continue;
                }

                break;
            }
            return(Result.Success);
        }
    public static Result DisplayPrecision(RhinoDoc doc)
    {
        var gi = new GetInteger();
        gi.SetCommandPrompt("New display precision");
        gi.SetDefaultInteger(doc.ModelDistanceDisplayPrecision);
        gi.SetLowerLimit(0, false);
        gi.SetUpperLimit(7, false);
        gi.Get();
        if (gi.CommandResult() != Result.Success)
          return gi.CommandResult();
        var distance_display_precision = gi.Number();

        if (distance_display_precision != doc.ModelDistanceDisplayPrecision)
          doc.ModelDistanceDisplayPrecision = distance_display_precision;

        return Result.Success;
    }
Example #8
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            (PlugIn as Plugin)?.InitialiseCSycles();
            var numDevices = Device.Count;
            var endS       = numDevices != 1 ? "s" : "";

            RhinoApp.WriteLine($"We have {numDevices} device{endS}");
            RhinoApp.WriteLine("----------");
            foreach (var dev in Device.Devices)
            {
                if (dev.Id < 100000)
                {
                    RhinoApp.WriteLine($"	Device {dev.Id}: {dev.Name} ({dev.Description})");
                }
            }
            RhinoApp.WriteLine("----------");
            var getNumber = new GetInteger();

            getNumber.SetLowerLimit(-1, false);
            getNumber.SetUpperLimit((int)(Device.Count - 1), false);
            getNumber.SetDefaultInteger(PlugIn.Settings.GetInteger("rc_renderdevice", -1));
            getNumber.SetCommandPrompt($"Select device to render on (-1 for default, 0-{Device.Count - 1})");
            var getRc = getNumber.Get();

            if (getNumber.CommandResult() != Result.Success)
            {
                return(getNumber.CommandResult());
            }
            if (getRc == GetResult.Number)
            {
                var    idx = getNumber.Number();
                Device dev = idx > -1 ? Device.GetDevice(idx) : Device.FirstCuda;
                RhinoApp.WriteLine($"User selected device {idx}: {dev}");
                PlugIn.Settings.SetInteger("rc_renderdevice", idx);
                RcCore.It.EngineSettings.SelectedDeviceStr = idx.ToString();
                return(Result.Success);
            }

            return(Result.Nothing);
        }
Example #9
0
    public static Result DisplayPrecision(RhinoDoc doc)
    {
        var gi = new GetInteger();

        gi.SetCommandPrompt("New display precision");
        gi.SetDefaultInteger(doc.ModelDistanceDisplayPrecision);
        gi.SetLowerLimit(0, false);
        gi.SetUpperLimit(7, false);
        gi.Get();
        if (gi.CommandResult() != Result.Success)
        {
            return(gi.CommandResult());
        }
        var distance_display_precision = gi.Number();

        if (distance_display_precision != doc.ModelDistanceDisplayPrecision)
        {
            doc.ModelDistanceDisplayPrecision = distance_display_precision;
        }

        return(Result.Success);
    }
    public static Result ConduitArrowHeads(RhinoDoc doc)
    {
        if (m_draw_conduit != null)
        {
          RhinoApp.WriteLine("Turn off existing arrowhead conduit");
          m_draw_conduit.Enabled = false;
          m_draw_conduit = null;
        }
        else
        {
          // get arrow head size
          var go = new GetOption();
          go.SetCommandPrompt("ArrowHead length in screen size (pixels) or world size (percentage of arrow length)?");
          go.AddOption("screen");
          go.AddOption("world");
          go.Get();
          if (go.CommandResult() != Result.Success)
        return go.CommandResult();

          int screen_size = 0;
          double world_size = 0.0;
          if (go.Option().EnglishName == "screen")
          {
        var gi = new GetInteger();
        gi.SetLowerLimit(0, true);
        gi.SetCommandPrompt("Length of arrow head in pixels");
        gi.Get();
        if (gi.CommandResult() != Result.Success)
          return gi.CommandResult();
        screen_size = gi.Number();
          }
          else
          {
        var gi = new GetInteger();
        gi.SetLowerLimit(0, true);
        gi.SetUpperLimit(100, false);
        gi.SetCommandPrompt("Length of arrow head in percentage of total arrow length");
        gi.Get();
        if (gi.CommandResult() != Result.Success)
          return gi.CommandResult();
        world_size = gi.Number() / 100.0;
          }

          // get arrow start and end points
          var gp = new GetPoint();
          gp.SetCommandPrompt("Start of line");
          gp.Get();
          if (gp.CommandResult() != Result.Success)
        return gp.CommandResult();
          var start_point = gp.Point();

          gp.SetCommandPrompt("End of line");
          gp.SetBasePoint(start_point, false);
          gp.DrawLineFromPoint(start_point, true);
          gp.Get();
          if (gp.CommandResult() != Result.Success)
        return gp.CommandResult();
          var end_point = gp.Point();

          var v = end_point - start_point;
          if (v.IsTiny(Rhino.RhinoMath.ZeroTolerance))
        return Result.Nothing;

          var line = new Line(start_point, end_point);

          m_draw_conduit = new DrawArrowHeadsConduit(line, screen_size, world_size);
          // toggle conduit on/off
          m_draw_conduit.Enabled = true;
          RhinoApp.WriteLine("Draw arrowheads conduit enabled.");
        }
        doc.Views.Redraw();
        return Result.Success;
    }
Example #11
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            if (m_draw_conduit != null)
            {
                RhinoApp.WriteLine("Turn off existing arrowhead conduit");
                m_draw_conduit.Enabled = false;
                m_draw_conduit         = null;
            }
            else
            {
                // get arrow head size
                var go = new GetOption();
                go.SetCommandPrompt("ArrowHead length in screen size (pixels) or world size (percentage of arrow length)?");
                go.AddOption("screen");
                go.AddOption("world");
                go.Get();
                if (go.CommandResult() != Result.Success)
                {
                    return(go.CommandResult());
                }

                int    screen_size = 0;
                double world_size  = 0.0;
                if (go.Option().EnglishName == "screen")
                {
                    var gi = new GetInteger();
                    gi.SetLowerLimit(0, true);
                    gi.SetCommandPrompt("Length of arrow head in pixels");
                    gi.Get();
                    if (gi.CommandResult() != Result.Success)
                    {
                        return(gi.CommandResult());
                    }
                    screen_size = gi.Number();
                }
                else
                {
                    var gi = new GetInteger();
                    gi.SetLowerLimit(0, true);
                    gi.SetUpperLimit(100, false);
                    gi.SetCommandPrompt("Length of arrow head in percentage of total arrow length");
                    gi.Get();
                    if (gi.CommandResult() != Result.Success)
                    {
                        return(gi.CommandResult());
                    }
                    world_size = gi.Number() / 100.0;
                }


                // get arrow start and end points
                var gp = new GetPoint();
                gp.SetCommandPrompt("Start of line");
                gp.Get();
                if (gp.CommandResult() != Result.Success)
                {
                    return(gp.CommandResult());
                }
                var start_point = gp.Point();

                gp.SetCommandPrompt("End of line");
                gp.SetBasePoint(start_point, false);
                gp.DrawLineFromPoint(start_point, true);
                gp.Get();
                if (gp.CommandResult() != Result.Success)
                {
                    return(gp.CommandResult());
                }
                var end_point = gp.Point();

                var v = end_point - start_point;
                if (v.IsTiny(Rhino.RhinoMath.ZeroTolerance))
                {
                    return(Result.Nothing);
                }

                var line = new Line(start_point, end_point);

                m_draw_conduit = new DrawArrowHeadsConduit(line, screen_size, world_size);
                // toggle conduit on/off
                m_draw_conduit.Enabled = true;
                RhinoApp.WriteLine("Draw arrowheads conduit enabled.");
            }
            doc.Views.Redraw();
            return(Result.Success);
        }
Example #12
0
 public int RunDelegated(GetInteger del) => del();
Example #13
0
 public BenchmarkDelegate()
 {
     _delegateInstance = WithoutDelegate;
 }
Example #14
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            (PlugIn as Plugin)?.InitialiseCSycles();
            var numDevices = Device.Count;
            var endS       = numDevices != 1 ? "s" : "";

            RhinoApp.WriteLine($"We have {numDevices} device{endS}");
            RhinoApp.WriteLine("----------");
            List <int> allowedIds = new List <int>();

            foreach (var dev in Device.Devices)
            {
                if (dev.Id >= 100000)
                {
                    RhinoApp.WriteLine($"	Device {dev.Id}: {dev.Name} ({dev.Description})");
                    allowedIds.Add((int)dev.Id);
                }
            }
            if (allowedIds.Count < 1)
            {
                RhinoApp.WriteLine("No multi-devices available");
                return(Result.Nothing);
            }
            var lowest  = allowedIds.Min();
            var highest = allowedIds.Min();

            RhinoApp.WriteLine("----------");
            var getNumber = new GetInteger();

            getNumber.SetLowerLimit(lowest, false);
            getNumber.SetUpperLimit(highest, false);
            getNumber.SetDefaultInteger(lowest);
            getNumber.SetCommandPrompt($"Select multi-device to render");
            var getRc = getNumber.Get();

            if (getNumber.CommandResult() != Result.Success)
            {
                return(getNumber.CommandResult());
            }
            if (getRc == GetResult.Number)
            {
                var    idx = getNumber.Number();
                Device dev = Device.GetDevice(idx);
                RhinoApp.WriteLine($"User selected device {idx}: {dev}");
                List <int> sdidx = new List <int>();
                if (dev.IsMulti)
                {
                    foreach (var sd in dev.SubdevicesIndex)
                    {
                        RhinoApp.WriteLine($"  {sd.Item1} {sd.Item2}");
                        sdidx.Add(sd.Item1);
                    }
                }
                var idxstr = string.Join(",", sdidx);

                RcCore.It.EngineSettings.SelectedDeviceStr = idxstr;
                return(Result.Success);
            }

            return(Result.Nothing);
        }