summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CGALRenderer.cc6
-rw-r--r--src/csgterm.cc20
-rw-r--r--src/csgterm.h1
-rw-r--r--src/dxfdata.h7
-rw-r--r--src/mainwin.cc13
-rw-r--r--src/openscad.cc1
-rw-r--r--src/polyset.h7
7 files changed, 51 insertions, 4 deletions
diff --git a/src/CGALRenderer.cc b/src/CGALRenderer.cc
index 4d165ce..95bcba1 100644
--- a/src/CGALRenderer.cc
+++ b/src/CGALRenderer.cc
@@ -24,10 +24,12 @@
*
*/
-#include "CGALRenderer.h"
+// dxfdata.h must come first for Eigen SIMD alignment issues
+#include "dxfdata.h"
#include "polyset.h"
+
+#include "CGALRenderer.h"
#include "CGAL_renderer.h"
-#include "dxfdata.h"
#include "dxftess.h"
#include "CGAL_Nef_polyhedron.h"
#include "cgal.h"
diff --git a/src/csgterm.cc b/src/csgterm.cc
index 8306aaf..5bccff8 100644
--- a/src/csgterm.cc
+++ b/src/csgterm.cc
@@ -227,6 +227,26 @@ std::string CSGChain::dump()
return dump.str();
}
+
+std::string CSGChain::fulldump()
+{
+ std::stringstream dump;
+ dump << "\nsizes: \n";
+ dump << " polysets: " << polysets.size();
+ dump << " matrices: " << matrices.size();
+ dump << " colors: " << colors.size();
+ dump << " types: " << types.size();
+ dump << " labels: " << labels.size();
+ dump << "\ndata: \n";
+ for (size_t i = 0; i < polysets.size(); i++) dump << (*polysets[i]).polygons.size() << "\n";
+ for (size_t i = 0; i < matrices.size(); i++) dump << *matrices[i] << "\n";
+ for (size_t i = 0; i < colors.size(); i++) dump << *colors[i] << "\n";
+ for (size_t i = 0; i < types.size(); i++) dump << types[i] << "\n";
+ for (size_t i = 0; i < labels.size(); i++) dump << labels[i] << "\n";
+ dump << "\n";
+ return dump.str();
+}
+
BoundingBox CSGChain::getBoundingBox() const
{
BoundingBox bbox;
diff --git a/src/csgterm.h b/src/csgterm.h
index c12b7ae..c4e88a6 100644
--- a/src/csgterm.h
+++ b/src/csgterm.h
@@ -50,6 +50,7 @@ public:
void add(const shared_ptr<PolySet> &polyset, double *m, double *color, CSGTerm::type_e type, std::string label);
void import(CSGTerm *term, CSGTerm::type_e type = CSGTerm::TYPE_UNION);
std::string dump();
+ std::string fulldump();
BoundingBox getBoundingBox() const;
};
diff --git a/src/dxfdata.h b/src/dxfdata.h
index d24541c..d8dc3dd 100644
--- a/src/dxfdata.h
+++ b/src/dxfdata.h
@@ -1,8 +1,13 @@
#ifndef DXFDATA_H_
#define DXFDATA_H_
-#include <vector>
+#ifndef __APPLE__
+#define EIGEN_DONT_VECTORIZE 1
+#define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT 1
+#endif
+
#include <Eigen/Dense>
+#include <vector>
using Eigen::Vector2d;
diff --git a/src/mainwin.cc b/src/mainwin.cc
index 51e85e7..e287f0d 100644
--- a/src/mainwin.cc
+++ b/src/mainwin.cc
@@ -95,6 +95,8 @@ using namespace boost::lambda;
#endif // ENABLE_CGAL
+using std::cerr;
+
// Global application state
unsigned int GuiLocker::gui_locked = 0;
@@ -876,6 +878,17 @@ void MainWindow::compileCSG(bool procevents)
this->highlights_chain,
this->background_chain);
+ fprintf(stderr, "Dump root chain\n");
+ cerr << this->root_chain->fulldump();
+ cerr << this->highlights_chain;
+ cerr << this->background_chain;
+/* fprintf(stderr, "dump highlights\n");
+ this->highlights_chain->dump();
+ fprintf(stderr, "dump background\n");
+ this->background_chain->dump();*/
+ fprintf(stderr, "end dump\n");
+
+
PRINT("CSG generation finished.");
int s = t.elapsed() / 1000;
PRINTF("Total rendering time: %d hours, %d minutes, %d seconds", s / (60*60), (s / 60) % 60, s % 60);
diff --git a/src/openscad.cc b/src/openscad.cc
index 878cb22..fd74de4 100644
--- a/src/openscad.cc
+++ b/src/openscad.cc
@@ -415,3 +415,4 @@ int main(int argc, char **argv)
return rc;
}
+
diff --git a/src/polyset.h b/src/polyset.h
index c59d86a..3cfb21a 100644
--- a/src/polyset.h
+++ b/src/polyset.h
@@ -1,11 +1,16 @@
#ifndef POLYSET_H_
#define POLYSET_H_
+#ifndef __APPLE__
+#define EIGEN_DONT_VECTORIZE 1
+#define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT 1
+#endif
+
#include <GL/glew.h>
#include "grid.h"
-#include <vector>
#include <Eigen/Core>
#include <Eigen/Geometry>
+#include <vector>
using Eigen::Vector3d;
typedef Eigen::AlignedBox<double, 3> BoundingBox;
contact: Jan Huwald // Impressum