00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
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