I have some customers that still uses Rhino 4, and I now need a plugin for Rhino 4 that projects point on mesh.
Can anyone help me?
Should be the same as this for Rhino 5:
ObjRef Mesh_ref;
var rc = RhinoGet.GetOneObject("Select the mesh", false, ObjectType.Mesh, out Mesh_ref);
if (rc != Result.Success) return rc;
ObjRef obj_ref = Mesh_ref;
var mesh = obj_ref.Mesh();
var gp = new GetPoint();
gp.SetCommandPrompt("Set first point");
gp.Get();
if (gp.CommandResult() != Result.Success)
return gp.CommandResult();
var set_point = gp.Point();
Point3d pt1a = new Point3d(set_point.X, set_point.Y, set_point.Z);
gp = new GetPoint();
gp.SetCommandPrompt("Set second point");
gp.Get();
if (gp.CommandResult() != Result.Success)
return gp.CommandResult();
set_point = gp.Point();
Point3d pt2a = new Point3d(set_point.X, set_point.Y, set_point.Z);
gp = new GetPoint();
gp.SetCommandPrompt("Set third point");
gp.Get();
if (gp.CommandResult() != Result.Success)
return gp.CommandResult();
set_point = gp.Point();
Point3d pt3a = new Point3d(set_point.X, set_point.Y, set_point.Z);
var points = new List<Point3d>();
points.Add(pt1a);
points.Add(pt2a);
points.Add(pt3a);
int[] indices;
var prj_points = Intersection.ProjectPointsToMeshesEx(new[] { mesh }, points, new Vector3d(0, 0, 1), 0, out indices);
foreach (var prj_pt in prj_points) doc.Objects.AddPoint(prj_pt);
doc.Views.Redraw();