From ae3f9e4d2f08853f7ad816e58b3111ce1b3289d8 Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Sun, 14 Feb 2016 11:34:58 -0800 Subject: [PATCH] Added HulledObject, Hull --- OSCADSharp/OSCADSharp.ConsoleTests/Program.cs | 2 +- OSCADSharp/OSCADSharp/OSCADObject.cs | 10 ++++++++++ OSCADSharp/OSCADSharp/OSCADSharp.csproj | 1 + .../OSCADSharp/Transforms/HulledObject.cs | 19 +++++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 OSCADSharp/OSCADSharp/Transforms/HulledObject.cs diff --git a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs index 627b6cf..a28f438 100644 --- a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs +++ b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs @@ -15,7 +15,7 @@ namespace OSCADSharp.ConsoleTests { var cube = new Cube(null, true).Translate(10, 0, 5).Scale(1, 1, 5); var sphere = new Sphere().Mimic(cube).Translate(0, 0, 10); - string script = cube.Minkowski(sphere, new Cylinder()).ToString(); + string script = cube.Hull(sphere, new Cylinder()).ToString(); File.WriteAllLines("test.scad", new string[] { script.ToString() }); Console.ReadKey(); diff --git a/OSCADSharp/OSCADSharp/OSCADObject.cs b/OSCADSharp/OSCADSharp/OSCADObject.cs index c724676..f7ddbaa 100644 --- a/OSCADSharp/OSCADSharp/OSCADObject.cs +++ b/OSCADSharp/OSCADSharp/OSCADObject.cs @@ -143,6 +143,16 @@ namespace OSCADSharp { return new MinkowskiedObject(nodes); } + + /// + /// Creates a conved hull from child nodes (including this object) + /// + /// Nodes to hull + /// Hull of nodes + public OSCADObject Hull(params OSCADObject[] nodes) + { + return new HulledObject(nodes); + } #endregion #region Boolean Operations diff --git a/OSCADSharp/OSCADSharp/OSCADSharp.csproj b/OSCADSharp/OSCADSharp/OSCADSharp.csproj index dbdf472..edbee13 100644 --- a/OSCADSharp/OSCADSharp/OSCADSharp.csproj +++ b/OSCADSharp/OSCADSharp/OSCADSharp.csproj @@ -41,6 +41,7 @@ + diff --git a/OSCADSharp/OSCADSharp/Transforms/HulledObject.cs b/OSCADSharp/OSCADSharp/Transforms/HulledObject.cs new file mode 100644 index 0000000..04d3b00 --- /dev/null +++ b/OSCADSharp/OSCADSharp/Transforms/HulledObject.cs @@ -0,0 +1,19 @@ +using OSCADSharp.Scripting; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OSCADSharp.Transforms +{ + /// + /// Creates an object that's the convex hull of child objects + /// + internal class HulledObject : MultiBlockStatementObject + { + public HulledObject(IEnumerable children) : base("hull()", children) + { + } + } +}