refactoring to EditorDraw

This commit is contained in:
LarsBrubaker 2020-10-08 22:17:52 -07:00
parent f01914f1b1
commit e1b1757af1
4 changed files with 19 additions and 11 deletions

View file

@ -188,7 +188,7 @@ namespace MatterHackers.Plugins.EditorTools
else else
{ {
// render on top of everything very lightly // render on top of everything very lightly
Object3DControlContext.World.Render3DLine(clippingFrustum, bottomPosition, topPosition, new Color(theme.TextColor, 20), false, GuiWidget.DeviceScale); Object3DControlContext.World.Render3DLine(clippingFrustum, bottomPosition, topPosition, theme.TextColor.WithAlpha(20), false, GuiWidget.DeviceScale);
} }
} }
} }

View file

@ -42,6 +42,7 @@ using MatterHackers.MeshVisualizer;
using MatterHackers.PolygonMesh; using MatterHackers.PolygonMesh;
using MatterHackers.PolygonMesh.Processors; using MatterHackers.PolygonMesh.Processors;
using MatterHackers.RenderOpenGl; using MatterHackers.RenderOpenGl;
using MatterHackers.RenderOpenGl.OpenGl;
using MatterHackers.VectorMath; using MatterHackers.VectorMath;
namespace MatterHackers.MatterControl.DesignTools namespace MatterHackers.MatterControl.DesignTools
@ -168,7 +169,12 @@ namespace MatterHackers.MatterControl.DesignTools
{ {
var start = PositionsHaveBeenSet ? StartPosition : StartPosition.Transform(Matrix); var start = PositionsHaveBeenSet ? StartPosition : StartPosition.Transform(Matrix);
var end = PositionsHaveBeenSet ? EndPosition : EndPosition.Transform(Matrix); var end = PositionsHaveBeenSet ? EndPosition : EndPosition.Transform(Matrix);
object3DControlLayer.World.Render3DLine(start, end, Color.Black, true, width: GuiWidget.DeviceScale);
// draw on top of anything that is already drawn
object3DControlLayer.World.Render3DLine(start, end, Color.Red.WithAlpha(100), false, width: GuiWidget.DeviceScale);
// Restore DepthTest
// object3DControlLayer.World.Render3DLine(start, end, Color.Black, true, width: GuiWidget.DeviceScale);
} }
} }
} }

View file

@ -910,14 +910,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
var transparentMeshes = new List<Object3DView>(); var transparentMeshes = new List<Object3DView>();
var selectedItem = scene.SelectedItem; var selectedItem = scene.SelectedItem;
if (selectedItem != null)
{
// Invoke existing IEditorDraw when iterating items
if (selectedItem is IEditorDraw editorDraw)
{
editorDraw.DrawEditor(this, transparentMeshes, e);
}
}
foreach (var item in scene.Children) foreach (var item in scene.Children)
{ {
@ -1002,6 +994,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
floorDrawable.Draw(this, e, Matrix4X4.Identity, this.World); floorDrawable.Draw(this, e, Matrix4X4.Identity, this.World);
} }
// Draw the editor items in the same scope as the 3D Controls
if (selectedItem != null)
{
// Invoke existing IEditorDraw when iterating items
if (selectedItem is IEditorDraw editorDraw)
{
editorDraw.DrawEditor(this, transparentMeshes, e);
}
}
DrawObject3DControlVolumes(e); DrawObject3DControlVolumes(e);
foreach (var drawable in drawables.Where(d => d.DrawStage == DrawStage.TransparentContent)) foreach (var drawable in drawables.Where(d => d.DrawStage == DrawStage.TransparentContent))

View file

@ -1728,7 +1728,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
AxisAlignedBoundingBox selectedBounds = Scene.SelectedItem.GetAxisAlignedBoundingBox(); AxisAlignedBoundingBox selectedBounds = Scene.SelectedItem.GetAxisAlignedBoundingBox();
var drawCenter = CurrentSelectInfo.PlaneDownHitPos; var drawCenter = CurrentSelectInfo.PlaneDownHitPos;
var drawColor = new Color(Color.Red, 20); var drawColor = Color.Red.WithAlpha(20);
bool zBuffer = false; bool zBuffer = false;
for (int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)