Angka  0.0.1
A C library focusing on data manipulation and visualization
picture.h
Go to the documentation of this file.
1 
6 #ifndef __PICTURE_H
7 #define __PICTURE_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 #define VRGB 255
14 
15 typedef struct s_color {
16  double r;
17  double g;
18  double b;
19  double a;
20 } AgvColor;
21 
22 typedef struct s_coord {
23  double x;
24  double y;
25 } AgxCoord;
26 
27 typedef struct s_picture {
28  cairo_t *cr;
29  cairo_surface_t *surface;
30  double rptu;
33 } AgvPicture;
34 
35 typedef struct s_text {
37  char *text;
38  double fontSize;
40 } AgvText;
41 
42 typedef struct s_line {
44  double lineWidth;
46  int size;
47 } AgvLine;
48 
49 AgvPicture *agv_picture_new(int width, int height);
50 void agv_picture_delete(AgvPicture **pic);
51 int agv_picture_save(AgvPicture *pic, char *filename);
54 void agv_picture_normalize(AgvPicture *pic, double ratioPixelToUnit);
59 void agv_picture_unit_set_width(AgvPicture *pic, double width);
60 void agv_picture_unit_set_height(AgvPicture *pic, double height);
62 double agv_u2p(AgvPicture *pic, double in);
63 void agv_picture_set_origin(AgvPicture *pic, AgxCoord *origin);
65 
67 AgvText *agv_picture_text_new(char *text, double x, double y);
68 AgvText *agv_picture_text_coord_new(AgvPicture *pic, char *text, AgxCoord *posText);
69 void agv_picture_text_set_font_size(AgvText *text, double fontSize);
70 void agv_picture_text_delete(AgvText **text);
71 
73 AgvLine *agv_picture_line_new(AgxCoord *pointArray, int size);
75 void agv_picture_line_set_line_width(AgvLine *line, double lineWidth);
76 void agv_picture_line_delete(AgvLine **line);
77 
79 
81 
83 
85 
86 
87 #ifdef __cplusplus
88 }
89 #endif
90 
91 #endif
void agv_picture_line_delete(AgvLine **line)
char * text
Definition: picture.h:37
struct s_text AgvText
void agv_picture_set_coord_origin(AgvPicture *pic, AgxCoord *origin)
double y
Definition: picture.h:24
void agv_picture_normalize(AgvPicture *pic, double ratioPixelToUnit)
void agv_picture_text_delete(AgvText **text)
color struct
Definition: picture.h:15
AgvColor clr
Definition: picture.h:36
Definition: picture.h:22
AgxCoord origin
Definition: picture.h:32
int size
Definition: visual.h:34
int agv_picture_save(AgvPicture *pic, char *filename)
cairo_t * cr
Definition: picture.h:28
void agv_picture_delete(AgvPicture **pic)
struct s_color AgvColor
double fontSize
Definition: picture.h:38
AgxCoord * p_r_loc
Definition: picture.h:45
void agv_picture_set_background(AgvPicture *pic, AgvColor *clr)
AgxCoord size
Definition: picture.h:31
void agv_picture_unit_set_width(AgvPicture *pic, double width)
void agv_picture_unit_max(AgvPicture *pic, AgxCoord *out)
void agv_picture_unit_set_height(AgvPicture *pic, double height)
double r
Definition: picture.h:16
struct s_line AgvLine
AgvText * agv_picture_text_coord_new(AgvPicture *pic, char *text, AgxCoord *posText)
void agv_picture_coord_to_unit(AgvPicture *pic, AgxCoord *in, AgxCoord *out)
struct s_coord AgxCoord
cairo_surface_t * surface
Definition: picture.h:29
AgvPicture * agv_picture_new(int width, int height)
void agv_picture_line_set_line_width(AgvLine *line, double lineWidth)
void agv_picture_unit_to_pixel(AgvPicture *pic, AgxCoord *in, AgxCoord *out)
double agv_u2p(AgvPicture *pic, double in)
void agv_picture_text_set_font_size(AgvText *text, double fontSize)
int agv_picture_input_line(AgvPicture *pic, AgvLine *line)
int agv_picture_input_text(AgvPicture *pic, AgvText *text)
double a
Definition: picture.h:19
Definition: picture.h:35
int size
Definition: picture.h:46
AgvLine * agv_picture_line_coord_new(AgvPicture *pic, AgxCoord *pointArray, int size)
double b
Definition: picture.h:18
void agv_picture_coord_to_pixel(AgvPicture *pic, AgxCoord *in, AgxCoord *out)
double x
Definition: picture.h:23
Definition: picture.h:42
double g
Definition: picture.h:17
AgvLine * agv_picture_line_new(AgxCoord *pointArray, int size)
line
double lineWidth
Definition: picture.h:44
struct s_picture AgvPicture
void agv_picture_set_origin(AgvPicture *pic, AgxCoord *origin)
AgvColor clr
Definition: picture.h:43
Definition: picture.h:27
AgvText * agv_picture_text_new(char *text, double x, double y)
text
double rptu
Definition: picture.h:30
AgxCoord loc
Definition: picture.h:39