00001 #ifndef COIN_SBVIEWPORTREGION_H
00002 #define COIN_SBVIEWPORTREGION_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 <stdio.h>
00028 #include <Inventor/SbVec2s.h>
00029 #include <Inventor/SbVec2f.h>
00030
00031 class COIN_DLL_API SbViewportRegion {
00032 public:
00033 SbViewportRegion(void);
00034 SbViewportRegion(short width, short height);
00035 SbViewportRegion(SbVec2s winSize);
00036 SbViewportRegion(const SbViewportRegion & vpReg);
00037
00038 void setWindowSize(short width, short height);
00039 void setWindowSize(SbVec2s winSize);
00040 void setViewport(float left, float bottom,
00041 float width, float height);
00042 void setViewport(SbVec2f origin, SbVec2f size);
00043 void setViewportPixels(short left, short bottom,
00044 short width, short height);
00045 void setViewportPixels(SbVec2s origin, SbVec2s size);
00046 const SbVec2s & getWindowSize(void) const;
00047 const SbVec2f & getViewportOrigin(void) const;
00048 const SbVec2s & getViewportOriginPixels(void) const;
00049 const SbVec2f & getViewportSize(void) const;
00050 const SbVec2s & getViewportSizePixels(void) const;
00051 float getViewportAspectRatio(void) const;
00052 void scaleWidth(float ratio);
00053 void scaleHeight(float ratio);
00054 void setPixelsPerInch(float ppi);
00055 float getPixelsPerInch(void) const;
00056 float getPixelsPerPoint(void) const;
00057 friend COIN_DLL_API int operator ==(const SbViewportRegion & reg1,
00058 const SbViewportRegion & reg2);
00059
00060 void print(FILE * file) const;
00061
00062 private:
00063 SbVec2s winsize;
00064 SbVec2f vporigin;
00065 SbVec2f vpsize;
00066 SbVec2s vporigin_s;
00067 SbVec2s vpsize_s;
00068 float pixperinch;
00069 };
00070
00071 COIN_DLL_API int operator ==(const SbViewportRegion & reg1, const SbViewportRegion & reg2);
00072
00073 #endif // !COIN_SBVIEWPORTREGION_H