50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
#include <iostream>
|
|
|
|
#include <pangolin/pangolin.h>
|
|
|
|
int main(/*int argc, char* argv[]*/)
|
|
{
|
|
// Create OpenGL window in single line
|
|
pangolin::CreateWindowAndBind("Main",640,480);
|
|
|
|
// Data logger object
|
|
pangolin::DataLog log;
|
|
|
|
// Optionally add named labels
|
|
std::vector<std::string> labels;
|
|
labels.push_back(std::string("sin(t)"));
|
|
labels.push_back(std::string("cos(t)"));
|
|
labels.push_back(std::string("sin(t)+cos(t)"));
|
|
log.SetLabels(labels);
|
|
|
|
const float tinc = 0.01f;
|
|
|
|
// OpenGL 'view' of data. We might have many views of the same data.
|
|
pangolin::Plotter plotter(&log,0.0f,4.0f*(float)M_PI/tinc,-2.0f,2.0f,(float)M_PI/(4.0f*tinc),0.5f);
|
|
plotter.SetBounds(0.0, 1.0, 0.0, 1.0);
|
|
plotter.Track("$i");
|
|
|
|
// Add some sample annotations to the plot
|
|
plotter.AddMarker(pangolin::Marker::Vertical, -1000, pangolin::Marker::LessThan, pangolin::Colour::Blue().WithAlpha(0.2f) );
|
|
plotter.AddMarker(pangolin::Marker::Horizontal, 100, pangolin::Marker::GreaterThan, pangolin::Colour::Red().WithAlpha(0.2f) );
|
|
plotter.AddMarker(pangolin::Marker::Horizontal, 10, pangolin::Marker::Equal, pangolin::Colour::Green().WithAlpha(0.2f) );
|
|
|
|
pangolin::DisplayBase().AddDisplay(plotter);
|
|
|
|
float t = 0;
|
|
|
|
// Default hooks for exiting (Esc) and fullscreen (tab).
|
|
while( !pangolin::ShouldQuit() )
|
|
{
|
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
|
|
log.Log(sin(t),cos(t),sin(t)+cos(t));
|
|
t += tinc;
|
|
|
|
// Render graph, Swap frames and Process Events
|
|
pangolin::FinishFrame();
|
|
}
|
|
|
|
return 0;
|
|
}
|