Revision: 33188 http://brlcad.svn.sourceforge.net/brlcad/?rev=33188&view=rev Author: bob1961 Date: 2008-11-14 14:03:29 +0000 (Fri, 14 Nov 2008)
Log Message: ----------- Fleshed out get_type Modified Paths: -------------- brlcad/trunk/src/libged/get_type.c Modified: brlcad/trunk/src/libged/get_type.c =================================================================== --- brlcad/trunk/src/libged/get_type.c 2008-11-14 13:36:18 UTC (rev 33187) +++ brlcad/trunk/src/libged/get_type.c 2008-11-14 14:03:29 UTC (rev 33188) @@ -34,6 +34,8 @@ int ged_get_type(struct ged *gedp, int argc, const char *argv[]) { + struct rt_db_internal intern; + int type; static const char *usage = "object"; GED_CHECK_DATABASE_OPEN(gedp, BRLCAD_ERROR); @@ -48,11 +50,143 @@ return BRLCAD_HELP; } - if (MAXARGS < argc) { + if (argc != 2) { bu_vls_printf(&gedp->ged_result_str, "Usage: %s %s", argv[0], usage); return BRLCAD_ERROR; } + if (wdb_import_from_path(&gedp->ged_result_str, &intern, argv[1], gedp->ged_wdbp) == BRLCAD_ERROR) + return BRLCAD_ERROR; + + if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD) { + bu_vls_printf(&gedp->ged_result_str, "unknown"); + rt_db_free_internal(&intern, &rt_uniresource); + + return BRLCAD_OK; + } + + switch (intern.idb_minor_type) { + case DB5_MINORTYPE_BRLCAD_TOR: + bu_vls_printf(&gedp->ged_result_str, "tor"); + break; + case DB5_MINORTYPE_BRLCAD_TGC: + bu_vls_printf(&gedp->ged_result_str, "tgc"); + break; + case DB5_MINORTYPE_BRLCAD_ELL: + bu_vls_printf(&gedp->ged_result_str, "ell"); + break; + case DB5_MINORTYPE_BRLCAD_ARB8: + type = rt_arb_std_type(&intern, &gedp->ged_wdbp->wdb_tol); + + switch (type) { + case 4: + bu_vls_printf(&gedp->ged_result_str, "arb4"); + break; + case 5: + bu_vls_printf(&gedp->ged_result_str, "arb5"); + break; + case 6: + bu_vls_printf(&gedp->ged_result_str, "arb6"); + break; + case 7: + bu_vls_printf(&gedp->ged_result_str, "arb7"); + break; + case 8: + bu_vls_printf(&gedp->ged_result_str, "arb8"); + break; + default: + bu_vls_printf(&gedp->ged_result_str, "invalid"); + break; + } + + break; + case DB5_MINORTYPE_BRLCAD_ARS: + bu_vls_printf(&gedp->ged_result_str, "ars"); + break; + case DB5_MINORTYPE_BRLCAD_HALF: + bu_vls_printf(&gedp->ged_result_str, "half"); + break; + case DB5_MINORTYPE_BRLCAD_REC: + bu_vls_printf(&gedp->ged_result_str, "rec"); + break; + case DB5_MINORTYPE_BRLCAD_POLY: + bu_vls_printf(&gedp->ged_result_str, "poly"); + break; + case DB5_MINORTYPE_BRLCAD_BSPLINE: + bu_vls_printf(&gedp->ged_result_str, "spline"); + break; + case DB5_MINORTYPE_BRLCAD_SPH: + bu_vls_printf(&gedp->ged_result_str, "sph"); + break; + case DB5_MINORTYPE_BRLCAD_NMG: + bu_vls_printf(&gedp->ged_result_str, "nmg"); + break; + case DB5_MINORTYPE_BRLCAD_EBM: + bu_vls_printf(&gedp->ged_result_str, "ebm"); + break; + case DB5_MINORTYPE_BRLCAD_VOL: + bu_vls_printf(&gedp->ged_result_str, "vol"); + break; + case DB5_MINORTYPE_BRLCAD_ARBN: + bu_vls_printf(&gedp->ged_result_str, "arbn"); + break; + case DB5_MINORTYPE_BRLCAD_PIPE: + bu_vls_printf(&gedp->ged_result_str, "pipe"); + break; + case DB5_MINORTYPE_BRLCAD_PARTICLE: + bu_vls_printf(&gedp->ged_result_str, "part"); + break; + case DB5_MINORTYPE_BRLCAD_RPC: + bu_vls_printf(&gedp->ged_result_str, "rpc"); + break; + case DB5_MINORTYPE_BRLCAD_RHC: + bu_vls_printf(&gedp->ged_result_str, "rhc"); + break; + case DB5_MINORTYPE_BRLCAD_EPA: + bu_vls_printf(&gedp->ged_result_str, "epa"); + break; + case DB5_MINORTYPE_BRLCAD_EHY: + bu_vls_printf(&gedp->ged_result_str, "ehy"); + break; + case DB5_MINORTYPE_BRLCAD_ETO: + bu_vls_printf(&gedp->ged_result_str, "eto"); + break; + case DB5_MINORTYPE_BRLCAD_GRIP: + bu_vls_printf(&gedp->ged_result_str, "grip"); + break; + case DB5_MINORTYPE_BRLCAD_JOINT: + bu_vls_printf(&gedp->ged_result_str, "joint"); + break; + case DB5_MINORTYPE_BRLCAD_HF: + bu_vls_printf(&gedp->ged_result_str, "hf"); + break; + case DB5_MINORTYPE_BRLCAD_DSP: + bu_vls_printf(&gedp->ged_result_str, "dsp"); + break; + case DB5_MINORTYPE_BRLCAD_SKETCH: + bu_vls_printf(&gedp->ged_result_str, "sketch"); + break; + case DB5_MINORTYPE_BRLCAD_EXTRUDE: + bu_vls_printf(&gedp->ged_result_str, "extrude"); + break; + case DB5_MINORTYPE_BRLCAD_SUBMODEL: + bu_vls_printf(&gedp->ged_result_str, "submodel"); + break; + case DB5_MINORTYPE_BRLCAD_CLINE: + bu_vls_printf(&gedp->ged_result_str, "cline"); + break; + case DB5_MINORTYPE_BRLCAD_BOT: + bu_vls_printf(&gedp->ged_result_str, "bot"); + break; + case DB5_MINORTYPE_BRLCAD_COMBINATION: + bu_vls_printf(&gedp->ged_result_str, "comb"); + break; + default: + bu_vls_printf(&gedp->ged_result_str, "other"); + break; + } + + rt_db_free_internal(&intern, &rt_uniresource); return BRLCAD_OK; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits