summaryrefslogtreecommitdiff
path: root/src/OpenCSGRenderer.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2011-10-04 01:41:43 (GMT)
committerMarius Kintel <marius@kintel.net>2011-10-04 01:41:43 (GMT)
commitf5e0f3a531b0c8806e4ebc62cd91ca31275ae481 (patch)
tree98992f8b4f632ab8e29175eb362f4d3e03e06da3 /src/OpenCSGRenderer.cc
parent85948590ee0c6a353502c5493ecaf45730e08984 (diff)
Rewrote some hard to read linear algebra code to use Eigen
Diffstat (limited to 'src/OpenCSGRenderer.cc')
-rw-r--r--src/OpenCSGRenderer.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/OpenCSGRenderer.cc b/src/OpenCSGRenderer.cc
index a030e6c..5d6b0da 100644
--- a/src/OpenCSGRenderer.cc
+++ b/src/OpenCSGRenderer.cc
@@ -39,11 +39,11 @@ public:
OpenCSGPrim(OpenCSG::Operation operation, unsigned int convexity) :
OpenCSG::Primitive(operation, convexity) { }
shared_ptr<PolySet> ps;
- double *m;
+ Transform3d m;
int csgmode;
virtual void render() {
glPushMatrix();
- glMultMatrixd(m);
+ glMultMatrixd(m.data());
ps->render_surface(PolySet::COLORMODE_NONE, PolySet::csgmode_e(csgmode), m);
glPopMatrix();
}
@@ -85,10 +85,10 @@ void OpenCSGRenderer::renderCSGChain(CSGChain *chain, GLint *shaderinfo,
}
if (shaderinfo) glUseProgram(shaderinfo[0]);
for (; j < i; j++) {
- double *m = chain->matrices[j];
+ const Transform3d &m = chain->matrices[j];
double *c = chain->colors[j];
glPushMatrix();
- glMultMatrixd(m);
+ glMultMatrixd(m.data());
int csgmode = chain->types[j] == CSGTerm::TYPE_DIFFERENCE ? PolySet::CSGMODE_DIFFERENCE : PolySet::CSGMODE_NORMAL;
if (highlight) {
chain->polysets[j]->render_surface(PolySet::COLORMODE_HIGHLIGHT, PolySet::csgmode_e(csgmode + 20), m, shaderinfo);
contact: Jan Huwald // Impressum