#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 SbVec3f & | getNormal (void) const |
float | getDistanceFromOrigin (void) const |
void | print (FILE *file) const |
Friends | |
int | operator== (const SbPlane &p1, const SbPlane &p2) |
int | operator!= (const SbPlane &p1, const SbPlane &p2) |
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.
SbPlane::SbPlane | ( | void | ) |
An SbPlane instantiated with the default constructor will be uninitialized.
SbPlane::SbPlane | ( | const SbVec3f & | normal, | |
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.
Construct an SbPlane with three points laying in the plane. Make sure p0, p1 and p2 are actually three distinct points when using this constructor.
Construct an SbPlane from a normal and a point laying in the plane.
normal must not be a null vector.
void SbPlane::offset | ( | const float | d | ) |
Add the given offset d to the plane distance from the origin.
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).
void SbPlane::transform | ( | const SbMatrix & | matrix | ) |
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.
float SbPlane::getDistance | ( | const SbVec3f & | point | ) | const |
Return the distance from point to plane. Positive distance means the point is in the plane's half space.
This method is an extension specific to Coin versus the original SGI Inventor API.
const SbVec3f & SbPlane::getNormal | ( | void | ) | const |
Return the plane's normal vector, which indicates which direction the plane is oriented.
float SbPlane::getDistanceFromOrigin | ( | void | ) | const |
Return distance from origin of coordinate system to the point in the plane which is closest to the origin.
void SbPlane::print | ( | FILE * | fp | ) | const |
Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized build.
Check the two given planes for equality.
Check the two given planes for unequality.