Esempio n. 1
0
 public void SetExNode(AValueNode pNode)
 {
     m_pExNode = pNode;
     if (null != pNode)
     {
         pNode.m_pParentNode = this;
     }
 }
Esempio n. 2
0
        public void AddChildNode(AValueNode pNode)
        {
            if (pNode != null && m_nChildNodeCnt < MAXCHILDNODE)
            {
                m_pChildNode[m_nChildNodeCnt] = pNode;
                m_nChildNodeCnt++;

                pNode.m_pParentNode = this;
            }
        }
Esempio n. 3
0
        public AValueNode()
        {
            NeedCalculate = true;

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

            m_pChildNode = new AValueNode[MAXCHILDNODE];

            m_pExNode = null;
        }
Esempio n. 4
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(); // 复位
        }