[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54846] trunk/blender/extern/carve: Update Carve to newest upstream version with some assorted fixes

Sergey Sharybin sergey.vfx at gmail.com
Mon Feb 25 11:02:44 CET 2013


Revision: 54846
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54846
Author:   nazgul
Date:     2013-02-25 10:02:43 +0000 (Mon, 25 Feb 2013)
Log Message:
-----------
Update Carve to newest upstream version with some assorted fixes

Perhaps some warnings could be silenced, but not in mood of writing
local patches at this moment. They're all harmless anyway.

Modified Paths:
--------------
    trunk/blender/extern/carve/bundle.sh
    trunk/blender/extern/carve/files.txt
    trunk/blender/extern/carve/include/carve/csg_triangulator.hpp
    trunk/blender/extern/carve/include/carve/geom3d.hpp
    trunk/blender/extern/carve/include/carve/geom_impl.hpp
    trunk/blender/extern/carve/include/carve/input.hpp
    trunk/blender/extern/carve/include/carve/mesh.hpp
    trunk/blender/extern/carve/include/carve/mesh_impl.hpp
    trunk/blender/extern/carve/lib/intersect.cpp
    trunk/blender/extern/carve/lib/intersect_face_division.cpp
    trunk/blender/extern/carve/lib/mesh.cpp
    trunk/blender/extern/carve/lib/polyhedron.cpp
    trunk/blender/extern/carve/patches/series

Removed Paths:
-------------
    trunk/blender/extern/carve/patches/strict_flags.patch

Modified: trunk/blender/extern/carve/bundle.sh
===================================================================
--- trunk/blender/extern/carve/bundle.sh	2013-02-25 09:46:47 UTC (rev 54845)
+++ trunk/blender/extern/carve/bundle.sh	2013-02-25 10:02:43 UTC (rev 54846)
@@ -91,7 +91,7 @@
 		-DCARVE_SYSTEM_BOOST
 	)
 
