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 π
SbCylinderProjectorSbCylinderPlaneProjectorSbCylinderSectionProjectorSbCylinderSheetProjectorSbLineProjectorSbPlaneProjectorSbSpherePlaneProjector
and that's the whole page bestie, slay π this was SbSphereSheetProjector(3IV)(), source/version and date and all, mwah πβ¨ go project something cute π¦
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms