1#include "envelope_evaluator.h"
2
3#include <game/editor/mapitems/envelope.h>
4#include <game/editor/mapitems/map.h>
5
6CMapEnvelopeEvaluator::CMapEnvelopeEvaluator(CEditorMap *pMap) :
7 CMapObject(pMap)
8{
9}
10
11void CMapEnvelopeEvaluator::EnvelopeEval(int TimeOffsetMillis, int EnvelopeIndex, ColorRGBA &Result, size_t Channels)
12{
13 if(EnvelopeIndex < 0 || EnvelopeIndex >= (int)Map()->m_vpEnvelopes.size())
14 return;
15
16 std::shared_ptr<CEnvelope> pEnvelope = Map()->m_vpEnvelopes[EnvelopeIndex];
17 float Time = m_AnimateTime;
18 Time *= m_AnimateSpeed;
19 Time += (TimeOffsetMillis / 1000.0f);
20 pEnvelope->Eval(Time, Result, Channels);
21}
22