@stevebaer here is a reproducible crash with a DocumentCollectedException when using ReduceMesh//Preview on a CustomMeshObject. Is there something I’m doing wrong? If so, please advise on how to do it correctly.
Thanks!
protected override Result RunCommand(RhinoDoc doc, RunMode mode)
{
ObjRef mRef;
Result res = RhinoGet.GetOneObject("Select mesh", false, ObjectType.Mesh, out mRef);
if (res != Result.Success)
return res;
Mesh m = mRef.Mesh();
MyMeshObject my = new MyMeshObject(m);
doc.Objects.Replace(mRef, my);
doc.Views.Redraw();
RhinoApp.WriteLine("Now run ReduceMesh on the custom mesh object, give #polygons and press Preview => DocumentCollectedException.");
return Result.Success;
}
public class MyMeshObject : CustomMeshObject
{
private BoundingBox _bb;
public MyMeshObject(Mesh m)
: base(m)
{
if (null != m)
_bb = m.GetBoundingBox(true);
}
public MyMeshObject()
{
// required
}
protected override void OnDuplicate(RhinoObject source)
{
MyMeshObject other = source as MyMeshObject;
if (null != other)
{
_bb = other._bb;
}
base.OnDuplicate(source);
}
protected override void OnDraw(DrawEventArgs e)
{
if (_bb.IsValid)
e.Display.DrawBox(_bb, Color.Red, 2);
base.OnDraw(e);
}
}