extern "C" void
rt_bot_brep(ON_Brep **b, const struct rt_db_internal *ip, const struct bn_tol *tol)
{
    struct rt_db_internal *tmp_internal;
    struct rt_tess_tol ttmptol;

    BU_ALLOC(tmp_internal, struct rt_db_internal);
    RT_DB_INTERNAL_INIT(tmp_internal);

    ttmptol.abs = 0;
    ttmptol.rel = 0.01;
    ttmptol.norm = 0;

    const struct rt_tess_tol *ttol = &ttmptol;
    struct model *botm = nmg_mm();
    struct nmgregion *botr;

    tmp_internal->idb_ptr = (void *)ip->idb_ptr;
    (void)rt_bot_tess(&botr, botm, tmp_internal, ttol, tol);
    tmp_internal->idb_ptr = (void *)botm;
    rt_nmg_brep(b, tmp_internal, tol);

    FREE_MODEL(botm);
    bu_free(tmp_internal, "free temporary rt_db_internal");
}
Пример #2
0
/**
 * R T _ E B M _ B R E P
 */
extern "C" void
rt_ebm_brep(ON_Brep **b, const struct rt_db_internal *ip, const struct bn_tol *tol)
{
    struct rt_db_internal *tmp_internal;
    struct rt_tess_tol ttmptol;

    BU_ALLOC(tmp_internal, struct rt_db_internal);
    RT_DB_INTERNAL_INIT(tmp_internal);

    ttmptol.abs = 0;
    ttmptol.rel = 0.01;
    ttmptol.norm = 0;

    const struct rt_tess_tol *ttol = &ttmptol;
    struct model *ebmm = nmg_mm();
    struct nmgregion *ebmr;

    tmp_internal->idb_ptr = (genptr_t)ip->idb_ptr;
    rt_ebm_tess(&ebmr, ebmm, tmp_internal, ttol, tol);
    tmp_internal->idb_ptr = (genptr_t)ebmm;
    rt_nmg_brep(b, tmp_internal, tol);

    FREE_MODEL(ebmm);
    bu_free(tmp_internal, "free temporary rt_db_internal");
}