00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COIN_SOGETMATRIXACTION_H
00021 #define COIN_SOGETMATRIXACTION_H
00022
00023 #include <Inventor/actions/SoAction.h>
00024 #include <Inventor/actions/SoSubAction.h>
00025 #include <Inventor/SbViewportRegion.h>
00026 #include <Inventor/SbRotation.h>
00027 #include <Inventor/SbMatrix.h>
00028 #include <Inventor/SbVec3f.h>
00029
00030
00031 class COIN_DLL_API SoGetMatrixAction : public SoAction {
00032 typedef SoAction inherited;
00033
00034 SO_ACTION_HEADER(SoGetMatrixAction);
00035
00036 public:
00037 SoGetMatrixAction(const SbViewportRegion & region);
00038 virtual ~SoGetMatrixAction();
00039
00040 static void initClass(void);
00041
00042 void setViewportRegion(const SbViewportRegion & region);
00043 const SbViewportRegion & getViewportRegion(void) const;
00044
00045 SbMatrix & getMatrix(void);
00046 SbMatrix & getInverse(void);
00047 SbMatrix & getTextureMatrix(void);
00048 SbMatrix & getTextureInverse(void);
00049
00050 protected:
00051 virtual void beginTraversal(SoNode * node);
00052
00053 private:
00054 SbMatrix matrix, invmatrix;
00055 SbMatrix texmatrix, invtexmatrix;
00056 SbViewportRegion viewportregion;
00057 };
00058
00059 #endif // !COIN_SOGETMATRIXACTION_H