Add RegisterOperation for type -> operation mapping

This commit is contained in:
John Lewin 2018-01-30 11:50:22 -08:00
parent 6dcd0d8c28
commit f6b0b68c9e
7 changed files with 183 additions and 4 deletions

View file

@ -63,6 +63,39 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
return resultsA;
}
public static void WrapWith(this IObject3D originalItem, IObject3D wrapper, BedConfig sceneContext)
{
originalItem.Parent.Children.Modify(list =>
{
list.Remove(originalItem);
wrapper.Matrix = originalItem.Matrix;
originalItem.Matrix = Matrix4X4.Identity;
wrapper.Children.Add(originalItem);
list.Add(wrapper);
});
sceneContext.Scene.SelectedItem = wrapper;
}
public static void Unwrap(this IObject3D item, BedConfig sceneContext)
{
foreach (var child in item.Children)
{
child.Matrix *= item.Matrix;
}
item.Parent.Children.Modify(list =>
{
list.Remove(item);
list.AddRange(item.Children);
});
sceneContext.Scene.SelectedItem = null;
}
public static Vector3 GetCenter(this IObject3D item)
{
return item.GetAxisAlignedBoundingBox(Matrix4X4.Identity).Center;