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