00001 #ifndef COIN_SBCYLINDERSECTIONPROJECTOR_H
00002 #define COIN_SBCYLINDERSECTIONPROJECTOR_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/SbCylinderProjector.h>
00028 #include <Inventor/SbPlane.h>
00029 #include <Inventor/SbRotation.h>
00030
00031 class COIN_DLL_API SbCylinderSectionProjector : public SbCylinderProjector {
00032 typedef SbCylinderProjector inherited;
00033
00034 public:
00035 SbCylinderSectionProjector(const float edgetol = 0.9f,
00036 const SbBool orienttoeye = TRUE);
00037 SbCylinderSectionProjector(const SbCylinder & cyl,
00038 const float edgetol = 0.9f,
00039 const SbBool orienttoeye = TRUE);
00040
00041 virtual SbProjector * copy(void) const;
00042 virtual SbVec3f project(const SbVec2f & point);
00043 virtual SbRotation getRotation(const SbVec3f & point1,
00044 const SbVec3f & point2);
00045 void setTolerance(const float edgetol);
00046 float getTolerance(void) const;
00047 SbBool isWithinTolerance(const SbVec3f & point);
00048
00049 protected:
00050 virtual void setupTolerance(void);
00051 float tolerance;
00052 float tolDist;
00053 SbVec3f planeDir;
00054 SbLine planeLine;
00055 float planeDist;
00056 SbPlane tolPlane;
00057
00058 private:
00059 float sqrtoldist;
00060 };
00061
00062 #endif // !COIN_SBCYLINDERSECTIONPROJECTOR_H