![]() |
http://www.sim.no http://www.coin3d.org |
This class is used within many other classes in Coin. It contains the data neccessary to represent a sphere (a 3D point and a radius). More...
#include <Inventor/SbLinear.h>
Public Member Functions | |
SbSphere (void) | |
SbSphere (const SbVec3f ¢er, const float radius) | |
void | setValue (const SbVec3f ¢er, const float radius) |
void | setCenter (const SbVec3f ¢er) |
void | setRadius (const float radius) |
const SbVec3f & | getCenter (void) const |
float | getRadius (void) const |
void | circumscribe (const SbBox3f &box) |
SbBool | intersect (const SbLine &l, SbVec3f &intersection) const |
SbBool | intersect (const SbLine &l, SbVec3f &enter, SbVec3f &exit) const |
SbBool | pointInside (const SbVec3f &p) const |
void | print (FILE *file) const |
This class is used within many other classes in Coin. It contains the data neccessary to represent a sphere (a 3D point and a radius).
SbSphere::SbSphere | ( | void | ) |
The default constructor does nothing. The center point and the radius will be uninitialized.
SbSphere::SbSphere | ( | const SbVec3f & | centerarg, | |
const float | radiusarg | |||
) |
Construct an SbSphere instance with the given center point and radius.
References SoDebugError::postWarning(), and setValue().
void SbSphere::setValue | ( | const SbVec3f & | centerarg, | |
const float | radiusarg | |||
) |
Set the sphere's center point and radius.
References SoDebugError::postWarning(), setCenter(), and setRadius().
Referenced by SbSphere().
void SbSphere::setCenter | ( | const SbVec3f & | centerarg | ) |
Set the sphere's center point.
Referenced by circumscribe(), and setValue().
void SbSphere::setRadius | ( | const float | radiusarg | ) |
Set the sphere's radius.
References SoDebugError::postWarning().
Referenced by circumscribe(), SbBSPTree::findClosest(), and setValue().
const SbVec3f & SbSphere::getCenter | ( | void | ) | const |
Returns an SbVec3f with the sphere's center point.
Referenced by SbBSPTree::findClosest(), SbSphereSectionProjector::getRotation(), SbSpherePlaneProjector::getRotation(), intersect(), SbSphereProjector::isPointInFront(), print(), SbSphereSectionProjector::project(), SbSphereSheetProjector::setupPlane(), and SbSphereSectionProjector::setupTolerance().
float SbSphere::getRadius | ( | void | ) | const |
Returns the sphere's radius.
Referenced by SbSpherePlaneProjector::getRotation(), intersect(), print(), SbSphereSheetProjector::project(), SbSphereSectionProjector::setupTolerance(), SoPerspectiveCamera::viewBoundingBox(), SoOrthographicCamera::viewBoundingBox(), and SoFrustumCamera::viewBoundingBox().
void SbSphere::circumscribe | ( | const SbBox3f & | box | ) |
Make the sphere exactly contain box, i.e. the sphere center point will be the same as that of the box, and the radius will be the distance from the box center point to any of the corners.
References SbBox3f::getCenter(), SbBox3f::getSize(), SbBox3f::isEmpty(), SoDebugError::postWarning(), setCenter(), and setRadius().
Referenced by SoPerspectiveCamera::viewBoundingBox(), SoOrthographicCamera::viewBoundingBox(), and SoFrustumCamera::viewBoundingBox().
Finds the intersection enter point for the given line l on the sphere.
If the line does not intersect the sphere, FALSE is returned.
Referenced by SbSphereProjector::intersectSphereFront(), and SbSphereSectionProjector::project().
Find the intersection points of the ray l on the sphere and return these in enter and exit. If the ray just "grazes" the sphere, the enter and exit points have equal values.
If the ray does not intersect the sphere, FALSE is returned, otherwise we will return TRUE.
References SbVec3f::dot(), getCenter(), SbLine::getDirection(), SbLine::getPosition(), getRadius(), SbVec3f::length(), SbVec3f::normalize(), and SoDebugError::postWarning().
SbBool SbSphere::pointInside | ( | const SbVec3f & | p | ) | const |
Returns TRUE of the given point p lies within the sphere.
void SbSphere::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 compile.
References getCenter(), getRadius(), and SbVec3f::print().
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Mon Feb 23 16:33:41 2009 for Coin by Doxygen. 1.5.8