public void ExNodeCalculate(AValueStruct vs, AValueMask pMask) { if (null != m_pExNode) { if (m_pExNode.NeedCalculate) { m_pExNode.CalculateAValues(); // 如果子节点需要重新计算... } m_pExNode.CombineAValues(vs, pMask, true); } }
public void ReCalculate(bool bAtOnce, AValueMask pMask, bool fcChangeNotify) { NeedCalculate = true; if (null != pMask) { m_NodeMask.Combine(pMask); } else { m_NodeMask.CalculateAll = true; } if (null != m_pParentNode) { m_pParentNode.ReCalculate(bAtOnce, pMask, fcChangeNotify); } }
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(); // 复位 }
public void CombineAValues(AValueStruct vs, AValueMask pMask, bool bLinear) { vs.Combine(m_NodeVS, pMask, bLinear); }
public virtual void ExportResult(AValueStruct vs, AValueMask pMask) { }
public virtual void AddupAValues(AValueStruct vs, AValueMask pMask) { }