aboutsummaryrefslogtreecommitdiffstats
path: root/math/carve
diff options
context:
space:
mode:
Diffstat (limited to 'math/carve')
-rw-r--r--math/carve/files/patch-common_read_ply.cpp11
-rw-r--r--math/carve/files/patch-include-carve_kd_node.hpp20
-rw-r--r--math/carve/files/patch-include-carve_polyhedron_impl.hpp42
3 files changed, 73 insertions, 0 deletions
diff --git a/math/carve/files/patch-common_read_ply.cpp b/math/carve/files/patch-common_read_ply.cpp
new file mode 100644
index 000000000000..81c291a6e1de
--- /dev/null
+++ b/math/carve/files/patch-common_read_ply.cpp
@@ -0,0 +1,11 @@
+--- common/read_ply.cpp.orig 2013-02-22 09:51:55.000000000 +0100
++++ common/read_ply.cpp 2013-02-22 09:52:16.000000000 +0100
+@@ -255,7 +255,7 @@
+ carve::poly::Polyhedron *readFile(std::istream &in, const carve::math::Matrix &transform) {
+ carve::input::Input inputs;
+ if (!readFile<filetype_t>(in, inputs, transform)) {
+- return false;
++ return NULL;
+ }
+ for (std::list<carve::input::Data *>::const_iterator i = inputs.input.begin(); i != inputs.input.end(); ++i) {
+ carve::poly::Polyhedron *poly = inputs.create<carve::poly::Polyhedron>(*i);
diff --git a/math/carve/files/patch-include-carve_kd_node.hpp b/math/carve/files/patch-include-carve_kd_node.hpp
new file mode 100644
index 000000000000..4641ceab8410
--- /dev/null
+++ b/math/carve/files/patch-include-carve_kd_node.hpp
@@ -0,0 +1,20 @@
+--- include/carve/kd_node.hpp.orig 2013-02-22 09:47:07.000000000 +0100
++++ include/carve/kd_node.hpp 2013-02-22 09:50:00.000000000 +0100
+@@ -238,7 +238,7 @@
+ // 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 @@
+ }
+ }
+
+- const typename kd_node::data_t *next() {
++ const data_t *next() {
+ while (1) {
+ if (pq.size()) {
+ q_t t = pq.top();
diff --git a/math/carve/files/patch-include-carve_polyhedron_impl.hpp b/math/carve/files/patch-include-carve_polyhedron_impl.hpp
new file mode 100644
index 000000000000..ecede7fdc8a2
--- /dev/null
+++ b/math/carve/files/patch-include-carve_polyhedron_impl.hpp
@@ -0,0 +1,42 @@
+--- include/carve/polyhedron_impl.hpp.orig 2013-02-22 09:41:13.000000000 +0100
++++ include/carve/polyhedron_impl.hpp 2013-02-22 09:46:30.000000000 +0100
+@@ -88,9 +88,9 @@
+ *(*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 @@
+ 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 @@
+ 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 @@
+ // 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();
+ }