diff options
Diffstat (limited to 'indra/llcommon/llcriticaldamp.h')
-rw-r--r-- | indra/llcommon/llcriticaldamp.h | 82 |
1 files changed, 3 insertions, 79 deletions
diff --git a/indra/llcommon/llcriticaldamp.h b/indra/llcommon/llcriticaldamp.h index 19a2ddb77a..52f052ae25 100644 --- a/indra/llcommon/llcriticaldamp.h +++ b/indra/llcommon/llcriticaldamp.h @@ -32,98 +32,22 @@ #include "llframetimer.h" -// These enums each represent one fixed-time delta value -// that we interpolate once given the actual sTimeDelta time -// that has passed. This allows us to calculate the interp portion -// of those values once and then look them up repeatedly per frame. -// -enum InterpDelta -{ - InterpDelta_0_025, // 0.025 - InterpDeltaTeenier = InterpDelta_0_025, - InterpDeltaFolderOpenTime = InterpDelta_0_025, - InterpDeltaFolderCloseTime = InterpDelta_0_025, - InterpDeltaCameraFocusHalfLife = InterpDelta_0_025, // USED TO BE ZERO.... - - InterpDelta_0_05, // 0.05 - InterpDeltaTeeny = InterpDelta_0_05, - - InterpDelta_0_06, // 0.06 - InterpDeltaObjectDampingConstant = InterpDelta_0_06, - InterpDeltaCameraZoomHalfLife = InterpDelta_0_06, - InterpDeltaFovZoomHalfLife = InterpDelta_0_06, - InterpDeltaManipulatorScaleHalfLife = InterpDelta_0_06, - InterpDeltaContextFadeTime = InterpDelta_0_06, - - InterpDelta_0_10, // 0.10 - InterpDeltaSmaller = InterpDelta_0_10, - InterpDeltaTargetLagHalfLife = InterpDelta_0_10, - InterpDeltaSpeedAdjustTime = InterpDelta_0_10, - - InterpDelta_0_15, // 0.15 - InterpDeltaFadeWeight = InterpDelta_0_15, - InterpDeltaHeadLookAtLagHalfLife = InterpDelta_0_15, - - InterpDelta_0_20, // 0.20 - InterpDeltaSmall = InterpDelta_0_20, - InterpDeltaTorsoLagHalfLife = InterpDelta_0_20, - InterpDeltaPositionDampingTC = InterpDelta_0_20, - - InterpDelta_0_25, // 0.25 - InterpDeltaCameraLagHalfLife = InterpDelta_0_25, - InterpDeltaTorsoTargetLagHalfLife = InterpDelta_0_25, - InterpDeltaTorsoLookAtLagHalfLife = InterpDelta_0_25, - - InterpDelta_0_30, // 0.3 - InterpDeltaSmallish = InterpDelta_0_30, - - // Dynamically set interpolants which use setInterpolantConstant - // - InterpDeltaCameraSmoothingHalfLife, - InterpDeltaBehindnessLag, - InterpDeltaFocusLag, - InterpDeltaPositionLag, - InterpDeltaOpenTime, - InterpDeltaCloseTime, - - kNumCachedInterpolants -}; - class LL_COMMON_API LLCriticalDamp { public: LLCriticalDamp(); - // Updates all the known interp delta values for fast lookup in calls to getInterpolant(InterpDelta) - // + // MANIPULATORS static void updateInterpolants(); - static inline void setInterpolantConstant(InterpDelta whichDelta, const F32 time_constant) - { - llassert(whichDelta < kNumCachedInterpolants); - sInterpolants[whichDelta] = time_constant; - } - // ACCESSORS - static inline F32 getInterpolant(InterpDelta whichDelta) - { - llassert(whichDelta < kNumCachedInterpolants); - return sInterpolatedValues[whichDelta]; - } - - static inline F32 getInterpolant(const F32 time_constant) - { - return llclamp((sTimeDelta / time_constant), 0.0f, 1.0f); - } + static F32 getInterpolant(const F32 time_constant, BOOL use_cache = TRUE); protected: static LLFrameTimer sInternalTimer; // frame timer for calculating deltas - //static std::map<F32, F32> sInterpolants; - static F32 sInterpolants[kNumCachedInterpolants]; - static F32 sInterpolatedValues[kNumCachedInterpolants]; + static std::map<F32, F32> sInterpolants; static F32 sTimeDelta; }; #endif // LL_LLCRITICALDAMP_H - |