SbCylinder...nProjector(3)

๐Ÿ“ฆ version 2.5.0, in fedora 43, fedora 44

โœจ SbCylinderSectionProjector โœจ

okay bestie, settle in, because this one is a whole Library Functions Manual moment for the Coin library. this is SbCylinderSectionProjector(3) and she is that girl. ๐ŸŽ€


๐Ÿ’– NAME ๐Ÿ’–

SbCylinderSectionProjector โ€” the projector that takes your lil 2D points and yeets them onto a sliced cylinder</> ๐Ÿฆ‹. periodt.


๐ŸŒธ SYNOPSIS ๐ŸŒธ

#include <Inventor/projectors/SbCylinderSectionProjector.h>
  • Inherits SbCylinderProjector.
  • Inherited by SbCylinderPlaneProjector.

๐Ÿ‘‘ Public Member Functions

  • SbCylinderSectionProjector (const float edgetol=0.9f, const SbBool orienttoeye=1)
  • SbCylinderSectionProjector (const SbCylinder &cyl, const float edgetol=0.9f, const SbBool orienttoeye=1)
  • virtual SbProjector * copy (void) const
  • virtual SbVec3f project (const SbVec2f &point)
  • virtual SbRotation getRotation (const SbVec3f &point1, const SbVec3f &point2)
  • 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

๐ŸŒˆ Protected Member Functions

  • 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

๐Ÿ“ Protected Attributes

  • 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 ๐Ÿฆ‹

so. SbCylinderSectionProjector projects 2D points onto a sliced cylinder. yes, sliced. like a cucumber but make it geometry. ๐Ÿฅ’โœจ

the projection cylinder for this class gets sliced by a clipping plane that runs parallel to its height axis, and projections land on whatever cylinder part is left over after the slice. no cap, that's literally the whole vibe.

๐Ÿ’ซ See also

SbSphereSectionProjector


๐ŸŽ€ Constructor & Destructor Documentation ๐ŸŽ€

SbCylinderSectionProjector::SbCylinderSectionProjector (const float edgetol = 0.9f, const SbBool orienttoeye = 1)

the default constructor, bestie. go check SbCylinderProjector::SbCylinderProjector() if you wanna know what it's building on.

the edgetol value should sit inside <0, 1] โ€” that's a real range, don't be out here passing nonsense ๐Ÿ™ˆ. it says how much of the cylinder gets used as the projection surface. 1.0 means the full front half is used. full front half. she's generous like that.

References SbCylinderProjector::needSetup, SbCylinderProjector::SbCylinderProjector(), and tolerance.

Referenced by copy(), SbCylinderPlaneProjector::SbCylinderPlaneProjector(), and SbCylinderPlaneProjector::SbCylinderPlaneProjector().


SbCylinderSectionProjector::SbCylinderSectionProjector (const SbCylinder & cyl, const float edgetol = 0.9f, const SbBool orienttoeye = 1)

constructor but you get to explicitly set the projection cylinder. main character energy: you decide the cylinder. ๐Ÿ‘‘

References SbCylinderProjector::needSetup, and tolerance.


๐Ÿ’– Member Function Documentation ๐Ÿ’–

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

builds and hands you back a copy of this projector. heads up: the caller is the one responsible for destroying that new instance. not us. you. don't forget. ๐Ÿ˜ญ

ngl this next bit is important โ€” if the Coin library was built as a DLL under Microsoft Windows and you call this method from application code, you must make sure that both the Coin DLL and the application executable are using the same instance of a C Run-Time (CRT) library. otherwise you get memory heap corruption when those returned instances get deallocated, and it eventually snowballs into mysterious crashes. ๐Ÿ’€ mysterious. crashes.

Implements SbProjector.

Reimplemented in SbCylinderPlaneProjector.

References SbCylinderSectionProjector().


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

projects that 2D point from normalized viewport coordinates into a 3D point. the mapping happens in accordance with whatever type of projector you've got going on. it's giving โœจcoordinatesโœจ.

Implements SbCylinderProjector.

Reimplemented in SbCylinderPlaneProjector.

References SbCylinderProjector::cylinder, SbProjector::getWorkingLine(), SbCylinderProjector::intersectCylinderFront(), isWithinTolerance(), SbCylinderProjector::lastPoint, SbCylinderProjector::needSetup, planeLine, SoDebugError::postWarning(), setupTolerance(), and tolPlane.


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

