Ver Fonte

hacky stuff

David Rose há 14 anos atrás
pai
commit
0b0a286101
1 ficheiros alterados com 16 adições e 20 exclusões
  1. 16 20
      pandatool/src/pfmprogs/pfmBba.cxx

+ 16 - 20
pandatool/src/pfmprogs/pfmBba.cxx

@@ -33,17 +33,10 @@ PfmBba() {
      "Treats (0,0,0) in the pfm file as a special don't-touch value.",
      &PfmBba::dispatch_none, &_got_zero_special);
 
-  add_option
-    ("r", "index", 0,
-     "Selects a reorder index.",
-     &PfmBba::dispatch_int, NULL, &_reorder_index);
-
   add_option
     ("o", "filename", 50,
      "Specify the filename to which the resulting bba file will be written.",
      &PfmBba::dispatch_filename, &_got_output_filename, &_output_filename);
-
-  _reorder_index = 0;
 }
 
 
@@ -95,20 +88,23 @@ process_pfm(const Filename &input_filename, PfmFile &file) {
         << "Unable to open " << bba_filename << "\n";
       return false;
     }
+
+    LPoint3 points[8];
+    for (int i = 0; i < 8; ++i) {
+      points[i] = bounds->get_point(i);
+    }
+    LPlanef plane(points[0], points[1], points[2]);
+    LVector3 normal = plane.get_normal();
+
+    static const PN_stdfloat scale = 20.0f;
+    normal *= scale;
+    points[0] += normal;
+    points[1] += normal;
+    points[2] += normal;
+    points[3] += normal;
     
-    // This is the order expected by our existing bba system.
-    static const int num_reorder_points = 4;
-    static const int reorder_points[num_reorder_points][8] = {
-      { 0, 1, 2, 3, 4, 5, 6, 7 },  // unfiltered
-      { 7, 5, 1, 3, 6, 4, 0, 2 },  // front, floor
-      { 4, 6, 2, 0, 5, 7, 3, 1 },  // left
-      { 7, 5, 1, 3, 2, 0, 4, 6 },  // right
-    };
-    int ri = max(_reorder_index, 0);
-    ri = min(ri, num_reorder_points - 1);
-    
-    for (int i = 0; i < bounds->get_num_points(); ++i) {
-      LPoint3 p = bounds->get_point(reorder_points[ri][i]);
+    for (int i = 0; i < 8; ++i) {
+      const LPoint3 &p = points[i];
       out << p[0] << "," << p[1] << "," << p[2] << "\n";
     }
   }