Coin3D is Free Software, published under the BSD 3-clause license. |
https://bitbucket.org/Coin3D/ http://www.kongsberg.com/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 SbVec3f & | getNormal (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) |

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.

SbPlane::SbPlane | ( | void | ) |

An SbPlane instantiated with the default constructor will be uninitialized.

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.

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.

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).

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.

- See also
- 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().

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.

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

Check the two given planes for equality.

Check the two given planes for unequality.

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

- SbPlane.h
- SbPlane.cpp