summaryrefslogtreecommitdiff
path: root/Runtime/mecanim/graph/plugbinder.cpp
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/graph/plugbinder.cpp
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/mecanim/graph/plugbinder.cpp')
-rw-r--r--Runtime/mecanim/graph/plugbinder.cpp180
1 files changed, 180 insertions, 0 deletions
diff --git a/Runtime/mecanim/graph/plugbinder.cpp b/Runtime/mecanim/graph/plugbinder.cpp
new file mode 100644
index 0000000..03ffb30
--- /dev/null
+++ b/Runtime/mecanim/graph/plugbinder.cpp
@@ -0,0 +1,180 @@
+#include "UnityPrefix.h"
+#include "Runtime/mecanim/graph/plugbinder.h"
+
+namespace mecanim
+{
+ void InitializeSetPlugBinder3(uint32_t& arCount, SetPlugBinder3 *& arSetPlugBinder3, ValuesList const& arValuesList, graph::EvaluationGraph const* apGraph, memory::Allocator& arAlloc)
+ {
+ arCount = 0;
+ arSetPlugBinder3 = 0;
+
+ uint32_t i;
+ for(i = 0 ; i < apGraph->m_Input->mPlugCount; i++)
+ {
+ graph::GraphPlug& plug = *apGraph->m_Input->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_InValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_InValuesConstant[j], plug.m_ID);
+ if(index > -1)
+ {
+ arCount++;
+ }
+ }
+ }
+
+ if(arCount)
+ {
+ arSetPlugBinder3 = arAlloc.ConstructArray<SetPlugBinder3>(arCount);
+ uint32_t binderCount;
+ for(i = 0, binderCount = 0; i < apGraph->m_Input->mPlugCount; i++)
+ {
+ graph::GraphPlug const* plug = apGraph->m_Input->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_InValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_InValuesConstant[j], plug->m_ID);
+ if(index > -1)
+ {
+ uint32_t valueIndex = static_cast<uint32_t>(index);
+ arSetPlugBinder3[binderCount++] = bind( SetPlugValueList, plug, j, valueIndex);
+ }
+ }
+ }
+ }
+ }
+
+ void InitializeGetPlugBinder3(uint32_t& arCount,
+ GetPlugBinder3 *& arGetPlugBinder3,
+ ValuesList const& arValuesList,
+ graph::EvaluationGraph const* apGraph,
+ memory::Allocator& arAlloc)
+ {
+ arCount = 0;
+ arGetPlugBinder3 = 0;
+
+ uint32_t i;
+ for(i = 0 ; i < apGraph->m_Output->mPlugCount; i++)
+ {
+ graph::GraphPlug& plug = *apGraph->m_Output->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_OutValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_OutValuesConstant[j], plug.m_ID);
+ if(index > -1)
+ {
+ arCount++;
+ }
+ }
+ }
+
+ if(arCount)
+ {
+ arGetPlugBinder3 = arAlloc.ConstructArray<GetPlugBinder3>(arCount);
+ uint32_t binderCount;
+ for(i = 0, binderCount = 0; i < apGraph->m_Output->mPlugCount; i++)
+ {
+ graph::GraphPlug const* plug = apGraph->m_Output->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_OutValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_OutValuesConstant[j], plug->m_ID);
+ if(index > -1)
+ {
+ uint32_t valueIndex = static_cast<uint32_t>(index);
+ arGetPlugBinder3[binderCount++] = bind( GetPlugValueList, plug, j, valueIndex);
+ }
+ }
+ }
+ }
+ }
+
+
+
+ void InitializeSetPlugBinder2(uint32_t& arCount, SetPlugBinder2 *& arSetPlugBinder2, ValuesList const& arValuesList, graph::EvaluationGraph const* apGraph, memory::Allocator& arAlloc)
+ {
+ arCount = 0;
+ arSetPlugBinder2 = 0;
+
+ uint32_t i;
+ for(i = 0 ; i < apGraph->m_Input->mPlugCount; i++)
+ {
+ graph::GraphPlug& plug = *apGraph->m_Input->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_InValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_InValuesConstant[j], plug.m_ID);
+ if(index > -1)
+ {
+ arCount++;
+ }
+ }
+ }
+
+ if(arCount)
+ {
+ arSetPlugBinder2 = arAlloc.ConstructArray<SetPlugBinder2>(arCount);
+ uint32_t binderCount;
+ for(i = 0, binderCount = 0; i < apGraph->m_Input->mPlugCount; i++)
+ {
+ graph::GraphPlug const* plug = apGraph->m_Input->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_InValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_InValuesConstant[j], plug->m_ID);
+ if(index > -1)
+ {
+ uint32_t valueIndex = static_cast<uint32_t>(index);
+ arSetPlugBinder2[binderCount++] = bind( SetPlugValue, plug, valueIndex);
+ }
+ }
+ }
+ }
+ }
+
+ void InitializeGetPlugBinder5(uint32_t& arCount,
+ GetPlugBinder2 *& arGetPlugBinder2,
+ ValuesList const& arValuesList,
+ graph::EvaluationGraph const* apGraph,
+ memory::Allocator& arAlloc)
+ {
+ arCount = 0;
+ arGetPlugBinder2 = 0;
+
+ uint32_t i;
+ for(i = 0 ; i < apGraph->m_Output->mPlugCount; i++)
+ {
+ graph::GraphPlug& plug = *apGraph->m_Output->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_OutValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_OutValuesConstant[j], plug.m_ID);
+ if(index > -1)
+ {
+ arCount++;
+ }
+ }
+ }
+
+ if(arCount)
+ {
+ arGetPlugBinder2 = arAlloc.ConstructArray<GetPlugBinder2>(arCount);
+ uint32_t binderCount;
+ for(i = 0, binderCount = 0; i < apGraph->m_Output->mPlugCount; i++)
+ {
+ graph::GraphPlug const* plug = apGraph->m_Output->mPlugArray[i];
+ uint32_t j;
+ for(j=0;j<arValuesList.m_OutValuesCount;++j)
+ {
+ int32_t index = FindValueIndex(arValuesList.m_OutValuesConstant[j], plug->m_ID);
+ if(index > -1)
+ {
+ uint32_t valueIndex = static_cast<uint32_t>(index);
+ arGetPlugBinder2[binderCount++] = bind( GetPlugValue, plug, valueIndex);
+ }
+ }
+ }
+ }
+ }
+
+}