SbPlaneProjector(3)

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

πŸ’… SbPlaneProjector β€” the bestie edition

okay so this is the manual page for SbPlaneProjector, and it lives in the Library Functions Manual, and honestly? it's giving "2D points go in, 3D points come out, but make it ✨planar✨". no cap. sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

SbPlaneProjector β€” the class that projects 2D points to 3D points in a plane. that's it. that's the whole vibe.


πŸŽ€ SYNOPSIS πŸŽ€

#include <Inventor/projectors/SbPlaneProjector.h>

Inherits SbProjector. yes bestie, it's a nepo baby, but in a cute way πŸ’–

πŸ‘‘ Public Member Functions

SbPlaneProjector (const SbBool orient=0)
SbPlaneProjector (const SbPlane &plane, const SbBool orient=0)
virtual SbProjector * copy (void) const
virtual SbVec3f project (const SbVec2f &point)
void setPlane (const SbPlane &plane)
const SbPlane & getPlane (void) const
void setOrientToEye (const SbBool orienttoeye)
SbBool isOrientToEye (void) const
virtual SbVec3f getVector (const SbVec2f &viewpos1, const SbVec2f &viewpos2)
virtual SbVec3f getVector (const SbVec2f &viewpos)
void setStartPosition (const SbVec2f &viewpos)
void setStartPosition (const SbVec3f &point)

🌈 Public Member Functions inherited from SbProjector

virtual void setViewVolume (const SbViewVolume &vol)
const SbViewVolume & getViewVolume (void) const
virtual void setWorkingSpace (const SbMatrix &space)
const SbMatrix & getWorkingSpace (void) const

🧚 Protected Member Functions

void setupPlane (void)

🌸 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

SbPlane plane
SbPlane nonOrientPlane
SbBool orientToEye
SbBool needSetup
SbVec3f lastPoint

πŸ’œ Protected Attributes inherited from SbProjector

SbViewVolume viewVol
SbMatrix worldToWorking
SbMatrix workingToWorld

🌟 Detailed Description 🌟

The SbPlaneProjector class projects 2D points to 3D points in a plane. iconic behaviour, truly.

The 3D projection of the 2D coordinates is for this projector class constrained to lie inside a pre-defined 3D plane. so like, you can't just go anywhere β€” it's staying in its lane, and its lane is a plane. periodt.

πŸ‘€ See also

SbLineProjector β€” the other one, if planes aren't your thing 🫢


🍼 Constructor & Destructor Documentation

SbPlaneProjector::SbPlaneProjector (const SbBool orient = 0)

Constructor. Sets up a projection plane parallel with the XY-plane in world coordinates. easy, breezy, default.

References needSetup, nonOrientPlane, orientToEye, and plane.

Referenced by copy().

SbPlaneProjector::SbPlaneProjector (const SbPlane & plane, const SbBool orient = 0)

Constructor taking an explicit projection plane definition. you wanna be specific? slay, go off πŸ’…

References needSetup, nonOrientPlane, orientToEye, and plane.


πŸ’– Member Function Documentation

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

Construct and return a copy of this projector. The caller is responsible for destructing the new instance. yes bestie, you own it now. it's yours. 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. no cap, this one is serious β€” mismatch your CRT and you're getting haunted by mystery crashes. πŸ’€

Implements SbProjector.

References SbPlaneProjector().

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

Projects 2D point into a 3D point within the current projection plane. the main character function, honestly πŸ‘‘

Implements SbProjector.

References SbProjector::findVanishingDistance(), SbLine::getClosestPoints(), SbLine::getDirection(), SbLine::getPosition(), SbProjector::getWorkingLine(), SbPlane::intersect(), needSetup, SbViewVolume::ORTHOGRAPHIC, plane, SoDebugError::post(), setupPlane(), SbPlane::transform(), SbProjector::verifyProjection(), SbProjector::viewVol, SbProjector::workingToWorld, and SbProjector::worldToWorking.

Referenced by getVector(), getVector(), and setStartPosition().

