本文整理汇总了C++中CExpression::updateTree方法的典型用法代码示例。如果您正苦于以下问题:C++ CExpression::updateTree方法的具体用法?C++ CExpression::updateTree怎么用?C++ CExpression::updateTree使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CExpression
的用法示例。
在下文中一共展示了CExpression::updateTree方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: copyInitialExpression
bool CModelAdd::copyInitialExpression(const CModelEntity * sourceEntity, CModelEntity * newEntity)
{
bool info = false;
const CExpression* pExpression = sourceEntity->getInitialExpressionPtr();
if (pExpression == NULL) return info;
CExpression* tmp;
tmp = new CExpression(*pExpression, mmModel);
const std::vector<CEvaluationNode*>& objectNodes = tmp->getNodeList();
size_t j, jmax = objectNodes.size();
for (j = 0; j < jmax; ++j)
{
if (CEvaluationNode::type(objectNodes[j]->getType()) == CEvaluationNode::OBJECT)
{
CEvaluationNodeObject* pObjectNode = dynamic_cast<CEvaluationNodeObject*>(objectNodes[j]);
if (pObjectNode == NULL) return info;
CCopasiObjectName cn = pObjectNode->getObjectCN();
const CCopasiObject* mObject =
static_cast< const CCopasiObject * >(mmModel->getObjectDataModel()->getObject(cn));
if (mObject == NULL) return info;
std::string host = "";
if (mObject->isReference())
{
host = ",Reference=" + mObject->getObjectName();
mObject = mObject->getObjectParent();
}
if (mObject == NULL) return info;
std::string key = keyMap[(dynamic_cast<const CModelEntity * >(mObject))->getKey()];
CCopasiObject* pObject = (CCopasiRootContainer::getKeyFactory()->get(key));
cn = pObject->getCN() + host;
pObjectNode->setData("<" + cn + ">");
}
}
tmp->updateTree();
newEntity->setInitialExpression(tmp->getInfix().c_str());
return info;
}