/* Implementations of operations in CUDD */ static keyvalue_table_ptr cudd_density(shadow_mgr mgr, set_ptr roots) { keyvalue_table_ptr dtable = word_keyvalue_new(); set_iterstart(roots); word_t wr; while (set_iternext(roots, &wr)) { ref_t r = (ref_t) wr; DdNode *n = get_ddnode(mgr, r); double *vdensity = Cudd_CofMinterm(mgr->bdd_manager, n); double density = vdensity[mgr->nvars]; free(vdensity); keyvalue_insert(dtable, wr, d2w(density)); } return dtable; }
float GiRecordCanvas::drawTextAt(const char* text, float x, float y, float h, int align) { _sp->addItem(new CmdDrawTextAt(d2w(), text, x, y, h, align)); return h; }
void GiRecordCanvas::drawBitmap(const char* name, float xc, float yc, float w, float h, float angle) { _sp->addItem(new CmdDrawBitmap(d2w(), name, xc, yc, w, h, angle)); }
void GiRecordCanvas::drawHandle(float x, float y, int type) { _sp->addItem(new CmdDrawHandle(d2w(), x, y, type)); }
void GiRecordCanvas::quadTo(float cpx, float cpy, float x, float y) { _sp->addItem(new CmdQuadTo(d2w(), cpx, cpy, x, y)); }
void GiRecordCanvas::bezierTo(float c1x, float c1y, float c2x, float c2y, float x, float y) { _sp->addItem(new CmdBezierTo(d2w(), c1x, c1y, c2x, c2y, x, y)); }
void GiRecordCanvas::lineTo(float x, float y) { _sp->addItem(new CmdLineTo(d2w(), x, y)); }
void GiRecordCanvas::drawEllipse(float x, float y, float w, float h, bool stroke, bool fill) { _sp->addItem(new CmdDrawEllipse(d2w(), x, y, w, h, stroke, fill)); }
void GiRecordCanvas::drawLine(float x1, float y1, float x2, float y2) { _sp->addItem(new CmdDrawLine(d2w(), x1, y1, x2, y2)); }
void GiRecordCanvas::clearRect(float x, float y, float w, float h) { _sp->addItem(new CmdClearRect(d2w(), x, y, w, h)); }