35 void (*)(
int menuID,
float cursor_x,
float cursor_y,
void* userParam);
51 template <
typename VECTOR1,
typename VECTOR2>
53 const VECTOR1&
x,
const VECTOR2&
y,
const std::string& lineFormat,
57 const auto N1 = size_t(
x.size());
58 for (
size_t i = 0; i < N1; i++) x1[i] =
x[i];
59 const auto N2 = size_t(
y.size());
60 for (
size_t i = 0; i < N2; i++) y1[i] =
y[i];
63 template <
typename VECTOR1>
68 const auto N = size_t(
y.size());
70 for (
size_t i = 0; i < N; i++)
83 unsigned int initialWidth = 350,
unsigned int initialHeight = 300);
87 const std::string& windowCaption,
unsigned int initialWindowWidth = 400,
88 unsigned int initialWindowHeight = 300);
150 template <
typename VEC1,
typename VEC2,
typename =
typename VEC2::Scalar>
152 const VEC1&
x,
const VEC2&
y,
159 template <
typename T>
161 const std::vector<T>&
x,
const std::vector<T>&
y,
169 template <
typename VEC>
179 float x_min,
float x_max,
float y_min,
float y_max,
180 bool aspectRatioFix =
false);
187 void axis_fit(
bool aspectRatioFix =
false);
208 template <
typename T>
210 const T mean_x,
const T mean_y,
214 bool showName =
false);
217 template <
typename T>
219 const T mean_x,
const T mean_y,
223 bool showName =
false);
235 const float& y_bottom,
const float& x_width,
const float& y_height,
~CDisplayWindowPlots() override
Destructor.
A compile-time fixed-size numeric matrix container.
Template for column vectors of dynamic size, compatible with Eigen.
Create a GUI window and display plots with MATLAB-like interfaces and commands.
void enableMousePanZoom(bool enabled)
Enable/disable the feature of pan/zoom with the mouse (default=enabled)
The wx dialog for gui::CDisplayWindowPlots.
void setPos(int x, int y) override
Changes the position of the window on the screen.
bool m_holdon
Whether hold_on is enabled.
void axis(float x_min, float x_max, float y_min, float y_max, bool aspectRatioFix=false)
Set the view area according to the passed coordinated.
void internal_plot(mrpt::math::CVectorFloat &x, mrpt::math::CVectorFloat &y, const std::string &lineFormat, const std::string &plotName)
void hold_off()
Disables keeping all the graphs (this is the default behavior).
void internal_plot_interface(const VECTOR1 &y, const std::string &lineFormat, const std::string &plotName)
void axis_equal(bool enable=true)
Enable/disable the fixed X/Y aspect ratio fix feature (default=disabled).
CDisplayWindowPlots(const std::string &windowCaption=std::string(), unsigned int initialWidth=350, unsigned int initialHeight=300)
Constructor.
uint32_t m_holdon_cnt
Counter for hold_on.
bool getLastMousePosition(int &x, int &y) const override
Gets the last x,y pixel coordinates of the mouse.
void plot(const std::vector< T > &x, const std::vector< T > &y, const std::string &lineFormat=std::string("b-"), const std::string &plotName=std::string("plotXY"))
void(*)(int menuID, float cursor_x, float cursor_y, void *userParam) TCallbackMenu
Type for the callback function used in setMenuCallback.
void addPopupMenuEntry(const std::string &label, int menuID)
Disables keeping all the graphs (this is the default behavior).
GLsizei const GLchar ** string
void internal_plot_interface(const VECTOR1 &x, const VECTOR2 &y, const std::string &lineFormat, const std::string &plotName)
void clear()
Remove all plot objects in the display.
void axis_fit(bool aspectRatioFix=false)
Fix automatically the view area according to existing graphs.
void hold_on()
Enables keeping all the graphs, instead of overwritting them.
void clf()
Remove all plot objects in the display (clear and clf do exactly the same).
void image(const mrpt::img::CImage &img, const float &x_left, const float &y_bottom, const float &x_width, const float &y_height, const std::string &plotName=std::string("image"))
Adds a bitmap image layer.
void setWindowTitle(const std::string &str) override
Changes the window title text.
static CDisplayWindowPlots::Ptr Create(const std::string &windowCaption, unsigned int initialWindowWidth=400, unsigned int initialWindowHeight=300)
Class factory returning a smart pointer.
void setCursorCross(bool cursorIsCross) override
Set cursor style to default (cursorIsCross=false) or to a cross (cursorIsCross=true) ...
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
Classes for creating GUI windows for 2D and 3D visualization.
void plotEllipse(const T mean_x, const T mean_y, const mrpt::math::CMatrixDynamic< T > &cov22, const float quantiles, const std::string &lineFormat=std::string("b-"), const std::string &plotName=std::string("plotEllipse"), bool showName=false)
Plots a 2D ellipse given its mean, covariance matrix, and Each call to this function creates a new pl...
void plot(const VEC1 &x, const VEC2 &y, const std::string &lineFormat=std::string("b-"), const std::string &plotName=std::string("plotXY"))
Adds a new layer with a 2D plot based on two vectors of X and Y points, using a MATLAB-like syntax...
GLenum GLsizei GLsizei height
unsigned __int32 uint32_t
This template class provides the basic functionality for a general 2D any-size, resizable container o...
bool m_holdon_just_disabled
The base class for GUI window classes.
void setMenuCallback(TCallbackMenu userFunction, void *userParam=nullptr)
Must be called to have a callback when the user selects one of the user-defined entries in the popup ...
void resize(unsigned int width, unsigned int height) override
Resizes the window, stretching the image to fit into the display area.
void plot(const VEC &y, const std::string &lineFormat=std::string("b-"), const std::string &plotName=std::string("plotXY"))
A class for storing images as grayscale or RGB bitmaps.