-	list(APPEND INC
+	list(APPEND INC_SYS
 		\${BOOST_INCLUDE_DIR}
 	)
 endif()

Modified: trunk/blender/extern/carve/files.txt
===================================================================
--- trunk/blender/extern/carve/files.txt	2013-02-25 09:46:47 UTC (rev 54845)
+++ trunk/blender/extern/carve/files.txt	2013-02-25 10:02:43 UTC (rev 54846)
@@ -1,107 +1,109 @@
-include/carve/polyhedron_decl.hpp
-include/carve/geom2d.hpp
-include/carve/exact.hpp
+include/carve/vertex_impl.hpp
+include/carve/aabb_impl.hpp
+include/carve/csg.hpp
+include/carve/pointset_iter.hpp
+include/carve/debug_hooks.hpp
+include/carve/mesh.hpp
 include/carve/triangulator_impl.hpp
-include/carve/collection.hpp
-include/carve/pointset.hpp
-include/carve/djset.hpp
-include/carve/kd_node.hpp
+include/carve/edge_decl.hpp
+include/carve/collection/unordered.hpp
+include/carve/collection/unordered/tr1_impl.hpp
+include/carve/collection/unordered/fallback_impl.hpp
+include/carve/collection/unordered/std_impl.hpp
+include/carve/collection/unordered/vcpp_impl.hpp
+include/carve/collection/unordered/libstdcpp_impl.hpp
+include/carve/collection/unordered/boost_impl.hpp
+include/carve/convex_hull.hpp
+include/carve/geom.hpp
+include/carve/collection_types.hpp
+include/carve/cbrt.h
+include/carve/util.hpp
+include/carve/iobj.hpp
+include/carve/polyline_decl.hpp
+include/carve/polyline_impl.hpp
+include/carve/win32.h
+include/carve/edge_impl.hpp
+include/carve/carve.hpp
 include/carve/polyline.hpp
-include/carve/polyline_iter.hpp
-include/carve/geom3d.hpp
-include/carve/edge_decl.hpp
+include/carve/config.h
 include/carve/face_decl.hpp
-include/carve/aabb_impl.hpp
-include/carve/colour.hpp
-include/carve/pointset_iter.hpp
-include/carve/polyline_decl.hpp
-include/carve/rescale.hpp
+include/carve/matrix.hpp
+include/carve/classification.hpp
+include/carve/geom_impl.hpp
+include/carve/faceloop.hpp
+include/carve/mesh_ops.hpp
+include/carve/tree.hpp
+include/carve/geom2d.hpp
+include/carve/face_impl.hpp
+include/carve/polyhedron_decl.hpp
+include/carve/interpolator.hpp
+include/carve/poly_decl.hpp
 include/carve/mesh_impl.hpp
-include/carve/classification.hpp
-include/carve/util.hpp
+include/carve/gnu_cxx.h
+include/carve/mesh_simplify.hpp
 include/carve/triangulator.hpp
-include/carve/polyhedron_base.hpp
+include/carve/pointset_impl.hpp
 include/carve/rtree.hpp
+include/carve/math_constants.hpp
+include/carve/vector.hpp
+include/carve/octree_impl.hpp
+include/carve/pointset.hpp
 include/carve/math.hpp
-include/carve/math_constants.hpp
-include/carve/octree_decl.hpp
+include/carve/intersection.hpp
+include/carve/colour.hpp
+include/carve/kd_node.hpp
 include/carve/input.hpp
-include/carve/mesh_ops.hpp
-include/carve/debug_hooks.hpp
-include/carve/mesh_simplify.hpp
-include/carve/interpolator.hpp
-include/carve/poly_decl.hpp
-include/carve/csg.hpp
-include/carve/mesh.hpp
-include/carve/carve.hpp
-include/carve/gnu_cxx.h
+include/carve/geom3d.hpp
+include/carve/exact.hpp
+include/carve/rescale.hpp
+include/carve/polyhedron_base.hpp
+include/carve/heap.hpp
+include/carve/spacetree.hpp
 include/carve/polyhedron_impl.hpp
-include/carve/poly_impl.hpp
+include/carve/vcpp_config.h
 include/carve/aabb.hpp
-include/carve/convex_hull.hpp
+include/carve/polyline_iter.hpp
+include/carve/djset.hpp
 include/carve/vertex_decl.hpp
-include/carve/win32.h
-include/carve/edge_impl.hpp
-include/carve/tag.hpp
-include/carve/tree.hpp
-include/carve/heap.hpp
-include/carve/matrix.hpp
+include/carve/csg_triangulator.hpp
 include/carve/poly.hpp
-include/carve/vector.hpp
-include/carve/intersection.hpp
-include/carve/faceloop.hpp
-include/carve/geom_impl.hpp
-include/carve/octree_impl.hpp
-include/carve/spacetree.hpp
-include/carve/collection/unordered/std_impl.hpp
-include/carve/collection/unordered/tr1_impl.hpp
-include/carve/collection/unordered/libstdcpp_impl.hpp
-include/carve/collection/unordered/boost_impl.hpp
-include/carve/collection/unordered/vcpp_impl.hpp
-include/carve/collection/unordered/fallback_impl.hpp
-include/carve/collection/unordered.hpp
-include/carve/face_impl.hpp
-include/carve/pointset_impl.hpp
-include/carve/cbrt.h
-include/carve/vcpp_config.h
-include/carve/geom.hpp
-include/carve/vertex_impl.hpp
-include/carve/polyline_impl.hpp
+include/carve/external/boost/random.hpp
+include/carve/timing.hpp
+include/carve/octree_decl.hpp
 include/carve/pointset_decl.hpp
-include/carve/timing.hpp
-include/carve/csg_triangulator.hpp
-include/carve/iobj.hpp
-include/carve/collection_types.hpp
-lib/carve.cpp
-lib/mesh.cpp
-lib/intersect_group.cpp
+include/carve/tag.hpp
+include/carve/collection.hpp
+include/carve/poly_impl.hpp
+lib/intersection.cpp
+lib/intersect.cpp
+lib/triangulator.cpp
+lib/intersect_debug.hpp
+lib/csg_collector.hpp
+lib/csg_data.hpp
+lib/convex_hull.cpp
 lib/intersect_classify_common.hpp
-lib/intersect_classify_edge.cpp
-lib/intersect_classify_group.cpp
-lib/csg_data.hpp
+lib/intersect_common.hpp
 lib/polyhedron.cpp
-lib/csg_collector.hpp
-lib/geom3d.cpp
 lib/polyline.cpp
-lib/csg_collector.cpp
-lib/triangulator.cpp
+lib/pointset.cpp
+lib/geom2d.cpp
+lib/math.cpp
+lib/intersect_half_classify_group.cpp
 lib/intersect_face_division.cpp
-lib/intersect_half_classify_group.cpp
-lib/edge.cpp
-lib/math.cpp
-lib/geom2d.cpp
 lib/tag.cpp
-lib/intersection.cpp
-lib/convex_hull.cpp
-lib/intersect_common.hpp
-lib/intersect_classify_common_impl.hpp
+lib/aabb.cpp
+lib/intersect_classify_group.cpp
+lib/csg_detail.hpp
+lib/mesh.cpp
+lib/timing.cpp
+lib/geom3d.cpp
+lib/intersect_group.cpp
+lib/carve.cpp
+lib/intersect_classify_edge.cpp
 lib/csg.cpp
-lib/intersect.cpp
-lib/csg_detail.hpp
 lib/face.cpp
-lib/pointset.cpp
-lib/timing.cpp
+lib/csg_collector.cpp
+lib/intersect_debug.cpp
+lib/edge.cpp
+lib/intersect_classify_common_impl.hpp
 lib/octree.cpp
-lib/aabb.cpp
-lib/intersect_debug.hpp
-lib/intersect_debug.cpp

Modified: trunk/blender/extern/carve/include/carve/csg_triangulator.hpp
===================================================================
--- trunk/blender/extern/carve/include/carve/csg_triangulator.hpp	2013-02-25 09:46:47 UTC (rev 54845)
+++ trunk/blender/extern/carve/include/carve/csg_triangulator.hpp	2013-02-25 10:02:43 UTC (rev 54846)
@@ -174,7 +174,7 @@
 
       double scoreQuad(edge_map_t::iterator i, edge_map_t &edge_map) {
         if (!(*i).second.first || !(*i).second.second) return -1;
-        return 0;
+        return -1;
       }
 
       carve::mesh::MeshSet<3>::face_t *mergeQuad(edge_map_t::iterator i, edge_map_t &edge_map) {

Modified: trunk/blender/extern/carve/include/carve/geom3d.hpp
===================================================================
--- trunk/blender/extern/carve/include/carve/geom3d.hpp	2013-02-25 09:46:47 UTC (rev 54845)
+++ trunk/blender/extern/carve/include/carve/geom3d.hpp	2013-02-25 10:02:43 UTC (rev 54846)
@@ -206,10 +206,23 @@
      *         * +1, if a is ordered after b around, rotating about direction.
      */
     inline int compareAngles(const Vector &direction, const Vector &base, const Vector &a, const Vector &b) {
-      const double d1 = carve::geom3d::orient3d(carve::geom::VECTOR(0,0,0), direction, a, b);
-      const double d2 = carve::geom3d::orient3d(carve::geom::VECTOR(0,0,0), direction, base, a);
-      const double d3 = carve::geom3d::orient3d(carve::geom::VECTOR(0,0,0), direction, base, b);
+      // double d1 = carve::geom3d::orient3d(carve::geom::VECTOR(0,0,0), direction, a, b);
+      // double d2 = carve::geom3d::orient3d(carve::geom::VECTOR(0,0,0), direction, base, a);
+      // double d3 = carve::geom3d::orient3d(carve::geom::VECTOR(0,0,0), direction, base, b);
 
+#if defined(CARVE_USE_EXACT_PREDICATES)
+      // which is equivalent to the following (which eliminates a
+      // vector subtraction):
+      double d1 = carve::geom3d::orient3d(direction, b, a,    carve::geom::VECTOR(0,0,0));
+      double d2 = carve::geom3d::orient3d(direction, a, base, carve::geom::VECTOR(0,0,0));
+      double d3 = carve::geom3d::orient3d(direction, b, base, carve::geom::VECTOR(0,0,0));
+#else
+      // dotcross = a . (b x c)
+      double d1 = carve::geom::dotcross(direction, b, a   );
+      double d2 = carve::geom::dotcross(direction, a, base);
+      double d3 = carve::geom::dotcross(direction, b, base);
+#endif
+
       // CASE: a and b are coplanar wrt. direction.
       if (d1 == 0.0) {
         // a and b point in the same direction.

Modified: trunk/blender/extern/carve/include/carve/geom_impl.hpp
===================================================================
--- trunk/blender/extern/carve/include/carve/geom_impl.hpp	2013-02-25 09:46:47 UTC (rev 54845)
+++ trunk/blender/extern/carve/include/carve/geom_impl.hpp	2013-02-25 10:02:43 UTC (rev 54846)
@@ -396,7 +396,7 @@
       // Compute a . (b x c)
       return
         (a.x * b.y * c.z + a.y * b.z * c.x + a.z * b.x * c.y) -
-        (a.x * b.z * c.y + a.y * b.x * c.z + a.z * b.y * c.x);
+        (a.x * c.y * b.z + a.y * c.z * b.x + a.z * c.x * b.y);
     }
 
 

Modified: trunk/blender/extern/carve/include/carve/input.hpp
===================================================================
--- trunk/blender/extern/carve/include/carve/input.hpp	2013-02-25 09:46:47 UTC (rev 54845)
+++ trunk/blender/extern/carve/include/carve/input.hpp	2013-02-25 10:02:43 UTC (rev 54846)
@@ -17,6 +17,9 @@
 
 #pragma once
 
+#include <map>
+#include <string>
+
 #include <carve/carve.hpp>
 #include <carve/poly.hpp>
 #include <carve/mesh.hpp>
@@ -28,6 +31,50 @@
 namespace carve {
   namespace input {
 
+    typedef std::map<std::string, std::string> Options;
+
+    static inline Options opts() {
+      return Options();
+    }
+
+    static inline Options opts(const char **kv) {
+      Options r;
+      for (size_t i = 0; kv[i] != NULL; i += 2) {
+        r[kv[i]] = kv[i+1];
+      }
+      return r;
+    }
+
+    static inline Options opts(const std::string &k1, const std::string &v1) {
+      Options r;
+      r[k1] = v1;
+      return r;
+    }
+
+    static inline Options opts(const std::string &k1, const std::string &v1,
+                               const std::string &k2, const std::string &v2) {
+      Options r;
+      r[k1] = v1;
+      r[k2] = v2;
+      return r;
+    }
+

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list