sbplane(3)
NAME
SbPlane
SYNOPSIS
#include <Inventor/SbLinear.h>
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.
- 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) - Friends
- int operator== (const SbPlane &p1, const SbPlane &p2) int operator!= (const SbPlane &p1, const SbPlane &p2)
Constructor & Destructor Documentation
- 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.
- References SbVec3f::normalize(), SoDebugError::postWarning(), and
SbVec3f::sqrLength(). - 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. - References SbVec3f::dot(), SbVec3f::normalize(),
SoDebugError::postWarning(), and SbVec3f::sqrLength(). - 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.
- References SbVec3f::dot(), SbVec3f::normalize(),
SoDebugError::postWarning(), and SbVec3f::sqrLength().
Member Function Documentation
- void SbPlane::offset (const float d)
- Add the given offset d to the plane distance from the origin.
- 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). - References SbVec3f::dot(), SbLine::getDirection(),
SbLine::getPosition(), SoDebugError::postWarning(), and
SbVec3f::sqrLength(). - Referenced by SbSphereSheetProjector::project(),
SbSphereSectionProjector::project(), SbSpherePlaneProjector::project(), SbPlaneProjector::project(), SbLineProjector::project(),
SbCylinderSheetProjector::project(),
SbCylinderSectionProjector::project(), and
SbCylinderPlaneProjector::project(). - void SbPlane::transform (const SbMatrix & matrix)
- Transform the plane by matrix.
- See also:
offset()
- References SbVec3f::dot(), SbMatrix::inverse(),
SbMatrix::multDirMatrix(), SbMatrix::multVecMatrix(),
SbVec3f::normalize(), SoDebugError::postWarning(), and
SbMatrix::transpose(). - Referenced by SbPlaneProjector::project().
- 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. - References getDistance().
- Referenced by SbCylinderSectionProjector::isWithinTolerance(),
SbViewVolume::outsideTest(), and SbProjector::verifyProjection(). - 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. - References SbVec3f::dot().
- Referenced by SbClip::clip(), SoClipPlaneManip::fieldSensorCB(),
isInHalfSpace(), and SbPlaneProjector::project(). - const SbVec3f & SbPlane::getNormal (void) const
- Return the plane's normal vector, which indicates which direction the
plane is oriented. - See also:
getDistanceFromOrigin().
- Referenced by SbClip::clip(), SoClipPlaneManip::fieldSensorCB(),
print(), SbPlaneProjector::project(), SbVec3f::SbVec3f(), and
SbPlaneProjector::setupPlane(). - 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().
- Referenced by print(), SbVec3f::SbVec3f(), and
SbPlaneProjector::setupPlane(). - 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.
- References getDistanceFromOrigin(), getNormal(), and SbVec3f::print().
- SbBool SbPlane::intersect (const SbPlane & pl, SbLine & line)
- 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
- References SbVec3f::cross(), distance, and normal.
Friends And Related Function Documentation
- int operator== (const SbPlane & p1, const SbPlane & p2) [friend]
- Check the two given planes for equality.
- int operator!= (const SbPlane & p1, const SbPlane & p2) [friend]
- Check the two given planes for unequality.
Author
- Generated automatically by Doxygen for Coin from the source code.