本文整理汇总了C++中SP::setType方法的典型用法代码示例。如果您正苦于以下问题:C++ SP::setType方法的具体用法?C++ SP::setType怎么用?C++ SP::setType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SP
的用法示例。
在下文中一共展示了SP::setType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GPASSERT
GPStreamADF::GPStreamADF(const GPFunctionTree* tree)
{
auto root = tree->root();
auto rootfunc = root->data().pFunc;
GPASSERT(NULL!=rootfunc);
auto lists = root->display();
std::map<const GPAbstractPoint*, GPPtr<Point>> maplists;
/*Create All Function*/
for (auto p : lists)
{
auto pp = (GPFunctionTreePoint*)p;
if (GPFunctionTreePoint::INPUT == pp->type())
{
GPPtr<Point> cp = new SP(NULL);
mSources.push_back(cp);
mInputPos.push_back(pp->data().iInput);
maplists.insert(std::make_pair(p, cp));
}
else
{
GPPtr<Point> cp = new CP(new GPComputePoint(pp->data().pFunc));
mFunctions.push_back((CP*)(cp.get()));
maplists.insert(std::make_pair(p, cp));
}
}
/*Dest*/
auto rootcp = maplists.find(root)->second;
for (int i=0; i<rootfunc->outputType.size(); ++i)
{
GPPtr<Point> dst = (new DP(rootfunc->outputType[i]));
dst->connectInput(rootcp.get(), 0);
rootcp->connectOutput(dst, i);
mDest.push_back(dst);
}
/*Connect*/
for (auto p : lists)
{
auto PP = maplists.find(p)->second;
auto func = ((GPFunctionTreePoint*)p)->data().pFunc;
size_t n = p->getChildrenNumber();
GPASSERT(!(NULL!=func && n==0));
for (int i=0; i<n; ++i)
{
auto pc = p->getChild(i);
auto PC = maplists.find(pc)->second;
PP->connectInput(PC.get(), i);
PC->connectOutput(PP, 0);
if (pc->getChildrenNumber() == 0)
{
SP* s = (SP*)PC.get();
s->setType(func->inputType[i]);
}
}
}
}