Remove faulty toggling of anchor "cur".

This commit is contained in:
2022-12-22 17:13:39 +08:00
parent 3bead4f1b3
commit 95628f07d1
2 changed files with 52 additions and 62 deletions

View File

@@ -60,6 +60,7 @@ namespace Cryville.Crtr {
float length;
public override void Update(ContainerState s, StampedEvent ev) {
base.Update(s, ev);
if (s.CloneType == 0) {
pwp = Vector3.zero;
cpt = s.ScreenPoint;
@@ -70,40 +71,34 @@ namespace Cryville.Crtr {
a_cur.position = s.ScreenPoint;
a_cur.rotation = Quaternion.Euler(s.Direction);
#endif
OpenAnchor(_a_cur);
base.Update(s, ev);
CloseAnchor(_a_cur);
}
else {
base.Update(s, ev);
if (s.CloneType == 2 || s.CloneType == 3) {
var tpt = s.ScreenPoint;
var tsv = s.ScrollVelocity;
else if (s.CloneType == 2 || s.CloneType == 3) {
var tpt = s.ScreenPoint;
var tsv = s.ScrollVelocity;
Vector3 dpt = (Vector3)tpt - ppt; // Delta 2D point
dpt.z = (float)((s.Time - ptime) * ChartPlayer.sv * tsv); // Delta Z
Quaternion rotq = Quaternion.Euler(s.Direction); // Rotation
var dwp = rotq * dpt; // Delta world point
var nl = length + dwp.magnitude; // New length
var tdist = s.Distance;
if (nl >= tdist) {
s.Break();
return;
}
length = nl;
var wp = pwp + dwp; // World point
pwp = wp;
ppt += dpt;
ptime = s.Time;
if (!gogroup || s.CloneType == 3) return;
var p = GetCurrentWorldPoint();
foreach (var i in sgos)
i.AppendPoint(p, s.QuatDir);
Vector3 dpt = (Vector3)tpt - ppt; // Delta 2D point
dpt.z = (float)((s.Time - ptime) * ChartPlayer.sv * tsv); // Delta Z
Quaternion rotq = Quaternion.Euler(s.Direction); // Rotation
var dwp = rotq * dpt; // Delta world point
var nl = length + dwp.magnitude; // New length
var tdist = s.Distance;
if (nl >= tdist) {
s.Break();
return;
}
else UpdatePosition(s);
length = nl;
var wp = pwp + dwp; // World point
pwp = wp;
ppt += dpt;
ptime = s.Time;
if (!gogroup || s.CloneType == 3) return;
var p = GetCurrentWorldPoint();
foreach (var i in sgos)
i.AppendPoint(p, s.QuatDir);
}
else UpdatePosition(s);
}
void UpdatePosition(ContainerState s) {