Refactoring VisibleMeshes into extension method

This commit is contained in:
Lars Brubaker 2017-09-13 14:12:06 -07:00
parent 25c3c40ee8
commit dfa6832b86
8 changed files with 27 additions and 26 deletions

View file

@ -283,7 +283,7 @@ namespace MatterHackers.MeshVisualizer
if (renderType != value)
{
renderType = value;
foreach(var renderTransfrom in scene.VisibleMeshes(Matrix4X4.Identity))
foreach(var renderTransfrom in scene.VisibleMeshes())
{
renderTransfrom.Mesh.MarkAsChanged();
}
@ -381,9 +381,9 @@ namespace MatterHackers.MeshVisualizer
public bool IsActive { get; set; } = true;
private void DrawObject(IObject3D object3D, Matrix4X4 transform, List<MeshRenderData> transparentMeshes, bool parentSelected, DrawEventArgs e)
private void DrawObject(IObject3D object3D, List<MeshRenderData> transparentMeshes, bool parentSelected, DrawEventArgs e)
{
foreach (var renderData in object3D.VisibleMeshes(transform, object3D.Color, object3D.MaterialIndex, object3D.OutputType))
foreach (var renderData in object3D.VisibleMeshes())
{
bool isSelected = parentSelected ||
scene.HasSelection && (object3D == scene.SelectedItem || scene.SelectedItem.Children.Contains(object3D));
@ -533,7 +533,7 @@ namespace MatterHackers.MeshVisualizer
List<MeshRenderData> transparentMeshes = new List<MeshRenderData>();
foreach (var object3D in scene.Children)
{
DrawObject(object3D, Matrix4X4.Identity, transparentMeshes, false, e);
DrawObject(object3D, transparentMeshes, false, e);
}
transparentMeshes.Sort(BackToFrontXY);
@ -567,7 +567,7 @@ namespace MatterHackers.MeshVisualizer
}
// we don't want to render the bed or build volume before we load a model.
if (scene.HasChildren || AllowBedRenderingWhenEmpty)
if (scene.HasChildren() || AllowBedRenderingWhenEmpty)
{
if (false) // this is code to draw a small axis indicator
{

View file

@ -58,7 +58,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
// If not a Group ItemType, look for mesh volumes and split into distinct objects if found
if (!isGroupItemType
&& !selectedItem.HasChildren
&& !selectedItem.HasChildren()
&& selectedItem.Mesh != null)
{
var discreetMeshes = CreateDiscreteMeshes.SplitVolumesIntoMeshes(Scene.SelectedItem.Mesh, CancellationToken.None, (double progress0To1, string processingState) =>
@ -114,7 +114,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
public static async void GroupSelection(this InteractiveScene Scene, View3DWidget view3DWidget)
{
if (Scene.HasChildren)
if (Scene.HasChildren())
{
view3DWidget.processingProgressControl.PercentComplete = 0;
view3DWidget.processingProgressControl.Visible = true;

View file

@ -1987,7 +1987,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
private async void LoadAndAddPartsToPlate(string[] filesToLoad)
{
if (Scene.HasChildren && filesToLoad != null && filesToLoad.Length > 0)
if (Scene.HasChildren() && filesToLoad != null && filesToLoad.Length > 0)
{
processingProgressControl.ProcessType = "Loading Parts".Localize() + ":";
processingProgressControl.Visible = true;
@ -2006,7 +2006,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
bool addingOnlyOneItem = Scene.Children.Count == Scene.Children.Count + 1;
if (Scene.HasChildren)
if (Scene.HasChildren())
{
if (addingOnlyOneItem)
{
@ -2198,7 +2198,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
private async Task SaveChanges()
{
if (Scene.HasChildren)
if (Scene.HasChildren())
{
processingProgressControl.ProcessType = "Saving".Localize() + ":";
processingProgressControl.Visible = true;
@ -2380,7 +2380,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
LockEditControls();
viewIsInEditModePreLock = true;
if (Scene.HasChildren)
if (Scene.HasChildren())
{
// CreateSelectionData()
await Task.Run(() =>
@ -2602,7 +2602,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
meshViewerWidget.RenderType = RenderTypes.Overhang;
UserSettings.Instance.set("defaultRenderSetting", meshViewerWidget.RenderType.ToString());
foreach (var meshRenderData in scene.VisibleMeshes(Matrix4X4.Identity))
foreach (var meshRenderData in scene.VisibleMeshes())
{
meshRenderData.Mesh.MarkAsChanged();
// change the color to be the right thing

View file

@ -39,6 +39,7 @@ using MatterHackers.Agg.Image;
using MatterHackers.Agg.Platform;
using MatterHackers.Agg.UI;
using MatterHackers.Agg.VertexSource;
using MatterHackers.DataConverters3D;
using MatterHackers.MatterControl.DataStorage;
using MatterHackers.MatterControl.Library;
using MatterHackers.PolygonMesh;
@ -136,7 +137,7 @@ namespace MatterHackers.MatterControl
await contentResult.MeshLoaded;
var loadedMeshGroups = contentResult.Object3D.VisibleMeshes(Matrix4X4.Identity).ToList();
var loadedMeshGroups = contentResult.Object3D.VisibleMeshes().ToList();
if (loadedMeshGroups?.Count > 0)
{
AxisAlignedBoundingBox aabb = loadedMeshGroups[0].Mesh.GetAxisAlignedBoundingBox(loadedMeshGroups[0].Matrix);

@ -1 +1 @@
Subproject commit 32f1fdff8270edbd0bbf2f29f3387d30b5c0e570
Subproject commit e9e210880a985715b794d917d8e66856d8156d12

View file

@ -171,7 +171,7 @@ namespace MatterHackers.MatterControl.Plugins.BrailleBuilder
private void RebuildBase()
{
if (view3DWidget.Scene.HasChildren && injectedItem != null)
if (view3DWidget.Scene.HasChildren() && injectedItem != null)
{
var newBaseplate = brailleGenerator.CreateBaseplate(injectedItem);
if(newBaseplate == null)

View file

@ -148,7 +148,7 @@ namespace MatterHackers.MatterControl.Plugins.BrailleBuilder
private void SetCharacterPositions(IObject3D group)
{
if (group.HasChildren)
if (group.HasChildren())
{
for (int i = 0; i < characterSpacing.Length; i++)
{
@ -168,7 +168,7 @@ namespace MatterHackers.MatterControl.Plugins.BrailleBuilder
public void SetWordHeight(IObject3D group, double newHeight)
{
if (group.HasChildren)
if (group.HasChildren())
{
AxisAlignedBoundingBox baseBounds = group.Children.Last().GetAxisAlignedBoundingBox(Matrix4X4.Identity);
@ -193,7 +193,7 @@ namespace MatterHackers.MatterControl.Plugins.BrailleBuilder
public void SetWordSize(IObject3D group, double newSize)
{
if (group.HasChildren)
if (group.HasChildren())
{
foreach (var object3D in group.Children)
{
@ -225,7 +225,7 @@ namespace MatterHackers.MatterControl.Plugins.BrailleBuilder
public IObject3D CreateBaseplate(IObject3D group)
{
if (group.HasChildren)
if (group.HasChildren())
{
AxisAlignedBoundingBox bounds = group.GetAxisAlignedBoundingBox(Matrix4X4.Identity);

View file

@ -121,7 +121,7 @@ namespace MatterHackers.MatterControl.Plugins.TextCreator
private IObject3D CreateUnderline(IObject3D group)
{
if (group.HasChildren)
if (group.HasChildren())
{
AxisAlignedBoundingBox bounds = group.GetAxisAlignedBoundingBox(Matrix4X4.Identity);
@ -146,12 +146,12 @@ namespace MatterHackers.MatterControl.Plugins.TextCreator
{
hasUnderline = enableUnderline;
if (enableUnderline && group.HasChildren)
if (enableUnderline && group.HasChildren())
{
// we need to add the underline
group.Children.Add(CreateUnderline(group));
}
else if (group.HasChildren)
else if (group.HasChildren())
{
// we need to remove the underline
group.Children.Remove(group.Children.Last());
@ -160,7 +160,7 @@ namespace MatterHackers.MatterControl.Plugins.TextCreator
public void RebuildUnderline(IObject3D group)
{
if (hasUnderline && group.HasChildren)
if (hasUnderline && group.HasChildren())
{
// Remove the underline object
group.Children.Remove(group.Children.Last());
@ -172,7 +172,7 @@ namespace MatterHackers.MatterControl.Plugins.TextCreator
public void SetWordSpacing(IObject3D group, double spacing, bool rebuildUnderline = false)
{
if (group.HasChildren)
if (group.HasChildren())
{
var bedCenter = ApplicationController.Instance.Printer.Bed.BedCenter;
@ -201,7 +201,7 @@ namespace MatterHackers.MatterControl.Plugins.TextCreator
double oldSize = 1.0 / lastSizeValue;
Vector3 bedCenter = new Vector3(ApplicationController.Instance.Printer.Bed.BedCenter);
if (group.HasChildren)
if (group.HasChildren())
{
foreach (var object3D in group.Children)
{
@ -220,7 +220,7 @@ namespace MatterHackers.MatterControl.Plugins.TextCreator
public void SetWordHeight(IObject3D group, double newHeight, bool rebuildUnderline = false)
{
if (group.HasChildren)
if (group.HasChildren())
{
foreach (var sceneItem in group.Children)
{