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