Ver Fonte

support six-component vertices

David Rose há 14 anos atrás
pai
commit
84f6c314cb
1 ficheiros alterados com 18 adições e 1 exclusões
  1. 18 1
      pandatool/src/objegg/objToEggConverter.cxx

+ 18 - 1
pandatool/src/objegg/objToEggConverter.cxx

@@ -206,7 +206,7 @@ process_line(const string &line) {
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////
 bool ObjToEggConverter::
 bool ObjToEggConverter::
 process_v(vector_string &words) {
 process_v(vector_string &words) {
-  if (words.size() != 4) {
+  if (words.size() != 4 && words.size() != 7) {
     objegg_cat.error()
     objegg_cat.error()
       << "Wrong number of tokens at line " << _line_number << "\n";
       << "Wrong number of tokens at line " << _line_number << "\n";
     return false;
     return false;
@@ -226,6 +226,23 @@ process_v(vector_string &words) {
 
 
   EggVertex *vertex = get_vertex(_vi);
   EggVertex *vertex = get_vertex(_vi);
   vertex->set_pos(pos);
   vertex->set_pos(pos);
+
+  // Meshlab format might include an RGB color following the vertex
+  // position.
+  if (words.size() == 7) {
+    double r, g, b;
+    okflag &= string_to_double(words[4], r);
+    okflag &= string_to_double(words[5], g);
+    okflag &= string_to_double(words[6], b);
+
+    if (!okflag) {
+      objegg_cat.error()
+        << "Invalid number at line " << _line_number << "\n";
+      return false;
+    }
+    vertex->set_color(Colorf(r, g, b, 1.0));
+  }
+
   ++_vi;
   ++_vi;
 
 
   return true;
   return true;