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

Reply via email to