00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COIN_SBCYLINDERPROJECTOR_H
00021 #define COIN_SBCYLINDERPROJECTOR_H
00022
00023 #include <Inventor/projectors/SbProjector.h>
00024 #include <Inventor/SbCylinder.h>
00025
00026 class COIN_DLL_API SbCylinderProjector : public SbProjector {
00027 typedef SbProjector inherited;
00028
00029 public:
00030 virtual SbVec3f project(const SbVec2f & point) = 0;
00031 SbVec3f projectAndGetRotation(const SbVec2f & point, SbRotation & rot);
00032 virtual SbRotation getRotation(const SbVec3f & point1,
00033 const SbVec3f & point2) = 0;
00034 void setCylinder(const SbCylinder & cyl);
00035 const SbCylinder & getCylinder(void) const;
00036 void setOrientToEye(const SbBool orienttoeye);
00037 SbBool isOrientToEye(void) const;
00038 void setFront(const SbBool infront);
00039 SbBool isFront(void) const;
00040 SbBool isPointInFront(const SbVec3f & point) const;
00041 virtual void setWorkingSpace(const SbMatrix & space);
00042
00043 protected:
00044 SbCylinderProjector(const SbBool orienttoeye);
00045 SbCylinderProjector(const SbCylinder & cylinder, const SbBool orienttoeye);
00046
00047 SbBool intersectCylinderFront(const SbLine & line, SbVec3f & result);
00048
00049 SbBool intersectFront;
00050 SbCylinder cylinder;
00051 SbBool orientToEye;
00052 SbBool needSetup;
00053 SbVec3f lastPoint;
00054 };
00055
00056 #endif // !COIN_SBCYLINDERPROJECTOR_H