public class FreeFormDeformationExample
{
public static void Run(string[] args)
{
try
{
var mesh = MeshLoad.FromAnySupportedFormat("mesh.stl");
var box = mesh.BoundingBox;
var ffDeformer = new FreeFormDeformer(mesh);
ffDeformer.Init(Vector3i.Diagonal(3), box);
ffDeformer.SetRefGridPointPosition(new Vector3i(1, 1, 0), box.Center());
ffDeformer.SetRefGridPointPosition(new Vector3i(1, 1, 2), box.Center());
ffDeformer.SetRefGridPointPosition(new Vector3i(0, 1, 1), box.Center());
ffDeformer.SetRefGridPointPosition(new Vector3i(2, 1, 1), box.Center());
ffDeformer.SetRefGridPointPosition(new Vector3i(1, 0, 1), box.Center());
ffDeformer.SetRefGridPointPosition(new Vector3i(1, 2, 1), box.Center());
ffDeformer.Apply();
mesh.InvalidateCaches();
MeshSave.ToAnySupportedFormat(mesh, "deformed_mesh.stl");
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}
}