#include "include.hpp" int main() { CSVProcessor processor; // inizializzo variabili per gestire l'intervallo di visualizzazione unsigned int min = 0; unsigned int pos = 0; unsigned int maj = 100; //Costruisco la GUI State gs(800, 700, "Visualizzatore passo",&maj,&min,&pos); gs.window.setFramerateLimit(70); printf("Costruisco gli oggetti\n"); try{ processor.readCSVFile (DATA_PATH + "coscia_filt.csv"); //utilizzo questo file per definire la dimensione dei dati const auto& coscia = processor.getData(); gs.setIntervall(coscia.size()); //provo ad aggiungere una collection //gs.collections.push_back(new Gamba({220,0,220},&pos,"coscia_filt.csv","caviglia_filt.csv")); std::vector data; gamba_data d; d.dataPos = &pos; d.cavigliaData = "caviglia_dx.csv"; d.cosciaData = "coscia_dx.csv"; gamba_data s; s.dataPos = &pos; s.cavigliaData = "caviglia_sx.csv"; s.cosciaData = "coscia_sx.csv"; data.push_back(d); data.push_back(s); gs.collections.push_back(new Lower_Body(rb::Vector3{200,200,100},data)); //aggiungo il pavimento gs.pieces.push_back(new Pavimento({200,200,550},_Float16(0.2) )); gs.pieces[0]->body.setRot({0,-0.03,0}); printf("Ho costruito tutto!\n"); } catch(char* e){ printf("%s\n",e); } printf("Avvio l'interfaccia grafica\n"); unsigned int curTime = 0; unsigned int freq = 50; //frequenza campionamento sensori const unsigned int T = 1000/freq; //i sensori hanno una freq di campionamento di 50hz //Avvio il loop della GUI gs.clock.start(); gs.updateCollections(); sf::Clock mainClock; while (gs.window.isOpen()) { curTime += mainClock.restart().asMilliseconds() *(*gs.tMul) ; if (curTime > T){ if (gs.play && pos+curTime/T < maj) pos += curTime / T; curTime = 0; } // Show update gs.update(); doGraphics(gs); } return 0; }