00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SBPROJECTOR_H
00021
#define COIN_SBPROJECTOR_H
00022
00023
#include <Inventor/SbVec3f.h>
00024
#include <Inventor/SbLine.h>
00025
#include <Inventor/SbMatrix.h>
00026
#include <Inventor/SbViewVolume.h>
00027
00028
class SbVec2f;
00029
00030
00031 class COIN_DLL_API SbProjector {
00032
public:
00033
virtual SbVec3f project(
const SbVec2f & point) = 0;
00034
virtual void setViewVolume(
const SbViewVolume & vol);
00035
const SbViewVolume & getViewVolume(
void)
const;
00036
virtual void setWorkingSpace(
const SbMatrix & space);
00037
const SbMatrix & getWorkingSpace(
void)
const;
00038
virtual SbProjector * copy(
void)
const = 0;
00039
00040
protected:
00041 SbProjector(
void);
00042 virtual ~SbProjector() { }
00043
00044
SbLine getWorkingLine(
const SbVec2f & point)
const;
00045
00046
SbViewVolume viewVol;
00047
SbMatrix worldToWorking, workingToWorld;
00048 };
00049
00050
#endif // !COIN_SBPROJECTOR_H