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

The SbPlane class represents a plane in 3D space. More...

#include <Inventor/SbLinear.h>

Public Member Functions

 SbPlane (void)
 
 SbPlane (const SbVec3f &normal, const float D)
 
 SbPlane (const SbVec3f &p0, const SbVec3f &p1, const SbVec3f &p2)
 
 SbPlane (const SbVec3f &normal, const SbVec3f &point)
 
void offset (const float d)
 
SbBool intersect (const SbLine &l, SbVec3f &intersection) const
 
void transform (const SbMatrix &matrix)
 
SbBool isInHalfSpace (const SbVec3f &point) const
 
float getDistance (const SbVec3f &point) const
 
const SbVec3fgetNormal (void) const
 
float getDistanceFromOrigin (void) const
 
void print (FILE *file) const
 
SbBool intersect (const SbPlane &pl, SbLine &line) const
 

Friends

int operator== (const SbPlane &p1, const SbPlane &p2)
 
int operator!= (const SbPlane &p1, const SbPlane &p2)
 

Detailed Description

The SbPlane class represents a plane in 3D space.

SbPlane is used by many other classes in Coin. It provides a way of representing a plane, specified by a plane normal vector and a distance from the origin of the coordinate system.

Constructor & Destructor Documentation

◆ SbPlane() [1/4]

SbPlane::SbPlane ( void  )

An SbPlane instantiated with the default constructor will be uninitialized.

◆ SbPlane() [2/4]

SbPlane::SbPlane ( const SbVec3f normalref,
const float  D 
)

Construct an SbPlane instance with a normal pointing in the given direction and the given shortest distance from the origin of the coordinate system to a point in the plane.

normal must not be a null vector.

◆ SbPlane() [3/4]

SbPlane::SbPlane ( const SbVec3f p0,
const SbVec3f p1,
const SbVec3f p2 
)

Construct an SbPlane with three points laying in the plane. Make sure p0, p1 and p2 are actually three distinct points, not on a line, when using this constructor.

◆ SbPlane() [4/4]

SbPlane::SbPlane ( const SbVec3f normalref,
const SbVec3f point 
)

Construct an SbPlane from a normal and a point laying in the plane.

normal must not be a null vector.

Member Function Documentation

◆ offset()

void SbPlane::offset ( const float  d)

Add the given offset d to the plane distance from the origin.

◆ intersect() [1/2]

SbBool SbPlane::intersect ( const SbLine l,
SbVec3f intersection 
) const

Find the point on given line l intersecting the plane and return it in intersection. If the line is parallel to the plane, we return FALSE, otherwise TRUE.

Do not pass an invalid line for the l parameter (i.e. with a null direction vector).

◆ transform()

void SbPlane::transform ( const SbMatrix matrix)

Transform the plane by matrix.

See also
offset()

◆ isInHalfSpace()

SbBool SbPlane::isInHalfSpace ( const SbVec3f point) const

Check if the given point lies in the halfspace of the plane which the plane normal vector is pointing.

◆ getDistance()

float SbPlane::getDistance ( const SbVec3f point) const

Return the distance from point to plane. Positive distance means the point is in the plane's halfspace.

This method is an extension specific to Coin versus the original SGI Inventor API.

◆ getNormal()

const SbVec3f & SbPlane::getNormal ( void  ) const

Return the plane's normal vector, which indicates which direction the plane is oriented.

See also
getDistanceFromOrigin().

◆ getDistanceFromOrigin()

float SbPlane::getDistanceFromOrigin ( void  ) const

Return distance from origin of coordinate system to the point in the plane which is closest to the origin.

See also
getNormal().

◆ print()

void SbPlane::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.

◆ intersect() [2/2]

SbBool SbPlane::intersect ( const SbPlane pl,
SbLine line 
) const

Intersect this plane with pl, and return the resulting line in line. Returns TRUE if an intersection line can be found, and FALSE if the planes are parallel.

Please note that the resulting SbLine must be considered as a line intersecting the SbLine's origin, extending infinitely in both directions.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since
Coin 2.0

Friends And Related Function Documentation

◆ operator==

int operator== ( const SbPlane p1,
const SbPlane p2 
)
friend

Check the two given planes for equality.

◆ operator!=

int operator!= ( const SbPlane p1,
const SbPlane p2 
)
friend

Check the two given planes for inequality.


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