SOFACEDETAIL(3iv)

πŸ’– SoFaceDetail πŸ’–

okay bestie, welcome to SoFaceDetail(3IV) β€” literally the little receipt that tells you everything about a face in a vertex-based shape. sit down, hydrate, let's get into it 🫢


🌸 NAME 🌸

SoFaceDetail β€” stores detail information about vertex-based shapes made of faces. yeah. it's the gossip girl of geometry. it remembers which face, which points, which part. no cap. πŸ’…


🧬 INHERITS FROM 🧬

SoDetail > SoFaceDetail

so it's giving... a subclass moment. it inherited the whole vibe from SoDetail and then added its own lil extras. iconic behavior tbh ✨


✨ SYNOPSIS ✨

#include <Inventor/details/SoFaceDetail.h>

πŸŽ€ Methods from class SoFaceDetail:

                      SoFaceDetail()
virtual                ~SoFaceDetail()
long                   getNumPoints() const
const SoPointDetail *  getPoint(int i) const
int32_t                getFaceIndex() const
int32_t                getPartIndex() const
static SoType          getClassTypeId()

πŸ’œ Methods from class SoDetail:

SoDetail *          copy() const
virtual SoType      getTypeId() const
SbBool              isOfType(SoType type) const
note: those SoDetail ones are the inherited besties. they come with the family. you didn't have to do anything to get them, they just are. πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so. this class contains detail information about a point on a face in a vertex-based shape made of faces. that's the whole point of it. it's the girl with the clipboard at the party, keeping track of:

  • how many points are in the face
  • the points forming the vertices of the face
  • the index of the face within the shape

now here's the tea you actually need, bestie, because it's giving conditional behavior and if you miss it you will be so confused 😭

when an SoFaceDetail is returned from picking (in an SoPickedPoint), it will contain details for all points defining the face that was intersected. yes, all of them. every single point. the full roster.

BUT β€” and this is the plot twist β€” when an SoFaceDetail is created for a triangle produced during primitive generation (in an SoPrimitiveVertex), it will contain details for only the three vertices of the triangle. just three. that's it. three little points and nothing else. 🫠

so like. same class. different energy depending on where it came from. iykyk πŸ”₯


🌈 METHODS 🌈

  • SoFaceDetail()
  • virtual ~SoFaceDetail()

constructor and destructor. the birth and the farewell. the alpha and the omega. πŸŽ€

  • long getNumPoints() const β€” returns the number of points in the face. how many points, bestie? this will tell you. πŸ”’
  • const SoPointDetail * getPoint(int i) const β€” returns information about the point forming the i'th vertex of the face, represented as an SoPointDetail. so you pass in an index, you get back the deets on that vertex. it's giving personal assistant energy πŸ’…
  • int32_t getFaceIndex() const β€” returns the index of the face within the shape. which face is it? this one. right here. the number says so. πŸ‘‘
  • int32_t getPartIndex() const β€” returns the index of the part containing the face within the shape. so the face is in a part, and the part has an index, and this is that index. layers, babe. layers. 🧚
  • static SoType getClassTypeId() β€” returns type identifier for this class. it's the class's little ID card. very official. very slay. ⭐

πŸ’€ SEE ALSO πŸ’€

  • SoDetail
  • SoPickedPoint
  • SoPrimitiveVertex
  • SoVertexShape

go read those too. they're all connected. it's a whole friend group. 🫢


and that's the whole page, bestie!! this was SoFaceDetail(3IV) β€” the footer situation is SoFaceDetail(3IV)() which is... just the page name again with empty parens, no date, no version number, nothing. the manpage really said "no thoughts, head empty" and honestly? relatable. πŸ™ˆ go forth and inspect your faces. mwah πŸ’–βœ¨