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