SBCYLINDERPLANEPROJECTOR(3coin3)

πŸ“¦ version 3.1.3, in fedora 43, fedora 44

πŸ’– NAME πŸ’–

SbCylinderPlaneProjector β€” okay so this class projects 2D points onto a half-cylinder and a plane. bestie it does both. iconic behavior honestly.


✨ SYNOPSIS ✨

#include <Inventor/projectors/SbCylinderPlaneProjector.h>

It inherits from SbCylinderSectionProjector, so like… it's got family. πŸ’…

🫢 Public Member Functions

  • SbCylinderPlaneProjector(const float edgetol = 0.9f, const SbBool orienttoeye = TRUE) β€” default constructor vibes.
  • SbCylinderPlaneProjector(const SbCylinder &cyl, const float edgetol = 0.9f, const SbBool orienttoeye = TRUE) β€” and this one lets you hand it the cylinder yourself.
  • virtual SbProjector * copy(void) const β€” makes a whole new copy of this projector. you're in charge of destroying it tho, no one else is gonna do it for you.
  • virtual SbVec3f project(const SbVec2f &point) β€” takes that 2D point and gives you back a 3D point. slay.
  • virtual SbRotation getRotation(const SbVec3f &point1, const SbVec3f &point2) β€” rotation that swings point1 over to point2.

🌸 Public Member Functions inherited from SbCylinderSectionProjector

  • SbCylinderSectionProjector(const float edgetol = 0.9f, const SbBool orienttoeye = TRUE)
  • SbCylinderSectionProjector(const SbCylinder &cyl, const float edgetol = 0.9f, const SbBool orienttoeye = TRUE)
  • void setTolerance(const float edgetol)
  • float getTolerance(void) const
  • SbBool isWithinTolerance(const SbVec3f &point)

πŸ¦‹ Public Member Functions inherited from SbCylinderProjector

  • SbVec3f projectAndGetRotation(const SbVec2f &point, SbRotation &rot)
  • void setCylinder(const SbCylinder &cyl)
  • const SbCylinder & getCylinder(void) const
  • void setOrientToEye(const SbBool orienttoeye)
  • SbBool isOrientToEye(void) const
  • void setFront(const SbBool infront)
  • SbBool isFront(void) const
  • SbBool isPointInFront(const SbVec3f &point) const
  • virtual void setWorkingSpace(const SbMatrix &space)

πŸŽ€ Public Member Functions inherited from SbProjector

  • virtual void setViewVolume(const SbViewVolume &vol)
  • const SbViewVolume & getViewVolume(void) const
  • const SbMatrix & getWorkingSpace(void) const
  • virtual SbBool tryProject(const SbVec2f &point, const float epsilon, SbVec3f &result)

πŸ’œ Protected Member Functions

  • SbRotation getRotation(const SbVec3f &point1, const SbBool tol1, const SbVec3f &point2, const SbBool tol2) β€” the behind-the-scenes version, where tol1 and tol2 decide whether the tolerance setting gets used or not.

🌈 Protected Member Functions inherited from SbCylinderSectionProjector

  • virtual void setupTolerance(void)

πŸ“ Protected Member Functions inherited from SbCylinderProjector

  • SbCylinderProjector(const SbBool orienttoeye)
  • SbCylinderProjector(const SbCylinder &cylinder, const SbBool orienttoeye)
  • SbBool intersectCylinderFront(const SbLine &line, SbVec3f &result)

🧚 Protected Member Functions inherited from SbProjector

  • SbProjector(void)
  • virtual ~SbProjector()
  • SbLine getWorkingLine(const SbVec2f &point) const
  • float findVanishingDistance(void) const
  • SbBool verifyProjection(const SbVec3f &projpt) const

⭐ Additional Inherited Members

πŸ‘‘ Protected Attributes inherited from SbCylinderSectionProjector

  • float tolerance
  • float tolDist
  • SbVec3f planeDir
  • SbLine planeLine
  • float planeDist
  • SbPlane tolPlane

πŸ’– Protected Attributes inherited from SbCylinderProjector

  • SbBool intersectFront
  • SbCylinder cylinder
  • SbBool orientToEye
  • SbBool needSetup
  • SbVec3f lastPoint

πŸ¦‹ Protected Attributes inherited from SbProjector

  • SbViewVolume viewVol
  • SbMatrix worldToWorking
  • SbMatrix workingToWorld

🌟 DETAILED DESCRIPTION 🌟

The SbCylinderPlaneProjector class projects 2D points to a half-cylinder and a plane.

Okay so real talk: this projector rolls with a plane plus the half-cylinder from SbCylinderSectionProjector, working together for projections. And here's the cute part β€” if your 2D point mapping straight up "misses" the cylinder section? no worries, the 3D point just gets projected onto the plane instead. backup plan activated. πŸ’…

See also: SbSpherePlaneProjector (its cousin, iykyk)


🧚 CONSTRUCTOR & DESTRUCTOR DOCUMENTATION 🧚

SbCylinderPlaneProjector::SbCylinderPlaneProjector(const float edgetol = 0.9f, const SbBool orienttoeye = TRUE)

Default constructor, periodt. Go peep SbCylinderSectionProjector::SbCylinderSectionProjector() for the deets.

SbCylinderPlaneProjector::SbCylinderPlaneProjector(const SbCylinder & cyl, const float edgetol = 0.9f, const SbBool orienttoeye = TRUE)

Constructor where you get to explicitly say which cylinder you're projecting onto. main character energy, you decide. ✨


πŸ’… MEMBER FUNCTION DOCUMENTATION πŸ’…

SbProjector * SbCylinderPlaneProjector::copy(void ) const [virtual]

Builds and hands you back a copy of this projector. Heads up: the caller is responsible for destructing the new instance. it's yours now, you take care of it. 🫢

⚠️ Note that if the Coin library has been built as a DLL under Microsoft Windows and you use this method from application code, you must make sure that both the Coin DLL and the application executable is using the same instance of a C Run-Time (CRT) library. Otherwise, you will get memory heap corruption upon deallocating the returned instances, eventually leading to mysterious crashes. fr fr, that's the scary kind of bug. 😭

Reimplemented from SbCylinderSectionProjector.

SbVec3f SbCylinderPlaneProjector::project(const SbVec2f & point) [virtual]

Takes that 2D point, straight out of normalized viewport coordinates, and projects it into a 3D point. The mapping happens according to whatever type of projector you're working with. πŸ’«

Reimplemented from SbCylinderSectionProjector.

SbRotation SbCylinderPlaneProjector::getRotation(const SbVec3f & point1, const SbVec3f & point2) [virtual]

Gives you back the rotation on the projection surface that re-orients point1 over to point2. spinning, but make it mathematical. πŸŒ€

Reimplemented from SbCylinderSectionProjector.

SbRotation SbCylinderPlaneProjector::getRotation(const SbVec3f & point1, const SbBool tol1, const SbVec3f & point2, const SbBool tol2) [protected]

Calculates the rotation from point1 to point2, with tol1 and tol2 being the little deciders of whether or not to use the tolerance setting. πŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically by Doxygen for Coin from the source code. yes bestie, the robots wrote the docs, we just gave them ✨flavor✨.


that's the whole page, hope it ate πŸ’– this was Coin, Version 3.1.3, and it's the SbCylinderPlaneProjector(3) manual page, so go forth and project responsibly. mwah πŸŽ€

πŸ“¦ where this page comes from