diff --git a/Assets/Cryville/Crtr/Components/SectionalGameObject.cs b/Assets/Cryville/Crtr/Components/SectionalGameObject.cs index 65ef0c2..067a731 100644 --- a/Assets/Cryville/Crtr/Components/SectionalGameObject.cs +++ b/Assets/Cryville/Crtr/Components/SectionalGameObject.cs @@ -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; }