diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-02-27 06:37:37 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-02-27 06:37:37 (GMT) |
commit | 13b0fe4b3f8e0367f02a982deb5be695ccd00c80 (patch) | |
tree | f834a15d8ed4d37f23882ff60a2e2c08ea4f53f2 /src/export_png.cc | |
parent | c84b0d21842cbd09a46c80e23a2f1a3fc2a04592 (diff) |
rework Camera using boost::variant. first working --gimbalcam version
Diffstat (limited to 'src/export_png.cc')
-rw-r--r-- | src/export_png.cc | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/export_png.cc b/src/export_png.cc index 1c4a268..3e618e5 100644 --- a/src/export_png.cc +++ b/src/export_png.cc @@ -32,20 +32,19 @@ void export_png_with_cgal(CGAL_Nef_polyhedron *root_N, Camera &cam, std::ostream bbox = cgalRenderer.polyset->getBoundingBox(); } - if (cam.camtype == Camera::NULL_CAMERA) { + if (cam.type() == Camera::NONE) { VectorCamera vcam; vcam.center = getBoundingCenter(bbox); double radius = getBoundingRadius(bbox); Vector3d cameradir(1, 1, -0.5); vcam.eye = vcam.center - radius*2*cameradir; - csgInfo.glview->setCamera( vcam ); - } else { - csgInfo.glview->setCamera( cam ); + cam.value = vcam; } //std::cerr << center << "\n"; //std::cerr << radius << "\n"; + csgInfo.glview->setCamera( cam ); csgInfo.glview->setRenderer(&cgalRenderer); csgInfo.glview->paintGL(); csgInfo.glview->save(output); @@ -76,7 +75,7 @@ void export_png_with_opencsg(Tree &tree, Camera &cam, std::ostream &output) OpenCSGRenderer opencsgRenderer(csgInfo.root_chain, csgInfo.highlights_chain, csgInfo.background_chain, csgInfo.glview->shaderinfo); - if (cam.camtype == Camera::NULL_CAMERA) { + if (cam.type() == Camera::NONE) { VectorCamera vcam; vcam.center << 0,0,0; double radius = 1.0; @@ -87,11 +86,10 @@ void export_png_with_opencsg(Tree &tree, Camera &cam, std::ostream &output) } Vector3d cameradir(1, 1, -0.5); vcam.eye = vcam.center - radius*1.8*cameradir; - csgInfo.glview->setCamera( vcam ); - } else { - csgInfo.glview->setCamera( cam ); + cam.value = vcam; } + csgInfo.glview->setCamera( cam ); csgInfo.glview->setRenderer(&opencsgRenderer); OpenCSG::setContext(0); OpenCSG::setOption(OpenCSG::OffscreenSetting, OpenCSG::FrameBufferObject); |