diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/mecanim/animation/denseclip.h |
Diffstat (limited to 'Runtime/mecanim/animation/denseclip.h')
-rw-r--r-- | Runtime/mecanim/animation/denseclip.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Runtime/mecanim/animation/denseclip.h b/Runtime/mecanim/animation/denseclip.h new file mode 100644 index 0000000..e3175f1 --- /dev/null +++ b/Runtime/mecanim/animation/denseclip.h @@ -0,0 +1,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); + } +}
\ No newline at end of file |