void SbPlaneProjector::setPlane (const SbPlane & planeref)

Set a new projection plane. new plane, new me πŸ¦‹

References needSetup, nonOrientPlane, and plane.

const SbPlane & SbPlaneProjector::getPlane (void ) const

Returns the current projection plane. so you know where you're at.

References plane.

void SbPlaneProjector::setOrientToEye (const SbBool orienttoeye)

Sets whether or not the plane should always be oriented towards the "eye" of the viewer. like it's making eye contact with the camera. obsessed.

References needSetup, and orientToEye.

SbBool SbPlaneProjector::isOrientToEye (void ) const

Returns the state of the plane orientation flag. just a lil bool check-in πŸ’œ

References orientToEye.

SbVec3f SbPlaneProjector::getVector (const SbVec2f & viewpos1, const SbVec2f & viewpos2) [virtual]

Returns a vector between the projected 3D points of viewpos1 and viewpos2. two points, one vector, math is romance fr fr.

References lastPoint, and project().

SbVec3f SbPlaneProjector::getVector (const SbVec2f & viewpos) [virtual]

Returns a vector between the last projected point and the projected 3D point of viewpos. it remembers where you were. lowkey sentimental πŸ₯Ί

References lastPoint, and project().

void SbPlaneProjector::setStartPosition (const SbVec2f & viewpos)

Explicitly set position of initial projection, so we get correct values for later calls to getVector() etc. set it up right at the start, bestie, future you will be so grateful ✨

References lastPoint, and project().

void SbPlaneProjector::setStartPosition (const SbVec3f & point)

Explicitly set position of initial projection, so we get correct values for later calls to getVector() etc. same energy, but you're handing over a 3D point directly. no notes. πŸ’…

References lastPoint.

void SbPlaneProjector::setupPlane (void ) [protected]

Should be called whenever SbPlaneProjector::needSetup is TRUE. Will recalculate projection plane. it's the glow-up routine β€” only runs when needSetup says so.

References needSetup, nonOrientPlane, orientToEye, plane, SbProjector::viewVol, and SbProjector::worldToWorking.

Referenced by project().


🫢 Member Data Documentation

SbPlane SbPlaneProjector::plane [protected]

The projection plane. that's it, that's the plane.

Referenced by getPlane(), project(), SbPlaneProjector(), SbPlaneProjector(), setPlane(), and setupPlane().

SbPlane SbPlaneProjector::nonOrientPlane [protected]

The "original" plane which was set (as opposed to the recalculated projection plane according to the SbPlaneProjector::orientToEye setting). so: the before picture, versus the after picture. πŸ’–

Referenced by SbPlaneProjector(), SbPlaneProjector(), setPlane(), and setupPlane().

SbBool SbPlaneProjector::orientToEye [protected]

Which direction the plane is oriented. it's the vibe check flag for which way the plane is facing.

Referenced by isOrientToEye(), SbPlaneProjector(), SbPlaneProjector(), setOrientToEye(), and setupPlane().

SbBool SbPlaneProjector::needSetup [protected]

Set to TRUE whenever the plane needs to be recalculated according to the setting of the SbPlaneProjector::orientToEye flag. it's the "bestie we need to talk" flag. 🚨

Referenced by project(), SbPlaneProjector(), SbPlaneProjector(), setOrientToEye(), setPlane(), and setupPlane().

SbVec3f SbPlaneProjector::lastPoint [protected]

Stores the previously projected 3D point. the receipts, basically. 🧾

Referenced by getVector(), getVector(), setStartPosition(), and setStartPosition().


🌸 Author 🌸

Generated automatically by Doxygen for Coin from the source code. not a human, just a very diligent little robot. be nice to it 🫢


okay that's the whole page!! and for the sign-off: this was Coin, Version 2.5.0, dated with the SbPlaneProjector(3) footer energy β€” so that's the source, the version, and the manual-section date all wrapped up with a bow πŸŽ€πŸ’– go project something beautiful, bestie. mwah. πŸ’…βœ¨

πŸ“¦ where this page comes from