void print_partition(int n, COMPONENT* part) { int i,c = 0; for(i=0; i<n; i++) { if(part[i].size != 0) { c++; print_component(&part[i]); } } printf(", #comp = %d\n", c); }
static void print_closure (std::ostream &out, const ClosureColor *closure, ShadingSystemImpl *ss, const Color3 &w, bool &first) { if (closure == NULL) return; switch (closure->id) { case ClosureColor::MUL: print_closure(out, closure->as_mul()->closure, ss, closure->as_mul()->weight * w, first); break; case ClosureColor::ADD: print_closure(out, closure->as_add()->closureA, ss, w, first); print_closure(out, closure->as_add()->closureB, ss, w, first); break; default: if (!first) out << "\n\t+ "; print_component (out, closure->as_comp(), ss, w); first = false; break; } }
static void print_closure (std::ostream &out, const ClosureColor *closure, ShadingSystemImpl *ss, const Color3 &w, bool &first) { ClosureComponent *comp; if (closure == NULL) return; switch (closure->type) { case ClosureColor::MUL: print_closure(out, ((ClosureMul *)closure)->closure, ss, ((ClosureMul *)closure)->weight * w, first); break; case ClosureColor::ADD: print_closure(out, ((ClosureAdd *)closure)->closureA, ss, w, first); print_closure(out, ((ClosureAdd *)closure)->closureB, ss, w, first); break; case ClosureColor::COMPONENT: comp = (ClosureComponent *)closure; if (!first) out << "\n\t+ "; print_component (out, comp, ss, w); first = false; break; } }