2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 05:47:42 +00:00

Finish CInterpolationCamera

This commit is contained in:
Jack Andersen
2018-06-27 15:17:01 -10:00
parent 8df333b29a
commit 680cb7b353
13 changed files with 225 additions and 57 deletions

View File

@@ -335,8 +335,7 @@ float CCameraSpline::FindClosestLengthOnSpline(float time, const zeus::CVector3f
extrap = x4_positions.back();
nextDelta = delta + thisPos - extrap;
}
delta.normalize();
nextDelta.normalize();
if (i < x4_positions.size() - 2)
{
@@ -358,12 +357,14 @@ float CCameraSpline::FindClosestLengthOnSpline(float time, const zeus::CVector3f
}
nextRevDelta = revDelta + *nextPos - extrap;
}
nextRevDelta.normalize();
revDelta.normalize();
nextDelta.normalize();
nextRevDelta.normalize();
float proj = (p - thisPos).dot(delta) / delta.dot(nextDelta);
float nextProj = (p - *nextPos).dot(revDelta) / revDelta.dot(nextRevDelta);
zeus::CVector3f ptToPlayer = p - thisPos;
float proj = ptToPlayer.dot(nextDelta) / nextDelta.dot(delta.normalized());
zeus::CVector3f nextPtToPlayer = p - *nextPos;
float nextProj = nextPtToPlayer.dot(nextRevDelta) / nextRevDelta.dot(revDelta.normalized());
float t = proj / (proj + nextProj);
if (!x48_closedLoop)