IvfMesh.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 _CIvfMesh_h_
00026 #define _CIvfMesh_h_
00027 
00028 #include <ivf/IvfShape.h>
00029 
00030 IvfSmartPointer(CIvfMesh);
00031 
00037 class IVF_API CIvfMesh : public CIvfShape {
00038 public:
00039         enum TMeshType {
00040                 MT_ORDER_2,
00041                 MT_ORDER_4
00042         };
00043         enum TMeshOrientation {
00044                 MO_CW,
00045                 MO_CCW
00046         };
00047 private:
00048         GLdouble* m_controlPoints;
00049         int m_xSize;
00050         int m_ySize;
00051         bool m_initDone;
00052         TMeshType m_meshType;
00053         TMeshOrientation m_meshOrientation;
00054         int m_meshRows;
00055         int m_meshCols;
00056 public:
00058         CIvfMesh();
00059 
00061         virtual ~CIvfMesh();
00062 
00063         IvfClassInfo("CIvfMesh",CIvfShape);
00064 
00065         void createMesh(double width, double height);
00066 
00068         void setSize(int xSize, int ySize);
00069 
00071         void getSize(int &xSize, int &ySize);
00072 
00074         void setControlPoint(int i, int j, double x, double y, double z);
00075 
00077         void getControlPoint(int i, int j, double &x, double &y, double &z);
00078 
00085         void setMeshOrientation(TMeshOrientation meshOrientation);
00086 
00092         void setMeshResolution(int rows, int cols);
00093 
00100         void setMeshType(TMeshType meshType);
00101 
00103         void setControlPoint(int i, int j, double y);
00104 protected:
00105         void createGeometry();
00106         void initialize();
00107 };
00108 
00109 #endif 

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