Prune and clean up code.

This commit is contained in:
2023-04-04 20:48:17 +08:00
parent a013d59379
commit c98536e8ab
12 changed files with 23 additions and 377 deletions

View File

@@ -7,9 +7,9 @@ namespace Cryville.Crtr {
public class GroupHandler : ContainerHandler {
public ChartHandler ch;
ColumnVector<float> coeffs;
SquareMatrix matFrame;
ContainerState[] tracks;
public int TrackCount { get { return tracks.Length; } }
public GroupHandler(Chart.Group tg, ChartHandler ch) : base() {
this.ch = ch;
@@ -20,18 +20,21 @@ namespace Cryville.Crtr {
public override void PreInit() {
base.PreInit();
tracks = cs.TypedChildren[typeof(Chart.Track)].ToArray();
matFrame = SquareMatrix.WithPolynomialCoefficients(tracks.Length);
frame1 = new ColumnVector<Vector3>(tracks.Length);
frame2 = new ColumnVector<Vector3>(tracks.Length);
int numTracks = tracks.Length;
coeffs = new ColumnVector<float>(numTracks);
matFrame = SquareMatrix.WithPolynomialCoefficients(numTracks);
frame1 = new ColumnVector<Vector3>(numTracks);
frame2 = new ColumnVector<Vector3>(numTracks);
}
ColumnVector<Vector3> frame1;
ColumnVector<Vector3> frame2;
public ColumnVector<Vector3> GetCurrentFrame(Func<ContainerState, Vector3> func) {
public Vector3 GetCurrentFrame(Func<ContainerState, Vector3> func, float track) {
for (int i = 0; i < tracks.Length; i++)
frame1[i] = func(tracks[i]);
matFrame.Eliminate(frame1, frame2, Vector3Operator.Instance);
return frame2;
ColumnVector<float>.FillWithPolynomialCoefficients(coeffs, track);
return frame2.Dot(coeffs, Vector3Operator.Instance);
}
}