示例#1
0
 public void ExNodeCalculate(AValueStruct vs, AValueMask pMask)
 {
     if (null != m_pExNode)
     {
         if (m_pExNode.NeedCalculate)
         {
             m_pExNode.CalculateAValues(); // 如果子节点需要重新计算...
         }
         m_pExNode.CombineAValues(vs, pMask, true);
     }
 }
示例#2
0
        public AValueNode()
        {
            NeedCalculate = true;

            m_pParentNode   = new AValueNode();
            m_NodeVS        = new AValueStruct();
            m_nChildNodeCnt = 0;

            m_pChildNode = new AValueNode[MAXCHILDNODE];

            m_pExNode = null;
        }
示例#3
0
        public void CalculateAValues()
        {
            NeedCalculate = false;

            AValueStruct vs = m_NodeVS;

            if (m_NodeMask.CalculateAll)
            {
                m_NodeMask.CalculateAll = false;
                m_NodeMask = null;
            }

            // 重置标脏的属性数据
            vs.Reset(m_NodeMask);

            // 合并子节点的数值
            for (int i = 0; i < m_nChildNodeCnt; i++)
            {
                AValueNode pNode = m_pChildNode[i];
                if (null != pNode)
                {
                    if (pNode.NeedCalculate)
                    {
                        pNode.CalculateAValues(); // 如果子节点需要重新计算...
                    }
                    // 合并子节点的当前属性结构
                    pNode.CombineAValues(vs, m_NodeMask, true);
                }
            }

            // 合并本节点的属性结构
            AddupAValues(vs, m_NodeMask);

            ExNodeCalculate(vs, m_NodeMask);

            ExportResult(vs, m_NodeMask);

            m_NodeMask.Reset(); // 复位
        }
示例#4
0
 public void CombineAValues(AValueStruct vs, AValueMask pMask, bool bLinear)
 {
     vs.Combine(m_NodeVS, pMask, bLinear);
 }
示例#5
0
 public virtual void ExportResult(AValueStruct vs, AValueMask pMask)
 {
 }
示例#6
0
 public virtual void AddupAValues(AValueStruct vs, AValueMask pMask)
 {
 }