public Mesh Split2d(Point3D raystart, Vector3D raydir, ESplitMode split_mode, ref Mesh target_mesh) { Face[] tosplit = Faces.ToArray(); foreach (Face f in tosplit) { Face inside_face,outside_face; f.SplitByRay(raystart, raydir, out inside_face, out outside_face); if (split_mode == ESplitMode.KEEP_INSIDE) { if(outside_face != null) TransferFaceTo(outside_face, target_mesh); } else if (split_mode == ESplitMode.KEEP_OUTSIDE) { if(inside_face != null) TransferFaceTo(inside_face, target_mesh); } } return this; }
private void SetSplitMode(ESplitMode pMode) { CParameterSetter.SetParameter(ESettings.currentSplitMode, (int)pMode); bool isManual = pMode == ESplitMode.Manual; form.trackBarRangeXmin.Enabled = isManual; form.trackBarRangeXmax.Enabled = isManual; form.trackBarRangeYmin.Enabled = isManual; form.trackBarRangeYmax.Enabled = isManual; form.textRangeXmin.Enabled = isManual; form.textRangeXmax.Enabled = isManual; form.textRangeYmin.Enabled = isManual; form.textRangeYmax.Enabled = isManual; bool isShapefile = pMode == ESplitMode.Shapefile; form.textShapefile.Enabled = isShapefile; form.btnShapefile.Enabled = isShapefile; }
public Mesh Split2d(Point3D raystart, Vector3D raydir, ESplitMode split_mode, ref Mesh target_mesh) { Face[] tosplit = Faces.ToArray(); foreach (Face f in tosplit) { Face inside_face, outside_face; f.SplitByRay(raystart, raydir, out inside_face, out outside_face); if (split_mode == ESplitMode.KEEP_INSIDE) { if (outside_face != null) { TransferFaceTo(outside_face, target_mesh); } } else if (split_mode == ESplitMode.KEEP_OUTSIDE) { if (inside_face != null) { TransferFaceTo(inside_face, target_mesh); } } } return(this); }