From ecff440ceef3ad352aa64cedbb913107ec4863a5 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Tue, 25 Jun 2019 19:19:24 -0400 Subject: [PATCH] Fix regression with refresh --- BoundaryRep.java | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 42 insertions(+), 7 deletions(-) diff --git a/BoundaryRep.java b/BoundaryRep.java index 3583aa0..883e363 100644 --- a/BoundaryRep.java +++ b/BoundaryRep.java @@ -3857,6 +3857,28 @@ Trim(true/*wastrim*/,true,crease,wasstrip,false); } + void GenerateNormalsMesh() + { + if (stripified) + { + Unstripify(); + } + + if (trimmed) + { + normals = null; + } + else + { + for (int i=VertexCount(); --i>=0;) + { + Vertex v = GetVertex(i); + + v.norm = null; + } + } + } + void GenNormalsJME() { assert(false); @@ -4013,8 +4035,9 @@ triangles[i] = i; } - Untrim(); - MergeNormals(); +// Untrim(); + if (!trimmed) + MergeNormals(); } } @@ -4076,8 +4099,9 @@ triangles[0] = 3; } - Untrim(); - MergeNormals(); + //Untrim(); + if (!trimmed) + MergeNormals(); } /* @@ -4131,6 +4155,8 @@ void MergeNormals() { + assert(!trimmed); + boolean smooth = Grafreed.smoothmode; boolean link = Grafreed.linkUV; Grafreed.smoothmode = true; @@ -4942,9 +4968,18 @@ v./*pos.*/y = positions[i3 + 1]; v./*pos.*/z = positions[i3 + 2]; - v.norm.x = normals[i3]; - v.norm.y = normals[i3 + 1]; - v.norm.z = normals[i3 + 2]; + if (normals == null) + { + v.norm.x = 0; + v.norm.y = 0; + v.norm.z = 0; + } + else + { + v.norm.x = normals[i3]; + v.norm.y = normals[i3 + 1]; + v.norm.z = normals[i3 + 2]; + } v.s = uvmap[i2]; v.t = uvmap[i2 + 1]; -- Gitblit v1.6.2