adding new implicit meshing option

This commit is contained in:
Lars Brubaker 2021-06-21 18:11:28 -07:00
parent a8c0addcd2
commit 3f53189dba
4 changed files with 37 additions and 15 deletions

View file

@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project.
*/
using System;
using System.ComponentModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@ -52,6 +53,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
[EnumDisplay(Mode = EnumDisplayAttribute.PresentationMode.Buttons)]
public BooleanProcessing.ProcessingModes Processing { get; set; } = BooleanProcessing.ProcessingModes.Exact;
[EnumDisplay(Mode = EnumDisplayAttribute.PresentationMode.Buttons)]
public BooleanProcessing.IplicitSurfaceMesh MeshAnalysis { get; set; }
public override Task Rebuild()
{
this.DebugDepth("Rebuild");
@ -111,6 +115,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
var items = participants.Select(i => (i.Mesh, i.WorldMatrix(SourceContainer)));
var resultsMesh = BooleanProcessing.DoArray(items,
BooleanProcessing.CsgModes.Union,
MeshAnalysis == BooleanProcessing.IplicitSurfaceMesh.Exact,
Processing,
reporter,
cancellationToken);

View file

@ -52,6 +52,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
[EnumDisplay(Mode = EnumDisplayAttribute.PresentationMode.Buttons)]
public BooleanProcessing.ProcessingModes Processing { get; set; } = BooleanProcessing.ProcessingModes.Exact;
[EnumDisplay(Mode = EnumDisplayAttribute.PresentationMode.Buttons)]
public BooleanProcessing.IplicitSurfaceMesh MeshAnalysis { get; set; }
public override Task Rebuild()
{
this.DebugDepth("Rebuild");
@ -111,6 +114,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
var items = participants.Select(i => (i.Mesh, i.WorldMatrix(SourceContainer)));
var resultsMesh = BooleanProcessing.DoArray(items,
BooleanProcessing.CsgModes.Intersect,
MeshAnalysis == BooleanProcessing.IplicitSurfaceMesh.Exact,
Processing,
reporter,
cancellationToken);