Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://coin3d.github.io
https://www.kongsberg.com/en/kogt/
SbDPLine Class Reference

The SbDPLine class represents a line using double precision coordinates. More...

#include <Inventor/SbDPLine.h>

Public Member Functions

 SbDPLine (void)
 
 SbDPLine (const SbVec3d &p0, const SbVec3d &p1)
 
void setValue (const SbVec3d &p0, const SbVec3d &p1)
 
void setPosDir (const SbVec3d &position, const SbVec3d &direction)
 
SbBool getClosestPoints (const SbDPLine &line2, SbVec3d &ptOnThis, SbVec3d &ptOnLine2) const
 
SbVec3d getClosestPoint (const SbVec3d &point) const
 
const SbVec3dgetPosition (void) const
 
const SbVec3dgetDirection (void) const
 
void print (FILE *file) const
 

Detailed Description

The SbDPLine class represents a line using double precision coordinates.

SbDPLine is used by many other classes in Coin. It provides a way of specifying a directed line (also known as a ray) through a specified point (origin) and a direction in 3D space. Note that the line is infinite in both directions from its definition point.

Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

See also
SbVec3d
Since
Coin 2.0

Constructor & Destructor Documentation

◆ SbDPLine() [1/2]

SbDPLine::SbDPLine ( void  )

The empty constructor does nothing. The line will be uninitialized until the first assignment or setValue() call.

◆ SbDPLine() [2/2]

SbDPLine::SbDPLine ( const SbVec3d p0,
const SbVec3d p1 
)

Constructor with p0 specifying the line start point and p1 the line end point. p0 should not be the same as p1, as this will lead to having a null vector as the direction vector, which would cause division by zero problems in some of the other methods on this class.

Member Function Documentation

◆ setValue()

void SbDPLine::setValue ( const SbVec3d p0,
const SbVec3d p1 
)

Set new position and direction of the line by specifying line start point and end point. p0 should not be the same as p1, as this will lead to having a null vector as the direction vector, which would cause division by zero problems in some of the other methods on this class.

◆ setPosDir()

void SbDPLine::setPosDir ( const SbVec3d position,
const SbVec3d direction 
)

Set position and direction.

Be aware that the direction vector will be normalized and not be the same as provided to this method.

See also
setValue, getOrigin, getDirection
Since
Coin 4.0

◆ getClosestPoints()

SbBool SbDPLine::getClosestPoints ( const SbDPLine line2,
SbVec3d ptOnThis,
SbVec3d ptOnLine2 
) const

Returns the two closest points on the lines. If the lines are parallel, all points are equally close and we return FALSE. If the lines are not parallel, the point positions will be stored in ptOnThis and ptOnLine2, and we'll return TRUE.

See also
getClosestPoint().

◆ getClosestPoint()

SbVec3d SbDPLine::getClosestPoint ( const SbVec3d point) const

Returns the point on the line which is closest to point.

See also
getClosestPoints().

◆ getPosition()

const SbVec3d & SbDPLine::getPosition ( void  ) const

Return a vector representing a point on the line.

◆ getDirection()

const SbVec3d & SbDPLine::getDirection ( void  ) const

Return a vector representing the direction of the line. The direction vector will always be normalized.

◆ print()

void SbDPLine::print ( FILE *  fp) const

Dump the state of this object to the fp file stream. Only works in debug version of library, method does nothing in an optimized build.


The documentation for this class was generated from the following files: