Can DrawViewportMeshes() run async?

i am develping one component,this component use drawviewportmesh to draw a lot of arrows(about 10000 arrows)

        public override void DrawViewportMeshes(IGH_PreviewArgs args)
        {
            foreach(Plane p in planes)
            {
                Point3d x = new Point3d(p.OriginX + scale * p.XAxis.X, p.OriginY + scale * p.XAxis.Y, p.OriginZ + scale * p.XAxis.Z);
               Point3d y = new Point3d(p.OriginX + scale * p.YAxis.X, p.OriginY + scale * p.YAxis.Y, p.OriginZ + scale * p.YAxis.Z);
              Point3d z = new Point3d(p.OriginX + scale * p.ZAxis.X, p.OriginY + scale * p.ZAxis.Y, p.OriginZ + scale * p.ZAxis.Z);

                args.Display.DrawArrow(new Line(p.Origin, x), System.Drawing.Color.Firebrick);
                args.Display.DrawArrow(new Line(p.Origin, y), System.Drawing.Color.LimeGreen);
                args.Display.DrawArrow(new Line(p.Origin, z), System.Drawing.Color.RoyalBlue);  
            }
}

it can work,but it is very slow in viewport,how to make it faster,thank you very much

You can try the DrawArrows method instead, that might be faster.

1 Like

Thank you Deleuran,i have tried drawarrows,but still slow.i guess may use lines instead of arrows…