Revision: 33435
http://brlcad.svn.sourceforge.net/brlcad/?rev=33435&view=rev
Author: bob1961
Date: 2008-12-31 19:59:00 +0000 (Wed, 31 Dec 2008)
Log Message:
-----------
Minor mods.
Modified Paths:
--------------
brlcad/trunk/src/libged/ged.c
Modified: brlcad/trunk/src/libged/ged.c
===================================================================
--- brlcad/trunk/src/libged/ged.c 2008-12-31 19:57:18 UTC (rev 33434)
+++ brlcad/trunk/src/libged/ged.c 2008-12-31 19:59:00 UTC (rev 33435)
@@ -51,96 +51,37 @@
void ged_drawable_init(struct ged_drawable *gdp);
void ged_drawable_close(struct ged_drawable *gdp);
-struct ged *
-ged_open(const char *dbtype, const char *filename, int existing_only)
+void
+ged_close(struct ged *gedp)
{
- struct ged *gedp;
- struct rt_wdb *wdbp;
- struct mater *save_materp = MATER_NULL;
+ if (gedp == GED_NULL)
+ return;
- save_materp = rt_material_head();
- rt_new_material_head(MATER_NULL);
-
- if (strcmp(dbtype, "db") == 0) {
- struct db_i *dbip;
-
- if ((dbip = ged_open_dbip(filename, existing_only)) == DBI_NULL) {
- /* Restore RT's material head */
- rt_new_material_head(save_materp);
-
- return GED_NULL;
- }
-
- RT_CK_DBI(dbip);
-
- wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
- } else if (strcmp(dbtype, "file") == 0) {
- wdbp = wdb_fopen(filename);
- } else {
- struct db_i *dbip;
-
- if (ged_decode_dbip(filename, &dbip) != BRLCAD_OK) {
- /* Restore RT's material head */
- rt_new_material_head(save_materp);
-
- return GED_NULL;
- }
-
- if (strcmp(dbtype, "disk" ) == 0)
- wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
- else if (strcmp(dbtype, "disk_append") == 0)
- wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK_APPEND_ONLY);
- else if (strcmp(dbtype, "inmem" ) == 0)
- wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM);
- else if (strcmp(dbtype, "inmem_append" ) == 0)
- wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM_APPEND_ONLY);
- else {
- /* Restore RT's material head */
- rt_new_material_head(save_materp);
-
- bu_log("wdb_open %s target type not recognized", dbtype);
- return GED_NULL;
- }
- }
-
- BU_GETSTRUCT(gedp, ged);
- GED_INIT(gedp, wdbp);
-
- return gedp;
+ wdb_close(gedp->ged_wdbp);
+ ged_drawable_close(gedp->ged_gdp);
+ ged_free(gedp);
}
-void
-ged_init(struct ged *gedp)
+int
+ged_decode_dbip(const char *dbip_string, struct db_i **dbipp)
{
- if (gedp == GED_NULL)
- return;
- bu_vls_init(&gedp->ged_log);
- bu_vls_init(&gedp->ged_result_str);
+ *dbipp = (struct db_i *)atol(dbip_string);
- bu_vls_extend(&gedp->ged_log, 1);
- bu_vls_extend(&gedp->ged_result_str, 1);
+ /* Could core dump */
+ RT_CK_DBI(*dbipp);
- BU_GETSTRUCT(gedp->ged_gdp, ged_drawable);
- ged_drawable_init(gedp->ged_gdp);
+ return BRLCAD_OK;
}
void
-ged_close(struct ged *gedp)
+ged_drawable_close(struct ged_drawable *gdp)
{
- if (gedp == GED_NULL)
+ if (gdp == GED_DRAWABLE_NULL)
return;
- wdb_close(gedp->ged_wdbp);
- ged_drawable_close(gedp->ged_gdp);
-
- gedp->ged_wdbp = RT_WDB_NULL;
- gedp->ged_gdp = GED_DRAWABLE_NULL;
-
- bu_vls_free(&gedp->ged_log);
- bu_vls_free(&gedp->ged_result_str);
-
- bu_free((genptr_t)gedp, "struct ged");
+ ged_free_qray(gdp);
+ bu_free((genptr_t)gdp, "struct ged_drawable");
}
void
@@ -162,16 +103,37 @@
}
void
-ged_drawable_close(struct ged_drawable *gdp)
+ged_free(struct ged *gedp)
{
- if (gdp == GED_DRAWABLE_NULL)
+ if (gedp == GED_NULL)
return;
- ged_free_qray(gdp);
- bu_free((genptr_t)gdp, "struct ged_drawable");
+ gedp->ged_wdbp = RT_WDB_NULL;
+ gedp->ged_gdp = GED_DRAWABLE_NULL;
+
+ bu_vls_free(&gedp->ged_log);
+ bu_vls_free(&gedp->ged_result_str);
+
+ bu_free((genptr_t)gedp, "struct ged");
}
void
+ged_init(struct ged *gedp)
+{
+ if (gedp == GED_NULL)
+ return;
+
+ bu_vls_init(&gedp->ged_log);
+ bu_vls_init(&gedp->ged_result_str);
+
+ bu_vls_extend(&gedp->ged_log, 1);
+ bu_vls_extend(&gedp->ged_result_str, 1);
+
+ BU_GETSTRUCT(gedp->ged_gdp, ged_drawable);
+ ged_drawable_init(gedp->ged_gdp);
+}
+
+void
ged_view_init(struct ged_view *gvp)
{
if (gvp == GED_VIEW_NULL)
@@ -252,6 +214,64 @@
ged_view_update(gvp);
}
+struct ged *
+ged_open(const char *dbtype, const char *filename, int existing_only)
+{
+ struct ged *gedp;
+ struct rt_wdb *wdbp;
+ struct mater *save_materp = MATER_NULL;
+
+ save_materp = rt_material_head();
+ rt_new_material_head(MATER_NULL);
+
+ if (strcmp(dbtype, "db") == 0) {
+ struct db_i *dbip;
+
+ if ((dbip = ged_open_dbip(filename, existing_only)) == DBI_NULL) {
+ /* Restore RT's material head */
+ rt_new_material_head(save_materp);
+
+ return GED_NULL;
+ }
+
+ RT_CK_DBI(dbip);
+
+ wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
+ } else if (strcmp(dbtype, "file") == 0) {
+ wdbp = wdb_fopen(filename);
+ } else {
+ struct db_i *dbip;
+
+ if (ged_decode_dbip(filename, &dbip) != BRLCAD_OK) {
+ /* Restore RT's material head */
+ rt_new_material_head(save_materp);
+
+ return GED_NULL;
+ }
+
+ if (strcmp(dbtype, "disk" ) == 0)
+ wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
+ else if (strcmp(dbtype, "disk_append") == 0)
+ wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK_APPEND_ONLY);
+ else if (strcmp(dbtype, "inmem" ) == 0)
+ wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM);
+ else if (strcmp(dbtype, "inmem_append" ) == 0)
+ wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM_APPEND_ONLY);
+ else {
+ /* Restore RT's material head */
+ rt_new_material_head(save_materp);
+
+ bu_log("wdb_open %s target type not recognized", dbtype);
+ return GED_NULL;
+ }
+ }
+
+ BU_GETSTRUCT(gedp, ged);
+ GED_INIT(gedp, wdbp);
+
+ return gedp;
+}
+
/**
* @brief
* Open/Create the database and build the in memory directory.
@@ -291,18 +311,6 @@
return dbip;
}
-int
-ged_decode_dbip(const char *dbip_string, struct db_i **dbipp)
-{
-
- *dbipp = (struct db_i *)atol(dbip_string);
-
- /* Could core dump */
- RT_CK_DBI(*dbipp);
-
- return BRLCAD_OK;
-}
-
void
ged_print_node(struct ged *gedp,
register struct directory *dp,
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits