Coin Logo http://www.sim.no
http://www.coin3d.org

Public Member Functions | List of all members
SbSphere Class Reference

The SbSphere class is a representation of a sphere.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 &center, const float radius)
 
void setValue (const SbVec3f &center, const float radius)
 
void setCenter (const SbVec3f &center)
 
void setRadius (const float radius)
 
const SbVec3fgetCenter (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
 

Detailed Description

The SbSphere class is a representation of a sphere.

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

See also
SbCylinder

Constructor & Destructor Documentation

◆ SbSphere() [1/2]

SbSphere::SbSphere ( void  )

The default constructor does nothing. The center point and the radius will be uninitialized.

◆ SbSphere() [2/2]

SbSphere::SbSphere ( const SbVec3f centerarg,
const float  radiusarg 
)

Construct an SbSphere instance with the given center point and radius.

References SoDebugError::postWarning(), and setValue().

Member Function Documentation

◆ setValue()

void SbSphere::setValue ( const SbVec3f centerarg,
const float  radiusarg 
)

Set the sphere's center point and radius.

See also
getCenter(), getRadius().

References SoDebugError::postWarning(), setCenter(), and setRadius().

Referenced by SbSphere().

◆ setCenter()

void SbSphere::setCenter ( const SbVec3f centerarg)

Set the sphere's center point.

See also
setValue(), setRadius() and getCenter().

Referenced by circumscribe(), and setValue().

◆ setRadius()

void SbSphere::setRadius ( const float  radiusarg)

Set the sphere's radius.

See also
setValue(), setCenter() and getRadius().

References SoDebugError::postWarning().

Referenced by circumscribe(), SbBSPTree::findClosest(), and setValue().

◆ getCenter()

const SbVec3f & SbSphere::getCenter ( void  ) const

◆ getRadius()

float SbSphere::getRadius ( void  ) const

◆ circumscribe()

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 SbTesselator::setCallback(), SoPerspectiveCamera::viewBoundingBox(), SoOrthographicCamera::viewBoundingBox(), and SoFrustumCamera::viewBoundingBox().

◆ intersect() [1/2]

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

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

◆ intersect() [2/2]

SbBool SbSphere::intersect ( const SbLine l,
SbVec3f enter,
SbVec3f exit 
) const

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

◆ pointInside()

SbBool SbSphere::pointInside ( const SbVec3f p) const

Returns TRUE of the given point p lies within the sphere.

◆ print()

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


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

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Fri Feb 17 2017 for Coin by Doxygen. 1.8.13