libcaca documentation

# libcucul primitives drawing

## Functions
int | cucul_draw_line (cucul_canvas_t *, int, int, int, int, unsigned long int)
| Draw a line on the canvas using the given character.
int | cucul_draw_polyline (cucul_canvas_t *, int const x[], int const y[], int, unsigned long int)
| Draw a polyline.
int | cucul_draw_thin_line (cucul_canvas_t *, int, int, int, int)
| Draw a thin line on the canvas, using ASCII art.
int | cucul_draw_thin_polyline (cucul_canvas_t *, int const x[], int const y[], int)
| Draw an ASCII art thin polyline.
int | cucul_draw_circle (cucul_canvas_t *, int, int, int, unsigned long int)
| Draw a circle on the canvas using the given character.
int | cucul_draw_ellipse (cucul_canvas_t *, int, int, int, int, unsigned long int)
| Draw an ellipse on the canvas using the given character.
int | cucul_draw_thin_ellipse (cucul_canvas_t *, int, int, int, int)
| Draw a thin ellipse on the canvas.
int | cucul_fill_ellipse (cucul_canvas_t *, int, int, int, int, unsigned long int)
| Fill an ellipse on the canvas using the given character.
int | cucul_draw_box (cucul_canvas_t *, int, int, int, int, unsigned long int)
| Draw a box on the canvas using the given character.
int | cucul_draw_thin_box (cucul_canvas_t *, int, int, int, int)
| Draw a thin box on the canvas.
int | cucul_draw_cp437_box (cucul_canvas_t *, int, int, int, int)
| Draw a box on the canvas using CP437 characters.
int | cucul_fill_box (cucul_canvas_t *, int, int, int, int, unsigned long int)
| Fill a box on the canvas using the given character.
int | cucul_draw_triangle (cucul_canvas_t *, int, int, int, int, int, int, unsigned long int)
| Draw a triangle on the canvas using the given character.
int | cucul_draw_thin_triangle (cucul_canvas_t *, int, int, int, int, int, int)
| Draw a thin triangle on the canvas.
int | cucul_fill_triangle (cucul_canvas_t *, int, int, int, int, int, int, unsigned long int)
| Fill a triangle on the canvas using the given character.

## Detailed Description

These functions provide routines for primitive drawing, such as lines, boxes, triangles and ellipses.

## Function Documentation

int cucul_draw_line | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the first point.
  | y1 | Y coordinate of the first point.
  | x2 | X coordinate of the second point.
  | y2 | Y coordinate of the second point.
  | ch | UTF-32 character to be used to draw the line.

Returns:
  This function always returns 0.

int cucul_draw_polyline | ( | cucul_canvas_t * | cv,
|  | int const | x[],
|  | int const | y[],
|  | int | n,
|  | unsigned long int | ch |
| ) |  |  |

Draw a plyline on the canvas using the given character and coordinate arrays. The first and last points are not connected, hence in order to draw a polygon you need to specify the starting point at the end of the list as well.

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x | Array of X coordinates. Must have `n` + 1 elements.
  | y | Array of Y coordinates. Must have `n` + 1 elements.
  | n | Number of lines to draw.
  | ch | UTF-32 character to be used to draw the lines.

Returns:
  This function always returns 0.

int cucul_draw_thin_line | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2 |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the first point.
  | y1 | Y coordinate of the first point.
  | x2 | X coordinate of the second point.
  | y2 | Y coordinate of the second point.

Returns:
  This function always returns 0.

int cucul_draw_thin_polyline | ( | cucul_canvas_t * | cv,
|  | int const | x[],
|  | int const | y[],
|  | int | n |
| ) |  |  |

Draw a thin polyline on the canvas using the given coordinate arrays and with ASCII art. The first and last points are not connected, so in order to draw a polygon you need to specify the starting point at the end of the list as well.

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x | Array of X coordinates. Must have `n` + 1 elements.
  | y | Array of Y coordinates. Must have `n` + 1 elements.
  | n | Number of lines to draw.

Returns:
  This function always returns 0.

