Revision: 68967
http://sourceforge.net/p/brlcad/code/68967
Author: starseeker
Date: 2016-10-02 20:15:26 +0000 (Sun, 02 Oct 2016)
Log Message:
-----------
nmg_stash_model_to_file absolutely depends on librt functionality for writing
out a .g file - move to nmg.c, since it's not a candidate in this form for a
libnmg refactor.
Modified Paths:
--------------
brlcad/trunk/src/librt/primitives/nmg/nmg.c
brlcad/trunk/src/librt/primitives/nmg/nmg_misc.c
Modified: brlcad/trunk/src/librt/primitives/nmg/nmg.c
===================================================================
--- brlcad/trunk/src/librt/primitives/nmg/nmg.c 2016-10-02 20:13:09 UTC (rev
68966)
+++ brlcad/trunk/src/librt/primitives/nmg/nmg.c 2016-10-02 20:15:26 UTC (rev
68967)
@@ -3237,7 +3237,68 @@
}
}
+/**
+ * Store an NMG model as a separate .g file, for later examination.
+ * Don't free the model, as the caller may still have uses for it.
+ *
+ * NON-PARALLEL because of rt_uniresource.
+ */
+void
+nmg_stash_model_to_file(const char *filename, const struct model *m, const
char *title)
+{
+ struct rt_wdb *fp;
+ struct rt_db_internal intern;
+ struct bu_external ext;
+ int ret;
+ int flags;
+ char *name="error.s";
+ bu_log("nmg_stash_model_to_file('%s', %p, %s)\n", filename, (void *)m,
title);
+
+ NMG_CK_MODEL(m);
+ nmg_vmodel(m);
+
+ if ((fp = wdb_fopen(filename)) == NULL) {
+ perror(filename);
+ return;
+ }
+
+ RT_DB_INTERNAL_INIT(&intern);
+ intern.idb_major_type = DB5_MAJORTYPE_BRLCAD;
+ intern.idb_type = ID_NMG;
+ intern.idb_meth = &OBJ[ID_NMG];
+ intern.idb_ptr = (void *)m;
+
+ if (db_version(fp->dbip) < 5) {
+ BU_EXTERNAL_INIT(&ext);
+ ret = intern.idb_meth->ft_export4(&ext, &intern, 1.0, fp->dbip,
&rt_uniresource);
+ if (ret < 0) {
+ bu_log("rt_db_put_internal(%s): solid export failure\n",
+ name);
+ ret = -1;
+ goto out;
+ }
+ db_wrap_v4_external(&ext, name);
+ } else {
+ if (rt_db_cvt_to_external5(&ext, name, &intern, 1.0, fp->dbip,
&rt_uniresource, intern.idb_major_type) < 0) {
+ bu_log("wdb_export4(%s): solid export failure\n",
+ name);
+ ret = -2;
+ goto out;
+ }
+ }
+ BU_CK_EXTERNAL(&ext);
+
+ flags = db_flags_internal(&intern);
+ ret = wdb_export_external(fp, &ext, name, flags, intern.idb_type);
+out:
+ bu_free_external(&ext);
+ wdb_close(fp);
+
+ bu_log("nmg_stash_model_to_file(): wrote error.s to '%s'\n",
+ filename);
+}
+
/*
* Local Variables:
* mode: C
Modified: brlcad/trunk/src/librt/primitives/nmg/nmg_misc.c
===================================================================
--- brlcad/trunk/src/librt/primitives/nmg/nmg_misc.c 2016-10-02 20:13:09 UTC
(rev 68966)
+++ brlcad/trunk/src/librt/primitives/nmg/nmg_misc.c 2016-10-02 20:15:26 UTC
(rev 68967)
@@ -4500,69 +4500,6 @@
}
-/**
- * Store an NMG model as a separate .g file, for later examination.
- * Don't free the model, as the caller may still have uses for it.
- *
- * NON-PARALLEL because of rt_uniresource.
- */
-void
-nmg_stash_model_to_file(const char *filename, const struct model *m, const
char *title)
-{
- struct rt_wdb *fp;
- struct rt_db_internal intern;
- struct bu_external ext;
- int ret;
- int flags;
- char *name="error.s";
-
- bu_log("nmg_stash_model_to_file('%s', %p, %s)\n", filename, (void *)m,
title);
-
- NMG_CK_MODEL(m);
- nmg_vmodel(m);
-
- if ((fp = wdb_fopen(filename)) == NULL) {
- perror(filename);
- return;
- }
-
- RT_DB_INTERNAL_INIT(&intern);
- intern.idb_major_type = DB5_MAJORTYPE_BRLCAD;
- intern.idb_type = ID_NMG;
- intern.idb_meth = &OBJ[ID_NMG];
- intern.idb_ptr = (void *)m;
-
- if (db_version(fp->dbip) < 5) {
- BU_EXTERNAL_INIT(&ext);
- ret = intern.idb_meth->ft_export4(&ext, &intern, 1.0, fp->dbip,
&rt_uniresource);
- if (ret < 0) {
- bu_log("rt_db_put_internal(%s): solid export failure\n",
- name);
- ret = -1;
- goto out;
- }
- db_wrap_v4_external(&ext, name);
- } else {
- if (rt_db_cvt_to_external5(&ext, name, &intern, 1.0, fp->dbip,
&rt_uniresource, intern.idb_major_type) < 0) {
- bu_log("wdb_export4(%s): solid export failure\n",
- name);
- ret = -2;
- goto out;
- }
- }
- BU_CK_EXTERNAL(&ext);
-
- flags = db_flags_internal(&intern);
- ret = wdb_export_external(fp, &ext, name, flags, intern.idb_type);
-out:
- bu_free_external(&ext);
- wdb_close(fp);
-
- bu_log("nmg_stash_model_to_file(): wrote error.s to '%s'\n",
- filename);
-}
-
-
/* state for nmg_unbreak_edge */
struct nmg_unbreak_state
{
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits