public override void DrawViewportWires(IGH_PreviewArgs args) { args.Viewport.GetFrustumFarPlane(out Plane plane); RhinoViewport viewport = args.Viewport; for (int i = 0; i < _pt.Count; i++) { if (bar_No == 1) { var size = VisualizeModel.VisualizeModel.fontsize; Point3d point = _pt[i]; plane.Origin = point; viewport.GetWorldToScreenScale(point, out double pixPerUnit); size /= pixPerUnit; args.Display.Draw3dText(_bar[i], _c[i], plane, size, "", false, false, Rhino.DocObjects.TextHorizontalAlignment.Center, Rhino.DocObjects.TextVerticalAlignment.Bottom); } if (bar_name == 1) { var size = VisualizeModel.VisualizeModel.fontsize; Point3d point = _pt[i]; plane.Origin = point; viewport.GetWorldToScreenScale(point, out double pixPerUnit); size /= pixPerUnit; args.Display.Draw3dText(_name[i], _c[i], plane, size, "", false, false, Rhino.DocObjects.TextHorizontalAlignment.Center, Rhino.DocObjects.TextVerticalAlignment.Top); } if (bar_list == 1) { var size = VisualizeModel.VisualizeModel.fontsize; Point3d point = _pt[i]; plane.Origin = point; viewport.GetWorldToScreenScale(point, out double pixPerUnit); size /= pixPerUnit; args.Display.Draw3dText(_list[i], _c[i], plane, size, "", false, false, Rhino.DocObjects.TextHorizontalAlignment.Center, Rhino.DocObjects.TextVerticalAlignment.Top); } } }
public override void DrawViewportWires(IGH_PreviewArgs argments) { argments.Viewport.GetFrustumFarPlane(out Plane pln); RhinoViewport viewp = argments.Viewport; for (int i = 0; i < _s.Count; i++) { var material = new DisplayMaterial(_c[i], 0.5); argments.Display.DrawBrepShaded(_s[i], material); } for (int i = 0; i < _pt.Count; i++) { double size = fontsize; Point3d point = _pt[i]; pln.Origin = point; viewp.GetWorldToScreenScale(point, out double pixPerUnit); size /= pixPerUnit; var tt = _text[i]; var H = TextHorizontalAlignment.Right; var V = TextVerticalAlignment.Top; if (_c2[i] == Color.Black) { V = TextVerticalAlignment.Bottom; } if (_c2[i] == Color.Blue) { H = TextHorizontalAlignment.Left; V = TextVerticalAlignment.Bottom; } if (_c2[i] == Color.Purple) { H = TextHorizontalAlignment.Left; } argments.Display.Draw3dText(tt, _c2[i], pln, size, "", false, false, H, V); } }
/// <summary> /// Gets scale factor of a given viewport in pixels per unit /// </summary> /// <param name="viewport">viewport to calculate scale factor for</param> /// <returns>scale factor in pixels per unit</returns> public static double GetViewportScale(RhinoViewport viewport) { if (!viewport.IsPlanView) { return(0); } viewport.GetFrustumCenter(out var frustrumCenter); viewport.GetWorldToScreenScale(frustrumCenter, out var pixelsPerUnit); return(pixelsPerUnit); }
public override void DrawViewportWires(IGH_PreviewArgs args) { args.Viewport.GetFrustumFarPlane(out Plane plane); RhinoViewport viewport = args.Viewport; ///軸外力の描画用関数******************************************************************************* for (int i = 0; i < _arrow.Count; i++) { if (VisualizeModel.VisualizeModel.Value == 1) { var size = VisualizeModel.VisualizeModel.fontsize; Point3d point = _arrow[i].From; plane.Origin = point; viewport.GetWorldToScreenScale(point, out double pixPerUnit); size /= pixPerUnit; Text3d drawText = new Text3d(_text[i] + "kN", plane, size); args.Display.Draw3dText(drawText, Color.MintCream); drawText.Dispose(); } Line arrow = _arrow[i]; args.Display.DrawLine(arrow, Color.MintCream, 2); args.Display.DrawArrowHead(arrow.To, arrow.Direction, Color.MintCream, 25, 0); } }