Exemplo n.º 1
0
        /// <summary>
        /// Draws a Particle through the display pipeline
        /// </summary>
        /// <param name="args">preview Display Args for IGH_PreviewObjects</param>
        /// <param name="file">the texture file</param>
        /// <param name="particleSystem">the particle system</param>
        public void DrawParticles(IGH_PreviewArgs args, string file, ParticleSystem particleSystem)
        {
            Bitmap bm = new Bitmap(file);

            Rhino.Display.DisplayBitmap dbm = new Rhino.Display.DisplayBitmap(bm);
            args.Display.DrawParticles(particleSystem, dbm);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Draws Sprites through the display pipeline
        /// </summary>
        /// <param name="args">preview Display Args for IGH_PreviewObjects</param>
        /// <param name="file">the texture file</param>
        /// <param name="particleList">the list of points representing the particle positions</param>
        public void DrawSprites(IGH_PreviewArgs args, string file, List <Point3d> particleList)
        {
            Bitmap bm = new Bitmap(file);

            Rhino.Display.DisplayBitmap         dbm = new Rhino.Display.DisplayBitmap(bm);
            Rhino.Display.DisplayBitmapDrawList ddl = new Rhino.Display.DisplayBitmapDrawList();
            ddl.SetPoints(particleList, Color.FromArgb(255, 255, 255, 255));
            args.Display.DrawSprites(dbm, ddl, 2.0f, new Vector3d(0, 0, 1), true);
        }
Exemplo n.º 3
0
    public static Rhino.Commands.Result SpriteDrawing(RhinoDoc doc)
    {
        var sprite_mode  = new Rhino.Input.Custom.OptionToggle(m_draw_single_sprite, "SpriteList", "SingleSprite");
        var size_option  = new Rhino.Input.Custom.OptionDouble(m_sprite_size);
        var space_option = new Rhino.Input.Custom.OptionToggle(m_draw_world_location, "Screen", "World");
        var go           = new Rhino.Input.Custom.GetOption();

        go.SetCommandPrompt("Sprite drawing mode");
        go.AddOptionToggle("Mode", ref sprite_mode);
        go.AddOptionDouble("Size", ref size_option);
        go.AddOptionToggle("DrawSpace", ref space_option);
        int option_go   = go.AddOption("Spin");
        int option_file = go.AddOption("FileSprite");

        Rhino.Display.DisplayPipeline.PostDrawObjects      += DisplayPipeline_PostDrawObjects;
        Rhino.Display.DisplayPipeline.CalculateBoundingBox += DisplayPipeline_CalculateBoundingBox;

        doc.Views.Redraw();
        while (go.Get() == Rhino.Input.GetResult.Option)
        {
            m_draw_single_sprite  = sprite_mode.CurrentValue;
            m_sprite_size         = (float)size_option.CurrentValue;
            m_draw_world_location = space_option.CurrentValue;
            if (go.OptionIndex() == option_go)
            {
                var gs = new Rhino.Input.Custom.GetOption();
                gs.SetCommandPrompt("press enter/escape to end");
                gs.SetWaitDuration(1);

                var vp = doc.Views.ActiveView.MainViewport;
                while (gs.Get() == Rhino.Input.GetResult.Timeout)
                {
                    vp.Rotate(0.1, Vector3d.ZAxis, Point3d.Origin);
                    doc.Views.Redraw();
                }
            }
            else if (go.OptionIndex() == option_file)
            {
                var dlg = new Rhino.UI.OpenFileDialog();
                if (dlg.ShowDialog())
                {
                    System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(dlg.FileName);
                    m_sprite = new Rhino.Display.DisplayBitmap(bmp);
                }
                doc.Views.Redraw();
            }
            else
            {
                doc.Views.Redraw();
            }
        }

        Rhino.Display.DisplayPipeline.PostDrawObjects      -= DisplayPipeline_PostDrawObjects;
        Rhino.Display.DisplayPipeline.CalculateBoundingBox -= DisplayPipeline_CalculateBoundingBox;
        return(Rhino.Commands.Result.Success);
    }
Exemplo n.º 4
0
    protected override Rhino.Commands.Result RunCommand(RhinoDoc doc, Rhino.Commands.RunMode mode)
    {
      var sprite_mode = new Rhino.Input.Custom.OptionToggle(m_draw_single_sprite, "SpriteList", "SingleSprite");
      var size_option = new Rhino.Input.Custom.OptionDouble(m_sprite_size);
      var space_option = new Rhino.Input.Custom.OptionToggle(m_draw_world_location, "Screen", "World");
      var go = new Rhino.Input.Custom.GetOption();
      go.SetCommandPrompt("Sprite drawing mode");
      go.AddOptionToggle("Mode", ref sprite_mode);
      go.AddOptionDouble("Size", ref size_option);
      go.AddOptionToggle("DrawSpace", ref space_option);
      int option_go = go.AddOption("Spin");
      int option_file = go.AddOption("FileSprite");

      Rhino.Display.DisplayPipeline.PostDrawObjects += DisplayPipeline_PostDrawObjects;
      Rhino.Display.DisplayPipeline.CalculateBoundingBox += DisplayPipeline_CalculateBoundingBox;

      doc.Views.Redraw();
      while (go.Get() == Rhino.Input.GetResult.Option)
      {
        m_draw_single_sprite = sprite_mode.CurrentValue;
        m_sprite_size = (float)size_option.CurrentValue;
        m_draw_world_location = space_option.CurrentValue;
        if (go.OptionIndex() == option_go)
        {
          var gs = new Rhino.Input.Custom.GetOption();
          gs.SetCommandPrompt("press enter/escape to end");
          gs.SetWaitDuration(1);

          var vp = doc.Views.ActiveView.MainViewport;
          while (gs.Get() == Rhino.Input.GetResult.Timeout)
          {
            vp.Rotate(0.1, Vector3d.ZAxis, Point3d.Origin);
            doc.Views.Redraw();
          }
        }
        else if (go.OptionIndex() == option_file)
        {
          System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog();
          if (dlg.ShowDialog(RhinoApp.MainWindow()) == System.Windows.Forms.DialogResult.OK)
          {
            System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(dlg.FileName);
            m_sprite = new Rhino.Display.DisplayBitmap(bmp);
          }
          doc.Views.Redraw();
        }
        else
          doc.Views.Redraw();
      }

      Rhino.Display.DisplayPipeline.PostDrawObjects -= DisplayPipeline_PostDrawObjects;
      Rhino.Display.DisplayPipeline.CalculateBoundingBox -= DisplayPipeline_CalculateBoundingBox;
      return Rhino.Commands.Result.Success;
    }
Exemplo n.º 5
0
 static Rhino.Display.DisplayBitmap GetSprite()
 {
     if (m_sprite == null)
     {
         var bmp = new System.Drawing.Bitmap(64, 64);
         using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
         {
             g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
             g.Clear(System.Drawing.Color.Transparent);
             var pen = new System.Drawing.Pen(System.Drawing.Color.White, 6);
             pen.EndCap   = System.Drawing.Drawing2D.LineCap.Round;
             pen.StartCap = pen.EndCap;
             g.DrawArc(pen, new System.Drawing.Rectangle(16, 16, 32, 32), 0, 360);
             g.DrawLine(pen, new System.Drawing.Point(8, 8), new System.Drawing.Point(56, 56));
             g.DrawLine(pen, new System.Drawing.Point(8, 56), new System.Drawing.Point(56, 8));
             pen.Dispose();
         }
         m_sprite = new Rhino.Display.DisplayBitmap(bmp);
     }
     return(m_sprite);
 }
 public SampleCsDrawViewportLogoConduit()
 {
     m_logo   = SampleCsCommands.Properties.Resources.Logo;
     m_bitmap = new Rhino.Display.DisplayBitmap(m_logo);
 }
Exemplo n.º 7
0
 Rhino.Display.DisplayBitmap GetSprite()
 {
   if (m_sprite == null)
   {
     var bmp = new System.Drawing.Bitmap(64, 64);
     using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
     {
       g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
       g.Clear(System.Drawing.Color.Transparent);
       var pen = new System.Drawing.Pen(System.Drawing.Color.White, 6);
       pen.EndCap = System.Drawing.Drawing2D.LineCap.Round;
       pen.StartCap = pen.EndCap;
       g.DrawArc(pen, new System.Drawing.Rectangle(16, 16, 32, 32), 0, 360);
       g.DrawLine(pen, new System.Drawing.Point(8, 8), new System.Drawing.Point(56, 56));
       g.DrawLine(pen, new System.Drawing.Point(8, 56), new System.Drawing.Point(56, 8));
       pen.Dispose();
     }
     m_sprite = new Rhino.Display.DisplayBitmap(bmp);
   }
   return m_sprite;
 }