SBCYLINDERPLANEPROJECTOR(3iv)

πŸ’– SbCylinderPlaneProjector β€” cylinder-plane projector πŸ’–

okay so bestie, welcome to the 3IV manual section, this is the SbCylinderPlaneProjector page and she is lowkey iconic. no preamble, let's go ✨


🌸 INHERITS FROM 🌸

the whole glow-up lineage, top to bottom:

  • SbProjector
  • SbCylinderProjector
  • SbCylinderSectionProjector
  • SbCylinderPlaneProjector

so she's carrying the whole family tree on her back, no cap. πŸ’…


✨ SYNOPSIS ✨

include her, or she won't show up:

#include <Inventor/projectors/SbCylinderPlaneProjector.h>

πŸŽ€ Methods from class SbCylinderPlaneProjector

SbCylinderPlaneProjector(float edgeTol = .9, SbBool orientToEye = TRUE)
SbCylinderPlaneProjector(const SbCylinder &cyl, float edgeTol = .9, SbBool orientToEye = TRUE)
~SbCylinderPlaneProjector()

πŸŽ€ Methods from class SbCylinderSectionProjector

void                setTolerance(float edgeTol)
float               getTolerance() const
SbBool              isWithinTolerance(const SbVec3f &point)

πŸŽ€ Methods from class SbCylinderProjector

SbVec3f             projectAndGetRotation(const SbVec2f &point, SbRotation &rot)
virtual SbRotation  getRotation(const SbVec3f &point1, const SbVec3f &point2)
void                setCylinder(const SbCylinder &cyl)
const SbCylinder &  getCylinder() 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 here's the tea, bestie: SbCylinderPlaneProjector takes a window space point (usually where your mouse is at, fr fr) and projects it onto a surface. and that surface? it's defined by a cylinder plus a plane slicing straight through the cylinder. two projected points together can produce a rotation along the cylinder's axis. and when your mouse position projects onto the plane, the rotations behave as if you're literally dragging the plane itself, which makes the cylinder roll underneath it. it's giving physics but make it ✨vibes✨.

incremental changes, aka the delta rotation, can be computed during interactive sessions. cylinder projectors are typically the ones you reach for when you're writing interactive 3D manipulators and viewers. main character energy, honestly. πŸ‘‘


πŸ’… METHODS πŸ’…

  • SbCylinderPlaneProjector(float edgeTol = .9, SbBool orientToEye = TRUE)
  • SbCylinderPlaneProjector(const SbCylinder &cyl, float edgeTol = .9, SbBool orientToEye = TRUE) β€” constructors!!

okay so the first one uses a default cylinder that's aligned with the Y axis and has a radius of 1.0. the second one? you hand her the cylinder yourself.

the position of the plane is specified as a fraction of the cylinder radius, and that's the edgeTol parameter, iykyk. let's break it down because the numbers MATTER:

  • a tolerance value of 1.0 positions the plane down the center of the cylinder</> 🎯
  • a tolerance value of 0.5 defines the longitudinal plane halfway between the center and the outside edge of the cylinder
  • the default value is .9, so that almost half the cylinder is in front of the plane. slay.

the orientToEye parameter decides whether the plane is perpendicular to the eye, or perpendicular to the cylinder's Z axis. setting that parameter to TRUE (which is the default, bestie) specifies that the plane be perpendicular to the eye, and that's most often the desired behavior. periodt.

also: the default view volume is undefined, and the working space is identity. don't forget that part. πŸ™ˆ

  • ~SbCylinderPlaneProjector() β€” the destructor. she's leaving the group chat. bye queen 🫢

🌈 SEE ALSO 🌈

go give these girls a follow, they're all in the same friend group:

  • SbCylinderSheetProjector
  • SbLineProjector
  • SbPlaneProjector
  • SbSpherePlaneProjector
  • SbSphereProjector
  • SbSphereSectionProjector
  • SbSphereSheetProjector

and that's the whole page, bestie!! this was the SbCylinderPlaneProjector(3IV) manual page, and yeah β€” the footer at the bottom just says SbCylinderPlaneProjector(3IV)() all over again, same as the header, so we're wrapping this exactly the way it came in. πŸŽ€βœ¨πŸ’– stay projecting, stay iconic, mwah. πŸ’œ