00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SBSPHERESECTIONPROJECTOR_H
00021
#define COIN_SBSPHERESECTIONPROJECTOR_H
00022
00023
#include <Inventor/projectors/SbSphereProjector.h>
00024
#include <Inventor/SbPlane.h>
00025
00026
00027 class COIN_DLL_API SbSphereSectionProjector :
public SbSphereProjector {
00028
typedef SbSphereProjector inherited;
00029
00030
public:
00031 SbSphereSectionProjector(
const float edgetol = 0.9f,
00032
const SbBool orienttoeye = TRUE);
00033 SbSphereSectionProjector(
const SbSphere & sph,
00034
const float edgetol = 0.9f,
00035
const SbBool orienttoeye = TRUE);
00036
00037
virtual SbProjector *
copy(
void)
const;
00038
virtual SbVec3f project(
const SbVec2f & point);
00039
virtual SbRotation getRotation(
const SbVec3f & point1,
00040
const SbVec3f & point2);
00041
void setTolerance(
const float edgetol);
00042
float getTolerance(
void)
const;
00043
void setRadialFactor(
const float rad = 0.0f);
00044
float getRadialFactor(
void)
const;
00045 SbBool isWithinTolerance(
const SbVec3f & point);
00046
00047
protected:
00048
virtual void setupTolerance(
void);
00049
00050
float tolerance;
00051
float tolDist;
00052
float radialFactor;
00053
SbVec3f planePoint;
00054
SbVec3f planeDir;
00055
float planeDist;
00056
SbPlane tolPlane;
00057
00058
private:
00059
float sqrtoldist;
00060 };
00061
00062
#endif // !COIN_SBSPHERESECTIONPROJECTOR_H