SBCYLINDERPLANEPROJECTOR(3coin3)
π 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 swingspoint1over topoint2.
πΈ 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) constSbBool 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) constvoid setOrientToEye(const SbBool orienttoeye)SbBool isOrientToEye(void) constvoid setFront(const SbBool infront)SbBool isFront(void) constSbBool isPointInFront(const SbVec3f &point) constvirtual void setWorkingSpace(const SbMatrix &space)
π Public Member Functions inherited from SbProjector
virtual void setViewVolume(const SbViewVolume &vol)const SbViewVolume & getViewVolume(void) constconst SbMatrix & getWorkingSpace(void) constvirtual 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, wheretol1andtol2decide 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) constfloat findVanishingDistance(void) constSbBool verifyProjection(const SbVec3f &projpt) const
β Additional Inherited Members
π Protected Attributes inherited from SbCylinderSectionProjector
float tolerancefloat tolDistSbVec3f planeDirSbLine planeLinefloat planeDistSbPlane tolPlane
π Protected Attributes inherited from SbCylinderProjector
SbBool intersectFrontSbCylinder cylinderSbBool orientToEyeSbBool needSetupSbVec3f lastPoint
π¦ Protected Attributes inherited from SbProjector
SbViewVolume viewVolSbMatrix worldToWorkingSbMatrix 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
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms