A fuzzy logic C++ library
|
glue code between slifis gapi interface (header file gapi_glue.hpp), which defines some datatypes, and the back-end graphical and windowing library. More...
#include <cassert>
#include <cmath>
#include "gapi_glue.hpp"
#include "error_handler.hpp"
#include "debug.h"
#include <cstring>
Classes | |
struct | slifis_plot::FCOLOR |
private 'float' color-type ([0.0-1.0]), needed for Cairo drawing functions More... | |
Namespaces | |
namespace | slifis_plot |
This namespace includes both the set of interface functions to the backend graphical library and the plot classes, see Slifis Graphical API for plotting. | |
Defines | |
#define | SLIFIS_FONTSIZE 0.4 |
Font size scale (used only in Opencv backend) | |
#define | GAPI_TRACE if(0) std::cerr |
Private macro for logging. | |
#define | GAPI_LOG if(0) std::cerr |
#define | GAPI_ERROR std::cerr << |
Functions | |
CAIRO_GLOBALS & | slifis_plot::cairo_globals () |
Static allocation of cairo-related static stuff, using idiom "Construct On First Use". | |
static GAPI_gtk_window * | slifis_plot::FindWindowByName (const std::string &name) |
Auxiliary private function. | |
static void | slifis_plot::RemoveWindowByName (const std::string &name) |
Auxiliary private function. | |
static gboolean | slifis_plot::cb_OnKeyPress (GtkWidget *, GdkEventKey *event, gpointer) |
Callback fo GTK window. | |
static gboolean | slifis_plot::generic_mouse_callback (GtkWidget *, GdkEvent *event, gpointer user_data) |
A generic mouse callback (GTK+ flavor) whose job is to call the user callback. | |
static void | slifis_plot::Paint (GtkWidget *widget, GAPI_IMAGE *im) |
Paints the image in the gtk+ window. | |
static gboolean | slifis_plot::cb_expose_event (GtkWidget *widget, GdkEventExpose *, gpointer image) |
callback for GTK+ backend, actually draws the image in the GTK+ window | |
static FCOLOR | slifis_plot::ConvertColor (GAPI_COLOR &col) |
Static utility for converting 'byte' color-type ([0-255]) to 'float' color-type ([0.0-1.0]), needed for Cairo API. | |
Data-types handling | |
GAPI_POINT | slifis_plot::GAPI_BuildPoint (int x0, int y0) |
C-style constructor for point. | |
GAPI_COLOR | slifis_plot::GAPI_BuildColor (char r, char g, char b) |
C-style constructor for color. | |
GAPI_IMAGE * | slifis_plot::GAPI_CreateImage (int w, int h) |
void | slifis_plot::GAPI_ReleaseImage (GAPI_IMAGE **p_im) |
Windowing and user-interface related functions | |
void | slifis_plot::GAPI_CreateWindow (std::string name, int x0, int y0) |
Open a window. | |
void | slifis_plot::GAPI_DestroyWindow (std::string wnd_name) |
Destroy the window wnd_name . | |
void | slifis_plot::GAPI_MoveWindow (std::string wnd_name, int x, int y) |
Moves the window wnd_name . | |
bool | slifis_plot::GAPI_WindowIsOpen (std::string name) |
Returns true if window is open (GTK2 version) | |
void | slifis_plot::GAPI_AssignCallback (std::string wnd_name, void(*userMouseCB)(int event, int x, int y, int flags, void *param), void *param) |
Assigns the user mouse callback userMouseCB to window wnd_name . | |
char | slifis_plot::GAPI_WaitKey () |
Blocking function, until a key is pressed. | |
void | slifis_plot::GAPI_ShowImage (std::string wnd_name, GAPI_IMAGE *im) |
Draw image on GTK window. | |
Misc. | |
void | slifis_plot::GAPI_Init (int argc, char **argv) |
Initialize the gtk windowing engine. Called each time a window is created. | |
int | slifis_plot::GAPI_GetImageW (GAPI_IMAGE *p_im) |
int | slifis_plot::GAPI_GetImageH (GAPI_IMAGE *p_im) |
void | slifis_plot::GAPI_GetTextSize (GAPI_IMAGE *im, const std::string &txt, GAPI_FONT *, int &t_w, int &t_h) |
Returns size of text txt (Cairo version) | |
GAPI_FONT * | slifis_plot::GAPI_InitFont () |
Initializes font for drawing text (Cairo version, does nothing) | |
bool | slifis_plot::GAPI_SaveImage (std::string filename, GAPI_IMAGE *im) |
Saves image to file, returns false on failure. | |
Drawing-related functions | |
void | slifis_plot::GAPI_DrawRectangle (GAPI_IMAGE *p_im, GAPI_POINT p1, GAPI_POINT p2, GAPI_COLOR col, bool is_filled) |
Draw rectangle (Cairo version) | |
void | slifis_plot::GAPI_DrawLine (GAPI_IMAGE *p_im, GAPI_POINT p1, GAPI_POINT p2, GAPI_COLOR col, int line_width, EN_LINE_TYPE) |
Draw line (Cairo version) | |
void | slifis_plot::GAPI_DrawCircle (GAPI_IMAGE *p_im, GAPI_POINT p, double rad, GAPI_COLOR col, int line_width) |
Draw circle (Cairo version) | |
void | slifis_plot::GAPI_FillImage (GAPI_IMAGE *im, GAPI_COLOR col) |
Fill image im with color col (Cairo version) | |
void | slifis_plot::GAPI_DrawText (GAPI_IMAGE *p_im, std::string txt, GAPI_POINT p, GAPI_FONT *, GAPI_COLOR col, EN_TEXT_ORIENTATION txt_or) |
Draws text on image (cairo version) |
glue code between slifis gapi interface (header file gapi_glue.hpp), which defines some datatypes, and the back-end graphical and windowing library.
The choice of library is done through preprocessor symbols, defined in makefile. At present, the available choices are:
#define SLIFIS_FONTSIZE 0.4 |
Font size scale (used only in Opencv backend)
#define GAPI_TRACE if(0) std::cerr |
Private macro for logging.
Referenced by slifis_plot::cb_expose_event(), slifis_plot::cb_OnKeyPress(), slifis_plot::GAPI_AssignCallback(), slifis_plot::GAPI_CreateImage(), slifis_plot::GAPI_CreateWindow(), slifis_plot::GAPI_DestroyWindow(), slifis_plot::GAPI_ReleaseImage(), slifis_plot::GAPI_ShowImage(), slifis_plot::generic_mouse_callback(), and slifis_plot::Paint().
#define GAPI_LOG if(0) std::cerr |
#define GAPI_ERROR std::cerr << |