.\" Automatically generated by Pandoc 2.9.2.1 .\" .TH "notcurses_lines" "3" "v2.2.3" "" "" .hy .SH NAME .PP notcurses_lines - operations on lines and boxes .SH SYNOPSIS .PP \f[B]#include \f[R] .PP \f[B]int ncplane_hline_interp(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const nccell* \f[R]\f[I]c\f[R]\f[B], int \f[R]\f[I]len\f[R]\f[B], uint64_t \f[R]\f[I]c1\f[R]\f[B], uint64_t \f[R]\f[I]c2\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_hline(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const nccell* \f[R]\f[I]c\f[R]\f[B], int \f[R]\f[I]len\f[R]\f[B]);\f[R] .PP \f[B]int ncplane_vline_interp(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const nccell* \f[R]\f[I]c\f[R]\f[B], int \f[R]\f[I]len\f[R]\f[B], uint64_t \f[R]\f[I]c1\f[R]\f[B], uint64_t \f[R]\f[I]c2\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_vline(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const nccell* \f[R]\f[I]c\f[R]\f[B], int \f[R]\f[I]len\f[R]\f[B]);\f[R] .IP .nf \f[C] #define NCBOXMASK_TOP 0x0001 #define NCBOXMASK_RIGHT 0x0002 #define NCBOXMASK_BOTTOM 0x0004 #define NCBOXMASK_LEFT 0x0008 #define NCBOXGRAD_TOP 0x0010 #define NCBOXGRAD_RIGHT 0x0020 #define NCBOXGRAD_BOTTOM 0x0040 #define NCBOXGRAD_LEFT 0x0080 #define NCBOXCORNER_MASK 0x0300 #define NCBOXCORNER_SHIFT 8u \f[R] .fi .PP \f[B]int ncplane_box(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const nccell* \f[R]\f[I]ul\f[R]\f[B], const nccell* \f[R]\f[I]ur\f[R]\f[B], const nccell* \f[R]\f[I]ll\f[R]\f[B], const nccell* \f[R]\f[I]lr\f[R]\f[B], const nccell* \f[R]\f[I]hline\f[R]\f[B], const nccell* \f[R]\f[I]vline\f[R]\f[B], int \f[R]\f[I]ystop\f[R]\f[B], int \f[R]\f[I]xstop\f[R]\f[B], unsigned \f[R]\f[I]ctlword\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_box_sized(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const nccell* \f[R]\f[I]ul\f[R]\f[B], const nccell* \f[R]\f[I]ur\f[R]\f[B], const nccell* \f[R]\f[I]ll\f[R]\f[B], const nccell* \f[R]\f[I]lr\f[R]\f[B], const nccell* \f[R]\f[I]hline\f[R]\f[B], const nccell* \f[R]\f[I]vline\f[R]\f[B], int \f[R]\f[I]ylen\f[R]\f[B], int \f[R]\f[I]xlen\f[R]\f[B], unsigned \f[R]\f[I]ctlword\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_perimeter(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const nccell* \f[R]\f[I]ul\f[R]\f[B], const nccell* \f[R]\f[I]ur\f[R]\f[B], const nccell* \f[R]\f[I]ll\f[R]\f[B], const nccell* \f[R]\f[I]lr\f[R]\f[B], const nccell* \f[R]\f[I]hline\f[R]\f[B], const nccell* \f[R]\f[I]vline\f[R]\f[B], unsigned \f[R]\f[I]ctlword\f[R]\f[B])\f[R] .PP \f[B]static inline int cells_load_box(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]styles\f[R]\f[B], uint64_t \f[R]\f[I]channels\f[R]\f[B], nccell* \f[R]\f[I]ul\f[R]\f[B], nccell* \f[R]\f[I]ur\f[R]\f[B], nccell* \f[R]\f[I]ll\f[R]\f[B], nccell* \f[R]\f[I]lr\f[R]\f[B], nccell* \f[R]\f[I]hl\f[R]\f[B], nccell* \f[R]\f[I]vl\f[R]\f[B], const char* \f[R]\f[I]gclusters\f[R]\f[B]);\f[R] .PP \f[B]static inline int cells_rounded_box(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]styles\f[R]\f[B], uint64_t \f[R]\f[I]channels\f[R]\f[B], nccell* \f[R]\f[I]ul\f[R]\f[B], nccell* \f[R]\f[I]ur\f[R]\f[B], nccell* \f[R]\f[I]ll\f[R]\f[B], nccell* \f[R]\f[I]lr\f[R]\f[B], nccell* \f[R]\f[I]hl\f[R]\f[B], nccell* \f[R]\f[I]vl\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_rounded_box(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]styles\f[R]\f[B], uint64_t \f[R]\f[I]channels\f[R]\f[B], int \f[R]\f[I]ystop\f[R]\f[B], int \f[R]\f[I]xstop\f[R]\f[B], unsigned \f[R]\f[I]ctlword\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_rounded_box_sized(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]styles\f[R]\f[B], uint64_t \f[R]\f[I]channels\f[R]\f[B], int \f[R]\f[I]ylen\f[R]\f[B], int \f[R]\f[I]xlen\f[R]\f[B], unsigned \f[R]\f[I]ctlword\f[R]\f[B]);\f[R] .PP \f[B]static inline int cells_double_box(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]styles\f[R]\f[B], uint64_t \f[R]\f[I]channels\f[R]\f[B], nccell* \f[R]\f[I]ul\f[R]\f[B], nccell* \f[R]\f[I]ur\f[R]\f[B], nccell* \f[R]\f[I]ll\f[R]\f[B], nccell* \f[R]\f[I]lr\f[R]\f[B], nccell* \f[R]\f[I]hl\f[R]\f[B], nccell* \f[R]\f[I]vl\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_double_box(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]styles\f[R]\f[B], uint64_t \f[R]\f[I]channels\f[R]\f[B], int \f[R]\f[I]ystop\f[R]\f[B], int \f[R]\f[I]xstop\f[R]\f[B], unsigned \f[R]\f[I]ctlword\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_double_box_sized(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]styles\f[R]\f[B], uint64_t \f[R]\f[I]channels\f[R]\f[B], int \f[R]\f[I]ylen\f[R]\f[B], int \f[R]\f[I]xlen\f[R]\f[B], unsigned \f[R]\f[I]ctlword\f[R]\f[B]);\f[R] .PP \f[B]int ncplane_polyfill_yx(struct ncplane* \f[R]\f[I]n\f[R]\f[B], int \f[R]\f[I]y\f[R]\f[B], int \f[R]\f[I]x\f[R]\f[B], const nccell* \f[R]\f[I]c\f[R]\f[B]);\f[R] .PP \f[B]int ncplane_gradient(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const char* \f[R]\f[I]egc\f[R]\f[B], uint32_t \f[R]\f[I]stylemask\f[R]\f[B], uint64_t \f[R]\f[I]ul\f[R]\f[B], uint64_t \f[R]\f[I]ur\f[R]\f[B], uint64_t \f[R]\f[I]ll\f[R]\f[B], uint64_t \f[R]\f[I]lr\f[R]\f[B], int \f[R]\f[I]ystop\f[R]\f[B], int \f[R]\f[I]xstop\f[R]\f[B]);\f[R] .PP \f[B]static inline int ncplane_gradient_sized(struct ncplane* \f[R]\f[I]n\f[R]\f[B], const char* \f[R]\f[I]egc\f[R]\f[B], uint32_t \f[R]\f[I]stylemask\f[R]\f[B], uint64_t \f[R]\f[I]ul\f[R]\f[B], uint64_t \f[R]\f[I]ur\f[R]\f[B], uint64_t \f[R]\f[I]ll\f[R]\f[B], uint64_t \f[R]\f[I]lr\f[R]\f[B], int \f[R]\f[I]ylen\f[R]\f[B], int \f[R]\f[I]xlen\f[R]\f[B]);\f[R] .PP \f[B]int ncplane_highgradient(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]ul\f[R]\f[B], uint32_t \f[R]\f[I]ur\f[R]\f[B], uint32_t \f[R]\f[I]ll\f[R]\f[B], uint32_t \f[R]\f[I]lr\f[R]\f[B], int \f[R]\f[I]ystop\f[R]\f[B], int \f[R]\f[I]xstop\f[R]\f[B]);\f[R] .PP \f[B]int ncplane_highgradient_sized(struct ncplane* \f[R]\f[I]n\f[R]\f[B], uint32_t \f[R]\f[I]ul\f[R]\f[B], uint32_t \f[R]\f[I]ur\f[R]\f[B], uint32_t \f[R]\f[I]ll\f[R]\f[B], uint32_t \f[R]\f[I]lr\f[R]\f[B], int \f[R]\f[I]ylen\f[R]\f[B], int \f[R]\f[I]xlen\f[R]\f[B]);\f[R] .PP \f[B]int ncplane_format(struct ncplane* \f[R]\f[I]n\f[R]\f[B], int \f[R]\f[I]ystop\f[R]\f[B], int \f[R]\f[I]xstop\f[R]\f[B], uint32_t \f[R]\f[I]stylemask\f[R]\f[B]);\f[R] .PP \f[B]int ncplane_stain(struct ncplane* \f[R]\f[I]n\f[R]\f[B], int \f[R]\f[I]ystop\f[R]\f[B], int \f[R]\f[I]xstop\f[R]\f[B], uint64_t \f[R]\f[I]ul\f[R]\f[B], uint64_t \f[R]\f[I]ur\f[R]\f[B], uint64_t \f[R]\f[I]ll\f[R]\f[B], uint64_t \f[R]\f[I]lr\f[R]\f[B]);\f[R] .SH DESCRIPTION .PP \f[B]ncplane_format\f[R] sets the attributes of every cell in the region having its upper-left corner at the cursor\[aq]s current position, and its lower-right corner at \f[B]ystop\f[R], \f[B]xstop\f[R]. .PP Box- and line-drawing is unaffected by a plane\[aq]s scrolling status. .SH RETURN VALUES .PP \f[B]ncplane_format\f[R] returns -1 if either \f[B]ystop\f[R] or \f[B]xstop\f[R] is less than the current equivalent position, otherwise 0. .SH SEE ALSO .PP \f[B]notcurses(3)\f[R], \f[B]notcurses_cell(3)\f[R], \f[B]notcurses_plane(3)\f[R] .SH AUTHORS nick black .