Fix invalid MinMaxAABB error for PolygonSGO.

This commit is contained in:
2022-10-29 00:41:15 +08:00
parent 1e024a9e2d
commit ca6d58e7ad

View File

@@ -6,8 +6,8 @@ using UnityEngine;
namespace Cryville.Crtr.Components { namespace Cryville.Crtr.Components {
public abstract class SectionalGameObject : SkinComponent { public abstract class SectionalGameObject : SkinComponent {
protected bool headGenerated; protected Vector3? prevpt;
protected Vector3 prevpt; protected Quaternion? prevrot;
protected int vertCount = 0; protected int vertCount = 0;
protected MeshWrapper mesh = new MeshWrapper(); protected MeshWrapper mesh = new MeshWrapper();
@@ -24,10 +24,11 @@ namespace Cryville.Crtr.Components {
} }
public void AppendPoint(Vector3 p, Quaternion r) { public void AppendPoint(Vector3 p, Quaternion r) {
if (prevpt == p && prevrot == r) return;
AppendPointInternal(p, r); AppendPointInternal(p, r);
// if (!headGenerated) Logger.Log("main", 0, "Skin/Polysec", "{0}", r); // if (!headGenerated) Logger.Log("main", 0, "Skin/Polysec", "{0}", r);
headGenerated = true;
prevpt = p; prevpt = p;
prevrot = r;
vertCount++; vertCount++;
} }
@@ -37,7 +38,8 @@ namespace Cryville.Crtr.Components {
public virtual void Reset() { public virtual void Reset() {
vertCount = 0; vertCount = 0;
headGenerated = false; prevpt = null;
prevrot = null;
} }
} }
@@ -142,8 +144,8 @@ namespace Cryville.Crtr.Components {
vertices.Add(p + (Vector3)sp); vertices.Add(p + (Vector3)sp);
} }
if (headGenerated) { if (prevpt != null) {
float len = (p - prevpt).magnitude; float len = (p - prevpt.Value).magnitude;
lengths.Add(len); lengths.Add(len);
sumLength += len; sumLength += len;
} }