当前位置: 首页>>代码示例>>C++>>正文


C++ Branch::growSynapse方法代码示例

本文整理汇总了C++中Branch::growSynapse方法的典型用法代码示例。如果您正苦于以下问题:C++ Branch::growSynapse方法的具体用法?C++ Branch::growSynapse怎么用?C++ Branch::growSynapse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Branch的用法示例。


在下文中一共展示了Branch::growSynapse方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: syncBranchDensity

void CellComponent::syncBranchDensity(float parentRandomBranchDeterminer, float parentRandomDepthDeterminer, 
									  float baseBranchiness, float tipBranchiness, float treeDepth, float baseThreshold, float tipThreshold, int depth) {
    float branchiness;
    if(depth>treeDepth/2+parentRandomDepthDeterminer){
        branchiness = tipBranchiness;
		mThreshold = tipThreshold;
    }
    else{
		branchiness = baseBranchiness;
		mThreshold = baseThreshold;
	}

    assert(branchiness<(1<<23) );//using floats in a manner that will not cooperate with floats after a few millions
    size_t childSize=mChildBranches.size();
    float roundingError=branchiness-floor(branchiness);
    if (parentRandomBranchDeterminer>roundingError) {
       branchiness=ceil(branchiness);
    }else {
       branchiness=floor(branchiness);
    }
    size_t maxDepth=(size_t)floor(parentRandomDepthDeterminer);
    if (parentRandomDepthDeterminer>treeDepth-floor(treeDepth))
      maxDepth=(size_t)ceil(treeDepth);
    if (depth>=(int)maxDepth) {
        branchiness=0;
    }    
    branchiness-=childSize;
    while(branchiness>0){
       Branch *b;
       mChildBranches.push_back(b = new Branch(this));
       if(depth>=(int)maxDepth-1){
            b->growSynapse();
       }
       branchiness-=1;
    }
    while (branchiness<0&&mChildBranches.size()) {
       size_t whichDies=rand()%mChildBranches.size();
       delete mChildBranches[whichDies];
       if (whichDies+1!=mChildBranches.size()) 
           mChildBranches[whichDies]=mChildBranches.back();
       mChildBranches.pop_back();
    }    
    for (size_t i=0;i<mChildBranches.size();++i) {
        mChildBranches[i]->syncBranchDensity(parentRandomBranchDeterminer, parentRandomDepthDeterminer, baseBranchiness, tipBranchiness, treeDepth, baseThreshold, tipThreshold, depth + 1);
    }
}
开发者ID:iveygman,项目名称:elysia,代码行数:46,代码来源:CellComponent.cpp


注:本文中的Branch::growSynapse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。