From 2da15511294d2f89f2337ee0330db9062a4cfdce Mon Sep 17 00:00:00 2001 From: clifford Date: Sat, 30 Jan 2010 18:30:54 +0000 Subject: Clifford Wolf: Started to use eigen2 for linear algebra problems git-svn-id: http://svn.clifford.at/openscad/trunk@376 b57f626f-c46c-0410-a088-ec61d464b74c diff --git a/README b/README index 86669bb..9288811 100644 --- a/README +++ b/README @@ -52,6 +52,9 @@ development. Other versions may or may not work as well.. * GLEW (bundled with OpenCSG) http://glew.sourceforge.net/ +* Eigen2 (2.0.11) + http://eigen.tuxfamily.org/ + * GCC C++ Compiler (4.0, 4.2, 4.3.1): http://gcc.gnu.org/ diff --git a/openscad.pro b/openscad.pro index cb8afe7..60b9ab4 100644 --- a/openscad.pro +++ b/openscad.pro @@ -39,6 +39,13 @@ mdi { include(cgal.pri) include(opencsg.pri) +!isEmpty(EIGEN2_DIR) { + QMAKE_CXXFLAGS += -I$$EIGEN2_DIR +} +else { + QMAKE_CXXFLAGS += -I/usr/include/eigen2 +} + QMAKE_CXXFLAGS_RELEASE = -O3 -march=pentium QMAKE_CXXFLAGS_DEBUG = -O0 -ggdb @@ -46,8 +53,6 @@ QMAKE_CXXFLAGS_DEBUG = -O0 -ggdb # QMAKE_CXXFLAGS += -pg # QMAKE_LFLAGS += -pg - - LEXSOURCES += src/lexer.l YACCSOURCES += src/parser.y diff --git a/src/polyset.cc b/src/polyset.cc index 7110f95..83c1cfc 100644 --- a/src/polyset.cc +++ b/src/polyset.cc @@ -25,6 +25,9 @@ #include "printutils.h" #include "Preferences.h" +#include +#include + QCache PolySet::ps_cache(100); PolySet::ps_cache_entry::ps_cache_entry(PolySet *ps) : @@ -129,10 +132,11 @@ static void gl_draw_triangle(GLint *shaderinfo, const PolySet::Point *p0, const void PolySet::render_surface(colormode_e colormode, csgmode_e csgmode, double *m, GLint *shaderinfo) const { - double m_scale_rotate_det = - m[0]*m[5]*m[10] + m[4]*m[9]*m[2] + m[8]*m[1]*m[6] - - (m[8]*m[5]*m[2] + m[4]*m[1]*m[10] + m[0]*m[9]*m[6]); - bool mirrored = m_scale_rotate_det < 0; + Eigen::Matrix3f m3f; + m3f << m[0], m[4], m[8], + m[1], m[5], m[9], + m[2], m[6], m[10]; + bool mirrored = m3f.determinant() < 0; if (colormode == COLORMODE_MATERIAL) { const QColor &col = Preferences::inst()->color(Preferences::OPENCSG_FACE_FRONT_COLOR); -- cgit v0.10.1