SBSPHERESHEETPROJECTOR(3iv)

πŸ’– SbSphereSheetProjector β€” sphere-sheet projector πŸ’–

okay bestie, welcome to the SbSphereSheetProjector(3IV) page, we're doing 3D projection math and we're doing it cutely ✨


🌸 INHERITS FROM 🌸

SbProjector > SbSphereProjector > SbSphereSheetProjector

like, it's a whole family tree and this one is the grandbaby at the bottom 🫢


✨ SYNOPSIS ✨

#include <Inventor/projectors/SbSphereSheetProjector.h>

πŸ’… Methods from class SbSphereSheetProjector:

SbSphereSheetProjector(SbBool orientToEye = TRUE)
SbSphereSheetProjector(const SbSphere &sph, SbBool
     orientToEye = TRUE)
~SbSphereSheetProjector()

πŸ’… Methods from class SbSphereProjector:

SbVec3f             projectAndGetRotation(const SbVec2f &point, SbRotation
                         &rot)
virtual SbRotation  getRotation(const SbVec3f &point1, const SbVec3f
                         &point2)
void                setSphere(const SbSphere &sph)
const SbSphere &    getSphere() const
void                setOrientToEye(SbBool orientToEye)
SbBool              isOrientToEye() const
void                setFront(SbBool isFront)
SbBool              isFront() const
SbBool              isPointInFront(const SbVec3f &point) const

πŸ’… Methods from class SbProjector:

virtual SbVec3f        project(const SbVec2f &point)
virtual void           setViewVolume(const SbViewVolume &vol)
const SbViewVolume &   getViewVolume() const
virtual void           setWorkingSpace(const SbMatrix &space)
const SbMatrix &       getWorkingSpace() const
virtual SbProjector *  copy() const

πŸ¦‹ DESCRIPTION πŸ¦‹

So SbSphereSheetProjector takes a point in window space (usually where your mouse is, no cap) and projects it onto the surface of a sphere that has a hyperbolic sheet draped over it. It's giving "sphere wearing a little blanket" πŸŽ€ and the whole point of that blanket is that transitions onto and off of the sphere are smooth instead of janky. Two projected points can produce a rotation about the sphere's center. And when the mouse position projects onto the sheet, the rotations act like the sheet itself is being dragged, which makes the sphere roll underneath it. genuinely iconic behavior ✨

You can also compute incremental changes (that's the delta rotation, iykyk) while you're in an interactive session. Sphere projectors are typically used to write interactive 3D manipulators and viewers, which is lowkey the whole reason this class exists πŸ’…


πŸ”₯ METHODS πŸ”₯

SbSphereSheetProjector(SbBool orientToEye = TRUE)
SbSphereSheetProjector(const SbSphere &sph, SbBool
     orientToEye = TRUE)

okay so these are the constructors 🫢 The first one uses a default sphere centered at the origin with radius 1.0; the sphere is supplied in the second. The orientToEye parameter determines whether the sheet is perpendicular to the eye, or perpendicular to the sphere's Z axis. Setting that parameter to TRUE (the default, bestie, it's already handled) specifies that the sheet be perpendicular to the eye, which is most often the desired behavior. main character default energy honestly πŸ‘‘

The default view volume is undefined, and the working space is identity. just so you know. no surprises. πŸ’€

~SbSphereSheetProjector()

Destructor. it's the goodbye kiss, she's done 😭


🌈 SEE ALSO 🌈

  • SbCylinderProjector
  • SbCylinderPlaneProjector
  • SbCylinderSectionProjector
  • SbCylinderSheetProjector
  • SbLineProjector
  • SbPlaneProjector
  • SbSpherePlaneProjector

and that's the whole page bestie, slay πŸ’– this was SbSphereSheetProjector(3IV)(), source/version and date and all, mwah πŸŽ€βœ¨ go project something cute πŸ¦‹