/******************************************************************** ** Image Component Library (ICL) ** ** ** ** Copyright (C) 2006-2012 CITEC, University of Bielefeld ** ** Neuroinformatics Group ** ** Website: www.iclcv.org and ** ** http://opensource.cit-ec.de/projects/icl ** ** ** ** File : ICLQt/examples/3D-demo.cpp ** ** Module : ICLQt ** ** Authors: Christof Elbrechter ** ** ** ** ** ** Commercial License ** ** ICL can be used commercially, please refer to our website ** ** www.iclcv.org for more details. ** ** ** ** GNU General Public License Usage ** ** Alternatively, this file may be used under the terms of the ** ** GNU General Public License version 3.0 as published by the ** ** Free Software Foundation and appearing in the file LICENSE.GPL ** ** included in the packaging of this file. Please review the ** ** following information to ensure the GNU General Public License ** ** version 3.0 requirements will be met: ** ** http://www.gnu.org/copyleft/gpl.html. ** ** ** ** The development of this software was supported by the ** ** Excellence Cluster EXC 277 Cognitive Interaction Technology. ** ** The Excellence Cluster EXC 277 is a grant of the Deutsche ** ** Forschungsgemeinschaft (DFG) in the context of the German ** ** Excellence Initiative. ** ** ** *********************************************************************/ #include #include #include /** Please note: Using ICL for 3D visualization is usually not recommended like this. In General, it's easier to use ICLGeom's classes Scene, SceneObject and Camera instead */ ICLDrawWidget3D *widget = 0; void init(){ widget = new ICLDrawWidget3D(0); widget->setGeometry(200,200,640,480); widget->show(); } void run(){ GenericGrabber g(pa("-i")); g.useDesired(Size::QVGA); static float rz = 2; static float ry = 1; while(1){ const ImgBase *image = g.grab(); widget->setImage(image); widget->lock(); widget->reset3D(); widget->rotate3D(0,ry,rz); rz += 0.4; ry += 0.8; widget->color3D(1, 1, 1, 1); widget->imagecube3D(0,0,0,0.5,image); widget->supercube3D(0.2,0,0,0.5); // 2D Stuff widget->reset(); widget->color(255,0,0,100); widget->fill(255,0,0,50); widget->rel(); widget->rect(0.01,0.01,0.5,0.05); widget->color(255,255,255,200); widget->fill(255,255,255,200); static FPSEstimator fps(10); widget->text(fps.getFPSString(),0.02,0.02,0.2,0.03); widget->unlock(); widget->update(); Thread::msleep(1); } } int main(int n, char **ppc){ return ICLApp(n,ppc,"[m]-input|-i(device,device-params)",init,run).exec(); }