plcombine(3gv)

πŸ’– plcombine β€” the plcombine(3gv) page, bestie edition πŸ’–

okay so you're here for PLCombine, and honestly? slay. let's get into it.


✨ NAME ✨

PLCombine β€” polylist two polylists (OFF file format) into one 🫢

like. it takes two polylists and polylists them together. that's the whole gig. iconic.


🌸 SYNOPSIS 🌸

Geom *PLCombine(Geom *, Geom *);

two Geom * walk in, one Geom * walks out. main character energy fr fr.


πŸ¦‹ DESCRIPTION πŸ¦‹

PLCombine() combines two polylists into a single polylist and returns the new polylist. that's it, that's the vibe.

edge cases, because of course there are edge cases:

  • if either of the old polylists was NULL, you get back a copy of the other polylist β€” or NULL if both polylists were NULL. both empty? you get nothing back, bestie. that's just math.
  • and PLCombine() will generate an error if either of the parameters was not of the polylist type. so like… check ur types. no cap. 😭

🎨 color data (the messy part, ngl)

if the two polylists represent color in an inconsistant way, PLCombine will attempt to preserve the color data. it's trying its best, okay?

  • if either polylist has per-polygon colors, the result will have per-polygon colors. periodt.
  • if the other object originally had per-vertex colors, the color of the first point of each polygon will be used as the color of the polygon. first point gets to speak for the whole poly. main character behavior.
  • if the other polylist originally had no colors, the rgba value 0.15, 0.15, 0.15, 1.0 will be used as the color of each of that polyline's polygons. a lil moody grey, love that for them.

and then:

  • if neither of the polylists had per-polygon colors but one had per-vertex colors, the value 0.15, 0.15, 0.15, 1.0 will be used as the color value for each of the vertices of the colorless polylist.
  • if neither polylist had color data, the result will not have color date. (yes. "date." that's what the page says. we don't ask questions, we just report. πŸ’€)

🧚 normals

the result of PLCombine() will not include normal data if the two polylists represent normals in an inconsistent way. for example:

  • if one has per-vertex data and one has per-face data, or
  • if one has per-vertex data and one has no data.

so if their normal situations don't match up, the normals just… don't make it. it's giving irreconcilable differences. πŸ™ˆ


πŸ”— LINKING πŸ”—

PLCombine() is part of the geomutil library β€” so go see geomutil(3) for information on how to link your program with this library. don't just wing it and then cry in the group chat, bestie. 🫢


πŸ‘€ SEE ALSO πŸ‘€


πŸ‘‘ AUTHOR πŸ‘‘

Celeste Fowler The Geometry Center


ok that's the whole page, you ate that. go polylist something. πŸ’…βœ¨

later babes β€” this was the plcombine(3gv) page from the Geometry Center, dated June 15, 1992. yeah, 1992. vintage. still slaying. πŸ’–