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