IvfView.h

00001 //
00002 // Copyright 1999-2006 by Structural Mechanics, Lund University.
00003 //
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Library General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2 of the License, or (at your option) any later version.
00008 //
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Library General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU Library General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00017 // USA.
00018 //
00019 // Please report all bugs and problems to "ivf@byggmek.lth.se".
00020 //
00021 //
00022 // Written by Jonas Lindemann
00023 //
00024 
00025 #ifndef _CIvfView_h_
00026 #define _CIvfView_h_
00027  
00028 #include <ivf/IvfObject.h>
00029 #include <ivf/IvfViewport.h>
00030 
00031 #include <ivfmath/IvfViewFrustum.h>
00032 
00033 IvfSmartPointer(CIvfView);
00034 
00042 class IVF_API CIvfView : public CIvfObject  {
00043 private:
00044         int m_viewX;
00045         int m_viewY;
00046         int m_viewHeight;
00047         int m_viewWidth;
00048         double m_viewAspect;
00049         
00050         CIvfViewportPtr m_viewport;
00051 
00052         bool m_selectTransform;
00053 public:
00054         void setViewport(CIvfViewport* viewport);
00055         CIvfViewport* getViewport();
00057         CIvfView();
00058 
00060         virtual ~CIvfView();
00061 
00062         IvfClassInfo("CIvfView",CIvfObject);
00063 
00070         virtual void initialize();
00071 
00082         virtual void initializeSelect(int x, int y, int w, int h);
00083 
00092         void setViewPort(int width, int height);
00093 
00101         virtual void getViewFrustum(CIvfViewFrustum* frustum);
00102 
00104         void getViewPort(int &w, int &h);
00105 
00107         void setViewPort(int tx, int ty, int tw, int th);
00108 
00110         void getViewPort(int &tx, int &ty, int &tw, int &th);
00111 
00113         double getAspect();
00114 
00115         // Class query
00116 
00117         void setSelectTransform(bool flag);
00118 protected:
00119 
00120         // virtual methods for view and perspective transforms
00121 
00122         void beginTransform();
00123         virtual void viewTransform();
00124         virtual void projectionTransform();
00125 };
00126 
00127 #endif 

Generated on Fri Sep 1 15:36:46 2006 for Interactive Visualisation Framework - Ivf++ by  doxygen 1.4.6-NO