diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-03-13 01:18:28 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-03-13 01:18:28 +0400 |
commit | e3cfca511f55495de1b58bf714fb4b8cabc633db (patch) | |
tree | bf666f2daff1542108b03464cfb662e6fc225af9 /extern/carve/include | |
parent | 30790e9390305a1e9108318e98c85a2b4699a045 (diff) |
Bundle latest version of Carve library which shall resolve compilation issues with clang
Diffstat (limited to 'extern/carve/include')
-rw-r--r-- | extern/carve/include/carve/exact.hpp | 8 | ||||
-rw-r--r-- | extern/carve/include/carve/kd_node.hpp | 6 | ||||
-rw-r--r-- | extern/carve/include/carve/mesh_impl.hpp | 3 | ||||
-rw-r--r-- | extern/carve/include/carve/polyhedron_impl.hpp | 12 |
4 files changed, 15 insertions, 14 deletions
diff --git a/extern/carve/include/carve/exact.hpp b/extern/carve/include/carve/exact.hpp index afb491211fd..0d674e66ef7 100644 --- a/extern/carve/include/carve/exact.hpp +++ b/extern/carve/include/carve/exact.hpp @@ -639,9 +639,11 @@ namespace carve { } - // XXX: not implemented yet - //exact_t operator+(const exact_t &a, const exact_t &b) { - //} + exact_t operator+(const exact_t &a, const exact_t &b) { + exact_t r; + sum_zeroelim(a, b, r); + return r; + } diff --git a/extern/carve/include/carve/kd_node.hpp b/extern/carve/include/carve/kd_node.hpp index f62584d50c2..45e0ac85739 100644 --- a/extern/carve/include/carve/kd_node.hpp +++ b/extern/carve/include/carve/kd_node.hpp @@ -230,7 +230,7 @@ namespace carve { } // distance_t must provide: - // double operator()(kd_node::data_t, vector<ndim>); + // double operator()(data_t, vector<ndim>); // double operator()(axis_pos, vector<ndim>); template<typename distance_t> struct near_point_query { @@ -238,7 +238,7 @@ namespace carve { // q_t - the priority queue value type. // q_t.first: distance from object to query point. // q_t.second: pointer to object - typedef std::pair<double, const typename kd_node::data_t *> q_t; + typedef std::pair<double, const data_t *> q_t; // the queue priority should sort from smallest distance to largest, and on equal distance, by object pointer. struct pcmp { @@ -266,7 +266,7 @@ namespace carve { } } - const typename kd_node::data_t *next() { + const data_t *next() { while (1) { if (pq.size()) { q_t t = pq.top(); diff --git a/extern/carve/include/carve/mesh_impl.hpp b/extern/carve/include/carve/mesh_impl.hpp index 23b0a436573..d55df8c8130 100644 --- a/extern/carve/include/carve/mesh_impl.hpp +++ b/extern/carve/include/carve/mesh_impl.hpp @@ -624,8 +624,7 @@ namespace carve { CARVE_ASSERT(e->rev != NULL); e = e->rev->next; CARVE_ASSERT(e->v1() == emin->v1()); - CARVE_ASSERT(e->v1()->v < e->v2()->v); - CARVE_ASSERT(e->v1()->v.x <= e->v2()->v.x); + CARVE_ASSERT(e->v1()->v <= e->v2()->v); } while (e != emin); double max_abs_x = 0.0; diff --git a/extern/carve/include/carve/polyhedron_impl.hpp b/extern/carve/include/carve/polyhedron_impl.hpp index 06d841c7192..de61324140d 100644 --- a/extern/carve/include/carve/polyhedron_impl.hpp +++ b/extern/carve/include/carve/polyhedron_impl.hpp @@ -88,9 +88,9 @@ namespace carve { *(*result)++ = f; int r = 1; - for (size_t i = 0; i < f->edges.size(); ++i) { - const std::vector<const face_t *> &edge_faces = connectivity.edge_to_face[edgeToIndex_fast(f->edges[i])]; - const face_t *f2 = connectedFace(f, f->edges[i]); + for (size_t i = 0; i < f->nEdges(); ++i) { + const std::vector<const face_t *> &edge_faces = connectivity.edge_to_face[edgeToIndex_fast(f->edge(i))]; + const face_t *f2 = connectedFace(f, f->edge(i)); if (f2) { r += _faceNeighbourhood(f2, depth - 1, (*result)); } @@ -116,7 +116,7 @@ namespace carve { int r = 0; const std::vector<const face_t *> &edge_faces = connectivity.edge_to_face[edgeToIndex_fast(e)]; for (size_t i = 0; i < edge_faces.size(); ++i) { - face_t *f = edge_faces[i]; + const face_t *f = edge_faces[i]; if (f && f->manifold_id == m_id) { r += _faceNeighbourhood(f, depth, &result); } } return r; @@ -131,7 +131,7 @@ namespace carve { int r = 0; const std::vector<const face_t *> &vertex_faces = connectivity.vertex_to_face[vertexToIndex_fast(v)]; for (size_t i = 0; i < vertex_faces.size(); ++i) { - face_t *f = vertex_faces[i]; + const face_t *f = vertex_faces[i]; if (f && f->manifold_id == m_id) { r += _faceNeighbourhood(f, depth, &result); } } return r; @@ -142,7 +142,7 @@ namespace carve { // accessing connectivity information. template<typename T> int Geometry<3>::vertexToEdges(const vertex_t *v, T result) const { - std::vector<const edge_t *> &e = connectivity.vertex_to_edge[vertexToIndex_fast(v)]; + const std::vector<const edge_t *> &e = connectivity.vertex_to_edge[vertexToIndex_fast(v)]; std::copy(e.begin(), e.end(), result); return e.size(); } |