feat(physics): A6.P1 — add LogPushBackAdjust helper
One-line per-call emission helper for the AdjustSphereToPlane instrumentation site. Direct field-for-field paired comparison to retail's CPolygon::adjust_sphere_to_plane breakpoint. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ad6c89de33
commit
3a173b9616
1 changed files with 44 additions and 0 deletions
|
|
@ -304,6 +304,50 @@ public static class PhysicsDiagnostics
|
||||||
public static bool ProbePushBackEnabled { get; set; } =
|
public static bool ProbePushBackEnabled { get; set; } =
|
||||||
Environment.GetEnvironmentVariable("ACDREAM_PROBE_PUSH_BACK") == "1";
|
Environment.GetEnvironmentVariable("ACDREAM_PROBE_PUSH_BACK") == "1";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A6.P1 emission helper for the <c>AdjustSphereToPlane</c> site.
|
||||||
|
/// One line per call: input sphere center, plane geometry, push-back
|
||||||
|
/// delta, walk-interp before/after, and whether the adjust applied.
|
||||||
|
/// Direct paired comparison to retail's cdb breakpoint on
|
||||||
|
/// <c>CPolygon::adjust_sphere_to_plane</c>.
|
||||||
|
///
|
||||||
|
/// <para>
|
||||||
|
/// Caller MUST guard with <c>if (!ProbePushBackEnabled) return;</c>
|
||||||
|
/// before computing the delta arguments — this method assumes the
|
||||||
|
/// caller paid that price already.
|
||||||
|
/// </para>
|
||||||
|
/// </summary>
|
||||||
|
public static void LogPushBackAdjust(
|
||||||
|
Vector3 inputCenter,
|
||||||
|
Vector3 outputCenter,
|
||||||
|
Plane plane,
|
||||||
|
float radius,
|
||||||
|
float walkInterpBefore,
|
||||||
|
float walkInterpAfter,
|
||||||
|
float dpPos,
|
||||||
|
float dpMove,
|
||||||
|
float iDist,
|
||||||
|
bool applied)
|
||||||
|
{
|
||||||
|
var delta = outputCenter - inputCenter;
|
||||||
|
float deltaMag = delta.Length();
|
||||||
|
var ci = System.Globalization.CultureInfo.InvariantCulture;
|
||||||
|
Console.WriteLine(string.Format(ci,
|
||||||
|
"[push-back] site=adjust_sphere " +
|
||||||
|
"in=({0:F4},{1:F4},{2:F4}) " +
|
||||||
|
"out=({3:F4},{4:F4},{5:F4}) " +
|
||||||
|
"delta=({6:F4},{7:F4},{8:F4}) deltaMag={9:F4} " +
|
||||||
|
"n=({10:F4},{11:F4},{12:F4}) d={13:F4} " +
|
||||||
|
"r={14:F4} winterp={15:F4}->{16:F4} " +
|
||||||
|
"dpPos={17:F4} dpMove={18:F4} iDist={19:F4} applied={20}",
|
||||||
|
inputCenter.X, inputCenter.Y, inputCenter.Z,
|
||||||
|
outputCenter.X, outputCenter.Y, outputCenter.Z,
|
||||||
|
delta.X, delta.Y, delta.Z, deltaMag,
|
||||||
|
plane.Normal.X, plane.Normal.Y, plane.Normal.Z, plane.D,
|
||||||
|
radius, walkInterpBefore, walkInterpAfter,
|
||||||
|
dpPos, dpMove, iDist, applied));
|
||||||
|
}
|
||||||
|
|
||||||
public static void LogCpBoolWrite(string field, bool oldValue, bool newValue)
|
public static void LogCpBoolWrite(string field, bool oldValue, bool newValue)
|
||||||
{
|
{
|
||||||
var caller = GetCpCallerName();
|
var caller = GetCpCallerName();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue