LIBPLOT3

## Name

libplot3 — graphics interface subroutines

## Synopsis

`void fsfuncpl_3box(` | fp, |
| x0, |
| y0, |
| z0, |
| x1, |
| y1, |
| z1`)`; |

`FILE *fp`;
`int x0`;
`int y0`;
`int z0`;
`int x1`;
`int y1`;
`int z1`;

`void fsfuncpl_3cont(` | fp, |
| x, |
| y, |
| z`)`; |

`FILE *fp`;
`int x`;
`int y`;
`int z`;

`void fsfuncpl_3line(` | fp, |
| x0, |
| y0, |
| z0, |
| x1, |
| y1, |
| z1`)`; |

`FILE *fp`;
`int x0`;
`int y0`;
`int z0`;
`int x1`;
`int y1`;
`int z1`;

`void fsfuncpl_3move(` | fp, |
| x, |
| y, |
| z`)`; |

`FILE *fp`;
`int x`;
`int y`;
`int z`;

`void fsfuncpl_3point(` | fp, |
| x, |
| y, |
| z`)`; |

`FILE *fp`;
`int x`;
`int y`;
`int z`;

`void fsfuncpl_3space(` | fp, |
| x0, |
| y0, |
| z0, |
| x1, |
| y1, |
| z1`)`; |

`FILE *fp`;
`int x0`;
`int y0`;
`int z0`;
`int x1`;
`int y1`;
`int z1`;

`void fsfuncpl_arc(` | fp, |
| xc, |
| yc, |
| x0, |
| y0, |
| x1, |
| y1`)`; |

`FILE *fp`;
`int xc`;
`int yc`;
`int x0`;
`int y0`;
`int x1`;
`int y1`;

`void fsfuncpl_box(` | fp, |
| x0, |
| y0, |
| x1, |
| y1`)`; |

`FILE *fp`;
`int x0`;
`int y0`;
`int x1`;
`int y1`;

`fsfuncpl_circle(` | fp, |
| x, |
| y, |
| r`)`; |

`FILE *fp`;
`int x`;
`int y`;
`int r`;

`void fsfuncpl_color(` | fp, |
| r, |
| g, |
| b`)`; |

`FILE *fp`;
`int r`;
`int g`;
`int b`;

`void fsfuncpl_cont(` | fp, |
| x, |
| y`)`; |

`FILE *fp`;
`int x`;
`int y`;

`void fsfuncpl_erase(` | fp`)`; |

`FILE *fp`;

`void fsfuncpl_label(` | fp, |
| s`)`; |

`FILE *fp`;
`const char *s`;

`void fsfuncpl_line(` | fp, |
| x0, |
| y0, |
| x1, |
| y1`)`; |

`FILE *fp`;
`int x0`;
`int y0`;
`int x1`;
`int y1`;

`void fsfuncpl_linmod(` | fp, |
| s`)`; |

`FILE *fp`;
`const char *s`;

`void fsfuncpl_move(` | fp, |
| x, |
| y`)`; |

`FILE *fp`;
`int x`;
`int y`;

`void fsfuncpl_point(` | fp, |
| x, |
| y`)`; |

`FILE *fp`;
`int x`;
`int y`;

`void fsfuncpl_space(` | fp, |
| x0, |
| y0, |
| x1, |
| y1`)`; |

`FILE *fp`;
`int x0`;
`int y0`;
`int x1`;
`int y1`;

## DESCRIPTION

These subroutines generate graphic output commands for processing with the plot(1) plotting filters. They are slightly more general than those in libplot as these take a file pointer. They also include the BRL 3-D extensions to the plot intermediate code.

Pl_space or pl_3space must be used before any of the graphic primitives to declare the amount of space necessary. See plot3(5).

Pl_box or pl_3box draws a box between the two given opposite points. The ''pen'' will be left at the second point.

Pl_circle draws a circle of radius r with center at the point (x, `y`). Note that circle and arc cannot be transformed in three space if one is using a filter to do that.

Pl_arc draws an arc of a circle with center at the point (x, `y`) between the points (x0, y0) and (x1, `y1`).

String arguments to pl_label and pl_linmod are terminated by nulls and do not contain new-lines.

There are also 2-D and 3_D double-precision versions, with arguments identical to their counterparts above. The naming conventions are to change the prefix to "pd"; examples are thus pd_point and pd_3point. Vector versions for 3_D (also double-precision) are prefixed "pdv", as in pdv_3point.

See plot3(5) and plot(5) for a description of the effect of the remaining functions.

## FILES

/usr/brlcad/lib/libplot3`.`a produces output for plot(1G) filters

## WARNINGS

In order to compile a program containing these functions in file.c it is necessary to use ``cc file.c -lplot3''.

Color specification and three-dimensional primitives are BRL extensions to the "unix plot" language that are not generally found on other systems.

## SEE ALSO

plot(1), pl-fb(1), plot3(5), plot(5)

## AUTHOR

BRL-CAD Team

## COPYRIGHT

This software is Copyright (c) 1989-2023 by the United States Government as represented by U.S. Army Research Laboratory.

## BUG REPORTS

Reports of bugs or problems should be submitted via electronic mail to `<devs@brlcad.org>`