[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