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