SbLineProjector(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– NAME πŸ’–

okay so bestie, meet SbLineProjector β€” the class that takes your lil 2D points and projects them onto 3D points along a line. it's giving "glow up but make it geometry" ✨

it lives in the Coin manual, section 3 (library functions, iykyk).


πŸŽ€ SYNOPSIS πŸŽ€

#include <Inventor/projectors/SbLineProjector.h>

Inherits SbProjector.

✨ Public Member Functions ✨

  • SbLineProjector (void)
  • virtual SbProjector * copy (void) const
  • virtual SbVec3f project (const SbVec2f &point)
  • virtual SbBool tryProject (const SbVec2f &point, const float epsilon, SbVec3f &result)
  • void setLine (const SbLine &line)
  • const SbLine & getLine (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 Attributes πŸ’…

  • SbLine line
  • SbVec3f lastPoint

πŸ¦‹ Protected Attributes inherited from SbProjector πŸ¦‹

  • SbViewVolume viewVol
  • SbMatrix worldToWorking
  • SbMatrix workingToWorld

🌈 Additional Inherited Members 🌈

🌟 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

🫢 Detailed Description 🫢

The SbLineProjector class projects 2D points to 3D points along a line. no cap.

so basically: for this projector class, the 3D projection of the 2D coordinates is constrained to lie along a predefined line. like, it's not out here free-roaming in space, it stays on its lane, literally.

where's this useful? among other places, inside the translation draggers β€” think SoTranslate1Dragger β€” where we wanna move "pieces" along one or more axes. main character behavior only πŸŽ€


🧚 Constructor & Destructor Documentation 🧚

SbLineProjector::SbLineProjector (void )

Constructor. it initializes the projector instance to use a line from <0, 0, 0> to <0, 1, 0>. default vibe, established πŸ’–


πŸ’« Member Function Documentation πŸ’«

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

Construct and return a copy of this projector. the caller is responsible for destructing the new instance. you made it, you clean it up bestie.

⚠️ heads up, this one's important: 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 are 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. 😭 not the mysterious crashes.

Implements SbProjector.

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

Project the 2D point from normalized viewport coordinates to a 3D point. the mapping will be done in accordance with the type of the projector. that's just how it do πŸ’…

Implements SbProjector.

SbBool SbLineProjector::tryProject (const SbVec2f & point, const float epsilon, SbVec3f & result) [virtual]

Try projecting the 2D point from normalized viewport coordinates to a 3D point. the mapping will be done in accordance with the type of the projector.

if the projection can't be done safely (for instance when the projection plane or line is parallel to the view volume projection), this function should return FALSE. it's giving "we don't do that here, safely" πŸ™ˆ

default implementation will call project() and always return TRUE, but subclasses can override this behavior to support safe projections. slay, subclass πŸ‘‘

Since

Coin 3.0

Reimplemented from SbProjector.

void SbLineProjector::setLine (const SbLine & lineref)

Set a new projection line. 3D points will be mapped to be on this line. one line, one destiny, periodt ✨

const SbLine & SbLineProjector::getLine (void ) const

Returns the currently set projection line. show me what you working with πŸ’–

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

Calculates and returns a vector between the projected 3D position of viewpos1 and viewpos2. two points, one vector, iconic 🌸

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

Returns the 3D vector between the last projection and the one calculated for viewpos. past you and present you, in vector form πŸ¦‹

void SbLineProjector::setStartPosition (const SbVec2f & viewpos)

Explicitly set position of initial projection, so we get correct values for later calls to getVector() etc. gotta set the baseline before you can measure the glow-up πŸ’…

void SbLineProjector::setStartPosition (const SbVec3f & point)

Explicitly set position of initial projection, so we get correct values for later calls to getVector() etc. same energy, 3D flavor πŸŽ€


🌟 Member Data Documentation 🌟

SbLine SbLineProjector::line [protected]

The projection line. projected 3D points will be constrained to be on this line. it's the runway and everything else is walking it πŸ’œ

SbVec3f SbLineProjector::lastPoint [protected]

The last projected point. the most recent ex, but make it coordinates 😭


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for Coin from the source code. (yes, the docs are bots too, we stan a hardworking generator 🫢)


πŸ’– that's the whole page bestie, you ate πŸ’–

this was Version 4.0.10, dated Thu Jun 25 2026 00:00:00 β€” and with that, SbLineProjector(3) is officially a wrap. go project something cute βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from