Migrate View3D>Edit>Display options to ViewControls3D overflow menu
This commit is contained in:
parent
72a8a5c2fc
commit
f9c769998d
8 changed files with 244 additions and 195 deletions
|
|
@ -48,10 +48,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
public CheckBox expandMaterialOptions { get; private set; }
|
||||
public CheckBox expandRotateOptions { get; private set; }
|
||||
public CheckBox expandViewOptions { get; private set; }
|
||||
|
||||
public FlowLayoutWidget rotateOptionContainer;
|
||||
private FlowLayoutWidget viewOptionContainer;
|
||||
private FlowLayoutWidget materialOptionContainer;
|
||||
|
||||
// TODO: Remove debugging variables and draw functions once drag items are positioning correctly
|
||||
|
|
@ -154,52 +152,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
view3DWidget.AddMaterialControls(materialOptionContainer);
|
||||
}
|
||||
|
||||
// put in the view options
|
||||
{
|
||||
expandViewOptions = ExpandMenuOptionFactory.GenerateCheckBoxButton("Display".Localize().ToUpper(),
|
||||
View3DWidget.ArrowRight,
|
||||
View3DWidget.ArrowDown);
|
||||
expandViewOptions.Margin = new BorderDouble(bottom: 2);
|
||||
buttonPanel.AddChild(expandViewOptions);
|
||||
expandViewOptions.CheckedStateChanged += expandViewOptions_CheckedStateChanged;
|
||||
|
||||
viewOptionContainer = new FlowLayoutWidget(FlowDirection.TopToBottom);
|
||||
viewOptionContainer.HAnchor = HAnchor.ParentLeftRight;
|
||||
viewOptionContainer.Padding = new BorderDouble(left: 4);
|
||||
viewOptionContainer.Visible = false;
|
||||
{
|
||||
CheckBox showBedCheckBox = new CheckBox("Show Print Bed".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
||||
showBedCheckBox.Checked = true;
|
||||
showBedCheckBox.CheckedStateChanged += (sender, e) =>
|
||||
{
|
||||
view3DWidget.meshViewerWidget.RenderBed = showBedCheckBox.Checked;
|
||||
};
|
||||
viewOptionContainer.AddChild(showBedCheckBox);
|
||||
|
||||
if (buildHeight > 0)
|
||||
{
|
||||
CheckBox showBuildVolumeCheckBox = new CheckBox("Show Print Area".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
||||
showBuildVolumeCheckBox.Checked = false;
|
||||
showBuildVolumeCheckBox.Margin = new BorderDouble(bottom: 5);
|
||||
showBuildVolumeCheckBox.CheckedStateChanged += (sender, e) =>
|
||||
{
|
||||
view3DWidget.meshViewerWidget.RenderBuildVolume = showBuildVolumeCheckBox.Checked;
|
||||
};
|
||||
viewOptionContainer.AddChild(showBuildVolumeCheckBox);
|
||||
}
|
||||
|
||||
if (UserSettings.Instance.IsTouchScreen)
|
||||
{
|
||||
UserSettings.Instance.set("defaultRenderSetting", RenderTypes.Shaded.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
view3DWidget.CreateRenderTypeRadioButtons(viewOptionContainer);
|
||||
}
|
||||
}
|
||||
buttonPanel.AddChild(viewOptionContainer);
|
||||
}
|
||||
|
||||
// Add vertical spacer
|
||||
this.AddChild(new GuiWidget()
|
||||
{
|
||||
|
|
@ -250,7 +202,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
if (expandMaterialOptions.Checked == true)
|
||||
{
|
||||
expandRotateOptions.Checked = false;
|
||||
expandViewOptions.Checked = false;
|
||||
}
|
||||
materialOptionContainer.Visible = expandMaterialOptions.Checked;
|
||||
}
|
||||
|
|
@ -261,26 +212,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
if (expandRotateOptions.Checked == true)
|
||||
{
|
||||
expandViewOptions.Checked = false;
|
||||
expandMaterialOptions.Checked = false;
|
||||
}
|
||||
rotateOptionContainer.Visible = expandRotateOptions.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
private void expandViewOptions_CheckedStateChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (viewOptionContainer.Visible != expandViewOptions.Checked)
|
||||
{
|
||||
if (expandViewOptions.Checked == true)
|
||||
{
|
||||
expandRotateOptions.Checked = false;
|
||||
expandMaterialOptions.Checked = false;
|
||||
}
|
||||
viewOptionContainer.Visible = expandViewOptions.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
private void AddGridSnapSettings(GuiWidget widgetToAddTo)
|
||||
{
|
||||
FlowLayoutWidget container = new FlowLayoutWidget()
|
||||
|
|
|
|||
|
|
@ -1692,121 +1692,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
AddRotateControls(Sidebar.rotateOptionContainer);
|
||||
}
|
||||
|
||||
internal void CreateRenderTypeRadioButtons(FlowLayoutWidget viewOptionContainer)
|
||||
{
|
||||
string renderTypeString = UserSettings.Instance.get(UserSettingsKey.defaultRenderSetting);
|
||||
if (renderTypeString == null)
|
||||
{
|
||||
if (UserSettings.Instance.IsTouchScreen)
|
||||
{
|
||||
renderTypeString = "Shaded";
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTypeString = "Outlines";
|
||||
}
|
||||
UserSettings.Instance.set(UserSettingsKey.defaultRenderSetting, renderTypeString);
|
||||
}
|
||||
RenderOpenGl.RenderTypes renderType;
|
||||
bool canParse = Enum.TryParse<RenderOpenGl.RenderTypes>(renderTypeString, out renderType);
|
||||
if (canParse)
|
||||
{
|
||||
meshViewerWidget.RenderType = renderType;
|
||||
}
|
||||
|
||||
{
|
||||
RadioButton renderTypeCheckBox = new RadioButton("Shaded".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
||||
renderTypeCheckBox.Checked = (meshViewerWidget.RenderType == RenderTypes.Shaded);
|
||||
|
||||
renderTypeCheckBox.CheckedStateChanged += (sender, e) =>
|
||||
{
|
||||
if (renderTypeCheckBox.Checked)
|
||||
{
|
||||
meshViewerWidget.RenderType = RenderTypes.Shaded;
|
||||
UserSettings.Instance.set(UserSettingsKey.defaultRenderSetting, meshViewerWidget.RenderType.ToString());
|
||||
}
|
||||
};
|
||||
viewOptionContainer.AddChild(renderTypeCheckBox);
|
||||
}
|
||||
|
||||
{
|
||||
RadioButton renderTypeCheckBox = new RadioButton("Outlines".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
||||
renderTypeCheckBox.Checked = (meshViewerWidget.RenderType == RenderTypes.Outlines);
|
||||
renderTypeCheckBox.CheckedStateChanged += (sender, e) =>
|
||||
{
|
||||
if (renderTypeCheckBox.Checked)
|
||||
{
|
||||
meshViewerWidget.RenderType = RenderTypes.Outlines;
|
||||
UserSettings.Instance.set(UserSettingsKey.defaultRenderSetting, meshViewerWidget.RenderType.ToString());
|
||||
}
|
||||
};
|
||||
viewOptionContainer.AddChild(renderTypeCheckBox);
|
||||
}
|
||||
|
||||
{
|
||||
RadioButton renderTypeCheckBox = new RadioButton("Polygons".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
||||
renderTypeCheckBox.Checked = (meshViewerWidget.RenderType == RenderTypes.Polygons);
|
||||
renderTypeCheckBox.CheckedStateChanged += (sender, e) =>
|
||||
{
|
||||
if (renderTypeCheckBox.Checked)
|
||||
{
|
||||
meshViewerWidget.RenderType = RenderTypes.Polygons;
|
||||
UserSettings.Instance.set(UserSettingsKey.defaultRenderSetting, meshViewerWidget.RenderType.ToString());
|
||||
}
|
||||
};
|
||||
viewOptionContainer.AddChild(renderTypeCheckBox);
|
||||
}
|
||||
|
||||
{
|
||||
RadioButton renderTypeCheckBox = new RadioButton("Overhang".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
||||
renderTypeCheckBox.Checked = (meshViewerWidget.RenderType == RenderTypes.Overhang);
|
||||
|
||||
renderTypeCheckBox.CheckedStateChanged += (sender, e) =>
|
||||
{
|
||||
if (renderTypeCheckBox.Checked)
|
||||
{
|
||||
meshViewerWidget.RenderType = RenderTypes.Overhang;
|
||||
UserSettings.Instance.set("defaultRenderSetting", meshViewerWidget.RenderType.ToString());
|
||||
foreach (var meshAndTransform in Scene.VisibleMeshes(Matrix4X4.Identity))
|
||||
{
|
||||
meshAndTransform.MeshData.MarkAsChanged();
|
||||
// change the color to be the right thing
|
||||
GLMeshTrianglePlugin glMeshPlugin = GLMeshTrianglePlugin.Get(meshAndTransform.MeshData, (faceEdge) =>
|
||||
{
|
||||
Vector3 normal = faceEdge.containingFace.normal;
|
||||
normal = Vector3.TransformVector(normal, meshAndTransform.Matrix).GetNormal();
|
||||
VertexColorData colorData = new VertexColorData();
|
||||
|
||||
double startColor = 223.0 / 360.0;
|
||||
double endColor = 5.0 / 360.0;
|
||||
double delta = endColor - startColor;
|
||||
|
||||
RGBA_Bytes color = RGBA_Floats.FromHSL(startColor, .99, .49).GetAsRGBA_Bytes();
|
||||
if (normal.z < 0)
|
||||
{
|
||||
color = RGBA_Floats.FromHSL(startColor - delta * normal.z, .99, .49).GetAsRGBA_Bytes();
|
||||
}
|
||||
|
||||
colorData.red = color.red;
|
||||
colorData.green = color.green;
|
||||
colorData.blue = color.blue;
|
||||
return colorData;
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var meshTransform in Scene.VisibleMeshes(Matrix4X4.Identity))
|
||||
{
|
||||
// turn off the overhang colors
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
viewOptionContainer.AddChild(renderTypeCheckBox);
|
||||
}
|
||||
}
|
||||
|
||||
public List<IObject3DEditor> objectEditors = new List<IObject3DEditor>();
|
||||
|
||||
public Dictionary<Type, HashSet<IObject3DEditor>> objectEditorsByType = new Dictionary<Type, HashSet<IObject3DEditor>>();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue