SbCylinder...nProjector(3)
โจ 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) constvirtual SbVec3f project (const SbVec2f &point)virtual SbRotation getRotation (const SbVec3f &point1, const SbVec3f &point2)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) 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) constfloat findVanishingDistance (void) constSbBool verifyProjection (const SbVec3f &projpt) const
๐ Protected Attributes
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 ๐ฆ
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
- fedora 43: Coin2-devel 2.5.0-52.fc43 ยท GPL-2.0-only
- fedora 43: Coin2-devel 2.5.0-52.fc43 ยท GPL-2.0-only
- fedora 44: Coin2-devel 2.5.0-54.fc44 ยท GPL-2.0-only
- fedora 44: Coin2-devel 2.5.0-54.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