Revision: 53696
http://brlcad.svn.sourceforge.net/brlcad/?rev=53696&view=rev
Author: n_reed
Date: 2012-11-14 19:58:54 +0000 (Wed, 14 Nov 2012)
Log Message:
-----------
implement fallback to set solid bounds for primitives without a bbox routine
Modified Paths:
--------------
brlcad/trunk/src/libged/draw.c
Modified: brlcad/trunk/src/libged/draw.c
===================================================================
--- brlcad/trunk/src/libged/draw.c 2012-11-14 19:44:24 UTC (rev 53695)
+++ brlcad/trunk/src/libged/draw.c 2012-11-14 19:58:54 UTC (rev 53696)
@@ -460,13 +460,37 @@
sp->s_size = max[X] - min[X];
V_MAX(sp->s_size, max[Y] - min[Y]);
V_MAX(sp->s_size, max[Z] - min[Z]);
+ } else if (ip->idb_meth->ft_plot) {
+ /* As a fallback for primitives that don't have a bbox function, use
+ * the old bounding method of calculating a plot for the primitive and
+ * using the extent of the plotted segments as the bounds.
+ */
+ int plot_status;
+ struct bu_list vhead;
+ struct bn_vlist *vp;
+
+ BU_LIST_INIT(&vhead);
+
+ plot_status = ip->idb_meth->ft_plot(&vhead, ip, tsp->ts_ttol,
+ tsp->ts_tol, NULL);
+
+ if (plot_status < 0) {
+ bu_vls_printf(dgcdp->gedp->ged_result_str, "%s: plot failure\n",
+ DB_FULL_PATH_CUR_DIR(pathp)->d_namep);
+
+ return TREE_NULL;
+ }
+
+ solid_append_vlist(sp, (struct bn_vlist *)&vhead);
+
+ bound_solid(dgcdp->gedp, sp);
+
+ while (BU_LIST_WHILE(vp, bn_vlist, &(sp->s_vlist))) {
+ BU_LIST_DEQUEUE(&vp->l);
+ bu_free(vp, "solid vp");
+ }
}
- /* TODO: As a fallback for primitives that don't have a bbox function, use
- * the old bounding method of calculating a plot for the primitive and
- * using the extent of the plotted segments as the bounds.
- */
-
db_dup_full_path(&sp->s_fullpath, pathp);
sp->s_flag = DOWN;
sp->s_iflag = DOWN;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits