Revision: 62215
          http://sourceforge.net/p/brlcad/code/62215
Author:   ejno
Date:     2014-08-18 20:35:58 +0000 (Mon, 18 Aug 2014)
Log Message:
-----------
also clean the root layer's name in 3dm-g

Modified Paths:
--------------
    brlcad/trunk/src/conv/3dm/conv3dm-g.cpp
    brlcad/trunk/src/conv/3dm/conv3dm-g.hpp

Modified: brlcad/trunk/src/conv/3dm/conv3dm-g.cpp
===================================================================
--- brlcad/trunk/src/conv/3dm/conv3dm-g.cpp     2014-08-18 20:35:04 UTC (rev 
62214)
+++ brlcad/trunk/src/conv/3dm/conv3dm-g.cpp     2014-08-18 20:35:58 UTC (rev 
62215)
@@ -521,7 +521,7 @@
 
     clean_model();
 
-    m_objects.add(ROOT_UUID, strbasename(path));
+    map_name(ROOT_UUID, clean_name(strbasename(path)), ".c");
 
     map_uuid_names();
     create_all_bitmaps();
@@ -561,14 +561,13 @@
 
 
 inline void
-RhinoConverter::map_name(const ON_UUID &uuid, const ON_wString &name,
+RhinoConverter::map_name(const ON_UUID &uuid, const std::string &name,
                         const char *suffix)
 {
     if (m_use_uuidnames)
        m_objects.add(uuid, uuid2string(uuid) + suffix);
     else
-       m_objects.add(uuid, unique_name(m_name_count_map, 
clean_name(w2string(name)),
-                                       suffix));
+       m_objects.add(uuid, unique_name(m_name_count_map, name, suffix));
 }
 
 
@@ -577,17 +576,20 @@
 {
     for (int i = 0; i < m_model.m_layer_table.Count(); ++i) {
        const ON_Layer &layer = m_model.m_layer_table[i];
-       map_name(layer.m_layer_id, layer.m_name, get_object_suffix(layer));
+       const std::string name = clean_name(w2string(layer.m_name));
+       map_name(layer.m_layer_id, name, get_object_suffix(layer));
     }
 
     for (int i = 0; i < m_model.m_idef_table.Count(); ++i) {
        const ON_InstanceDefinition &idef = m_model.m_idef_table[i];
-       map_name(idef.m_uuid, idef.m_name, get_object_suffix(idef));
+       const std::string name = clean_name(w2string(idef.m_name));
+       map_name(idef.m_uuid, name, get_object_suffix(idef));
     }
 
     for (int i = 0; i < m_model.m_object_table.Count(); ++i) {
        const ON_3dmObjectAttributes &object_attrs =
            m_model.m_object_table[i].m_attributes;
+       const std::string name = clean_name(w2string(object_attrs.m_name));
        const char *suffix;
 
        try {
@@ -596,7 +598,7 @@
            continue;
        }
 
-       map_name(object_attrs.m_uuid, object_attrs.m_name, suffix);
+       map_name(object_attrs.m_uuid, name, suffix);
     }
 
     for (int i = 0; i < m_model.m_bitmap_table.Count(); ++i) {
@@ -604,17 +606,12 @@
        const ON_Bitmap &bitmap = *m_model.m_bitmap_table[i];
        const char * const suffix = ".pix";
 
-       if (m_use_uuidnames)
-           m_objects.add(bitmap.m_bitmap_id, uuid2string(bitmap.m_bitmap_id) + 
suffix);
-       else {
-           std::string bitmap_name = 
clean_name(w2string(bitmap.m_bitmap_name));
+       std::string bitmap_name = clean_name(w2string(bitmap.m_bitmap_name));
 
-           if (bitmap_name == DEFAULT_NAME)
-               bitmap_name = 
clean_name(strbasename(w2string(bitmap.m_bitmap_filename)));
+       if (bitmap_name == DEFAULT_NAME)
+           bitmap_name = 
clean_name(strbasename(w2string(bitmap.m_bitmap_filename)));
 
-           m_objects.add(bitmap.m_bitmap_id,
-                         unique_name(m_name_count_map, bitmap_name, suffix));
-       }
+       map_name(bitmap.m_bitmap_id, bitmap_name, suffix);
     }
 
 
@@ -936,7 +933,7 @@
            break;
 
        default:
-           throw std::out_of_range("unknown orientation");
+           bu_bomb("unknown orientation");
     }
 
     if (num_vertices == 0 || num_faces == 0) {
@@ -1048,6 +1045,18 @@
 RhinoConverter::create_object(const ON_Object &object,
                              const ON_3dmObjectAttributes &object_attrs)
 {
+    if (!m_objects.exists(object_attrs.m_uuid)) {
+       m_log.Print("Skipping object of type %s\n", 
object.ClassId()->ClassName());
+
+       if (m_verbose_mode) {
+           object.Dump(m_log);
+           m_log.PopIndent();
+           m_log.Print("\n");
+       }
+
+       return false;
+    }
+
     if (const ON_Brep *brep = ON_Brep::Cast(&object)) {
        create_brep(*brep, object_attrs);
        return true;
@@ -1071,14 +1080,7 @@
        return true;
     }
 
-    m_log.Print("Skipping object of type %s\n", object.ClassId()->ClassName());
-
-    if (m_verbose_mode) {
-       object.Dump(m_log);
-       m_log.PopIndent();
-       m_log.Print("\n");
-    }
-
+    bu_bomb("should never get here");
     return false;
 }
 

Modified: brlcad/trunk/src/conv/3dm/conv3dm-g.hpp
===================================================================
--- brlcad/trunk/src/conv/3dm/conv3dm-g.hpp     2014-08-18 20:35:04 UTC (rev 
62214)
+++ brlcad/trunk/src/conv/3dm/conv3dm-g.hpp     2014-08-18 20:35:58 UTC (rev 
62215)
@@ -110,7 +110,7 @@
     void create_mesh(ON_Mesh mesh, const ON_3dmObjectAttributes &mesh_attrs);
     void create_geom_comb(const ON_3dmObjectAttributes &geom_attrs);
 
-    void map_name(const ON_UUID &uuid, const ON_wString &name, const char 
*suffix);
+    void map_name(const ON_UUID &uuid, const std::string &name, const char 
*suffix);
 
     Color get_color(const ON_3dmObjectAttributes &obj_attrs) const;
     Color get_color(const ON_Layer &layer) const;

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

Reply via email to