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