Refactoring to build a Height scaling top control

This commit is contained in:
LarsBrubaker 2020-09-16 22:44:28 -07:00
parent 5c2308a134
commit 8511191abb
8 changed files with 74 additions and 52 deletions

View file

@ -28,14 +28,15 @@ either expressed or implied, of the FreeBSD Project.
*/
using System.Threading.Tasks;
using MatterHackers.Agg;
using MatterHackers.DataConverters3D;
using MatterHackers.Localizations;
using MatterHackers.MatterControl.PartPreviewWindow;
using MatterHackers.Plugins.EditorTools;
using MatterHackers.PolygonMesh;
namespace MatterHackers.MatterControl.DesignTools
{
public class CubeObject3D : PrimitiveObject3D
public class CubeObject3D : PrimitiveObject3D, IObject3DControlsProvider
{
public CubeObject3D()
{
@ -49,6 +50,21 @@ namespace MatterHackers.MatterControl.DesignTools
public double Height { get; set; } = 20;
public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer)
{
object3DControlsLayer.AddDefaultControls();
object3DControlsLayer.AddWorldRotateControls();
var object3DControls = object3DControlsLayer.Object3DControls;
//object3DControls.Add(new ScaleMatrixTopControl(object3DControlsLayer));
object3DControls.Add(new ScaleHeightControl(object3DControlsLayer));
object3DControls.Add(new ScaleCornerControl(object3DControlsLayer, 0));
object3DControls.Add(new ScaleCornerControl(object3DControlsLayer, 1));
object3DControls.Add(new ScaleCornerControl(object3DControlsLayer, 2));
object3DControls.Add(new ScaleCornerControl(object3DControlsLayer, 3));
}
public static async Task<CubeObject3D> Create()
{
var item = new CubeObject3D();

View file

@ -35,8 +35,6 @@ namespace MatterHackers.MatterControl.DesignTools
{
public interface IObject3DControlsProvider
{
List<IObject3DControl> GetObject3DControls(Object3DControlsLayer object3DControlsLayer);
void AddObject3DControls(Object3DControlsLayer object3DControlsLayer);
}
}

View file

@ -129,14 +129,9 @@ namespace MatterHackers.MatterControl.DesignTools
}
}
public List<IObject3DControl> GetObject3DControls(Object3DControlsLayer object3DControlsLayer)
public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer)
{
return new List<IObject3DControl>
{
new MoveInZControl(object3DControlsLayer),
new SelectionShadow(object3DControlsLayer),
new SnappingIndicators(object3DControlsLayer),
};
object3DControlsLayer.AddDefaultControls();
}
private ImageBuffer LoadImage()

View file

@ -49,7 +49,7 @@ namespace MatterHackers.MatterControl.DesignTools
public class MeasureToolObject3D : Object3D, IObject3DControlsProvider, IEditorDraw
{
private static Mesh shape = null;
private List<IObject3DControl> editorControls;
private List<IObject3DControl> editorControls = null;
public MeasureToolObject3D()
{
@ -88,7 +88,7 @@ namespace MatterHackers.MatterControl.DesignTools
public override bool Persistable => false;
public List<IObject3DControl> GetObject3DControls(Object3DControlsLayer object3DControlsLayer)
public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer)
{
if (editorControls == null)
{
@ -133,7 +133,7 @@ namespace MatterHackers.MatterControl.DesignTools
};
}
return editorControls;
object3DControlsLayer.Object3DControls.AddRange(editorControls);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)