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