35 for (set<trait>::iterator p = fTraits.begin(); p != fTraits.end(); p++) {
36 if (fWithInput.count(*p) == 0) {
37 if (fOutputs.count(p->start) > 0) {
38 fWithInput.insert(*p);
39 fOutputs.insert(p->end);
43 if (fWithOutput.count(*p) == 0) {
44 if (fInputs.count(p->end) > 0) {
45 fWithOutput.insert(*p);
46 fInputs.insert(p->start);
56 return fWithInput.count(t) && fWithOutput.count(t);
61 computeVisibleTraits();
62 for (set<trait>::iterator p = fTraits.begin(); p != fTraits.end(); p++) {
63 if (isVisible(*p)) p->draw(dev);
bool isVisible(const trait &t)
void computeVisibleTraits()