From e4861134d15bd924fe4383eda08a621ce221a4d9 Mon Sep 17 00:00:00 2001 From: James Alliban Date: Fri, 10 Jan 2014 03:31:45 +0000 Subject: [PATCH] Publisher text added rendered - Colour key added to text boxes - the position and thickness is adjustable in GUI --- of/Active Tripod/bin/Active_Tripod.lib | Bin 78700 -> 78700 bytes .../bin/data/GUI/HUD TEXTguiPagesettings.xml | 28 ++++++- .../data/GUI/SIMULATIONguiPagesettings.xml | 2 +- of/Active Tripod/src/gui/GUI.cpp | 29 ++++---- of/Active Tripod/src/gui/GUI.h | 3 +- of/Active Tripod/src/testApp.cpp | 2 +- of/Active Tripod/src/visual/Scene.cpp | 70 +++++++++++++++--- of/Active Tripod/src/visual/Scene.h | 12 +++ .../src/visual/graph/AbstractGraph.h | 3 + of/Active Tripod/src/visual/graph/BarGraph.h | 2 - of/Active Tripod/src/visual/graph/BodyGraph.h | 3 - 11 files changed, 115 insertions(+), 39 deletions(-) diff --git a/of/Active Tripod/bin/Active_Tripod.lib b/of/Active Tripod/bin/Active_Tripod.lib index e5bbfb7a2b608ab2223ca97f64460b98e7079a9f..920dcf12ae0fc699fb37f4aeaea5aaec184b4a23 100644 GIT binary patch delta 7034 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 e^`+JS|Hcw66oT2;dF1=mg11S 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 diff --git a/of/Active Tripod/bin/data/GUI/HUD TEXTguiPagesettings.xml b/of/Active Tripod/bin/data/GUI/HUD TEXTguiPagesettings.xml index 977081f..6b837a7 100644 --- a/of/Active Tripod/bin/data/GUI/HUD TEXTguiPagesettings.xml +++ b/of/Active Tripod/bin/data/GUI/HUD TEXTguiPagesettings.xml @@ -1,22 +1,22 @@ 4 X Margin - 90.460525513 + 64.144737244 4 Y Margin - 87.171058655 + 80.592102051 4 Y Margin Bottom Offset - 92.763160706 + 54.276313782 4 Line Length - 380.098693848 + 360.855255127 4 @@ -28,6 +28,11 @@ Text Size 21.842105865 + + 4 + Value average amount + 3.006578922 + 4 Red @@ -48,3 +53,18 @@ Alpha 255.000000000 + + 4 + Top Colour Box X Offset + -33.552642822 + + + 4 + Bottom Colour Box X Offset + 73.026336670 + + + 4 + Colour Box Thickness + 6.319078922 + diff --git a/of/Active Tripod/bin/data/GUI/SIMULATIONguiPagesettings.xml b/of/Active Tripod/bin/data/GUI/SIMULATIONguiPagesettings.xml index 65a6ee7..1908c35 100644 --- a/of/Active Tripod/bin/data/GUI/SIMULATIONguiPagesettings.xml +++ b/of/Active Tripod/bin/data/GUI/SIMULATIONguiPagesettings.xml @@ -1,7 +1,7 @@ 2 Toggle Data Simulation - 1 + 0 4 diff --git a/of/Active Tripod/src/gui/GUI.cpp b/of/Active Tripod/src/gui/GUI.cpp index 36e66f0..e86248d 100644 --- a/of/Active Tripod/src/gui/GUI.cpp +++ b/of/Active Tripod/src/gui/GUI.cpp @@ -62,6 +62,7 @@ void GUI::addGraphGlobalGUI() graphNames.push_back("Line fade graph"); gui->addRadio("Graph Selection", graphNames, OFX_UI_ORIENTATION_VERTICAL, dim*2, dim*2); + gui->addSpacer(length, 1); gui->addRangeSlider("Graph X begin/end (percent)", 0, 1, &AbstractGraph::minGraphPercent, &AbstractGraph::maxGraphPercent, length, dim); @@ -80,12 +81,13 @@ void GUI::addBarGraphDesignGUI() gui->addSlider("Graph Item X Gap", 5, 50, &app->scene.barGraph.graphItemXGap, length, dim); gui->addSlider("BarWidth", 2, 50, &app->scene.barGraph.barWidth, length, dim); gui->addSlider("Graph Height Max", 100, 1000, &app->scene.barGraph.graphHeightMax, length, dim); - gui->addSpacer(length, 1); + gui->addSpacer(length, 1); gui->addSlider("Data0 red", 0, 255, &app->scene.barGraph.col0[0], length, dim); gui->addSlider("Data0 green", 0, 255, &app->scene.barGraph.col0[1], length, dim); gui->addSlider("Data0 blue", 0, 255, &app->scene.barGraph.col0[2], length, dim); gui->addSlider("Data0 alpha", 0, 255, &app->scene.barGraph.col0[3], length, dim); + gui->addSpacer(length, 1); gui->addSlider("Data1 red", 0, 255, &app->scene.barGraph.col1[0], length, dim); gui->addSlider("Data1 green", 0, 255, &app->scene.barGraph.col1[1], length, dim); @@ -104,12 +106,13 @@ void GUI::addBodyGraphDesignGUI() gui->addSlider("Graph Item X Gap", 5, 50, &app->scene.bodyGraph.graphItemXGap, length, dim); gui->addSlider("Line width", 1, 50, &app->scene.bodyGraph.lineWidth, length, dim); gui->addSlider("Graph Height Max", 100, 1000, &app->scene.bodyGraph.graphHeightMax, length, dim); - gui->addSpacer(length, 1); + gui->addSpacer(length, 1); gui->addSlider("Data0 red", 0, 255, &app->scene.bodyGraph.col0[0], length, dim); gui->addSlider("Data0 green", 0, 255, &app->scene.bodyGraph.col0[1], length, dim); gui->addSlider("Data0 blue", 0, 255, &app->scene.bodyGraph.col0[2], length, dim); gui->addSlider("Data0 alpha", 0, 255, &app->scene.bodyGraph.col0[3], length, dim); + gui->addSpacer(length, 1); gui->addSlider("Data1 red", 0, 255, &app->scene.bodyGraph.col1[0], length, dim); gui->addSlider("Data1 green", 0, 255, &app->scene.bodyGraph.col1[1], length, dim); @@ -150,6 +153,7 @@ void GUI::addBackgroundGUI() gui->addSlider("Green", 0, 2, &app->scene.green, length, dim); gui->addSlider("Blue", 0, 2, &app->scene.blue, length, dim); gui->addSlider("Alpha", 0, 2, &app->scene.alpha, length, dim); + gui->addSpacer(length, 1); gui->addLabel("HUD BACKGROUND SETTINGS"); gui->addSlider("Red .", 0, 255, &app->scene.hudColour[0], length, dim); @@ -176,11 +180,19 @@ void GUI::addHUDTextGUI() gui->addSlider("Line Length", 50, 500, &app->scene.lineLength, length, dim); gui->addSlider("Line Spacing", 0, 10, &app->scene.lineSpacing, length, dim); gui->addSlider("Text Size", 10, 100, &app->scene.textSize, length, dim); + gui->addSlider("Value average amount", 2, 20, &app->scene.averageAmount, length, dim); + gui->addSpacer(length, 1); gui->addSlider("Red", 0, 255, &app->scene.textColour[0], length, dim); gui->addSlider("Green", 0, 255, &app->scene.textColour[1], length, dim); gui->addSlider("Blue", 0, 255, &app->scene.textColour[2], length, dim); gui->addSlider("Alpha", 0, 255, &app->scene.textColour[3], length, dim); + + gui->addSpacer(length, 1); + gui->addLabel("COLOUR KEY"); + gui->addSlider("Top Colour Box X Offset", -300, 300, &app->scene.topColourBoxXOffset, length, dim); + gui->addSlider("Bottom Colour Box X Offset", -300, 300, &app->scene.bottomColourBoxXOffset, length, dim); + gui->addSlider("Colour Box Thickness", 1, 50, &app->scene.colourBoxThickness, length, dim); ofAddListener(gui->newGUIEvent, this, &GUI::variousGUIEvent); finaliseCanvas(gui, true); @@ -208,19 +220,6 @@ void GUI::addVariousGUI() - -void GUI::update() -{ - -} - - -void GUI::draw() -{ -} - - - void GUI::graphGlobalGUIEvent(ofxUIEventArgs &e) { string name = e.widget->getName(); diff --git a/of/Active Tripod/src/gui/GUI.h b/of/Active Tripod/src/gui/GUI.h index aef1cb4..cacd433 100644 --- a/of/Active Tripod/src/gui/GUI.h +++ b/of/Active Tripod/src/gui/GUI.h @@ -31,8 +31,7 @@ public: void graphGlobalGUIEvent(ofxUIEventArgs &e); void variousGUIEvent(ofxUIEventArgs &e); - virtual void update(); - virtual void draw(); + testApp* app; vector publishers; diff --git a/of/Active Tripod/src/testApp.cpp b/of/Active Tripod/src/testApp.cpp index f15f4a8..1fd0b2e 100644 --- a/of/Active Tripod/src/testApp.cpp +++ b/of/Active Tripod/src/testApp.cpp @@ -2,7 +2,7 @@ // TODO // ==== -// - Add video camera feed +// - Add spacebrew text to text boxes // - Add colour boxes to text // - Make system to slow down data - The screen should show 15-20 minutes worth of data // - Make 3rd graph - separate fade diff --git a/of/Active Tripod/src/visual/Scene.cpp b/of/Active Tripod/src/visual/Scene.cpp index ed637b0..a816f0d 100644 --- a/of/Active Tripod/src/visual/Scene.cpp +++ b/of/Active Tripod/src/visual/Scene.cpp @@ -19,9 +19,6 @@ void Scene::setup() barGraph.setup(); bodyGraph.setup(); - //activeGraph = &barGraph; - - //text.loadFont("fonts/Roboto-Regular.ttf", 8); text.loadFont("fonts/Roboto-Light.ttf", 8); } @@ -35,7 +32,6 @@ void Scene::update() text.setLineLength(lineLength); text.setLineSpacing(lineSpacing); text.setSize(textSize); - } @@ -45,6 +41,7 @@ void Scene::draw() activeGraph->draw(); drawHUDBG(); drawHUDCopy(); + drawHUDColourBars(); } void Scene::drawVideo() @@ -96,14 +93,36 @@ void Scene::drawHUDBG() void Scene::drawHUDCopy() { - string tlStr = "TOP LEFT\nThis is some text\nthis is some more text\na little more"; drawTextBox(tlStr, "TOP LEFT"); - string trStr = "TOP RIGHT\nThis is some text\nthis is some more text\na little more\none more line"; drawTextBox(trStr, "TOP RIGHT"); - string blStr = "BOTTOM LEFT\nThis is some text\nthis is some more text"; - drawTextBox(blStr, "BOTTOM LEFT"); - string brStr = "BOTTOM RIGHT\nThis is some text\nthis is some more text\na little more"; - drawTextBox(brStr, "BOTTOM RIGHT"); + + vector *p0Data = &activeGraph->publisher0Data; + vector *p1Data = &activeGraph->publisher1Data; + + if (p0Data->size() > (int)averageAmount - 1) + { + float average0 = 0; + for (int i = 0; i < (int)averageAmount; i++) + average0 += p0Data->at(p0Data->size() - i - 1).value; + average0 /= (int)averageAmount; + + // (p0Data->back() + p0Data->at(p0Data->size() - 2) + p0Data->at(p0Data->size() - 2)) + blStr = ofToString(p0Data->back().value - p0Data->at(p0Data->size() - 2).value) + "\n" + + ofToString(p0Data->back().value) + "\n" + + "Running average: " + ofToString(average0); + drawTextBox(blStr, "BOTTOM LEFT"); + + + float average1 = 0; + for (int i = 0; i < (int)averageAmount; i++) + average1 += p1Data->at(p1Data->size() - i - 1).value; + average1 /= (int)averageAmount; + + brStr = ofToString(p1Data->back().value - p1Data->at(p1Data->size() - 2).value) + "m/s\n" + + ofToString(p1Data->back().value) + "\n" + + "Running average: " + ofToString(average1); + drawTextBox(brStr, "BOTTOM RIGHT"); + } } @@ -114,8 +133,8 @@ void Scene::drawTextBox(string copy, string align) ofPushMatrix(); if (align == "TOP LEFT") { - ofTranslate(xMargin, yMargin); text.setAlignment(FTGL_ALIGN_LEFT); + ofTranslate(xMargin, yMargin); } else if (align == "TOP RIGHT") { @@ -134,16 +153,45 @@ void Scene::drawTextBox(string copy, string align) } text.drawString(copy, 0, 0); + + //printf("%s text.getXHeight() = %f\n", align.c_str(), text.getStringBoundingBox(copy, xMargin, yMargin)); ofPopMatrix(); ofPopStyle(); } + +void Scene::drawHUDColourBars() +{ + ofPushStyle(); + + ofSetColor(activeGraph->col0[0], activeGraph->col0[1], activeGraph->col0[2], activeGraph->col0[3]); + ofRect(xMargin, yMargin + topColourBoxXOffset, lineLength, colourBoxThickness); + + ofSetColor(activeGraph->col0[0], activeGraph->col0[1], activeGraph->col0[2], activeGraph->col0[3]); + ofRect(xMargin, ofGetHeight() - yMargin - yMarginBottomOffset + bottomColourBoxXOffset, lineLength, colourBoxThickness); + + ofSetColor(activeGraph->col1[0], activeGraph->col1[1], activeGraph->col1[2], activeGraph->col1[3]); + ofRect(ofGetWidth() - xMargin - lineLength, yMargin + topColourBoxXOffset, lineLength, colourBoxThickness); + + ofSetColor(activeGraph->col1[0], activeGraph->col1[1], activeGraph->col1[2], activeGraph->col1[3]); + ofRect(ofGetWidth() - xMargin - lineLength, ofGetHeight() - yMargin - yMarginBottomOffset + bottomColourBoxXOffset, lineLength, colourBoxThickness); + + ofPopStyle(); +} + + + void Scene::addNewData(vector newData) { barGraph.addNewData(newData); bodyGraph.addNewData(newData); + + tlStr = newData[0].info + "\n" + ofToString(newData[0].value); + trStr = newData[1].info + "\n" + ofToString(newData[1].value); + + millisAtLastData = ofGetElapsedTimeMillis(); } diff --git a/of/Active Tripod/src/visual/Scene.h b/of/Active Tripod/src/visual/Scene.h index b1cc87e..570c09f 100644 --- a/of/Active Tripod/src/visual/Scene.h +++ b/of/Active Tripod/src/visual/Scene.h @@ -25,6 +25,7 @@ public: void drawVideo(); void drawHUDBG(); void drawHUDCopy(); + void drawHUDColourBars(); void drawTextBox(string copy, string align); void addNewData(vector newData); void keyPressed(int key); @@ -65,4 +66,15 @@ public: float lineSpacing; float textSize; float textColour[4]; + string tlStr; + string trStr; + string blStr; + string brStr; + long millisAtLastData; + float averageAmount; + + // text colour boxes + float topColourBoxXOffset; + float bottomColourBoxXOffset; + float colourBoxThickness; }; \ No newline at end of file diff --git a/of/Active Tripod/src/visual/graph/AbstractGraph.h b/of/Active Tripod/src/visual/graph/AbstractGraph.h index 386ff36..6ad1b01 100644 --- a/of/Active Tripod/src/visual/graph/AbstractGraph.h +++ b/of/Active Tripod/src/visual/graph/AbstractGraph.h @@ -30,4 +30,7 @@ public: float graphHeightMax; + float col0[4]; + float col1[4]; + }; \ No newline at end of file diff --git a/of/Active Tripod/src/visual/graph/BarGraph.h b/of/Active Tripod/src/visual/graph/BarGraph.h index 99d9a15..05d0bef 100644 --- a/of/Active Tripod/src/visual/graph/BarGraph.h +++ b/of/Active Tripod/src/visual/graph/BarGraph.h @@ -13,8 +13,6 @@ public: float barWidth; - float col0[4]; - float col1[4]; }; \ No newline at end of file diff --git a/of/Active Tripod/src/visual/graph/BodyGraph.h b/of/Active Tripod/src/visual/graph/BodyGraph.h index 2743edd..30c0732 100644 --- a/of/Active Tripod/src/visual/graph/BodyGraph.h +++ b/of/Active Tripod/src/visual/graph/BodyGraph.h @@ -14,7 +14,4 @@ public: float barWidth; float lineWidth; - - float col0[4]; - float col1[4]; }; \ No newline at end of file