Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-03-13 01:18:28 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-03-13 01:18:28 +0400
commite3cfca511f55495de1b58bf714fb4b8cabc633db (patch)
treebf666f2daff1542108b03464cfb662e6fc225af9 /extern/carve/include
parent30790e9390305a1e9108318e98c85a2b4699a045 (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.hpp8
-rw-r--r--extern/carve/include/carve/kd_node.hpp6
-rw-r--r--extern/carve/include/carve/mesh_impl.hpp3
-rw-r--r--extern/carve/include/carve/polyhedron_impl.hpp12
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();
}