00001 #ifndef COIN_SBPLANEPROJECTOR_H
00002 #define COIN_SBPLANEPROJECTOR_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/SbProjector.h>
00028 #include <Inventor/SbVec3f.h>
00029 #include <Inventor/SbPlane.h>
00030
00031 class COIN_DLL_API SbPlaneProjector : public SbProjector {
00032 typedef SbProjector inherited;
00033
00034 public:
00035 SbPlaneProjector(const SbBool orient = FALSE);
00036 SbPlaneProjector(const SbPlane & plane, const SbBool orient = FALSE);
00037 virtual SbProjector * copy(void) const;
00038
00039 virtual SbVec3f project(const SbVec2f & point);
00040 void setPlane(const SbPlane & plane);
00041 const SbPlane & getPlane(void) const;
00042 void setOrientToEye(const SbBool orienttoeye);
00043 SbBool isOrientToEye(void) const;
00044 virtual SbVec3f getVector(const SbVec2f & viewpos1,
00045 const SbVec2f & viewpos2);
00046 virtual SbVec3f getVector(const SbVec2f & viewpos);
00047 void setStartPosition(const SbVec2f & viewpos);
00048 void setStartPosition(const SbVec3f & point);
00049
00050 protected:
00051 void setupPlane(void);
00052
00053 protected:
00054 SbPlane plane, nonOrientPlane;
00055 SbBool orientToEye;
00056 SbBool needSetup;
00057 SbVec3f lastPoint;
00058 };
00059
00060 #endif // !COIN_SBPLANEPROJECTOR_H