Made a face struct and made face list use it

put normal into face
This commit is contained in:
Lars Brubaker 2019-01-14 17:48:57 -08:00
parent a460ddbbf7
commit 6e4bbf2306
4 changed files with 7 additions and 6 deletions

View file

@ -193,7 +193,7 @@ namespace MatterHackers.MatterControl.DesignTools
// make lists so we can add to them
var vL = v.ToVector3List();
vL.Transform(matrix);
var fL = new FaceList(f);
var fL = new FaceList(f, curvedMesh.Vertices);
Teselate.SplitEdges(vL, fL, maxXLength);
vL.Transform(matrixInv);

View file

@ -68,6 +68,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
var newCenter = new Vector3(aabb.Center.X, aabb.Center.Y, aabb.MinXYZ.Z);
item.Translate(-newCenter);
this.Translate(newCenter);
this.ScaleAbout = newCenter;
}
public override bool CanFlatten => true;

View file

@ -170,7 +170,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
var matrix = item.WorldMatrix(scene);
for (int faceIndex = 0; faceIndex < item.Mesh.Faces.Count; faceIndex++)
{
var face0Normal = item.Mesh.FaceNormals[faceIndex].TransformVector(matrix).GetNormal();
var face0Normal = item.Mesh.Faces[faceIndex].normal.TransformNormal(matrix).GetNormal();
var angle = MathHelper.RadiansToDegrees(Math.Acos(face0Normal.Dot(-Vector3Float.UnitZ)));
if (angle < MaxOverHangAngle)
@ -178,7 +178,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
var face = item.Mesh.Faces[faceIndex];
var verts = new int[] { face.v0, face.v1, face.v2 };
var fc = downVerts.Count;
downFaces.Add((fc, fc+1, fc+2));
downFaces.Add(fc, fc+1, fc+2, downVerts);
downVerts.Add(item.Mesh.Vertices[face.v0].Transform(matrix));
downVerts.Add(item.Mesh.Vertices[face.v1].Transform(matrix));
downVerts.Add(item.Mesh.Vertices[face.v2].Transform(matrix));
@ -189,7 +189,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
var face = item.Mesh.Faces[faceIndex];
var verts = new int[] { face.v0, face.v1, face.v2 };
var fc = upFaces.Count;
upFaces.Add((fc, fc + 1, fc + 2));
upFaces.Add(fc, fc + 1, fc + 2, upVerts);
upVerts.Add(item.Mesh.Vertices[face.v0].Transform(matrix));
upVerts.Add(item.Mesh.Vertices[face.v1].Transform(matrix));
upVerts.Add(item.Mesh.Vertices[face.v2].Transform(matrix));
@ -305,7 +305,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
if (aboveBed)
{
var face0Normal = item.Mesh.FaceNormals[faceIndex].TransformVector(matrix).GetNormal();
var face0Normal = item.Mesh.Faces[faceIndex].normal.TransformNormal(matrix).GetNormal();
var angle = MathHelper.RadiansToDegrees(Math.Acos(face0Normal.Dot(-Vector3Float.UnitZ)));
if (angle < MaxOverHangAngle)

@ -1 +1 @@
Subproject commit 4c59390c9b15b5e9d49f034610cad69032fe3aa0
Subproject commit dcf16bdd93b45af47a37070f6a3452e1c7a2d646