Optimize GC for group frame.

This commit is contained in:
2022-12-20 16:05:52 +08:00
parent 571320630b
commit 06d8012675
3 changed files with 30 additions and 24 deletions

View File

@@ -117,6 +117,7 @@ namespace Cryville.Crtr {
return Quaternion.LookRotation(r, state.Normal);
}
List<Vector3> ctrl = new List<Vector3>(2);
Vector3 GetFrame(ContainerState state, float track, Func<ContainerState, Vector3> func) {
// TODO
int id = Mathf.FloorToInt(track);
@@ -134,7 +135,7 @@ namespace Cryville.Crtr {
if (c0 && c1)
return (1 - t) * p1 + t * p2;
else {
var ctrl = new List<Vector3>(2);
ctrl.Clear();
if (!c0) {
var tp = ts0.GetControlPoint(true, deltaz);
if (tp != Vector3.zero) ctrl.Add(tp);
@@ -149,7 +150,7 @@ namespace Cryville.Crtr {
ColumnVector<float>.WithPolynomialCoefficients(
frame.Size, track
),
new Vector3Operator()
Vector3Operator.Instance
);
}
else if (ctrl.Count == 1) {