BlendShapeViewer::BlendShapeViewer(QWidget* parent): GL3DCanvas(parent) { this->resize(640, 480); this->setSceneScale(1.0); showLandmarks = true; // load a dummy mesh PhGUtils::OBJLoader loader; loader.load("../Data/shape_0.obj"); mesh.initWithLoader( loader ); recon.setBaseMesh(mesh); GPURecon.setBaseMesh(mesh); targetSet = false; loadLandmarks(); updateMeshWithReconstructor(); connect(&recon, SIGNAL(oneiter()), this, SLOT(updateMeshWithReconstructor())); mProj = PhGUtils::KinectColorProjection.transposed(); mMv = PhGUtils::Matrix4x4f::identity(); }
int main(int argc, char ** argv) { // tests tests(); // initialize stuff init(); // create landmarks if(argc>1) loadLandmarks(std::string(argv[1])); else loadLandmarks("assets/landmarks.txt"); // prepare variables for the main loop current_pose.x = 0; current_pose.y = 0; current_pose.theta = 0; last_captured_pose = current_pose; fake_current_pose = current_pose; fake_last_captured_pose = current_pose; double sleep_time = 0; // used for waiting next step sf::Clock clock; clock.Reset(); float next_step_time = clock.GetElapsedTime(); int loop = 0; while(true){ loop = 0; while((clock.GetElapsedTime() > next_step_time) && (loop < MAX_FRAMESKIP)){ next_step_time += SKIP_TICKS; handleEvents(); update(); loop++; sleep_time = next_step_time - clock.GetElapsedTime(); if(sleep_time > 0){ usleep(sleep_time*1000); } } draw(); } return 0; }