blob: e3175f1339c95c54b4974f7015f0ab7988730439 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#pragma once
#include "Runtime/mecanim/defs.h"
#include "Runtime/Serialize/Blobification/offsetptr.h"
namespace mecanim
{
namespace animation
{
struct DenseClip
{
int m_FrameCount;
uint32_t m_CurveCount;
float m_SampleRate;
float m_BeginTime;
uint32_t m_SampleArraySize;
OffsetPtr<float> m_SampleArray;
DenseClip () : m_FrameCount (0),m_CurveCount(0),m_SampleRate(0.0F),m_SampleArraySize(0),m_BeginTime(0.0F) { }
DEFINE_GET_TYPESTRING(DenseClip)
template<class TransferFunction>
inline void Transfer (TransferFunction& transfer)
{
TRANSFER(m_FrameCount);
TRANSFER(m_CurveCount);
TRANSFER(m_SampleRate);
TRANSFER(m_BeginTime);
TRANSFER_BLOB_ONLY(m_SampleArraySize);
MANUAL_ARRAY_TRANSFER2(float, m_SampleArray, m_SampleArraySize);
}
};
// Sample functions
void SampleClip (const DenseClip& curveData, float time, float* output);
float SampleClipAtIndex (const DenseClip& curveData, int index, float time);
// Creation & Destruction
void DestroyDenseClip (DenseClip& clip, memory::Allocator& alloc);
}
}
|