## Name

libplot3 — graphics interface subroutines

## Synopsis

`fsfuncpl_space(` | , |
| y1, |
| FILE, |
| z1, |
| FILE`)`; |

`FILE *fp` ;
`int x0 , y0 , x1 , y1`;
`pl_3space ( fp , x0 , y0 , z0 , x1 , y1 , z1 ) FILE*fp`;
`int x0 , y0 , z0 , x1 , y1 , z1`;
`pl_erase ( fp ) FILE*fp`;

`fsfuncpl_color(` | , |
| b, |
| FILE, |
| `)`; |

`FILE *fp` ;
`int r , g , b`;
`pl_linmod ( fp , s ) FILE*fp`;
`char *s` ;

`fsfuncpl_label(` | , |
| `)`; |

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

`fsfuncpl_line(` | , |
| y2, |
| FILE, |
| z2, |
| FILE`)`; |

`FILE *fp` ;
`int x1 , y1 , x2 , y2`;
`pl_3line ( fp , x1 , y1 , z1 , x2 , y2 , z2 ) FILE*fp`;
`int x1 , y1 , z1 , x2 , y2 , z2`;
`pl_move ( fp , x , y ) FILE*fp`;

    int x, y;

`fsfuncpl_3move(` | , |
| z, |
| FILE, |
| y`)`; |

`FILE *fp` ;
`int x , y , z`;
`pl_cont ( fp , x , y ) FILE*fp`;
`int x , y`;

`fsfuncpl_3cont(` | , |
| z, |
| FILE, |
| y`)`; |

`FILE *fp` ;
`int x , y , z`;
`pl_point ( fp , x , y ) FILE*fp`;
`int x , y`;

`fsfuncpl_3point(` | , |
| z, |
| FILE, |
| y2`)`; |

`FILE *fp` ;
`int x , y , z`;
`pl_box ( fp , x1 , y1 , x2 , y2 ) FILE*fp`;
`int x1 , y1 , x2 , y2`;

pl_3box( fp, x1, y1, z1, x2, y2, z2 )

    FILE *fp;
    int x1, y1, z1, x2, y2, z2;

`fsfuncpl_circle(` | , |
| r, |
| FILE, |
| y1`)`; |

`FILE *fp` ;
`int x , y , r`;
`pl_arc ( fp , x , y , x0 , y0 , x1 , y1 ) FILE*fp`;
`int x , y , x0 , y0 , x1 , 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-2013 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>.