Polypack(3NCARG)
β¨ Polypack β the NCAR GRAPHICS one β¨
okay bestie sit DOWN because we're talking about Polypack (that's Polypack(3NCARG) in the NCAR Graphics family, mwah π
) and it's literally a whole set of routines that let you manipulate polygons in various ways. iconic behavior tbh.
So here's the vibe: each of the six principal routines gets handed a "clip" polygon, a "subject" polygon, and a workspace. Then it does its little thing on the two polygons and creates either a derivative polygon or a set of trapezoids representing the interior of that derivative polygon β and then it hands those off to a user-specified processing routine. like, it's not gonna do the art for you, it's gonna do the math and pass you the goods. periodt. π
πΈ SYNOPSIS πΈ
PPDIPOβ generates and returns the boundary of the "difference" polygon, which is literally every point that's inside the subject polygon but not inside the clip polygon. subtraction era. βPPINPOβ generates and returns the boundary of the "intersection" polygon, aka all the points that are inside both the clip polygon and the subject polygon. overlap girlies rise π«ΆPPUNPOβ generates and returns the boundary of the "union" polygon, which is every point inside either or both of the clip polygon and the subject polygon. everybody's invited to this one πPPDITRβ generates and returns a set of trapezoids representing the interior of the "difference" polygon, which consists of all points inside the subject polygon but not inside the clip polygon. same subtraction, but make it trapezoids πΊPPINTRβ generates and returns a set of trapezoids representing the interior of the "intersection" polygon, which consists of all points inside both the clip polygon and the subject polygon. overlap, but trapezoid-ified β¨PPUNTRβ generates and returns a set of trapezoids representing the interior of the "union" polygon, which consists of all points inside either or both of the clip polygon and the subject polygon. union, but with shapes π₯PPPPAPβ can be called to preprocess a polygon in such a way as to remove certain peculiarities that can cause minor cosmetic errors in the output from the routines that return trapezoids. it's the skincare routine before the makeup, no cap π§ββοΈPPPLCLβ clips a polyline against a clipping rectangle. and like, heads up bestie: it's intended that eventually there should be a better routine that will clip a polyline against an arbitrary polygon, but that routine has not yet been written. so we wait π
π C-BINDING SYNOPSIS π
#include <ncarg/ncargC.h>
and then the C-binding girlies themselves:
c_ppdipo
c_ppditr
c_ppinpo
c_ppintr
c_ppplcl
c_ppppap
c_ppunpo
c_ppuntr
look at them all lined up, so organized, we love a coordinated group π
π¦ ACCESS π¦
To use Polypack routines, you need to load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c β preferably in that order. don't be chaotic about the order, bestie, just follow the lineup. β¨
π MESSAGES π
None. Not a single one. All error conditions in Polypack routines are reported by means of an error-flag argument. so like, it's not gonna yell at you in the terminal β it'll just quietly flag it and let you deal. silent but observant, main character energy. π
π SEE ALSO π
Online: ppdipo, ppditr, ppinpo, ppintr, ppplcl, ppppap, ppunpo, ppuntr, ncarg_cbind.
Hardcopy: None.
(iykyk, go read the online ones, they're right there π)
π COPYRIGHT π
Copyright (C) 1987-2009
University Corporation for Atmospheric Research
The use of this Software is governed by a License Agreement.
okay that's the whole thing, go forth and polygon, bestie π¦β¨ this was the Polypack(3NCARG) page from the UNIX manual, March 1995 era β yes she's vintage, yes she still slays, mwah π
π
π¦ where this page comes from
- debian bookworm: libncarg-dev 6.6.2.dfsg.1-1
- debian trixie: libncarg-dev 6.6.2.dfsg.1-10+b2
- ubuntu jammy: libncarg-dev 6.6.2-10build2
- ubuntu questing: libncarg-dev 6.6.2.dfsg.1-10build2
- ubuntu resolute: libncarg-dev 6.6.2.dfsg.1-12
- ubuntu stonking: libncarg-dev 6.6.2.dfsg.1-12build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms