void nodeManager::killNodes(vector<string> indexes) { for(int i = 0; i < indexes.size(); i ++) { killNode(indexes[i]); } }
void nodeManager::killAllNodes() { map<string, ofPtr<clamourNode> >::iterator it; it = mNodes.begin(); while(it != mNodes.end()) { killNode(it->first); ++it; } }
void nodeManager::implementReaction(reaction & r, ofPtr<clamourNode> t, bool isOn) { if(r.rType == "sleep") { appReactions[t->getName()] = "resetControl"; killNode(t->getName()); } else if(r.rType == "transform") { clamourNode temp = presetStore::nodePresets[r.stringParams["PRESET"]]; //load the node into the reaction for easier variation setNode(t, temp); } else if(r.rType == "scaleNode") { parameter p = t->getDrawData().getParameter("size"); p.abs_val *= r.floatParams["SCALE"]; p.abs_val = min(1.0f, p.abs_val); t->setDrawParameter(p); ofPath pt = t->getEdgeTemplate(); pt.scale(r.floatParams["SCALE"], r.floatParams["SCALE"]); t->setEdgeTemplate(pt); t->updatePath(); } else if(r.rType == "scaleShift") { float shift = t->getShiftAmount() * r.floatParams["SCALE"]; t->setShiftAmount(shift); } else if(r.rType == "scaleAttack") { float att = t->getAttSecs() * r.floatParams["SCALE"]; t->setAttSecs(att); } else if(r.rType == "event") { t->triggerEvent(r.intParams["ENV_INDEX"]); } else if(r.rType == "eventOff") { t->endEvent(r.intParams["ENV_INDEX"]); // not sure this one is necessary } }
bool RedBlackTree<Key, Data>::erase(Key const &key, Data const &rec, RedBlackNode<Key, Data> *curnode) { if (!valid(curnode)) return false; bool killed = false; if (Compare(curnode->id, key) == 0) { if (Compare(curnode->data, rec) == 0) { killNode(curnode); killed = true; } if (!killed) killed = erase(key, rec, curnode->left); if (!killed) killed = erase(key, rec, curnode->right); } return killed; }
bool RedBlackTree<Key, Data>::erase(Key const &key) { RedBlackNode<Key, Data> *z; /* delete node z from tree */ /* find node in tree */ z = rootNode; while (valid(z)) { if (Compare(key, z->id) == 0) break; else{ z = (Compare(key, z->id) <= 0) ? z->left : z->right; } } if (z == nullNode) { return false; } return killNode(z); }