returns the rotation on the projection surface that re-orients point1 to point2. glow-up but for points. ๐Ÿ”ฅ

Implements SbCylinderProjector.

Reimplemented in SbCylinderPlaneProjector.

References SbCylinderProjector::cylinder, SbVec3f::dot(), SbLine::getClosestPoint(), SbLine::getDirection(), and SbRotation::getValue().

Referenced by SbCylinderPlaneProjector::getRotation().


void SbCylinderSectionProjector::setTolerance (const float edgetol)

the edgetol value decides how much of the cylinder's surface gets used for projection. 1.0 means the full cylinder half is used. that's the whole half, babe.

References SbCylinderProjector::needSetup, SoDebugError::postWarning(), and tolerance.


float SbCylinderSectionProjector::getTolerance (void ) const

returns the edge tolerance for the cylinder half. she's just handing you the number. ๐Ÿ’…

References tolerance.


SbBool SbCylinderSectionProjector::isWithinTolerance (const SbVec3f & point)

checks whether point is inside the part of the cylinder that's used for projections. yes or no, in or out. vibe check ๐Ÿซถ.

References SbCylinderProjector::needSetup, planeLine, setupTolerance(), and tolPlane.

Referenced by SbCylinderPlaneProjector::getRotation(), SbCylinderPlaneProjector::project(), and project().


void SbCylinderSectionProjector::setupTolerance (void ) [protected], [virtual]

recalculates the internal projection surface settings. you need to run this if any of the parameters influencing the projection surface got changed from subclasses without using the access methods. sneaky subclass edits? recalculate. don't skip it. ๐Ÿ˜ค

References SbCylinderProjector::cylinder, SbLine::getClosestPoint(), SbLine::getDirection(), SbLine::getPosition(), SbCylinderProjector::intersectFront, SbCylinderProjector::needSetup, SbCylinderProjector::orientToEye, planeDir, planeDist, planeLine, tolDist, tolerance, tolPlane, SbProjector::viewVol, and SbProjector::worldToWorking.

Referenced by isWithinTolerance(), SbCylinderPlaneProjector::project(), and project().


๐ŸŒธ Member Data Documentation ๐ŸŒธ

float SbCylinderSectionProjector::tolerance [protected]

the tolerance value, and she's the one deciding how much of the half-cylinder you get to project against. queen of boundaries. ๐Ÿ‘‘

Referenced by getTolerance(), SbCylinderSectionProjector(), SbCylinderSectionProjector(), setTolerance(), and setupTolerance().


float SbCylinderSectionProjector::tolDist [protected]

tolerance value multiplied with the cylinder radius. math bestie. ๐Ÿงฎ

Referenced by setupTolerance().


SbVec3f SbCylinderSectionProjector::planeDir [protected]

direction of the cutting plane. that's the slice direction, iykyk. ๐Ÿ”ช

Referenced by SbCylinderPlaneProjector::getRotation(), and setupTolerance().


SbLine SbCylinderSectionProjector::planeLine [protected]

a line within the plane which is parallel to the cylinder axis. parallel. always parallel.

Referenced by SbCylinderPlaneProjector::getRotation(), isWithinTolerance(), project(), and setupTolerance().


float SbCylinderSectionProjector::planeDist [protected]

distance from the plane to the cylinder axis. just a lil measurement โœจ.

Referenced by setupTolerance().


SbPlane SbCylinderSectionProjector::tolPlane [protected]

defines the plane cutting the cylinder into a projection part. this is the slicer. the one doing the actual slicing. ๐ŸŽ€

Referenced by isWithinTolerance(), SbCylinderPlaneProjector::project(), project(), and setupTolerance().


๐Ÿงš Author ๐Ÿงš

generated automatically by Doxygen for Coin from the source code. so like, no human author to thank, just the machine doing its lil thing. ๐Ÿค–๐Ÿ’–


okay that's the whole page bestie, you ate it. ๐Ÿซถโœจ this was Coin, Version 2.5.0 โ€” mwah, love u, go project something iconic ๐Ÿ’…๐ŸŒˆ

๐Ÿ“ฆ where this page comes from