diff --git a/build/bin/imgui.ini b/build/bin/imgui.ini index 2d632ad..65cdfba 100644 --- a/build/bin/imgui.ini +++ b/build/bin/imgui.ini @@ -3,7 +3,7 @@ Pos=60,60 Size=400,400 [Window][Dear ImGui Demo] -Pos=754,26 +Pos=473,13 Size=936,873 [Window][Hello, world!] @@ -23,8 +23,8 @@ Pos=68,96 Size=740,472 [Window][Set data position] -Pos=19,485 -Size=597,78 +Pos=0,765 +Size=856,50 [Window][Dear ImGui Demo/ResizableChild_478B81A3] IsChild=1 @@ -38,3 +38,7 @@ Size=200,100 Pos=60,60 Size=353,1005 +[Window][Set visualization plane] +Pos=418,11 +Size=347,56 + diff --git a/build/bin/mainV5 b/build/bin/mainV5 index 535df86..54afa81 100755 Binary files a/build/bin/mainV5 and b/build/bin/mainV5 differ diff --git a/src/pieces/methods/sensore_class.cpp b/src/pieces/methods/sensore_class.cpp index ba1d8ed..e9b41a2 100644 --- a/src/pieces/methods/sensore_class.cpp +++ b/src/pieces/methods/sensore_class.cpp @@ -45,6 +45,8 @@ void Sensore::initCSV(std::vector> data){ void Sensore::update(sf::Clock cl){ //calcolo la posizione e velocità + if (*dataPos >= gData.size()) *dataPos = gData.size()-1; + calcRotWithG(*dataPos); diff --git a/src/sfml_util.cpp b/src/sfml_util.cpp index b5189e8..be9de71 100644 --- a/src/sfml_util.cpp +++ b/src/sfml_util.cpp @@ -209,9 +209,17 @@ void doGUI(State &gs) ImGui::SFML::Update(gs.window, elapsed); ImGui::ShowDemoWindow(); - ImGui::Begin("Set data position"); + + //Finestra gestione posizione nei dati + ImGuiWindowFlags sdp_flags = ImGuiWindowFlags_NoMove| + ImGuiWindowFlags_NoResize| + ImGuiWindowFlags_NoScrollbar| + ImGuiWindowFlags_NoCollapse| + ImGuiWindowFlags_NoTitleBar; + + ImGui::Begin("Set data position", 0,sdp_flags); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * 0.3); - ImGui::SliderScalar("Min", ImGuiDataType_U32 ,gs.intervalMinLimit,&zero,gs.intervalMajLimit); + ImGui::SliderScalar("Start", ImGuiDataType_U32 ,gs.intervalMinLimit,&zero,gs.intervalMajLimit); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * 0.5); if (ImGui::SliderScalar("Pos", ImGuiDataType_U32 ,gs.pos,gs.intervalMinLimit,gs.intervalMajLimit)){ @@ -219,19 +227,33 @@ void doGUI(State &gs) } ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * 0.8); - ImGui::SliderScalar("Max", ImGuiDataType_U32 ,gs.intervalMajLimit,gs.intervalMinLimit,&gs.maxEntries); - + ImGui::SliderScalar("End", ImGuiDataType_U32 ,gs.intervalMajLimit,gs.intervalMinLimit,&gs.maxEntries); bool red = false; if (!gs.play){ ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(1,0,0,1)); red = true; } + ImGui::SameLine(); if (ImGui::ArrowButton("Play", ImGuiDir_Right)){ gs.play = !gs.play; } if (red) ImGui::PopStyleColor(); ImGui::End(); + + //Finestra gestione piano visualizzazione + ImGui::Begin("Set visualization plane"); + const char* MyEnumNames[] = { "Basso", "Medio", "Alto" }; + int currentPlane = (int)gs.selectedPlane; + ImGui::SliderInt("Selected Plane", ¤tPlane,0,2,MyEnumNames[currentPlane]); + gs.selectedPlane = (ReferencePlane)currentPlane; + ImGui::End(); + + + sf::Vector2u wsize = gs.window.getSize(); + ImGui::SetWindowPos("Set data position",ImVec2(0,wsize.y - 50)); + ImGui::SetWindowSize("Set data position",ImVec2(wsize.x,50)); + ImGui::SFML::Render(gs.window); } diff --git a/src/testMain.cpp b/src/testMain.cpp index deb7634..796d80a 100755 --- a/src/testMain.cpp +++ b/src/testMain.cpp @@ -91,7 +91,7 @@ int main() { { curTime += mainClock.restart().asMilliseconds(); if (curTime > T){ - if (gs.play && pos < maj) pos += curTime / T; + if (gs.play && pos+curTime/T < maj) pos += curTime / T; curTime = 0; }