summaryrefslogtreecommitdiff
path: root/Runtime/mecanim/animation/denseclip.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/mecanim/animation/denseclip.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/mecanim/animation/denseclip.h')
-rw-r--r--Runtime/mecanim/animation/denseclip.h47
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