int cucul_draw_circle | ( | cucul_canvas_t * | cv,
|  | int | x,
|  | int | y,
|  | int | r,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x | Center X coordinate.
  | y | Center Y coordinate.
  | r | Circle radius.
  | ch | UTF-32 character to be used to draw the circle outline.

Returns:
  This function always returns 0.

int cucul_draw_ellipse | ( | cucul_canvas_t * | cv,
|  | int | xo,
|  | int | yo,
|  | int | a,
|  | int | b,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | xo | Center X coordinate.
  | yo | Center Y coordinate.
  | a | Ellipse X radius.
  | b | Ellipse Y radius.
  | ch | UTF-32 character to be used to draw the ellipse outline.

Returns:
  This function always returns 0.

int cucul_draw_thin_ellipse | ( | cucul_canvas_t * | cv,
|  | int | xo,
|  | int | yo,
|  | int | a,
|  | int | b |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | xo | Center X coordinate.
  | yo | Center Y coordinate.
  | a | Ellipse X radius.
  | b | Ellipse Y radius.

Returns:
  This function always returns 0.

int cucul_fill_ellipse | ( | cucul_canvas_t * | cv,
|  | int | xo,
|  | int | yo,
|  | int | a,
|  | int | b,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | xo | Center X coordinate.
  | yo | Center Y coordinate.
  | a | Ellipse X radius.
  | b | Ellipse Y radius.
  | ch | UTF-32 character to be used to fill the ellipse.

Returns:
  This function always returns 0.

int cucul_draw_box | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the upper-left corner of the box.
  | y1 | Y coordinate of the upper-left corner of the box.
  | x2 | X coordinate of the lower-right corner of the box.
  | y2 | Y coordinate of the lower-right corner of the box.
  | ch | UTF-32 character to be used to draw the box.

Returns:
  This function always returns 0.

int cucul_draw_thin_box | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2 |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the upper-left corner of the box.
  | y1 | Y coordinate of the upper-left corner of the box.
  | x2 | X coordinate of the lower-right corner of the box.
  | y2 | Y coordinate of the lower-right corner of the box.

Returns:
  This function always returns 0.

int cucul_draw_cp437_box | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2 |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the upper-left corner of the box.
  | y1 | Y coordinate of the upper-left corner of the box.
  | x2 | X coordinate of the lower-right corner of the box.
  | y2 | Y coordinate of the lower-right corner of the box.

Returns:
  This function always returns 0.

int cucul_fill_box | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the upper-left corner of the box.
  | y1 | Y coordinate of the upper-left corner of the box.
  | x2 | X coordinate of the lower-right corner of the box.
  | y2 | Y coordinate of the lower-right corner of the box.
  | ch | UTF-32 character to be used to draw the box.

Returns:
  This function always returns 0.

int cucul_draw_triangle | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | x3,
|  | int | y3,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the first point.
  | y1 | Y coordinate of the first point.
  | x2 | X coordinate of the second point.
  | y2 | Y coordinate of the second point.
  | x3 | X coordinate of the third point.
  | y3 | Y coordinate of the third point.
  | ch | UTF-32 character to be used to draw the triangle outline.

Returns:
  This function always returns 0.

int cucul_draw_thin_triangle | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | x3,
|  | int | y3 |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the first point.
  | y1 | Y coordinate of the first point.
  | x2 | X coordinate of the second point.
  | y2 | Y coordinate of the second point.
  | x3 | X coordinate of the third point.
  | y3 | Y coordinate of the third point.

Returns:
  This function always returns 0.

int cucul_fill_triangle | ( | cucul_canvas_t * | cv,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | x3,
|  | int | y3,
|  | unsigned long int | ch |
| ) |  |  |

This function never fails.

Parameters:

  | cv | The handle to the libcucul canvas.
  | x1 | X coordinate of the first point.
  | y1 | Y coordinate of the first point.
  | x2 | X coordinate of the second point.
  | y2 | Y coordinate of the second point.
  | x3 | X coordinate of the third point.
  | y3 | Y coordinate of the third point.
  | ch | UTF-32 character to be used to fill the triangle.

Returns:
  This function always returns 0.