Refactoring for move passing to all object3d controls

This commit is contained in:
LarsBrubaker 2020-09-13 15:02:30 -07:00
parent f166728aa1
commit 34a63956f9
10 changed files with 34 additions and 30 deletions

View file

@ -216,7 +216,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
base.OnMouseDown(mouseEvent3D);
}
public override void OnMouseMove(Mouse3DEventArgs mouseEvent3D)
public override void OnMouseMove(Mouse3DEventArgs mouseEvent3D, bool mouseIsOver)
{
var selectedItem = RootSelection;
ActiveSelectedItem = selectedItem;
@ -260,7 +260,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
}
base.OnMouseMove(mouseEvent3D);
base.OnMouseMove(mouseEvent3D, mouseIsOver);
}
public override void OnMouseUp(Mouse3DEventArgs mouseEvent3D)

View file

@ -51,7 +51,7 @@ namespace MatterHackers.MeshVisualizer
void OnMouseDown(Mouse3DEventArgs mouseEvent3D);
void OnMouseMove(Mouse3DEventArgs mouseEvent3D);
void OnMouseMove(Mouse3DEventArgs mouseEvent3D, bool mouseIsOver);
void OnMouseUp(Mouse3DEventArgs mouseEvent3D);

View file

@ -55,8 +55,6 @@ namespace MatterHackers.MeshVisualizer
protected bool MouseDownOnControl { get; set; }
public IntersectInfo MouseMoveInfo { get; set; }
public abstract void Dispose();
public bool MouseIsOver
@ -125,8 +123,9 @@ namespace MatterHackers.MeshVisualizer
}
}
public virtual void OnMouseMove(Mouse3DEventArgs mouseEvent3D)
public virtual void OnMouseMove(Mouse3DEventArgs mouseEvent3D, bool mouseIsOver)
{
this.MouseIsOver = mouseIsOver;
}
public virtual void OnMouseUp(Mouse3DEventArgs mouseEvent3D)

View file

@ -291,7 +291,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
if (MouseDownOnObject3DControlVolume && mouseDownObject3DControl != null)
{
mouseDownObject3DControl.OnMouseMove(mouseEvent3D);
mouseDownObject3DControl.OnMouseMove(mouseEvent3D, false);
}
else
{
@ -299,22 +299,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
var object3DControls = this.Object3DControls;
foreach (var object3DControl in object3DControls.OfType<Object3DControl>())
foreach (var object3DControl in object3DControls.OfType<IObject3DControl>())
{
if (hitObject3DControl == object3DControl)
{
object3DControl.MouseIsOver = true;
object3DControl.MouseMoveInfo = info;
HoveredObject3DControl = object3DControl;
object3DControl.OnMouseMove(mouseEvent3D, true);
}
else
{
object3DControl.MouseIsOver = false;
object3DControl.MouseMoveInfo = null;
object3DControl.OnMouseMove(mouseEvent3D, false);
}
// TODO: Why do non-hit volumes get mouse move?
object3DControl.OnMouseMove(mouseEvent3D);
}
}
}