Working on a new radial pinch
This commit is contained in:
parent
6a7f1b0caf
commit
186d556bc8
7 changed files with 435 additions and 33 deletions
|
|
@ -48,7 +48,7 @@ using Newtonsoft.Json;
|
|||
|
||||
namespace MatterHackers.MatterControl.DesignTools
|
||||
{
|
||||
public class TwistObject3D : OperationSourceContainerObject3D, IPropertyGridModifier, IEditorDraw
|
||||
public class TwistObject3D : OperationSourceContainerObject3D, IPropertyGridModifier, IEditorDraw
|
||||
{
|
||||
public TwistObject3D()
|
||||
{
|
||||
|
|
@ -374,34 +374,4 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface IRadiusProvider
|
||||
{
|
||||
double Radius { get; }
|
||||
}
|
||||
|
||||
public static class ObjectCircleExtensions
|
||||
{
|
||||
public static Circle GetSmallestEnclosingCircleAlongZ(this IObject3D object3D)
|
||||
{
|
||||
var visibleMeshes = object3D.VisibleMeshes().Select(vm => (source: vm, convexHull: vm.Mesh.GetConvexHull(false))).ToList();
|
||||
|
||||
IEnumerable<Vector2> GetVertices()
|
||||
{
|
||||
foreach (var visibleMesh in visibleMeshes)
|
||||
{
|
||||
var matrix = visibleMesh.source.WorldMatrix(object3D);
|
||||
foreach (var positon in visibleMesh.convexHull.Vertices)
|
||||
{
|
||||
var transformed = positon.Transform(matrix);
|
||||
yield return new Vector2(transformed.X, transformed.Y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var circle = SmallestEnclosingCircle.MakeCircle(GetVertices());
|
||||
|
||||
return circle;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue