Revision: 41920
http://brlcad.svn.sourceforge.net/brlcad/?rev=41920&view=rev
Author: starseeker
Date: 2011-01-04 16:00:12 +0000 (Tue, 04 Jan 2011)
Log Message:
-----------
Have csgbrep go through the table interface.
Modified Paths:
--------------
brlcad/trunk/include/raytrace.h
brlcad/trunk/src/proc-db/csgbrep.cpp
Modified: brlcad/trunk/include/raytrace.h
===================================================================
--- brlcad/trunk/include/raytrace.h 2011-01-04 15:52:24 UTC (rev 41919)
+++ brlcad/trunk/include/raytrace.h 2011-01-04 16:00:12 UTC (rev 41920)
@@ -1982,6 +1982,9 @@
struct model * /*m*/,
struct rt_db_internal * /*ip*/,
const struct bn_tol * /*tol*/));
+ void (*ft_brep) BU_ARGS((ON_Brep ** /*b*/,
+ struct rt_db_internal * /*ip*/,
+ const struct bn_tol * /*tol*/));
int (*ft_import5) BU_ARGS((struct rt_db_internal * /*ip*/,
const struct bu_external * /*ep*/,
const mat_t /*mat*/,
Modified: brlcad/trunk/src/proc-db/csgbrep.cpp
===================================================================
--- brlcad/trunk/src/proc-db/csgbrep.cpp 2011-01-04 15:52:24 UTC (rev
41919)
+++ brlcad/trunk/src/proc-db/csgbrep.cpp 2011-01-04 16:00:12 UTC (rev
41920)
@@ -43,29 +43,6 @@
#include "vmath.h" /* BRL-CAD Vector macros */
#include "wdb.h"
- /* FIXME: go through the table interface since these are not
- * external symbols available to calling applications.
- */
- extern void rt_arb_tess(struct nmgregion **r, struct model *m, struct
rt_db_internal *ip, const struct rt_tess_tol *ttol,const struct bn_tol *tol);
- extern void rt_arb8_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_arbn_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_nmg_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_sph_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_ell_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_eto_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_rhc_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_rpc_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_epa_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_ehy_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_hyp_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_tgc_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_tor_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_pipe_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_sketch_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_sketch_ifree(struct rt_db_internal *ip, struct resource
*resp);
- extern void rt_extrude_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_revolve_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
- extern void rt_dsp_brep(ON_Brep **bi, struct rt_db_internal *ip, const
struct bn_tol *tol);
#ifdef __cplusplus
}
@@ -114,7 +91,8 @@
VMOVE( arb4->pt[i], ptarb4[i] );
}
tmp_internal->idb_ptr = (genptr_t)arb4;
- rt_arb8_brep(&arb4brep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ARB8];
+ tmp_internal->idb_meth->ft_brep(&arb4brep, tmp_internal, tol);
const char* arb4_name = "arb4_nurb.s";
mk_brep(outfp, arb4_name, arb4brep);
delete arb4brep;
@@ -137,7 +115,8 @@
VMOVE( arb5->pt[i], ptarb5[i] );
}
tmp_internal->idb_ptr = (genptr_t)arb5;
- rt_arb8_brep(&arb5brep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ARB8];
+ tmp_internal->idb_meth->ft_brep(&arb5brep, tmp_internal, tol);
const char* arb5_name = "arb5_nurb.s";
mk_brep(outfp, arb5_name, arb5brep);
delete arb5brep;
@@ -160,7 +139,8 @@
VMOVE( arb6->pt[i], ptarb6[i] );
}
tmp_internal->idb_ptr = (genptr_t)arb6;
- rt_arb8_brep(&arb6brep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ARB8];
+ tmp_internal->idb_meth->ft_brep(&arb6brep, tmp_internal, tol);
const char* arb6_name = "arb6_nurb.s";
mk_brep(outfp, arb6_name, arb6brep);
delete arb6brep;
@@ -183,7 +163,8 @@
VMOVE( arb7->pt[i], ptarb7[i] );
}
tmp_internal->idb_ptr = (genptr_t)arb7;
- rt_arb8_brep(&arb7brep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ARB8];
+ tmp_internal->idb_meth->ft_brep(&arb7brep, tmp_internal, tol);
const char* arb7_name = "arb7_nurb.s";
mk_brep(outfp, arb7_name, arb7brep);
delete arb7brep;
@@ -206,7 +187,8 @@
VMOVE( arb8->pt[i], pt8[i] );
}
tmp_internal->idb_ptr = (genptr_t)arb8;
- rt_arb8_brep(&arb8brep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ARB8];
+ tmp_internal->idb_meth->ft_brep(&arb8brep, tmp_internal, tol);
const char* arb8_name = "arb8_nurb.s";
mk_brep(outfp, arb8_name, arb8brep);
delete arb8brep;
@@ -239,7 +221,9 @@
arbn->eqn[6][3] = 1000;
VSET(arbn->eqn[7], -0.57735, -0.57735, -0.57735);
arbn->eqn[7][3] = 1000;
- rt_arbn_brep(&arbnbrep, &arbninternal, tol);
+ tmp_internal->idb_ptr = (genptr_t)arbn;
+ tmp_internal->idb_meth = &rt_functab[ID_ARBN];
+ tmp_internal->idb_meth->ft_brep(&arbnbrep, &arbninternal, tol);
const char* arbn_name = "arbn_nurb.s";
mk_brep(outfp, arbn_name, arbnbrep);
bu_free(arbn->eqn, "free arbn eqn");
@@ -273,9 +257,12 @@
// Now, need nmg form of the arb
struct model *m = nmg_mm();
struct nmgregion *r;
- rt_arb_tess(&r, m, tmp_internal, ttol, tol);
+ tmp_internal->idb_ptr = (genptr_t)arbnmg8;
+ tmp_internal->idb_meth = &rt_functab[ID_ARB8];
+ tmp_internal->idb_meth->ft_tessellate(&r, m, tmp_internal, ttol, tol);
tmp_internal->idb_ptr = (genptr_t)m;
- rt_nmg_brep(&nmgbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ARBN];
+ tmp_internal->idb_meth->ft_brep(&nmgbrep, tmp_internal, tol);
const char* nmg_name = "nmg_nurb.s";
mk_brep(outfp, nmg_name, nmgbrep);
FREE_MODEL(m);
@@ -296,7 +283,8 @@
VMOVE(sph->b, b);
VMOVE(sph->c, c);
tmp_internal->idb_ptr = (genptr_t)sph;
- rt_sph_brep(&sphbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_SPH];
+ tmp_internal->idb_meth->ft_brep(&sphbrep, tmp_internal, tol);
const char* sph_name = "sph_nurb.s";
mk_brep(outfp, sph_name, sphbrep);
delete sphbrep;
@@ -315,7 +303,8 @@
VMOVE(ell->b, b);
VMOVE(ell->c, c);
tmp_internal->idb_ptr = (genptr_t)ell;
- rt_ell_brep(&ellbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ELL];
+ tmp_internal->idb_meth->ft_brep(&ellbrep, tmp_internal, tol);
const char* ell_name = "ell_nurb.s";
mk_brep(outfp, ell_name, ellbrep);
delete ellbrep;
@@ -331,7 +320,8 @@
rhc->rhc_r = 1000;
rhc->rhc_c = 400;
tmp_internal->idb_ptr = (genptr_t)rhc;
- rt_rhc_brep(&rhcbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_RHC];
+ tmp_internal->idb_meth->ft_brep(&rhcbrep, tmp_internal, tol);
const char* rhc_name = "rhc_nurb.s";
mk_brep(outfp, rhc_name, rhcbrep);
delete rhcbrep;
@@ -348,7 +338,8 @@
VSCALE(rpc->rpc_B, rpc->rpc_B, 2000);
rpc->rpc_r = 1000;
tmp_internal->idb_ptr = (genptr_t)rpc;
- rt_rpc_brep(&rpcbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_RPC];
+ tmp_internal->idb_meth->ft_brep(&rpcbrep, tmp_internal, tol);
const char* rpc_name = "rpc_nurb.s";
mk_brep(outfp, rpc_name, rpcbrep);
delete rpcbrep;
@@ -364,7 +355,8 @@
epa->epa_r1 = 1000;
epa->epa_r2 = 500;
tmp_internal->idb_ptr = (genptr_t)epa;
- rt_epa_brep(&epabrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_EPA];
+ tmp_internal->idb_meth->ft_brep(&epabrep, tmp_internal, tol);
const char* epa_name = "epa_nurb.s";
mk_brep(outfp, epa_name, epabrep);
delete epabrep;
@@ -381,7 +373,8 @@
ehy->ehy_r2 = 500;
ehy->ehy_c = 400;
tmp_internal->idb_ptr = (genptr_t)ehy;
- rt_ehy_brep(&ehybrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_EHY];
+ tmp_internal->idb_meth->ft_brep(&ehybrep, tmp_internal, tol);
const char* ehy_name = "ehy_nurb.s";
mk_brep(outfp, ehy_name, ehybrep);
delete ehybrep;
@@ -397,7 +390,8 @@
hyp->hyp_b = 50;
hyp->hyp_bnr = 0.5;
tmp_internal->idb_ptr = (genptr_t)hyp;
- rt_hyp_brep(&hypbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_HYP];
+ tmp_internal->idb_meth->ft_brep(&hypbrep, tmp_internal, tol);
const char* hyp_name = "hyp_nurb.s";
mk_brep(outfp, hyp_name, hypbrep);
delete hypbrep;
@@ -414,7 +408,8 @@
VSET(tgc->c, 250, 0, 0);
VSET(tgc->d, 0, 500, 0);
tmp_internal->idb_ptr = (genptr_t)tgc;
- rt_tgc_brep(&tgcbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_TGC];
+ tmp_internal->idb_meth->ft_brep(&tgcbrep, tmp_internal, tol);
const char* tgc_name = "tgc_nurb.s";
mk_brep(outfp, tgc_name, tgcbrep);
delete tgcbrep;
@@ -431,7 +426,8 @@
tor->r_a = 5.0;
tor->r_h = 2.0;
tmp_internal->idb_ptr = (genptr_t)tor;
- rt_tor_brep(&torbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_TOR];
+ tmp_internal->idb_meth->ft_brep(&torbrep, tmp_internal, tol);
const char* tor_name = "tor_nurb.s";
mk_brep(outfp, tor_name, torbrep);
delete torbrep;
@@ -450,7 +446,8 @@
eto->eto_r = 800;
eto->eto_rd = 100;
tmp_internal->idb_ptr = (genptr_t)eto;
- rt_eto_brep(&etobrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_ETO];
+ tmp_internal->idb_meth->ft_brep(&etobrep, tmp_internal, tol);
const char* eto_name = "eto_nurb.s";
mk_brep(outfp, eto_name, etobrep);
delete etobrep;
@@ -490,7 +487,8 @@
BU_LIST_INSERT(&pipe->pipe_segs_head, &pipe1[i].l);
}
tmp_internal->idb_ptr = (genptr_t)pipe;
- rt_pipe_brep(&pipebrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_PIPE];
+ tmp_internal->idb_meth->ft_brep(&pipebrep, tmp_internal, tol);
const char* pipe_name = "pipe_nurb.s";
mk_brep(outfp, pipe_name, pipebrep);
// delete pipebrep;
@@ -582,7 +580,8 @@
tmp_internal->idb_ptr = (genptr_t)skt;
- rt_sketch_brep(&sketchbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_SKETCH];
+ tmp_internal->idb_meth->ft_brep(&sketchbrep, tmp_internal, tol);
const char* sketch_name = "sketch_nurb.s";
mk_brep(outfp, sketch_name, sketchbrep);
//delete sketchbrep;
@@ -686,7 +685,8 @@
extrude->sketch_name = esketch_name;
extrude->skt = eskt;
tmp_internal->idb_ptr = (genptr_t)extrude;
- rt_extrude_brep(&extrudebrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_EXTRUDE];
+ tmp_internal->idb_meth->ft_brep(&extrudebrep, tmp_internal, tol);
const char* extrude_name = "extrude_nurb.s";
mk_brep(outfp, extrude_name, extrudebrep);
// delete extrudebrep;
@@ -786,7 +786,8 @@
//revolve->sketch_name = rsketch_name;
revolve->sk = rskt;
tmp_internal->idb_ptr = (genptr_t)revolve;
- rt_revolve_brep(&revolvebrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_REVOLVE];
+ tmp_internal->idb_meth->ft_brep(&revolvebrep, tmp_internal, tol);
const char* revolve_name = "revolve_nurb.s";
mk_brep(outfp, revolve_name, revolvebrep);
// delete revolvebrep;
@@ -807,7 +808,8 @@
MAT_IDN(dsp->dsp_mtos);
MAT_IDN(dsp->dsp_stom);
tmp_internal->idb_ptr = (genptr_t)dsp;
- rt_dsp_brep(&dspbrep, tmp_internal, tol);
+ tmp_internal->idb_meth = &rt_functab[ID_DSP];
+ tmp_internal->idb_meth->ft_brep(&dspbrep, tmp_internal, tol);
const char* dsp_name = "dsp_nurb.s";
mk_brep(outfp, dsp_name, dspbrep);
delete dspbrep;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits