summaryrefslogtreecommitdiff
path: root/indra/llcommon/llcriticaldamp.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon/llcriticaldamp.h')
-rw-r--r--indra/llcommon/llcriticaldamp.h82
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
-