#include #include namespace icl{ Scene::Scene(const Camera &cam): m_cam(cam),m_transMat(Mat::id()){} Scene::~Scene(){ for(unsigned int i=0;iproject(A); } } #ifdef HAVE_QT void Scene::render(ICLDrawWidget *w) const{ for(unsigned int i=0;irender(w); } } #endif void Scene::render(Img32f *image) const{ for(unsigned int i=0;irender(image); } } void Scene::add(Object *obj){ m_objs.push_back(obj); } void Scene::remove(Object *obj){ std::vector::iterator it = find(m_objs.begin(),m_objs.end(),obj); if(it != m_objs.end()){ delete *it; m_objs.erase(it); } } void Scene::transformAllObjs(const Mat &m){ for(unsigned int i=0;itransform(m); } } void Scene::showMatrices(const std::string &title) const{ Mat C = m_cam.getCoordinateSystemTransformationMatrix(); Mat P = m_cam.getProjectionMatrix(); Mat V = m_cam.getViewPortMatrix(); Mat T = m_transMat; printf("ICLGeom::Scene \"%s\" \n",title.c_str()); // C.show("camera coordinate system transformation matrix (C)"); //m_transMat.show("transformationmatrix (T)"); //V.show("view port matrix (V)"); //printf("--\n"); std::cout << "modelview-matrix:" << std::endl << (C*T) << std::endl; std::cout << "projection-matrix:" << std::endl << (V*P) << std::endl; printf("----------------------------------\n"); } }