コード例 #1
0
void nodeManager::killNodes(vector<string> indexes) {

    for(int i = 0; i < indexes.size(); i ++) {
        killNode(indexes[i]);
    }

}
コード例 #2
0
void nodeManager::killAllNodes() {

    map<string, ofPtr<clamourNode> >::iterator it;

    it = mNodes.begin();

    while(it != mNodes.end()) {
        killNode(it->first);
        ++it;
    }

}
コード例 #3
0
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

    }

}
コード例 #4
0
ファイル: rbtree.cpp プロジェクト: prophile/crisscross
		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;
		}
コード例 #5
0
ファイル: rbtree.cpp プロジェクト: prophile/crisscross
		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);
		}